Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(474)

Side by Side Diff: third_party/WebKit/Source/platform/animation/CompositorAnimationTimeline.cpp

Issue 1950243005: Communicate MT changes to impl-only scroll offset animations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "platform/animation/CompositorAnimationTimeline.h" 5 #include "platform/animation/CompositorAnimationTimeline.h"
6 6
7 #include "cc/animation/animation_host.h" 7 #include "cc/animation/animation_host.h"
8 #include "cc/animation/animation_id_provider.h" 8 #include "cc/animation/animation_id_provider.h"
9 #include "platform/animation/CompositorAnimationHost.h"
9 #include "platform/animation/CompositorAnimationPlayer.h" 10 #include "platform/animation/CompositorAnimationPlayer.h"
10 #include "platform/animation/CompositorAnimationPlayerClient.h" 11 #include "platform/animation/CompositorAnimationPlayerClient.h"
11 12
12 namespace blink { 13 namespace blink {
13 14
14 CompositorAnimationTimeline::CompositorAnimationTimeline() 15 CompositorAnimationTimeline::CompositorAnimationTimeline()
15 : m_animationTimeline(cc::AnimationTimeline::Create(cc::AnimationIdProvider: :NextTimelineId())) 16 : m_compositorAnimationHost(nullptr)
17 , m_animationTimeline(cc::AnimationTimeline::Create(cc::AnimationIdProvider: :NextTimelineId()))
16 { 18 {
17 } 19 }
18 20
19 CompositorAnimationTimeline::~CompositorAnimationTimeline() 21 CompositorAnimationTimeline::~CompositorAnimationTimeline()
20 { 22 {
21 // Detach timeline from host, otherwise it stays there (leaks) until 23 // Detach timeline from host, otherwise it stays there (leaks) until
22 // compositor shutdown. 24 // compositor shutdown.
23 if (m_animationTimeline->animation_host()) 25 if (m_animationTimeline->animation_host())
24 m_animationTimeline->animation_host()->RemoveAnimationTimeline(m_animati onTimeline); 26 m_animationTimeline->animation_host()->RemoveAnimationTimeline(m_animati onTimeline);
25 } 27 }
26 28
27 cc::AnimationTimeline* CompositorAnimationTimeline::animationTimeline() const 29 cc::AnimationTimeline* CompositorAnimationTimeline::animationTimeline() const
28 { 30 {
29 return m_animationTimeline.get(); 31 return m_animationTimeline.get();
30 } 32 }
31 33
34 CompositorAnimationHost* CompositorAnimationTimeline::compositorAnimationHost()
35 {
36 if (!m_animationTimeline->animation_host())
37 return nullptr;
38
39 if (m_compositorAnimationHost && m_animationTimeline->animation_host() == m_ compositorAnimationHost->animationHost())
40 return m_compositorAnimationHost.get();
41
42 m_compositorAnimationHost = base::WrapUnique(
43 new CompositorAnimationHost(m_animationTimeline->animation_host()));
44 return m_compositorAnimationHost.get();
45 }
46
32 void CompositorAnimationTimeline::playerAttached(const blink::CompositorAnimatio nPlayerClient& client) 47 void CompositorAnimationTimeline::playerAttached(const blink::CompositorAnimatio nPlayerClient& client)
33 { 48 {
34 if (client.compositorPlayer()) 49 if (client.compositorPlayer())
35 m_animationTimeline->AttachPlayer(client.compositorPlayer()->animationPl ayer()); 50 m_animationTimeline->AttachPlayer(client.compositorPlayer()->animationPl ayer());
36 } 51 }
37 52
38 void CompositorAnimationTimeline::playerDestroyed(const blink::CompositorAnimati onPlayerClient& client) 53 void CompositorAnimationTimeline::playerDestroyed(const blink::CompositorAnimati onPlayerClient& client)
39 { 54 {
40 if (client.compositorPlayer()) 55 if (client.compositorPlayer())
41 m_animationTimeline->DetachPlayer(client.compositorPlayer()->animationPl ayer()); 56 m_animationTimeline->DetachPlayer(client.compositorPlayer()->animationPl ayer());
42 } 57 }
43 58
44 } // namespace blink 59 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698