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

Side by Side Diff: third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.cpp

Issue 1548883002: Revert of Run smooth scroll animations on the compositor when possible (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "config.h" 5 #include "config.h"
6 #include "platform/scroll/ScrollAnimatorCompositorCoordinator.h" 6 #include "platform/scroll/ScrollAnimatorCompositorCoordinator.h"
7 7
8 #include "platform/RuntimeEnabledFeatures.h" 8 #include "platform/RuntimeEnabledFeatures.h"
9 #include "platform/graphics/GraphicsLayer.h" 9 #include "platform/graphics/GraphicsLayer.h"
10 #include "platform/scroll/ScrollableArea.h" 10 #include "platform/scroll/ScrollableArea.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 } 45 }
46 46
47 bool ScrollAnimatorCompositorCoordinator::hasAnimationThatRequiresService() cons t 47 bool ScrollAnimatorCompositorCoordinator::hasAnimationThatRequiresService() cons t
48 { 48 {
49 switch (m_runState) { 49 switch (m_runState) {
50 case RunState::Idle: 50 case RunState::Idle:
51 case RunState::RunningOnCompositor: 51 case RunState::RunningOnCompositor:
52 return false; 52 return false;
53 case RunState::WaitingToSendToCompositor: 53 case RunState::WaitingToSendToCompositor:
54 case RunState::RunningOnMainThread: 54 case RunState::RunningOnMainThread:
55 case RunState::RunningOnCompositorButNeedsUpdate:
56 case RunState::WaitingToCancelOnCompositor: 55 case RunState::WaitingToCancelOnCompositor:
57 return true; 56 return true;
58 } 57 }
59 ASSERT_NOT_REACHED(); 58 ASSERT_NOT_REACHED();
60 return false; 59 return false;
61 } 60 }
62 61
63 bool ScrollAnimatorCompositorCoordinator::addAnimation( 62 bool ScrollAnimatorCompositorCoordinator::addAnimation(
64 PassOwnPtr<WebCompositorAnimation> animation) 63 PassOwnPtr<WebCompositorAnimation> animation)
65 { 64 {
(...skipping 12 matching lines...) Expand all
78 { 77 {
79 if (m_compositorPlayer) { 78 if (m_compositorPlayer) {
80 if (m_compositorPlayer->isLayerAttached()) 79 if (m_compositorPlayer->isLayerAttached())
81 m_compositorPlayer->removeAnimation(m_compositorAnimationId); 80 m_compositorPlayer->removeAnimation(m_compositorAnimationId);
82 } else { 81 } else {
83 if (GraphicsLayer* layer = scrollableArea()->layerForScrolling()) 82 if (GraphicsLayer* layer = scrollableArea()->layerForScrolling())
84 layer->removeAnimation(m_compositorAnimationId); 83 layer->removeAnimation(m_compositorAnimationId);
85 } 84 }
86 } 85 }
87 86
88 void ScrollAnimatorCompositorCoordinator::abortAnimation()
89 {
90 if (m_compositorPlayer) {
91 if (m_compositorPlayer->isLayerAttached())
92 m_compositorPlayer->abortAnimation(m_compositorAnimationId);
93 } else {
94 if (GraphicsLayer* layer = scrollableArea()->layerForScrolling())
95 layer->abortAnimation(m_compositorAnimationId);
96 }
97 }
98
99 void ScrollAnimatorCompositorCoordinator::cancelAnimation() 87 void ScrollAnimatorCompositorCoordinator::cancelAnimation()
100 { 88 {
101 switch (m_runState) { 89 switch (m_runState) {
102 case RunState::Idle: 90 case RunState::Idle:
103 case RunState::WaitingToCancelOnCompositor: 91 case RunState::WaitingToCancelOnCompositor:
104 break; 92 break;
105 case RunState::WaitingToSendToCompositor: 93 case RunState::WaitingToSendToCompositor:
106 if (m_compositorAnimationId) { 94 if (m_compositorAnimationId) {
107 // We still have a previous animation running on the compositor. 95 // We still have a previous animation running on the compositor.
108 m_runState = RunState::WaitingToCancelOnCompositor; 96 m_runState = RunState::WaitingToCancelOnCompositor;
109 } else { 97 } else {
110 resetAnimationState(); 98 resetAnimationState();
111 } 99 }
112 break; 100 break;
113 case RunState::RunningOnMainThread: 101 case RunState::RunningOnMainThread:
114 resetAnimationState(); 102 resetAnimationState();
115 break; 103 break;
116 case RunState::RunningOnCompositorButNeedsUpdate:
117 case RunState::RunningOnCompositor: 104 case RunState::RunningOnCompositor:
118 m_runState = RunState::WaitingToCancelOnCompositor; 105 m_runState = RunState::WaitingToCancelOnCompositor;
119 106
120 // Get serviced the next time compositor updates are allowed. 107 // Get serviced the next time compositor updates are allowed.
121 scrollableArea()->registerForAnimation(); 108 scrollableArea()->registerForAnimation();
122 } 109 }
123 } 110 }
124 111
125 void ScrollAnimatorCompositorCoordinator::compositorAnimationFinished( 112 void ScrollAnimatorCompositorCoordinator::compositorAnimationFinished(
126 int groupId) 113 int groupId)
127 { 114 {
128 if (m_compositorAnimationGroupId != groupId) 115 if (m_compositorAnimationGroupId != groupId)
129 return; 116 return;
130 117
131 m_compositorAnimationId = 0; 118 m_compositorAnimationId = 0;
132 m_compositorAnimationGroupId = 0; 119 m_compositorAnimationGroupId = 0;
133 120
134 switch (m_runState) { 121 switch (m_runState) {
135 case RunState::Idle: 122 case RunState::Idle:
136 case RunState::RunningOnMainThread: 123 case RunState::RunningOnMainThread:
137 ASSERT_NOT_REACHED(); 124 ASSERT_NOT_REACHED();
138 break; 125 break;
139 case RunState::WaitingToSendToCompositor: 126 case RunState::WaitingToSendToCompositor:
140 break; 127 break;
141 case RunState::RunningOnCompositor: 128 case RunState::RunningOnCompositor:
142 case RunState::RunningOnCompositorButNeedsUpdate:
143 case RunState::WaitingToCancelOnCompositor: 129 case RunState::WaitingToCancelOnCompositor:
144 resetAnimationState(); 130 resetAnimationState();
145 } 131 }
146 } 132 }
147 133
148 void ScrollAnimatorCompositorCoordinator::reattachCompositorPlayerIfNeeded( 134 void ScrollAnimatorCompositorCoordinator::reattachCompositorPlayerIfNeeded(
149 WebCompositorAnimationTimeline* timeline) 135 WebCompositorAnimationTimeline* timeline)
150 { 136 {
151 int compositorAnimationAttachedToLayerId = 0; 137 int compositorAnimationAttachedToLayerId = 0;
152 if (scrollableArea()->layerForScrolling()) 138 if (scrollableArea()->layerForScrolling())
(...skipping 29 matching lines...) Expand all
182 { 168 {
183 notifyCompositorAnimationFinished(group); 169 notifyCompositorAnimationFinished(group);
184 } 170 }
185 171
186 WebCompositorAnimationPlayer* ScrollAnimatorCompositorCoordinator::compositorPla yer() const 172 WebCompositorAnimationPlayer* ScrollAnimatorCompositorCoordinator::compositorPla yer() const
187 { 173 {
188 return m_compositorPlayer.get(); 174 return m_compositorPlayer.get();
189 } 175 }
190 176
191 } // namespace blink 177 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698