Remove DEFINE_TYPE_CASTS from t_p/blink/renderer/core/animation (3/n)
The goal of this CL is to use new downcast helper and remove
DEFINE_TYPE_CASTS to adopt new downcast helpers.
This CL removes DEFINE_TYPE_CASTS for below element.
- KeyframeEffectModelBase,
- StringKeyframeEffectModel,
- TransitionKeyframeEffectModel,
- ScrollTimeline
Bug: 891908
Change-Id: I0f10a50f41f0ba1660eb8f36972c56b0427a4149
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1962127
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Commit-Queue: Abhijeet Kandalkar <abhijeet@igalia.com>
Cr-Commit-Position: refs/heads/master@{#723826}
diff --git a/third_party/blink/renderer/core/animation/compositor_animations.cc b/third_party/blink/renderer/core/animation/compositor_animations.cc
index 98c3832..58ff2fe 100644
--- a/third_party/blink/renderer/core/animation/compositor_animations.cc
+++ b/third_party/blink/renderer/core/animation/compositor_animations.cc
@@ -188,8 +188,7 @@
const PaintArtifactCompositor* paint_artifact_compositor,
double animation_playback_rate) {
FailureReasons reasons = kNoFailure;
- const KeyframeEffectModelBase& keyframe_effect =
- ToKeyframeEffectModelBase(effect);
+ const auto& keyframe_effect = To<KeyframeEffectModelBase>(effect);
LayoutObject* layout_object = target_element.GetLayoutObject();
if (paint_artifact_compositor) {
@@ -456,8 +455,7 @@
nullptr, animation_playback_rate),
kNoFailure);
- const KeyframeEffectModelBase& keyframe_effect =
- ToKeyframeEffectModelBase(effect);
+ const auto& keyframe_effect = To<KeyframeEffectModelBase>(effect);
Vector<std::unique_ptr<CompositorKeyframeModel>> keyframe_models;
GetAnimationOnCompositor(element, timing, group, start_time, time_offset,
diff --git a/third_party/blink/renderer/core/animation/css/css_animations.cc b/third_party/blink/renderer/core/animation/css/css_animations.cc
index 15b8517..4ae9080 100644
--- a/third_party/blink/renderer/core/animation/css/css_animations.cc
+++ b/third_party/blink/renderer/core/animation/css/css_animations.cc
@@ -239,7 +239,7 @@
model = ToInertEffect(effect)->Model();
if (!model || !model->IsKeyframeEffectModel())
return nullptr;
- return ToKeyframeEffectModelBase(model);
+ return To<KeyframeEffectModelBase>(model);
}
} // namespace
diff --git a/third_party/blink/renderer/core/animation/keyframe_effect.cc b/third_party/blink/renderer/core/animation/keyframe_effect.cc
index f821ad8..f0969e51 100644
--- a/third_party/blink/renderer/core/animation/keyframe_effect.cc
+++ b/third_party/blink/renderer/core/animation/keyframe_effect.cc
@@ -196,7 +196,7 @@
Model()->SetComposite(
EffectInput::ResolveCompositeOperation(Model()->Composite(), keyframes));
- ToStringKeyframeEffectModel(Model())->SetFrames(keyframes);
+ To<StringKeyframeEffectModel>(Model())->SetFrames(keyframes);
// Changing the keyframes will invalidate any sampled effect, as well as
// potentially affect the effect owner.
diff --git a/third_party/blink/renderer/core/animation/keyframe_effect_model.h b/third_party/blink/renderer/core/animation/keyframe_effect_model.h
index 54224d1..ce556022 100644
--- a/third_party/blink/renderer/core/animation/keyframe_effect_model.h
+++ b/third_party/blink/renderer/core/animation/keyframe_effect_model.h
@@ -253,35 +253,38 @@
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 <>
diff --git a/third_party/blink/renderer/core/animation/scroll_timeline.h b/third_party/blink/renderer/core/animation/scroll_timeline.h
index 31eaab0b..43e4a581 100644
--- a/third_party/blink/renderer/core/animation/scroll_timeline.h
+++ b/third_party/blink/renderer/core/animation/scroll_timeline.h
@@ -106,11 +106,12 @@
Timing::FillMode fill_;
};
-DEFINE_TYPE_CASTS(ScrollTimeline,
- AnimationTimeline,
- value,
- value->IsScrollTimeline(),
- value.IsScrollTimeline());
+template <>
+struct DowncastTraits<ScrollTimeline> {
+ static bool AllowFrom(const AnimationTimeline& value) {
+ return value.IsScrollTimeline();
+ }
+};
} // namespace blink
diff --git a/third_party/blink/renderer/core/animation/scroll_timeline_util.cc b/third_party/blink/renderer/core/animation/scroll_timeline_util.cc
index 906fb06..b2fa993 100644
--- a/third_party/blink/renderer/core/animation/scroll_timeline_util.cc
+++ b/third_party/blink/renderer/core/animation/scroll_timeline_util.cc
@@ -19,7 +19,7 @@
if (!timeline || timeline->IsDocumentTimeline())
return nullptr;
- ScrollTimeline* scroll_timeline = ToScrollTimeline(timeline);
+ auto* scroll_timeline = To<ScrollTimeline>(timeline);
Node* scroll_source = scroll_timeline->ResolvedScrollSource();
base::Optional<CompositorElementId> element_id =
GetCompositorScrollElementId(scroll_source);
diff --git a/third_party/blink/renderer/core/animation/worklet_animation_controller.cc b/third_party/blink/renderer/core/animation/worklet_animation_controller.cc
index 4b73d0a..65ec508 100644
--- a/third_party/blink/renderer/core/animation/worklet_animation_controller.cc
+++ b/third_party/blink/renderer/core/animation/worklet_animation_controller.cc
@@ -86,7 +86,7 @@
DCHECK(ScrollTimeline::HasActiveScrollTimeline(node));
for (const auto& animation : animations_.Values()) {
if (animation->GetTimeline()->IsScrollTimeline() &&
- ToScrollTimeline(animation->GetTimeline())->scrollSource() == node) {
+ To<ScrollTimeline>(animation->GetTimeline())->scrollSource() == node) {
InvalidateAnimation(*animation);
}
}
diff --git a/third_party/blink/renderer/core/inspector/inspector_animation_agent.cc b/third_party/blink/renderer/core/inspector/inspector_animation_agent.cc
index 9e59ad9..84c0b8d 100644
--- a/third_party/blink/renderer/core/inspector/inspector_animation_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_animation_agent.cc
@@ -281,8 +281,8 @@
// Clone EffectModel.
// TODO(samli): Determine if this is an animations bug.
if (old_model->IsStringKeyframeEffectModel()) {
- StringKeyframeEffectModel* old_string_keyframe_model =
- ToStringKeyframeEffectModel(old_model);
+ auto* old_string_keyframe_model =
+ To<StringKeyframeEffectModel>(old_model);
KeyframeVector old_keyframes = old_string_keyframe_model->GetFrames();
StringKeyframeVector new_keyframes;
for (auto& old_keyframe : old_keyframes)
@@ -290,8 +290,8 @@
new_model =
MakeGarbageCollected<StringKeyframeEffectModel>(new_keyframes);
} else if (old_model->IsTransitionKeyframeEffectModel()) {
- TransitionKeyframeEffectModel* old_transition_keyframe_model =
- ToTransitionKeyframeEffectModel(old_model);
+ auto* old_transition_keyframe_model =
+ To<TransitionKeyframeEffectModel>(old_model);
KeyframeVector old_keyframes = old_transition_keyframe_model->GetFrames();
TransitionKeyframeVector new_keyframes;
for (auto& old_keyframe : old_keyframes)
diff --git a/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc b/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc
index beb3bf5..63d612d7 100644
--- a/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc
+++ b/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc
@@ -573,7 +573,7 @@
// If the scroll source is not composited, fall back to main thread.
if (timeline_->IsScrollTimeline() &&
!CheckElementComposited(
- *ToScrollTimeline(timeline_)->ResolvedScrollSource())) {
+ *To<ScrollTimeline>(*timeline_).ResolvedScrollSource())) {
return false;
}
@@ -644,7 +644,7 @@
}
if (timeline_->IsScrollTimeline()) {
- Node* scroll_source = ToScrollTimeline(timeline_)->ResolvedScrollSource();
+ Node* scroll_source = To<ScrollTimeline>(*timeline_).ResolvedScrollSource();
LayoutBox* box = scroll_source ? scroll_source->GetLayoutBox() : nullptr;
base::Optional<double> start_scroll_offset;
@@ -652,14 +652,15 @@
if (box) {
double current_offset;
double max_offset;
- ToScrollTimeline(timeline_)->GetCurrentAndMaxOffset(box, current_offset,
- max_offset);
+ To<ScrollTimeline>(*timeline_)
+ .GetCurrentAndMaxOffset(box, current_offset, max_offset);
double resolved_start_scroll_offset = 0;
double resolved_end_scroll_offset = max_offset;
- ToScrollTimeline(timeline_)->ResolveScrollStartAndEnd(
- box, max_offset, resolved_start_scroll_offset,
- resolved_end_scroll_offset);
+ To<ScrollTimeline>(*timeline_)
+ .ResolveScrollStartAndEnd(box, max_offset,
+ resolved_start_scroll_offset,
+ resolved_end_scroll_offset);
start_scroll_offset = resolved_start_scroll_offset;
end_scroll_offset = resolved_end_scroll_offset;
}