Chromium Code Reviews| Index: third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.h |
| diff --git a/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.h b/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.h |
| index 9b69df747f69c2eef0b5c786e4b457f06511894c..752728e2b3f8310309d9a0f1de8b2230b1a798b6 100644 |
| --- a/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.h |
| +++ b/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.h |
| @@ -7,6 +7,7 @@ |
| #include "base/gtest_prod_util.h" |
| #include "cc/animation/animation_curve.h" |
| +#include "cc/animation/scroll_offset_animations.h" |
| #include "platform/PlatformExport.h" |
| #include "platform/animation/CompositorAnimationDelegate.h" |
| #include "platform/animation/CompositorAnimationPlayerClient.h" |
| @@ -33,6 +34,8 @@ public: |
| void dispose(); |
| String runStateAsText() const; |
| + void updateImplOnlyAnimationWithAdjustment(const FloatSize& adjustment); |
| + |
| virtual bool hasRunningAnimation() const { return false; } |
| virtual void resetAnimationState(); |
| @@ -41,10 +44,10 @@ public: |
| // and continues it on the main thread. This should only be called when in |
| // DocumentLifecycle::LifecycleState::CompositingClean state. |
| virtual void takeoverCompositorAnimation(); |
| + virtual void updateCompositorAnimations(); |
| virtual ScrollableArea* getScrollableArea() const = 0; |
| virtual void tickAnimation(double monotonicTime) = 0; |
| - virtual void updateCompositorAnimations() = 0; |
| virtual void notifyCompositorAnimationFinished(int groupId) = 0; |
| virtual void notifyCompositorAnimationAborted(int groupId) = 0; |
| virtual void layerForCompositedScrollingDidChange(CompositorAnimationTimeline*) = 0; |
| @@ -82,6 +85,7 @@ protected: |
| FRIEND_TEST_ALL_PREFIXES(ScrollAnimatorTest, AnimatedScrollTakeover); |
| FRIEND_TEST_ALL_PREFIXES(ScrollAnimatorTest, CancellingAnimationResetsState); |
| FRIEND_TEST_ALL_PREFIXES(ScrollAnimatorTest, CancellingCompositorAnimation); |
| + FRIEND_TEST_ALL_PREFIXES(ScrollAnimatorTest, ImplOnlyAnimationUpdatesCleared); |
| enum class RunState { |
| // No animation. |
| @@ -127,6 +131,13 @@ protected: |
| RunState m_runState; |
| int m_compositorAnimationId; |
| int m_compositorAnimationGroupId; |
| + |
| + // A list of updates that happened on the main thread that may change |
| + // impl-only scroll offset animations. |
| + // TODO(ymalik): Currently all the updates go through ScrollAnimator |
| + // ::CompositorAnimationTimeline::CompositorAnimationHost::AnimationHost. |
| + // They should probably be reworked via LayerTreeView. |
|
loyso (OOO)
2016/05/06 01:04:38
Since you send the updates from ScrollingCoordinat
ymalik
2016/05/06 05:41:49
It's not clear to me what that would look like. Th
|
| + std::vector<cc::ScrollOffsetAnimationUpdate> m_implOnlyAnimationUpdates; |
| }; |
| } // namespace blink |