Index: third_party/WebKit/Source/core/animation/ColorPropertyFunctions.cpp |
diff --git a/third_party/WebKit/Source/core/animation/ColorPropertyFunctions.cpp b/third_party/WebKit/Source/core/animation/ColorPropertyFunctions.cpp |
index 5755a3c6a58da258978f7c5655cbc315613193a5..20b1f4e69c56ef6bcfb009c2ac44d339bcde0daf 100644 |
--- a/third_party/WebKit/Source/core/animation/ColorPropertyFunctions.cpp |
+++ b/third_party/WebKit/Source/core/animation/ColorPropertyFunctions.cpp |
@@ -8,91 +8,142 @@ |
namespace blink { |
-StyleColor ColorPropertyFunctions::getInitialColor(CSSPropertyID property) { |
- return getUnvisitedColor(property, ComputedStyle::initialStyle()); |
+bool ColorPropertyFunctions::getInitialColor(CSSPropertyID property, |
+ StyleColor& initialColor) { |
+ return getUnvisitedColor(property, ComputedStyle::initialStyle(), |
+ initialColor); |
} |
-StyleColor ColorPropertyFunctions::getUnvisitedColor( |
- CSSPropertyID property, |
- const ComputedStyle& style) { |
+bool ColorPropertyFunctions::getUnvisitedColor(CSSPropertyID property, |
+ const ComputedStyle& style, |
+ StyleColor& color) { |
switch (property) { |
case CSSPropertyBackgroundColor: |
- return style.backgroundColor(); |
+ color = style.backgroundColor(); |
+ break; |
case CSSPropertyBorderLeftColor: |
- return style.borderLeftColor(); |
+ color = style.borderLeftColor(); |
+ break; |
case CSSPropertyBorderRightColor: |
- return style.borderRightColor(); |
+ color = style.borderRightColor(); |
+ break; |
case CSSPropertyBorderTopColor: |
- return style.borderTopColor(); |
+ color = style.borderTopColor(); |
+ break; |
case CSSPropertyBorderBottomColor: |
- return style.borderBottomColor(); |
+ color = style.borderBottomColor(); |
+ break; |
+ case CSSPropertyCaretColor: |
+ if (style.caretColor().isAutoColor()) |
+ return false; |
+ color = style.caretColor().toStyleColor(); |
+ break; |
case CSSPropertyColor: |
- return style.color(); |
+ color = style.color(); |
+ break; |
case CSSPropertyOutlineColor: |
- return style.outlineColor(); |
+ color = style.outlineColor(); |
+ break; |
case CSSPropertyColumnRuleColor: |
- return style.columnRuleColor(); |
+ color = style.columnRuleColor(); |
+ break; |
case CSSPropertyWebkitTextEmphasisColor: |
- return style.textEmphasisColor(); |
+ color = style.textEmphasisColor(); |
+ break; |
case CSSPropertyWebkitTextFillColor: |
- return style.textFillColor(); |
+ color = style.textFillColor(); |
+ break; |
case CSSPropertyWebkitTextStrokeColor: |
- return style.textStrokeColor(); |
+ color = style.textStrokeColor(); |
+ break; |
case CSSPropertyFloodColor: |
- return style.floodColor(); |
+ color = style.floodColor(); |
+ break; |
case CSSPropertyLightingColor: |
- return style.lightingColor(); |
+ color = style.lightingColor(); |
+ break; |
case CSSPropertyStopColor: |
- return style.stopColor(); |
+ color = style.stopColor(); |
+ break; |
case CSSPropertyWebkitTapHighlightColor: |
- return style.tapHighlightColor(); |
+ color = style.tapHighlightColor(); |
+ break; |
case CSSPropertyTextDecorationColor: |
- return style.textDecorationColor(); |
+ color = style.textDecorationColor(); |
+ break; |
default: |
NOTREACHED(); |
- return StyleColor::currentColor(); |
+ color = StyleColor::currentColor(); |
+ break; |
} |
+ |
+ return true; |
} |
-StyleColor ColorPropertyFunctions::getVisitedColor(CSSPropertyID property, |
- const ComputedStyle& style) { |
+bool ColorPropertyFunctions::getVisitedColor(CSSPropertyID property, |
+ const ComputedStyle& style, |
+ StyleColor& color) { |
switch (property) { |
case CSSPropertyBackgroundColor: |
- return style.visitedLinkBackgroundColor(); |
+ color = style.visitedLinkBackgroundColor(); |
+ break; |
case CSSPropertyBorderLeftColor: |
- return style.visitedLinkBorderLeftColor(); |
+ color = style.visitedLinkBorderLeftColor(); |
+ break; |
case CSSPropertyBorderRightColor: |
- return style.visitedLinkBorderRightColor(); |
+ color = style.visitedLinkBorderRightColor(); |
+ break; |
case CSSPropertyBorderTopColor: |
- return style.visitedLinkBorderTopColor(); |
+ color = style.visitedLinkBorderTopColor(); |
+ break; |
case CSSPropertyBorderBottomColor: |
- return style.visitedLinkBorderBottomColor(); |
+ color = style.visitedLinkBorderBottomColor(); |
+ break; |
+ case CSSPropertyCaretColor: |
+ if (style.visitedLinkCaretColor().isAutoColor()) |
+ return false; |
+ color = style.visitedLinkCaretColor().toStyleColor(); |
+ break; |
case CSSPropertyColor: |
- return style.visitedLinkColor(); |
+ color = style.visitedLinkColor(); |
+ break; |
case CSSPropertyOutlineColor: |
- return style.visitedLinkOutlineColor(); |
+ color = style.visitedLinkOutlineColor(); |
+ break; |
case CSSPropertyColumnRuleColor: |
- return style.visitedLinkColumnRuleColor(); |
+ color = style.visitedLinkColumnRuleColor(); |
+ break; |
case CSSPropertyWebkitTextEmphasisColor: |
- return style.visitedLinkTextEmphasisColor(); |
+ color = style.visitedLinkTextEmphasisColor(); |
+ break; |
case CSSPropertyWebkitTextFillColor: |
- return style.visitedLinkTextFillColor(); |
+ color = style.visitedLinkTextFillColor(); |
+ break; |
case CSSPropertyWebkitTextStrokeColor: |
- return style.visitedLinkTextStrokeColor(); |
+ color = style.visitedLinkTextStrokeColor(); |
+ break; |
case CSSPropertyFloodColor: |
- return style.floodColor(); |
+ color = style.floodColor(); |
+ break; |
case CSSPropertyLightingColor: |
- return style.lightingColor(); |
+ color = style.lightingColor(); |
+ break; |
case CSSPropertyStopColor: |
- return style.stopColor(); |
+ color = style.stopColor(); |
+ break; |
case CSSPropertyWebkitTapHighlightColor: |
- return style.tapHighlightColor(); |
+ color = style.tapHighlightColor(); |
+ break; |
case CSSPropertyTextDecorationColor: |
- return style.visitedLinkTextDecorationColor(); |
+ color = style.visitedLinkTextDecorationColor(); |
+ break; |
default: |
NOTREACHED(); |
- return StyleColor::currentColor(); |
+ color = StyleColor::currentColor(); |
+ break; |
} |
+ |
+ return true; |
} |
void ColorPropertyFunctions::setUnvisitedColor(CSSPropertyID property, |
@@ -114,6 +165,8 @@ void ColorPropertyFunctions::setUnvisitedColor(CSSPropertyID property, |
case CSSPropertyBorderTopColor: |
style.setBorderTopColor(color); |
return; |
+ case CSSPropertyCaretColor: |
+ return style.setCaretColor(color); |
case CSSPropertyColor: |
style.setColor(color); |
return; |
@@ -163,6 +216,8 @@ void ColorPropertyFunctions::setVisitedColor(CSSPropertyID property, |
case CSSPropertyBorderTopColor: |
style.setVisitedLinkBorderTopColor(color); |
return; |
+ case CSSPropertyCaretColor: |
+ return style.setVisitedLinkCaretColor(color); |
case CSSPropertyColor: |
style.setVisitedLinkColor(color); |
return; |