| 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;
|
|
|