| Index: third_party/WebKit/Source/core/animation/KeyframeEffectModel.h
|
| diff --git a/third_party/WebKit/Source/core/animation/KeyframeEffectModel.h b/third_party/WebKit/Source/core/animation/KeyframeEffectModel.h
|
| index a92b608f5cb84883cef9c15674bf926f6b87102a..57329c6826cc447a3dd23fe72ca720bdd5c28a82 100644
|
| --- a/third_party/WebKit/Source/core/animation/KeyframeEffectModel.h
|
| +++ b/third_party/WebKit/Source/core/animation/KeyframeEffectModel.h
|
| @@ -31,12 +31,14 @@
|
| #ifndef KeyframeEffectModel_h
|
| #define KeyframeEffectModel_h
|
|
|
| +#include <memory>
|
| #include "core/CoreExport.h"
|
| #include "core/animation/AnimationEffectReadOnly.h"
|
| #include "core/animation/EffectModel.h"
|
| #include "core/animation/InterpolationEffect.h"
|
| #include "core/animation/PropertyHandle.h"
|
| #include "core/animation/StringKeyframe.h"
|
| +#include "core/animation/TransitionKeyframe.h"
|
| #include "core/animation/animatable/AnimatableValueKeyframe.h"
|
| #include "platform/animation/TimingFunction.h"
|
| #include "platform/heap/Handle.h"
|
| @@ -44,7 +46,6 @@
|
| #include "wtf/HashSet.h"
|
| #include "wtf/PassRefPtr.h"
|
| #include "wtf/Vector.h"
|
| -#include <memory>
|
|
|
| namespace blink {
|
|
|
| @@ -105,6 +106,7 @@ class CORE_EXPORT KeyframeEffectModelBase : public EffectModel {
|
|
|
| virtual bool isAnimatableValueKeyframeEffectModel() const { return false; }
|
| virtual bool isStringKeyframeEffectModel() const { return false; }
|
| + virtual bool isTransitionKeyframeEffectModel() const { return false; }
|
|
|
| bool hasSyntheticKeyframes() const {
|
| ensureKeyframeGroups();
|
| @@ -187,6 +189,7 @@ class KeyframeEffectModel final : public KeyframeEffectModelBase {
|
|
|
| virtual bool isAnimatableValueKeyframeEffectModel() const { return false; }
|
| virtual bool isStringKeyframeEffectModel() const { return false; }
|
| + virtual bool isTransitionKeyframeEffectModel() const { return false; }
|
| };
|
|
|
| using KeyframeVector = KeyframeEffectModelBase::KeyframeVector;
|
| @@ -205,6 +208,11 @@ using StringKeyframeVector = StringKeyframeEffectModel::KeyframeVector;
|
| using StringPropertySpecificKeyframeVector =
|
| StringKeyframeEffectModel::PropertySpecificKeyframeVector;
|
|
|
| +using TransitionKeyframeEffectModel = KeyframeEffectModel<TransitionKeyframe>;
|
| +using TransitionKeyframeVector = TransitionKeyframeEffectModel::KeyframeVector;
|
| +using TransitionPropertySpecificKeyframeVector =
|
| + TransitionKeyframeEffectModel::PropertySpecificKeyframeVector;
|
| +
|
| DEFINE_TYPE_CASTS(KeyframeEffectModelBase,
|
| EffectModel,
|
| value,
|
| @@ -220,6 +228,11 @@ DEFINE_TYPE_CASTS(StringKeyframeEffectModel,
|
| value,
|
| value->isStringKeyframeEffectModel(),
|
| value.isStringKeyframeEffectModel());
|
| +DEFINE_TYPE_CASTS(TransitionKeyframeEffectModel,
|
| + KeyframeEffectModelBase,
|
| + value,
|
| + value->isTransitionKeyframeEffectModel(),
|
| + value.isTransitionKeyframeEffectModel());
|
|
|
| inline const AnimatableValueKeyframeEffectModel*
|
| toAnimatableValueKeyframeEffectModel(const EffectModel* base) {
|
| @@ -241,6 +254,11 @@ inline StringKeyframeEffectModel* toStringKeyframeEffectModel(
|
| return toStringKeyframeEffectModel(toKeyframeEffectModelBase(base));
|
| }
|
|
|
| +inline TransitionKeyframeEffectModel* toTransitionKeyframeEffectModel(
|
| + EffectModel* base) {
|
| + return toTransitionKeyframeEffectModel(toKeyframeEffectModelBase(base));
|
| +}
|
| +
|
| template <>
|
| inline bool KeyframeEffectModel<
|
| AnimatableValueKeyframe>::isAnimatableValueKeyframeEffectModel() const {
|
| @@ -253,6 +271,12 @@ inline bool KeyframeEffectModel<StringKeyframe>::isStringKeyframeEffectModel()
|
| return true;
|
| }
|
|
|
| +template <>
|
| +inline bool KeyframeEffectModel<
|
| + TransitionKeyframe>::isTransitionKeyframeEffectModel() const {
|
| + return true;
|
| +}
|
| +
|
| } // namespace blink
|
|
|
| #endif // KeyframeEffectModel_h
|
|
|