Index: Source/core/animation/InterpolableValuePromise.h |
diff --git a/Source/core/animation/InterpolableValuePromise.h b/Source/core/animation/InterpolableValuePromise.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..84e7235c021fa2fb192b8e37bd8ccb6ab0b9ecc0 |
--- /dev/null |
+++ b/Source/core/animation/InterpolableValuePromise.h |
@@ -0,0 +1,43 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef InterpolableValuePromise_h |
+#define InterpolableValuePromise_h |
+ |
+#include "CSSPropertyNames.h" |
+#include "core/animation/InterpolableValue.h" |
+ |
+namespace WebCore { |
+ |
+class CSSPrimitiveValue; |
+class Element; |
+class StyleResolverState; |
+ |
+class InterpolableValuePromise : public RefCountedWillBeGarbageCollected<InterpolableValuePromise> { |
+ DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(InterpolableValuePromise); |
+public: |
+ // FIXME: remove element reference |
+ static PassRefPtrWillBeRawPtr<InterpolableValuePromise> create(Element& element, CSSPropertyID id, PassRefPtrWillBeRawPtr<CSSValue> value) |
+ { |
+ return adoptRefWillBeNoop(new InterpolableValuePromise(element, id, value)); |
+ } |
+ |
+ virtual void trace(Visitor*); |
+ |
+ PassOwnPtrWillBeRawPtr<InterpolableValue> extract(StyleResolverState&, CSSPropertyID); |
+ PassRefPtrWillBeRawPtr<AnimatableValue> extractAnimatableValue(); |
+ |
+ static bool requiresLateBinding(const CSSValue&); |
+ static bool requiresLateBinding(const CSSPrimitiveValue&); |
+ |
+private: |
+ InterpolableValuePromise(Element&, CSSPropertyID, PassRefPtrWillBeRawPtr<CSSValue>); |
+ |
+ RefPtrWillBeMember<CSSValue> m_cssValue; |
+ OwnPtrWillBeMember<InterpolableAnimatableValue> m_interpolableAnimatableValue; |
+}; |
+ |
+} |
+ |
+#endif |