Index: Source/core/animation/Animation.cpp |
diff --git a/Source/core/animation/Animation.cpp b/Source/core/animation/Animation.cpp |
index 23297a040c5752e4c47c38bbd8c2802d4cce067d..8971889cd5ac90904df6f7a3808ecc9e3bb4eb77 100644 |
--- a/Source/core/animation/Animation.cpp |
+++ b/Source/core/animation/Animation.cpp |
@@ -243,7 +243,7 @@ bool Animation::maybeStartAnimationOnCompositor(int group, double startTime, dou |
return false; |
if (!CompositorAnimations::instance()->canStartAnimationOnCompositor(*m_target)) |
return false; |
- if (!CompositorAnimations::instance()->startAnimationOnCompositor(*m_target, group, startTime, currentTime, specifiedTiming(), player(), *effect(), m_compositorAnimationIds, playerPlaybackRate)) |
+ if (!CompositorAnimations::instance()->startAnimationOnCompositor(*m_target, group, startTime, currentTime, specifiedTiming(), *player(), *effect(), m_compositorAnimationIds, playerPlaybackRate)) |
return false; |
ASSERT(!m_compositorAnimationIds.isEmpty()); |
return true; |
@@ -274,8 +274,9 @@ bool Animation::cancelAnimationOnCompositor() |
return false; |
if (!m_target || !m_target->layoutObject()) |
return false; |
+ ASSERT(player()); |
for (const auto& compositorAnimationId : m_compositorAnimationIds) |
- CompositorAnimations::instance()->cancelAnimationOnCompositor(*m_target, compositorAnimationId); |
+ CompositorAnimations::instance()->cancelAnimationOnCompositor(*m_target, *player(), compositorAnimationId); |
m_compositorAnimationIds.clear(); |
return true; |
} |
@@ -297,8 +298,24 @@ void Animation::pauseAnimationForTestingOnCompositor(double pauseTime) |
ASSERT(hasActiveAnimationsOnCompositor()); |
if (!m_target || !m_target->layoutObject()) |
return; |
+ ASSERT(player()); |
for (const auto& compositorAnimationId : m_compositorAnimationIds) |
- CompositorAnimations::instance()->pauseAnimationForTestingOnCompositor(*m_target, compositorAnimationId, pauseTime); |
+ CompositorAnimations::instance()->pauseAnimationForTestingOnCompositor(*m_target, *player(), compositorAnimationId, pauseTime); |
+} |
+ |
+bool Animation::canAttachCompositedLayers() const |
+{ |
+ if (!m_target || !player()) |
+ return false; |
+ |
+ return CompositorAnimations::instance()->canAttachCompositedLayers(*m_target, *player()); |
+} |
+ |
+void Animation::attachCompositedLayers() |
+{ |
+ ASSERT(m_target); |
+ ASSERT(player()); |
+ CompositorAnimations::instance()->attachCompositedLayers(*m_target, *player()); |
} |
DEFINE_TRACE(Animation) |