Diff
Modified: trunk/Source/WebCore/ChangeLog (103157 => 103158)
--- trunk/Source/WebCore/ChangeLog 2011-12-17 23:17:26 UTC (rev 103157)
+++ trunk/Source/WebCore/ChangeLog 2011-12-18 03:00:43 UTC (rev 103158)
@@ -1,3 +1,25 @@
+2011-12-17 Andreas Kling <[email protected]>
+
+ CSSStyleSelector: Clean up getColorFromPrimitiveValue().
+ <http://webkit.org/b/74789>
+
+ Reviewed by Antti Koivisto.
+
+ Rename getColorFromPrimitiveValue() to colorFromPrimitiveValue() and rework
+ it to be a bit more readable.
+
+ * css/CSSGradientValue.cpp:
+ (WebCore::CSSGradientValue::addStops):
+ * css/CSSStyleApplyProperty.cpp:
+ (WebCore::ApplyPropertyColor::applyValue):
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::applyProperty):
+ (WebCore::CSSStyleSelector::colorFromPrimitiveValue):
+ (WebCore::CSSStyleSelector::createFilterOperations):
+ * css/CSSStyleSelector.h:
+ * css/SVGCSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::applySVGProperty):
+
2011-12-17 Kenichi Ishibashi <[email protected]>
Text dispappear when SVG font has no latin character
Modified: trunk/Source/WebCore/css/CSSGradientValue.cpp (103157 => 103158)
--- trunk/Source/WebCore/css/CSSGradientValue.cpp 2011-12-17 23:17:26 UTC (rev 103157)
+++ trunk/Source/WebCore/css/CSSGradientValue.cpp 2011-12-18 03:00:43 UTC (rev 103158)
@@ -114,7 +114,7 @@
// We have to resolve colors.
for (unsigned i = 0; i < m_stops.size(); i++) {
const CSSGradientColorStop& stop = m_stops[i];
- Color color = renderer->document()->styleSelector()->getColorFromPrimitiveValue(stop.m_color.get());
+ Color color = renderer->document()->styleSelector()->colorFromPrimitiveValue(stop.m_color.get());
float offset;
if (stop.m_position->primitiveType() == CSSPrimitiveValue::CSS_PERCENTAGE)
@@ -147,7 +147,7 @@
for (size_t i = 0; i < numStops; ++i) {
const CSSGradientColorStop& stop = m_stops[i];
- stops[i].color = renderer->document()->styleSelector()->getColorFromPrimitiveValue(stop.m_color.get());
+ stops[i].color = renderer->document()->styleSelector()->colorFromPrimitiveValue(stop.m_color.get());
if (stop.m_position) {
int type = stop.m_position->primitiveType();
Modified: trunk/Source/WebCore/css/CSSStyleApplyProperty.cpp (103157 => 103158)
--- trunk/Source/WebCore/css/CSSStyleApplyProperty.cpp 2011-12-17 23:17:26 UTC (rev 103157)
+++ trunk/Source/WebCore/css/CSSStyleApplyProperty.cpp 2011-12-18 03:00:43 UTC (rev 103158)
@@ -245,9 +245,9 @@
applyInheritValue(selector);
else {
if (selector->applyPropertyToRegularStyle())
- (selector->style()->*setterFunction)(selector->getColorFromPrimitiveValue(primitiveValue, false));
+ (selector->style()->*setterFunction)(selector->colorFromPrimitiveValue(primitiveValue));
if (selector->applyPropertyToVisitedLinkStyle())
- (selector->style()->*visitedLinkSetterFunction)(selector->getColorFromPrimitiveValue(primitiveValue, true));
+ (selector->style()->*visitedLinkSetterFunction)(selector->colorFromPrimitiveValue(primitiveValue, /* forVisitedLink */ true));
}
}
Modified: trunk/Source/WebCore/css/CSSStyleSelector.cpp (103157 => 103158)
--- trunk/Source/WebCore/css/CSSStyleSelector.cpp 2011-12-17 23:17:26 UTC (rev 103157)
+++ trunk/Source/WebCore/css/CSSStyleSelector.cpp 2011-12-18 03:00:43 UTC (rev 103158)
@@ -3179,7 +3179,7 @@
ShadowStyle shadowStyle = item->style && item->style->getIdent() == CSSValueInset ? Inset : Normal;
Color color;
if (item->color)
- color = getColorFromPrimitiveValue(item->color.get());
+ color = colorFromPrimitiveValue(item->color.get());
OwnPtr<ShadowData> shadowData = adoptPtr(new ShadowData(x, y, blur, spread, shadowStyle, id == CSSPropertyWebkitBoxShadow, color.isValid() ? color : Color::transparent));
if (id == CSSPropertyTextShadow)
m_style->setTextShadow(shadowData.release(), i.index()); // add to the list if this is not the first entry
@@ -3552,7 +3552,7 @@
if (!primitiveValue)
break;
- Color col = getColorFromPrimitiveValue(primitiveValue);
+ Color col = colorFromPrimitiveValue(primitiveValue);
m_style->setTapHighlightColor(col);
return;
}
@@ -4783,26 +4783,30 @@
return RenderTheme::defaultTheme()->systemColor(cssValueId);
}
-Color CSSStyleSelector::getColorFromPrimitiveValue(CSSPrimitiveValue* primitiveValue, bool forVisitedLink) const
+Color CSSStyleSelector::colorFromPrimitiveValue(CSSPrimitiveValue* value, bool forVisitedLink) const
{
- Color col;
- int ident = primitiveValue->getIdent();
- if (ident) {
- if (ident == CSSValueWebkitText)
- col = m_element->document()->textColor();
- else if (ident == CSSValueWebkitLink)
- col = (m_element->isLink() && forVisitedLink) ? m_element->document()->visitedLinkColor() : m_element->document()->linkColor();
- else if (ident == CSSValueWebkitActivelink)
- col = m_element->document()->activeLinkColor();
- else if (ident == CSSValueWebkitFocusRingColor)
- col = RenderTheme::focusRingColor();
- else if (ident == CSSValueCurrentcolor)
- col = m_style->color();
- else
- col = colorForCSSValue(ident);
- } else if (primitiveValue->primitiveType() == CSSPrimitiveValue::CSS_RGBCOLOR)
- col.setRGB(primitiveValue->getRGBA32Value());
- return col;
+ if (value->primitiveType() == CSSPrimitiveValue::CSS_RGBCOLOR)
+ return Color(value->getRGBA32Value());
+
+ if (value->primitiveType() != CSSPrimitiveValue::CSS_IDENT)
+ return Color();
+
+ int ident = value->getIdent();
+
+ switch (ident) {
+ case CSSValueWebkitText:
+ return m_element->document()->textColor();
+ case CSSValueWebkitLink:
+ return (m_element->isLink() && forVisitedLink) ? m_element->document()->visitedLinkColor() : m_element->document()->linkColor();
+ case CSSValueWebkitActivelink:
+ return m_element->document()->activeLinkColor();
+ case CSSValueWebkitFocusRingColor:
+ return RenderTheme::focusRingColor();
+ case CSSValueCurrentcolor:
+ return m_style->color();
+ default:
+ return colorForCSSValue(ident);
+ }
}
bool CSSStyleSelector::hasSelectorForAttribute(const AtomicString &attrname) const
@@ -5388,8 +5392,8 @@
int blur = item->blur ? item->blur->computeLength<int>(style, rootStyle, zoomFactor) : 0;
Color color;
if (item->color)
- color = getColorFromPrimitiveValue(item->color.get());
-
+ color = colorFromPrimitiveValue(item->color.get());
+
operations.operations().append(DropShadowFilterOperation::create(x, y, blur, color.isValid() ? color : Color::transparent, operationType));
break;
}
Modified: trunk/Source/WebCore/css/CSSStyleSelector.h (103157 => 103158)
--- trunk/Source/WebCore/css/CSSStyleSelector.h 2011-12-17 23:17:26 UTC (rev 103157)
+++ trunk/Source/WebCore/css/CSSStyleSelector.h 2011-12-18 03:00:43 UTC (rev 103158)
@@ -191,7 +191,7 @@
public:
bool useSVGZoomRules();
- Color getColorFromPrimitiveValue(CSSPrimitiveValue*, bool forVisitedLink = false) const;
+ Color colorFromPrimitiveValue(CSSPrimitiveValue*, bool forVisitedLink = false) const;
bool hasSelectorForAttribute(const AtomicString&) const;
Modified: trunk/Source/WebCore/css/SVGCSSStyleSelector.cpp (103157 => 103158)
--- trunk/Source/WebCore/css/SVGCSSStyleSelector.cpp 2011-12-17 23:17:26 UTC (rev 103157)
+++ trunk/Source/WebCore/css/SVGCSSStyleSelector.cpp 2011-12-18 03:00:43 UTC (rev 103158)
@@ -576,7 +576,7 @@
int blur = item->blur ? item->blur->computeLength<int>(style(), m_rootElementStyle) : 0;
Color color;
if (item->color)
- color = getColorFromPrimitiveValue(item->color.get());
+ color = colorFromPrimitiveValue(item->color.get());
// -webkit-svg-shadow does should not have a spread or style
ASSERT(!item->spread);