summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/platform/animation
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/platform/animation')
-rw-r--r--chromium/third_party/blink/renderer/platform/animation/compositor_animation.cc19
-rw-r--r--chromium/third_party/blink/renderer/platform/animation/compositor_animation.h15
-rw-r--r--chromium/third_party/blink/renderer/platform/animation/compositor_animation_test.cc8
-rw-r--r--chromium/third_party/blink/renderer/platform/animation/compositor_animation_timeline.cc4
-rw-r--r--chromium/third_party/blink/renderer/platform/animation/compositor_animation_timeline.h1
-rw-r--r--chromium/third_party/blink/renderer/platform/animation/compositor_keyframe_model.cc5
-rw-r--r--chromium/third_party/blink/renderer/platform/animation/compositor_keyframe_model.h2
-rw-r--r--chromium/third_party/blink/renderer/platform/animation/compositor_keyframe_model_test.cc2
-rw-r--r--chromium/third_party/blink/renderer/platform/animation/compositor_transform_operations.cc16
-rw-r--r--chromium/third_party/blink/renderer/platform/animation/timing_function.cc10
-rw-r--r--chromium/third_party/blink/renderer/platform/animation/timing_function.h27
11 files changed, 56 insertions, 53 deletions
diff --git a/chromium/third_party/blink/renderer/platform/animation/compositor_animation.cc b/chromium/third_party/blink/renderer/platform/animation/compositor_animation.cc
index 4ea0dacd875..f02f038486a 100644
--- a/chromium/third_party/blink/renderer/platform/animation/compositor_animation.cc
+++ b/chromium/third_party/blink/renderer/platform/animation/compositor_animation.cc
@@ -14,8 +14,7 @@ namespace blink {
std::unique_ptr<CompositorAnimation> CompositorAnimation::Create() {
return std::make_unique<CompositorAnimation>(
- cc::SingleKeyframeEffectAnimation::Create(
- cc::AnimationIdProvider::NextAnimationId()));
+ cc::Animation::Create(cc::AnimationIdProvider::NextAnimationId()));
}
std::unique_ptr<CompositorAnimation>
@@ -23,17 +22,14 @@ CompositorAnimation::CreateWorkletAnimation(
cc::WorkletAnimationId worklet_animation_id,
const String& name,
double playback_rate,
- std::unique_ptr<CompositorScrollTimeline> scroll_timeline,
std::unique_ptr<cc::AnimationOptions> options,
std::unique_ptr<cc::AnimationEffectTimings> effect_timings) {
return std::make_unique<CompositorAnimation>(cc::WorkletAnimation::Create(
- worklet_animation_id, name.Utf8(), playback_rate,
- std::move(scroll_timeline), std::move(options),
+ worklet_animation_id, name.Utf8(), playback_rate, std::move(options),
std::move(effect_timings)));
}
-CompositorAnimation::CompositorAnimation(
- scoped_refptr<cc::SingleKeyframeEffectAnimation> animation)
+CompositorAnimation::CompositorAnimation(scoped_refptr<cc::Animation> animation)
: animation_(animation), delegate_() {}
CompositorAnimation::~CompositorAnimation() {
@@ -44,7 +40,7 @@ CompositorAnimation::~CompositorAnimation() {
animation_->animation_timeline()->DetachAnimation(animation_);
}
-cc::SingleKeyframeEffectAnimation* CompositorAnimation::CcAnimation() const {
+cc::Animation* CompositorAnimation::CcAnimation() const {
return animation_.get();
}
@@ -76,7 +72,7 @@ void CompositorAnimation::RemoveKeyframeModel(int keyframe_model_id) {
}
void CompositorAnimation::PauseKeyframeModel(int keyframe_model_id,
- double time_offset) {
+ base::TimeDelta time_offset) {
animation_->PauseKeyframeModel(keyframe_model_id, time_offset);
}
@@ -88,9 +84,8 @@ void CompositorAnimation::UpdateScrollTimeline(
base::Optional<cc::ElementId> element_id,
base::Optional<double> start_scroll_offset,
base::Optional<double> end_scroll_offset) {
- cc::ToWorkletAnimation(animation_.get())
- ->UpdateScrollTimeline(element_id, start_scroll_offset,
- end_scroll_offset);
+ animation_->UpdateScrollTimeline(element_id, start_scroll_offset,
+ end_scroll_offset);
}
void CompositorAnimation::UpdatePlaybackRate(double playback_rate) {
diff --git a/chromium/third_party/blink/renderer/platform/animation/compositor_animation.h b/chromium/third_party/blink/renderer/platform/animation/compositor_animation.h
index e900e473315..348a4480437 100644
--- a/chromium/third_party/blink/renderer/platform/animation/compositor_animation.h
+++ b/chromium/third_party/blink/renderer/platform/animation/compositor_animation.h
@@ -10,9 +10,8 @@
#include "base/macros.h"
#include "base/memory/scoped_refptr.h"
#include "base/optional.h"
+#include "cc/animation/animation.h"
#include "cc/animation/animation_delegate.h"
-#include "cc/animation/scroll_timeline.h"
-#include "cc/animation/single_keyframe_effect_animation.h"
#include "cc/animation/worklet_animation.h"
#include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
#include "third_party/blink/renderer/platform/platform_export.h"
@@ -24,8 +23,6 @@ class AnimationCurve;
namespace blink {
-using CompositorScrollTimeline = cc::ScrollTimeline;
-
class CompositorAnimationDelegate;
class CompositorKeyframeModel;
@@ -37,15 +34,13 @@ class PLATFORM_EXPORT CompositorAnimation : public cc::AnimationDelegate {
cc::WorkletAnimationId,
const String& name,
double playback_rate,
- std::unique_ptr<CompositorScrollTimeline>,
std::unique_ptr<cc::AnimationOptions>,
std::unique_ptr<cc::AnimationEffectTimings> effect_timings);
- explicit CompositorAnimation(
- scoped_refptr<cc::SingleKeyframeEffectAnimation>);
+ explicit CompositorAnimation(scoped_refptr<cc::Animation>);
~CompositorAnimation() override;
- cc::SingleKeyframeEffectAnimation* CcAnimation() const;
+ cc::Animation* CcAnimation() const;
// An animation delegate is notified when animations are started and stopped.
// The CompositorAnimation does not take ownership of the delegate, and
@@ -59,7 +54,7 @@ class PLATFORM_EXPORT CompositorAnimation : public cc::AnimationDelegate {
void AddKeyframeModel(std::unique_ptr<CompositorKeyframeModel>);
void RemoveKeyframeModel(int keyframe_model_id);
- void PauseKeyframeModel(int keyframe_model_id, double time_offset);
+ void PauseKeyframeModel(int keyframe_model_id, base::TimeDelta time_offset);
void AbortKeyframeModel(int keyframe_model_id);
void UpdateScrollTimeline(base::Optional<cc::ElementId>,
@@ -85,7 +80,7 @@ class PLATFORM_EXPORT CompositorAnimation : public cc::AnimationDelegate {
void NotifyLocalTimeUpdated(
base::Optional<base::TimeDelta> local_time) override;
- scoped_refptr<cc::SingleKeyframeEffectAnimation> animation_;
+ scoped_refptr<cc::Animation> animation_;
CompositorAnimationDelegate* delegate_;
DISALLOW_COPY_AND_ASSIGN(CompositorAnimation);
diff --git a/chromium/third_party/blink/renderer/platform/animation/compositor_animation_test.cc b/chromium/third_party/blink/renderer/platform/animation/compositor_animation_test.cc
index c40fb3822d0..25a9e0b34ae 100644
--- a/chromium/third_party/blink/renderer/platform/animation/compositor_animation_test.cc
+++ b/chromium/third_party/blink/renderer/platform/animation/compositor_animation_test.cc
@@ -60,7 +60,7 @@ TEST_F(CompositorAnimationTest, NullDelegate) {
std::unique_ptr<CompositorAnimationTestClient> client(
new CompositorAnimationTestClient);
CompositorAnimation* animation = client->GetCompositorAnimation();
- cc::SingleKeyframeEffectAnimation* cc_animation = animation->CcAnimation();
+ cc::Animation* cc_animation = animation->CcAnimation();
timeline->AnimationAttached(*client);
int timeline_id = cc_animation->animation_timeline()->id();
@@ -93,8 +93,7 @@ TEST_F(CompositorAnimationTest, NotifyFromCCAfterCompositorAnimationDeletion) {
std::unique_ptr<CompositorAnimationTestClient> client(
new CompositorAnimationTestClient);
CompositorAnimation* animation = client->GetCompositorAnimation();
- scoped_refptr<cc::SingleKeyframeEffectAnimation> cc_animation =
- animation->CcAnimation();
+ scoped_refptr<cc::Animation> cc_animation = animation->CcAnimation();
timeline->AnimationAttached(*client);
int timeline_id = cc_animation->animation_timeline()->id();
@@ -129,8 +128,7 @@ TEST_F(CompositorAnimationTest,
scoped_refptr<cc::AnimationTimeline> cc_timeline =
timeline->GetAnimationTimeline();
- scoped_refptr<cc::SingleKeyframeEffectAnimation> cc_animation =
- client->animation_->CcAnimation();
+ scoped_refptr<cc::Animation> cc_animation = client->animation_->CcAnimation();
EXPECT_FALSE(cc_animation->animation_timeline());
timeline->AnimationAttached(*client);
diff --git a/chromium/third_party/blink/renderer/platform/animation/compositor_animation_timeline.cc b/chromium/third_party/blink/renderer/platform/animation/compositor_animation_timeline.cc
index eca78aece63..3da0644ab74 100644
--- a/chromium/third_party/blink/renderer/platform/animation/compositor_animation_timeline.cc
+++ b/chromium/third_party/blink/renderer/platform/animation/compositor_animation_timeline.cc
@@ -15,6 +15,10 @@ CompositorAnimationTimeline::CompositorAnimationTimeline()
: animation_timeline_(cc::AnimationTimeline::Create(
cc::AnimationIdProvider::NextTimelineId())) {}
+CompositorAnimationTimeline::CompositorAnimationTimeline(
+ scoped_refptr<cc::AnimationTimeline> timeline)
+ : animation_timeline_(timeline) {}
+
CompositorAnimationTimeline::~CompositorAnimationTimeline() {
// Detach timeline from host, otherwise it stays there (leaks) until
// compositor shutdown.
diff --git a/chromium/third_party/blink/renderer/platform/animation/compositor_animation_timeline.h b/chromium/third_party/blink/renderer/platform/animation/compositor_animation_timeline.h
index b4e6b8427d4..8307cd8f257 100644
--- a/chromium/third_party/blink/renderer/platform/animation/compositor_animation_timeline.h
+++ b/chromium/third_party/blink/renderer/platform/animation/compositor_animation_timeline.h
@@ -24,6 +24,7 @@ class PLATFORM_EXPORT CompositorAnimationTimeline {
public:
CompositorAnimationTimeline();
+ explicit CompositorAnimationTimeline(scoped_refptr<cc::AnimationTimeline>);
~CompositorAnimationTimeline();
cc::AnimationTimeline* GetAnimationTimeline() const;
diff --git a/chromium/third_party/blink/renderer/platform/animation/compositor_keyframe_model.cc b/chromium/third_party/blink/renderer/platform/animation/compositor_keyframe_model.cc
index 656f2f22d6d..8aeb308e331 100644
--- a/chromium/third_party/blink/renderer/platform/animation/compositor_keyframe_model.cc
+++ b/chromium/third_party/blink/renderer/platform/animation/compositor_keyframe_model.cc
@@ -90,9 +90,8 @@ double CompositorKeyframeModel::TimeOffset() const {
return keyframe_model_->time_offset().InSecondsF();
}
-void CompositorKeyframeModel::SetTimeOffset(double monotonic_time) {
- keyframe_model_->set_time_offset(
- base::TimeDelta::FromSecondsD(monotonic_time));
+void CompositorKeyframeModel::SetTimeOffset(base::TimeDelta monotonic_time) {
+ keyframe_model_->set_time_offset(monotonic_time);
}
blink::CompositorKeyframeModel::Direction
diff --git a/chromium/third_party/blink/renderer/platform/animation/compositor_keyframe_model.h b/chromium/third_party/blink/renderer/platform/animation/compositor_keyframe_model.h
index 3002115a428..7144083160b 100644
--- a/chromium/third_party/blink/renderer/platform/animation/compositor_keyframe_model.h
+++ b/chromium/third_party/blink/renderer/platform/animation/compositor_keyframe_model.h
@@ -63,7 +63,7 @@ class PLATFORM_EXPORT CompositorKeyframeModel {
void SetStartTime(base::TimeTicks);
double TimeOffset() const;
- void SetTimeOffset(double monotonic_time);
+ void SetTimeOffset(base::TimeDelta monotonic_time);
Direction GetDirection() const;
void SetDirection(Direction);
diff --git a/chromium/third_party/blink/renderer/platform/animation/compositor_keyframe_model_test.cc b/chromium/third_party/blink/renderer/platform/animation/compositor_keyframe_model_test.cc
index d6e98d70c29..98c3567a652 100644
--- a/chromium/third_party/blink/renderer/platform/animation/compositor_keyframe_model_test.cc
+++ b/chromium/third_party/blink/renderer/platform/animation/compositor_keyframe_model_test.cc
@@ -28,7 +28,7 @@ TEST(WebCompositorAnimationTest, ModifiedSettings) {
*curve, compositor_target_property::OPACITY, 0, 1);
keyframe_model->SetIterations(2);
keyframe_model->SetStartTime(2);
- keyframe_model->SetTimeOffset(2);
+ keyframe_model->SetTimeOffset(base::TimeDelta::FromSeconds(2));
keyframe_model->SetDirection(CompositorKeyframeModel::Direction::REVERSE);
EXPECT_EQ(2, keyframe_model->Iterations());
diff --git a/chromium/third_party/blink/renderer/platform/animation/compositor_transform_operations.cc b/chromium/third_party/blink/renderer/platform/animation/compositor_transform_operations.cc
index 001388046da..9ee7cf65d70 100644
--- a/chromium/third_party/blink/renderer/platform/animation/compositor_transform_operations.cc
+++ b/chromium/third_party/blink/renderer/platform/animation/compositor_transform_operations.cc
@@ -28,29 +28,29 @@ void CompositorTransformOperations::AppendTranslate(double x,
double y,
double z) {
transform_operations_.AppendTranslate(
- SkDoubleToMScalar(x), SkDoubleToMScalar(y), SkDoubleToMScalar(z));
+ SkDoubleToScalar(x), SkDoubleToScalar(y), SkDoubleToScalar(z));
}
void CompositorTransformOperations::AppendRotate(double x,
double y,
double z,
double degrees) {
- transform_operations_.AppendRotate(SkDoubleToMScalar(x), SkDoubleToMScalar(y),
- SkDoubleToMScalar(z),
- SkDoubleToMScalar(degrees));
+ transform_operations_.AppendRotate(SkDoubleToScalar(x), SkDoubleToScalar(y),
+ SkDoubleToScalar(z),
+ SkDoubleToScalar(degrees));
}
void CompositorTransformOperations::AppendScale(double x, double y, double z) {
- transform_operations_.AppendScale(SkDoubleToMScalar(x), SkDoubleToMScalar(y),
- SkDoubleToMScalar(z));
+ transform_operations_.AppendScale(SkDoubleToScalar(x), SkDoubleToScalar(y),
+ SkDoubleToScalar(z));
}
void CompositorTransformOperations::AppendSkew(double x, double y) {
- transform_operations_.AppendSkew(SkDoubleToMScalar(x), SkDoubleToMScalar(y));
+ transform_operations_.AppendSkew(SkDoubleToScalar(x), SkDoubleToScalar(y));
}
void CompositorTransformOperations::AppendPerspective(double depth) {
- transform_operations_.AppendPerspective(SkDoubleToMScalar(depth));
+ transform_operations_.AppendPerspective(SkDoubleToScalar(depth));
}
void CompositorTransformOperations::AppendMatrix(const SkMatrix44& matrix) {
diff --git a/chromium/third_party/blink/renderer/platform/animation/timing_function.cc b/chromium/third_party/blink/renderer/platform/animation/timing_function.cc
index 2ea4d36719a..5d8e9c8806a 100644
--- a/chromium/third_party/blink/renderer/platform/animation/timing_function.cc
+++ b/chromium/third_party/blink/renderer/platform/animation/timing_function.cc
@@ -200,7 +200,7 @@ bool operator==(const CubicBezierTimingFunction& lhs,
if (rhs.GetType() != TimingFunction::Type::CUBIC_BEZIER)
return false;
- const CubicBezierTimingFunction& ctf = ToCubicBezierTimingFunction(rhs);
+ const auto& ctf = To<CubicBezierTimingFunction>(rhs);
if ((lhs.GetEaseType() == CubicBezierTimingFunction::EaseType::CUSTOM) &&
(ctf.GetEaseType() == CubicBezierTimingFunction::EaseType::CUSTOM))
return (lhs.X1() == ctf.X1()) && (lhs.Y1() == ctf.Y1()) &&
@@ -213,7 +213,7 @@ bool operator==(const StepsTimingFunction& lhs, const TimingFunction& rhs) {
if (rhs.GetType() != TimingFunction::Type::STEPS)
return false;
- const StepsTimingFunction& stf = ToStepsTimingFunction(rhs);
+ const auto& stf = To<StepsTimingFunction>(rhs);
return (lhs.NumberOfSteps() == stf.NumberOfSteps()) &&
(lhs.GetStepPosition() == stf.GetStepPosition());
}
@@ -223,15 +223,15 @@ bool operator==(const StepsTimingFunction& lhs, const TimingFunction& rhs) {
bool operator==(const TimingFunction& lhs, const TimingFunction& rhs) {
switch (lhs.GetType()) {
case TimingFunction::Type::LINEAR: {
- const LinearTimingFunction& linear = ToLinearTimingFunction(lhs);
+ const auto& linear = To<LinearTimingFunction>(lhs);
return (linear == rhs);
}
case TimingFunction::Type::CUBIC_BEZIER: {
- const CubicBezierTimingFunction& cubic = ToCubicBezierTimingFunction(lhs);
+ const auto& cubic = To<CubicBezierTimingFunction>(lhs);
return (cubic == rhs);
}
case TimingFunction::Type::STEPS: {
- const StepsTimingFunction& step = ToStepsTimingFunction(lhs);
+ const auto& step = To<StepsTimingFunction>(lhs);
return (step == rhs);
}
default:
diff --git a/chromium/third_party/blink/renderer/platform/animation/timing_function.h b/chromium/third_party/blink/renderer/platform/animation/timing_function.h
index f7a9eaef5b1..8cf6ef43f37 100644
--- a/chromium/third_party/blink/renderer/platform/animation/timing_function.h
+++ b/chromium/third_party/blink/renderer/platform/animation/timing_function.h
@@ -30,6 +30,7 @@
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/wtf/assertions.h"
+#include "third_party/blink/renderer/platform/wtf/casting.h"
#include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
#include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h"
@@ -217,14 +218,24 @@ PLATFORM_EXPORT bool operator==(const StepsTimingFunction&,
PLATFORM_EXPORT bool operator==(const TimingFunction&, const TimingFunction&);
PLATFORM_EXPORT bool operator!=(const TimingFunction&, const TimingFunction&);
-#define DEFINE_TIMING_FUNCTION_TYPE_CASTS(typeName, enumName) \
- DEFINE_TYPE_CASTS(typeName##TimingFunction, TimingFunction, value, \
- value->GetType() == TimingFunction::Type::enumName, \
- value.GetType() == TimingFunction::Type::enumName)
-
-DEFINE_TIMING_FUNCTION_TYPE_CASTS(Linear, LINEAR);
-DEFINE_TIMING_FUNCTION_TYPE_CASTS(CubicBezier, CUBIC_BEZIER);
-DEFINE_TIMING_FUNCTION_TYPE_CASTS(Steps, STEPS);
+template <>
+struct DowncastTraits<LinearTimingFunction> {
+ static bool AllowFrom(const TimingFunction& value) {
+ return value.GetType() == TimingFunction::Type::LINEAR;
+ }
+};
+template <>
+struct DowncastTraits<CubicBezierTimingFunction> {
+ static bool AllowFrom(const TimingFunction& value) {
+ return value.GetType() == TimingFunction::Type::CUBIC_BEZIER;
+ }
+};
+template <>
+struct DowncastTraits<StepsTimingFunction> {
+ static bool AllowFrom(const TimingFunction& value) {
+ return value.GetType() == TimingFunction::Type::STEPS;
+ }
+};
} // namespace blink