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 |