Index: third_party/WebKit/Source/platform/animation/CompositorAnimationTimeline.cpp |
diff --git a/third_party/WebKit/Source/platform/animation/CompositorAnimationTimeline.cpp b/third_party/WebKit/Source/platform/animation/CompositorAnimationTimeline.cpp |
index 4b2199c36ac216551d86ecfae72c4559a58016de..4e39e6e98827eb8e1bdd311c72b6cefa5a4f36f3 100644 |
--- a/third_party/WebKit/Source/platform/animation/CompositorAnimationTimeline.cpp |
+++ b/third_party/WebKit/Source/platform/animation/CompositorAnimationTimeline.cpp |
@@ -6,13 +6,15 @@ |
#include "cc/animation/animation_host.h" |
#include "cc/animation/animation_id_provider.h" |
+#include "platform/animation/CompositorAnimationHost.h" |
#include "platform/animation/CompositorAnimationPlayer.h" |
#include "platform/animation/CompositorAnimationPlayerClient.h" |
namespace blink { |
CompositorAnimationTimeline::CompositorAnimationTimeline() |
- : m_animationTimeline(cc::AnimationTimeline::Create(cc::AnimationIdProvider::NextTimelineId())) |
+ : m_compositorAnimationHost(nullptr) |
+ , m_animationTimeline(cc::AnimationTimeline::Create(cc::AnimationIdProvider::NextTimelineId())) |
{ |
} |
@@ -29,6 +31,19 @@ cc::AnimationTimeline* CompositorAnimationTimeline::animationTimeline() const |
return m_animationTimeline.get(); |
} |
+CompositorAnimationHost* CompositorAnimationTimeline::compositorAnimationHost() |
+{ |
+ if (!m_animationTimeline->animation_host()) |
+ return nullptr; |
+ |
+ if (m_compositorAnimationHost && m_animationTimeline->animation_host() == m_compositorAnimationHost->animationHost()) |
+ return m_compositorAnimationHost.get(); |
+ |
+ m_compositorAnimationHost = base::WrapUnique( |
+ new CompositorAnimationHost(m_animationTimeline->animation_host())); |
+ return m_compositorAnimationHost.get(); |
+} |
+ |
void CompositorAnimationTimeline::playerAttached(const blink::CompositorAnimationPlayerClient& client) |
{ |
if (client.compositorPlayer()) |