Index: third_party/WebKit/Source/core/animation/LegacyStyleInterpolation.h |
diff --git a/third_party/WebKit/Source/core/animation/LegacyStyleInterpolation.h b/third_party/WebKit/Source/core/animation/LegacyStyleInterpolation.h |
index 5d9dc21c3c844be66792628313e759070bf17ab7..0a0d294e5e37197e2ab7a1733e6225c5a484b156 100644 |
--- a/third_party/WebKit/Source/core/animation/LegacyStyleInterpolation.h |
+++ b/third_party/WebKit/Source/core/animation/LegacyStyleInterpolation.h |
@@ -5,12 +5,49 @@ |
#ifndef LegacyStyleInterpolation_h |
#define LegacyStyleInterpolation_h |
-#include "core/animation/StyleInterpolation.h" |
+#include "core/CSSPropertyNames.h" |
+#include "core/CoreExport.h" |
+#include "core/animation/Interpolation.h" |
+#include "core/animation/PropertyHandle.h" |
#include "core/css/resolver/AnimatedStyleBuilder.h" |
#include <memory> |
namespace blink { |
+class StyleResolverState; |
+ |
+class CORE_EXPORT StyleInterpolation : public Interpolation { |
+ public: |
+ // 1) convert m_cachedValue into an X |
+ // 2) shove X into StyleResolverState |
+ // X can be: |
+ // (1) a CSSValue (and applied via StyleBuilder::applyProperty) |
+ // (2) an AnimatableValue (and applied via |
+ // AnimatedStyleBuilder::applyProperty) |
+ // (3) a custom value that is inserted directly into the StyleResolverState. |
+ virtual void apply(StyleResolverState&) const = 0; |
+ |
+ bool isStyleInterpolation() const final { return true; } |
+ |
+ CSSPropertyID id() const { return m_id; } |
+ |
+ PropertyHandle getProperty() const final { return PropertyHandle(id()); } |
+ |
+ protected: |
+ CSSPropertyID m_id; |
+ |
+ StyleInterpolation(std::unique_ptr<InterpolableValue> start, |
+ std::unique_ptr<InterpolableValue> end, |
+ CSSPropertyID id) |
+ : Interpolation(std::move(start), std::move(end)), m_id(id) {} |
+}; |
+ |
+DEFINE_TYPE_CASTS(StyleInterpolation, |
+ Interpolation, |
+ value, |
+ value->isStyleInterpolation(), |
+ value.isStyleInterpolation()); |
+ |
class LegacyStyleInterpolation : public StyleInterpolation { |
public: |
static PassRefPtr<LegacyStyleInterpolation> create( |