Index: Source/core/animation/Animation.cpp |
diff --git a/Source/core/animation/Animation.cpp b/Source/core/animation/Animation.cpp |
index 093536cae664b684888e3d147ff9b793b64bc9d5..d6ff0fa26b6a2239c69076682fe71829fb5dfc5d 100644 |
--- a/Source/core/animation/Animation.cpp |
+++ b/Source/core/animation/Animation.cpp |
@@ -251,7 +251,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; |
@@ -282,8 +282,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; |
} |
@@ -305,8 +306,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) |