Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(438)

Unified Diff: third_party/WebKit/Source/core/animation/ColorPropertyFunctions.cpp

Issue 2537373005: [css-ui] Make caret-color animatable (Closed)
Patch Set: Apply suggested changes Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698