Index: third_party/WebKit/Source/core/animation/CSSValueInterpolationType.cpp |
diff --git a/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.cpp |
index 9f15de81abc38c2bfc2fd385c4940cda650154fb..50acd0214ae1ef91cb33e91c86f52829a50c6d1e 100644 |
--- a/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.cpp |
+++ b/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.cpp |
@@ -6,6 +6,8 @@ |
#include "core/animation/InterpolationEnvironment.h" |
#include "core/animation/StringKeyframe.h" |
+#include "core/css/CSSInheritedValue.h" |
+#include "core/css/CSSInitialValue.h" |
#include "core/css/resolver/StyleBuilder.h" |
namespace blink { |
@@ -35,22 +37,30 @@ class CSSValueNonInterpolableValue : public NonInterpolableValue { |
DEFINE_NON_INTERPOLABLE_VALUE_TYPE(CSSValueNonInterpolableValue); |
DEFINE_NON_INTERPOLABLE_VALUE_TYPE_CASTS(CSSValueNonInterpolableValue); |
-InterpolationValue CSSValueInterpolationType::maybeConvertSingle( |
- const PropertySpecificKeyframe& keyframe, |
- const InterpolationEnvironment&, |
- const InterpolationValue&, |
- ConversionCheckers&) const { |
- if (keyframe.isNeutral()) |
- return nullptr; |
- |
- return InterpolationValue( |
- InterpolableList::create(0), |
- CSSValueNonInterpolableValue::create( |
- toCSSPropertySpecificKeyframe(keyframe).value())); |
+InterpolationValue CSSValueInterpolationType::maybeConvertInitial( |
+ const StyleResolverState& state, |
+ ConversionCheckers& conversionCheckers) const { |
+ return maybeConvertValue(*CSSInitialValue::create(), state, |
+ conversionCheckers); |
+} |
+ |
+InterpolationValue CSSValueInterpolationType::maybeConvertInherit( |
+ const StyleResolverState& state, |
+ ConversionCheckers& conversionCheckers) const { |
+ return maybeConvertValue(*CSSInheritedValue::create(), state, |
+ conversionCheckers); |
+} |
+ |
+InterpolationValue CSSValueInterpolationType::maybeConvertValue( |
+ const CSSValue& value, |
+ const StyleResolverState& state, |
+ ConversionCheckers& conversionCheckers) const { |
+ return InterpolationValue(InterpolableList::create(0), |
+ CSSValueNonInterpolableValue::create(&value)); |
} |
void CSSValueInterpolationType::applyStandardPropertyValue( |
- const InterpolableValue&, |
+ const InterpolableValue& interpolableValue, |
const NonInterpolableValue* nonInterpolableValue, |
StyleResolverState& state) const { |
StyleBuilder::applyProperty( |