diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/animation/keyframe_effect_model.h')
-rw-r--r-- | chromium/third_party/blink/renderer/core/animation/keyframe_effect_model.h | 45 |
1 files changed, 27 insertions, 18 deletions
diff --git a/chromium/third_party/blink/renderer/core/animation/keyframe_effect_model.h b/chromium/third_party/blink/renderer/core/animation/keyframe_effect_model.h index 54224d18644..7ad2414d2cf 100644 --- a/chromium/third_party/blink/renderer/core/animation/keyframe_effect_model.h +++ b/chromium/third_party/blink/renderer/core/animation/keyframe_effect_model.h @@ -234,6 +234,12 @@ class KeyframeEffectModel final : public KeyframeEffectModelBase { keyframes, composite_, default_keyframe_easing_); } + KeyframeEffectModel<StringKeyframe>* CloneAsEmptyStringKeyframeModel() { + HeapVector<Member<StringKeyframe>> empty_keyframes; + return MakeGarbageCollected<KeyframeEffectModel<StringKeyframe>>( + empty_keyframes, composite_, default_keyframe_easing_); + } + private: bool IsStringKeyframeEffectModel() const override { return false; } bool IsTransitionKeyframeEffectModel() const override { return false; } @@ -253,35 +259,38 @@ using TransitionKeyframeVector = TransitionKeyframeEffectModel::KeyframeVector; using TransitionPropertySpecificKeyframeVector = TransitionKeyframeEffectModel::PropertySpecificKeyframeVector; -DEFINE_TYPE_CASTS(KeyframeEffectModelBase, - EffectModel, - value, - value->IsKeyframeEffectModel(), - value.IsKeyframeEffectModel()); -DEFINE_TYPE_CASTS(StringKeyframeEffectModel, - KeyframeEffectModelBase, - value, - value->IsStringKeyframeEffectModel(), - value.IsStringKeyframeEffectModel()); -DEFINE_TYPE_CASTS(TransitionKeyframeEffectModel, - KeyframeEffectModelBase, - value, - value->IsTransitionKeyframeEffectModel(), - value.IsTransitionKeyframeEffectModel()); +template <> +struct DowncastTraits<KeyframeEffectModelBase> { + static bool AllowFrom(const EffectModel& value) { + return value.IsKeyframeEffectModel(); + } +}; +template <> +struct DowncastTraits<StringKeyframeEffectModel> { + static bool AllowFrom(const KeyframeEffectModelBase& value) { + return value.IsStringKeyframeEffectModel(); + } +}; +template <> +struct DowncastTraits<TransitionKeyframeEffectModel> { + static bool AllowFrom(const KeyframeEffectModelBase& value) { + return value.IsTransitionKeyframeEffectModel(); + } +}; inline const StringKeyframeEffectModel* ToStringKeyframeEffectModel( const EffectModel* base) { - return ToStringKeyframeEffectModel(ToKeyframeEffectModelBase(base)); + return To<StringKeyframeEffectModel>(To<KeyframeEffectModelBase>(base)); } inline StringKeyframeEffectModel* ToStringKeyframeEffectModel( EffectModel* base) { - return ToStringKeyframeEffectModel(ToKeyframeEffectModelBase(base)); + return To<StringKeyframeEffectModel>(To<KeyframeEffectModelBase>(base)); } inline TransitionKeyframeEffectModel* ToTransitionKeyframeEffectModel( EffectModel* base) { - return ToTransitionKeyframeEffectModel(ToKeyframeEffectModelBase(base)); + return To<TransitionKeyframeEffectModel>(To<KeyframeEffectModelBase>(base)); } template <> |