| Index: third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.cpp
|
| diff --git a/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.cpp b/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.cpp
|
| index db9139da68e7d740f3ed25356394295e2792dcc3..1d58966e8e2a1064ab64e156e5355ffdc1d45e2c 100644
|
| --- a/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.cpp
|
| +++ b/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.cpp
|
| @@ -40,13 +40,18 @@ void ScrollAnimatorCompositorCoordinator::dispose()
|
| m_compositorPlayer.reset();
|
| }
|
|
|
| -void ScrollAnimatorCompositorCoordinator::resetAnimationState()
|
| +void ScrollAnimatorCompositorCoordinator::resetAnimationIds()
|
| {
|
| - m_runState = RunState::Idle;
|
| m_compositorAnimationId = 0;
|
| m_compositorAnimationGroupId = 0;
|
| }
|
|
|
| +void ScrollAnimatorCompositorCoordinator::resetAnimationState()
|
| +{
|
| + m_runState = RunState::Idle;
|
| + resetAnimationIds();
|
| +}
|
| +
|
| bool ScrollAnimatorCompositorCoordinator::hasAnimationThatRequiresService() const
|
| {
|
| if (hasImplOnlyAnimationUpdate())
|
| @@ -62,6 +67,7 @@ bool ScrollAnimatorCompositorCoordinator::hasAnimationThatRequiresService() cons
|
| case RunState::RunningOnMainThread:
|
| case RunState::RunningOnCompositorButNeedsUpdate:
|
| case RunState::RunningOnCompositorButNeedsTakeover:
|
| + case RunState::RunningOnCompositorButNeedsAdjustment:
|
| case RunState::WaitingToCancelOnCompositor:
|
| return true;
|
| }
|
| @@ -98,7 +104,6 @@ void ScrollAnimatorCompositorCoordinator::cancelAnimation()
|
| case RunState::WaitingToCancelOnCompositor:
|
| case RunState::PostAnimationCleanup:
|
| break;
|
| - case RunState::RunningOnCompositorButNeedsTakeover:
|
| case RunState::WaitingToSendToCompositor:
|
| if (m_compositorAnimationId) {
|
| // We still have a previous animation running on the compositor.
|
| @@ -111,6 +116,8 @@ void ScrollAnimatorCompositorCoordinator::cancelAnimation()
|
| m_runState = RunState::PostAnimationCleanup;
|
| break;
|
| case RunState::WaitingToCancelOnCompositorButNewScroll:
|
| + case RunState::RunningOnCompositorButNeedsAdjustment:
|
| + case RunState::RunningOnCompositorButNeedsTakeover:
|
| case RunState::RunningOnCompositorButNeedsUpdate:
|
| case RunState::RunningOnCompositor:
|
| m_runState = RunState::WaitingToCancelOnCompositor;
|
| @@ -133,6 +140,7 @@ void ScrollAnimatorCompositorCoordinator::takeOverCompositorAnimation()
|
| case RunState::WaitingToSendToCompositor:
|
| case RunState::RunningOnMainThread:
|
| break;
|
| + case RunState::RunningOnCompositorButNeedsAdjustment:
|
| case RunState::RunningOnCompositorButNeedsUpdate:
|
| case RunState::RunningOnCompositor:
|
| // We call abortAnimation that makes changes to the animation running on
|
| @@ -166,6 +174,7 @@ void ScrollAnimatorCompositorCoordinator::compositorAnimationFinished(
|
| case RunState::WaitingToCancelOnCompositorButNewScroll:
|
| break;
|
| case RunState::RunningOnCompositor:
|
| + case RunState::RunningOnCompositorButNeedsAdjustment:
|
| case RunState::RunningOnCompositorButNeedsUpdate:
|
| case RunState::RunningOnCompositorButNeedsTakeover:
|
| case RunState::WaitingToCancelOnCompositor:
|
| @@ -268,12 +277,19 @@ void ScrollAnimatorCompositorCoordinator::updateCompositorAnimations()
|
| if (m_implOnlyAnimationTakeover)
|
| host.takeOverImplOnlyScrollOffsetAnimation(elementId);
|
| }
|
| - m_implOnlyAnimationAdjustment = FloatSize();
|
| + m_implOnlyAnimationAdjustment = IntSize();
|
| m_implOnlyAnimationTakeover = false;
|
| }
|
|
|
| +void ScrollAnimatorCompositorCoordinator::adjustAnimationAndSetScrollPosition(
|
| + IntSize adjustment, ScrollType scrollType) {
|
| + // Subclasses should override this and adjust the animation as necessary.
|
| + getScrollableArea()->setScrollPosition(
|
| + getScrollableArea()->scrollPositionDouble() + adjustment, scrollType);
|
| +}
|
| +
|
| void ScrollAnimatorCompositorCoordinator::adjustImplOnlyScrollOffsetAnimation(
|
| - const FloatSize& adjustment)
|
| + const IntSize& adjustment)
|
| {
|
| if (!getScrollableArea()->scrollAnimatorEnabled())
|
| return;
|
| @@ -314,6 +330,8 @@ String ScrollAnimatorCompositorCoordinator::runStateAsText() const
|
| return String("RunningOnCompositorButNeedsTakeover");
|
| case RunState::WaitingToCancelOnCompositorButNewScroll:
|
| return String("WaitingToCancelOnCompositorButNewScroll");
|
| + case RunState::RunningOnCompositorButNeedsAdjustment:
|
| + return String("RunningOnCompositorButNeedsAdjustment");
|
| }
|
| ASSERT_NOT_REACHED();
|
| return String();
|
|
|