| 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..c6dba58733de6a4bead8818807c68594416de55f 100644
 | 
| --- a/third_party/WebKit/Source/core/animation/ColorPropertyFunctions.cpp
 | 
| +++ b/third_party/WebKit/Source/core/animation/ColorPropertyFunctions.cpp
 | 
| @@ -8,8 +8,14 @@
 | 
|  
 | 
|  namespace blink {
 | 
|  
 | 
| -StyleColor ColorPropertyFunctions::getInitialColor(CSSPropertyID property) {
 | 
| -  return getUnvisitedColor(property, ComputedStyle::initialStyle());
 | 
| +bool ColorPropertyFunctions::getInitialColor(CSSPropertyID property,
 | 
| +                                             StyleColor& initialColor) {
 | 
| +  if (property == CSSPropertyCaretColor)
 | 
| +    return false;
 | 
| +  // TODO(rego): Make getUnvisitedColor() return a bool, so we don't need a
 | 
| +  // special case for caret-color here (http://crbug.com/676295).
 | 
| +  initialColor = getUnvisitedColor(property, ComputedStyle::initialStyle());
 | 
| +  return true;
 | 
|  }
 | 
|  
 | 
|  StyleColor ColorPropertyFunctions::getUnvisitedColor(
 | 
| @@ -26,6 +32,12 @@ StyleColor ColorPropertyFunctions::getUnvisitedColor(
 | 
|        return style.borderTopColor();
 | 
|      case CSSPropertyBorderBottomColor:
 | 
|        return style.borderBottomColor();
 | 
| +    case CSSPropertyCaretColor:
 | 
| +      // TODO(rego): "auto" value for caret-color should not interpolate
 | 
| +      // (http://crbug.com/676295).
 | 
| +      if (style.caretColor().isAutoColor())
 | 
| +        return StyleColor::currentColor();
 | 
| +      return style.caretColor().toStyleColor();
 | 
|      case CSSPropertyColor:
 | 
|        return style.color();
 | 
|      case CSSPropertyOutlineColor:
 | 
| @@ -67,6 +79,12 @@ StyleColor ColorPropertyFunctions::getVisitedColor(CSSPropertyID property,
 | 
|        return style.visitedLinkBorderTopColor();
 | 
|      case CSSPropertyBorderBottomColor:
 | 
|        return style.visitedLinkBorderBottomColor();
 | 
| +    case CSSPropertyCaretColor:
 | 
| +      // TODO(rego): "auto" value for caret-color should not interpolate
 | 
| +      // (http://crbug.com/676295).
 | 
| +      if (style.visitedLinkCaretColor().isAutoColor())
 | 
| +        return StyleColor::currentColor();
 | 
| +      return style.visitedLinkCaretColor().toStyleColor();
 | 
|      case CSSPropertyColor:
 | 
|        return style.visitedLinkColor();
 | 
|      case CSSPropertyOutlineColor:
 | 
| @@ -114,6 +132,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 +183,8 @@ void ColorPropertyFunctions::setVisitedColor(CSSPropertyID property,
 | 
|      case CSSPropertyBorderTopColor:
 | 
|        style.setVisitedLinkBorderTopColor(color);
 | 
|        return;
 | 
| +    case CSSPropertyCaretColor:
 | 
| +      return style.setVisitedLinkCaretColor(color);
 | 
|      case CSSPropertyColor:
 | 
|        style.setVisitedLinkColor(color);
 | 
|        return;
 | 
| 
 |