| Index: third_party/WebKit/Source/platform/scroll/ScrollAnimator.cpp
|
| diff --git a/third_party/WebKit/Source/platform/scroll/ScrollAnimator.cpp b/third_party/WebKit/Source/platform/scroll/ScrollAnimator.cpp
|
| index 0dd1a88645587b309c0dd221523f76bb05a406c9..1d3ff2d77679abdbc0f2e1f67c2d8fc104651979 100644
|
| --- a/third_party/WebKit/Source/platform/scroll/ScrollAnimator.cpp
|
| +++ b/third_party/WebKit/Source/platform/scroll/ScrollAnimator.cpp
|
| @@ -67,12 +67,12 @@ ScrollAnimator::ScrollAnimator(ScrollableArea* scrollableArea,
|
|
|
| ScrollAnimator::~ScrollAnimator() {}
|
|
|
| -FloatPoint ScrollAnimator::desiredTargetPosition() const {
|
| +ScrollOffset ScrollAnimator::desiredTargetOffset() const {
|
| if (m_runState == RunState::WaitingToCancelOnCompositor)
|
| - return currentPosition();
|
| + return currentOffset();
|
| return (m_animationCurve || m_runState == RunState::WaitingToSendToCompositor)
|
| ? m_targetOffset
|
| - : currentPosition();
|
| + : currentOffset();
|
| }
|
|
|
| bool ScrollAnimator::hasRunningAnimation() const {
|
| @@ -81,10 +81,10 @@ bool ScrollAnimator::hasRunningAnimation() const {
|
| m_runState == RunState::WaitingToSendToCompositor);
|
| }
|
|
|
| -FloatSize ScrollAnimator::computeDeltaToConsume(const FloatSize& delta) const {
|
| - FloatPoint pos = desiredTargetPosition();
|
| - FloatPoint newPos =
|
| - toFloatPoint(m_scrollableArea->clampScrollPosition(pos + delta));
|
| +ScrollOffset ScrollAnimator::computeDeltaToConsume(
|
| + const ScrollOffset& delta) const {
|
| + ScrollOffset pos = desiredTargetOffset();
|
| + ScrollOffset newPos = m_scrollableArea->clampScrollOffset(pos + delta);
|
| return newPos - pos;
|
| }
|
|
|
| @@ -96,7 +96,7 @@ void ScrollAnimator::resetAnimationState() {
|
| }
|
|
|
| ScrollResult ScrollAnimator::userScroll(ScrollGranularity granularity,
|
| - const FloatSize& delta) {
|
| + const ScrollOffset& delta) {
|
| if (!m_scrollableArea->scrollAnimatorEnabled())
|
| return ScrollAnimatorBase::userScroll(granularity, delta);
|
|
|
| @@ -113,11 +113,11 @@ ScrollResult ScrollAnimator::userScroll(ScrollGranularity granularity,
|
| if (m_runState == RunState::PostAnimationCleanup)
|
| resetAnimationState();
|
|
|
| - FloatSize consumedDelta = computeDeltaToConsume(delta);
|
| - FloatPoint targetPos = desiredTargetPosition();
|
| - targetPos.move(consumedDelta);
|
| + ScrollOffset consumedDelta = computeDeltaToConsume(delta);
|
| + ScrollOffset targetOffset = desiredTargetOffset();
|
| + targetOffset += consumedDelta;
|
|
|
| - if (willAnimateToOffset(targetPos)) {
|
| + if (willAnimateToOffset(targetOffset)) {
|
| m_lastGranularity = granularity;
|
| // Report unused delta only if there is no animation running. See
|
| // comment below regarding scroll latching.
|
| @@ -138,24 +138,24 @@ ScrollResult ScrollAnimator::userScroll(ScrollGranularity granularity,
|
| return ScrollResult(false, false, delta.width(), delta.height());
|
| }
|
|
|
| -bool ScrollAnimator::willAnimateToOffset(const FloatPoint& targetPos) {
|
| +bool ScrollAnimator::willAnimateToOffset(const ScrollOffset& targetOffset) {
|
| if (m_runState == RunState::PostAnimationCleanup)
|
| resetAnimationState();
|
|
|
| if (m_runState == RunState::WaitingToCancelOnCompositor ||
|
| m_runState == RunState::WaitingToCancelOnCompositorButNewScroll) {
|
| ASSERT(m_animationCurve);
|
| - m_targetOffset = targetPos;
|
| + m_targetOffset = targetOffset;
|
| if (registerAndScheduleAnimation())
|
| m_runState = RunState::WaitingToCancelOnCompositorButNewScroll;
|
| return true;
|
| }
|
|
|
| if (m_animationCurve) {
|
| - if ((targetPos - m_targetOffset).isZero())
|
| + if ((targetOffset - m_targetOffset).isZero())
|
| return true;
|
|
|
| - m_targetOffset = targetPos;
|
| + m_targetOffset = targetOffset;
|
| ASSERT(m_runState == RunState::RunningOnMainThread ||
|
| m_runState == RunState::RunningOnCompositor ||
|
| m_runState == RunState::RunningOnCompositorButNeedsUpdate ||
|
| @@ -166,7 +166,7 @@ bool ScrollAnimator::willAnimateToOffset(const FloatPoint& targetPos) {
|
| if (m_runState == RunState::RunningOnMainThread) {
|
| m_animationCurve->updateTarget(
|
| m_timeFunction() - m_startTime,
|
| - compositorOffsetFromBlinkOffset(targetPos));
|
| + compositorOffsetFromBlinkOffset(targetOffset));
|
| return true;
|
| }
|
|
|
| @@ -175,10 +175,10 @@ bool ScrollAnimator::willAnimateToOffset(const FloatPoint& targetPos) {
|
| return true;
|
| }
|
|
|
| - if ((targetPos - currentPosition()).isZero())
|
| + if ((targetOffset - currentOffset()).isZero())
|
| return false;
|
|
|
| - m_targetOffset = targetPos;
|
| + m_targetOffset = targetOffset;
|
| m_startTime = m_timeFunction();
|
|
|
| if (registerAndScheduleAnimation())
|
| @@ -187,19 +187,17 @@ bool ScrollAnimator::willAnimateToOffset(const FloatPoint& targetPos) {
|
| return true;
|
| }
|
|
|
| -void ScrollAnimator::adjustAnimationAndSetScrollPosition(
|
| - const DoublePoint& position,
|
| +void ScrollAnimator::adjustAnimationAndSetScrollOffset(
|
| + const ScrollOffset& offset,
|
| ScrollType scrollType) {
|
| IntSize adjustment =
|
| - roundedIntPoint(position) -
|
| - roundedIntPoint(m_scrollableArea->scrollPositionDouble());
|
| -
|
| - scrollPositionChanged(position, scrollType);
|
| + roundedIntSize(offset) - roundedIntSize(m_scrollableArea->scrollOffset());
|
| + scrollOffsetChanged(offset, scrollType);
|
|
|
| if (m_runState == RunState::Idle) {
|
| adjustImplOnlyScrollOffsetAnimation(adjustment);
|
| } else if (hasRunningAnimation()) {
|
| - m_targetOffset += toFloatSize(adjustment);
|
| + m_targetOffset += ScrollOffset(adjustment);
|
| if (m_animationCurve) {
|
| m_animationCurve->applyAdjustment(adjustment);
|
| if (m_runState != RunState::RunningOnMainThread &&
|
| @@ -209,11 +207,12 @@ void ScrollAnimator::adjustAnimationAndSetScrollPosition(
|
| }
|
| }
|
|
|
| -void ScrollAnimator::scrollToOffsetWithoutAnimation(const FloatPoint& offset) {
|
| - m_currentPos = offset;
|
| +void ScrollAnimator::scrollToOffsetWithoutAnimation(
|
| + const ScrollOffset& offset) {
|
| + m_currentOffset = offset;
|
|
|
| resetAnimationState();
|
| - notifyPositionChanged();
|
| + notifyOffsetChanged();
|
| }
|
|
|
| void ScrollAnimator::tickAnimation(double monotonicTime) {
|
| @@ -224,21 +223,21 @@ void ScrollAnimator::tickAnimation(double monotonicTime) {
|
| double elapsedTime = monotonicTime - m_startTime;
|
|
|
| bool isFinished = (elapsedTime > m_animationCurve->duration());
|
| - FloatPoint offset = blinkOffsetFromCompositorOffset(
|
| + ScrollOffset offset = blinkOffsetFromCompositorOffset(
|
| isFinished ? m_animationCurve->targetValue()
|
| : m_animationCurve->getValue(elapsedTime));
|
|
|
| - offset = FloatPoint(m_scrollableArea->clampScrollPosition(offset));
|
| + offset = m_scrollableArea->clampScrollOffset(offset);
|
|
|
| - m_currentPos = offset;
|
| + m_currentOffset = offset;
|
|
|
| if (isFinished)
|
| m_runState = RunState::PostAnimationCleanup;
|
| else
|
| getScrollableArea()->scheduleAnimation();
|
|
|
| - TRACE_EVENT0("blink", "ScrollAnimator::notifyPositionChanged");
|
| - notifyPositionChanged();
|
| + TRACE_EVENT0("blink", "ScrollAnimator::notifyOffsetChanged");
|
| + notifyOffsetChanged();
|
| }
|
|
|
| void ScrollAnimator::postAnimationCleanupAndReset() {
|
| @@ -284,7 +283,7 @@ void ScrollAnimator::createAnimationCurve() {
|
| ? CompositorScrollOffsetAnimationCurve::ScrollDurationInverseDelta
|
| : CompositorScrollOffsetAnimationCurve::ScrollDurationConstant);
|
| m_animationCurve->setInitialValue(
|
| - compositorOffsetFromBlinkOffset(currentPosition()));
|
| + compositorOffsetFromBlinkOffset(currentOffset()));
|
| }
|
|
|
| void ScrollAnimator::updateCompositorAnimations() {
|
| @@ -329,9 +328,10 @@ void ScrollAnimator::updateCompositorAnimations() {
|
| compositorOffsetFromBlinkOffset(m_targetOffset));
|
| }
|
|
|
| - if (m_runState == RunState::WaitingToCancelOnCompositorButNewScroll)
|
| + if (m_runState == RunState::WaitingToCancelOnCompositorButNewScroll) {
|
| m_animationCurve->setInitialValue(
|
| - compositorOffsetFromBlinkOffset(currentPosition()));
|
| + compositorOffsetFromBlinkOffset(currentOffset()));
|
| + }
|
|
|
| m_runState = RunState::WaitingToSendToCompositor;
|
| }
|
| @@ -397,8 +397,8 @@ void ScrollAnimator::notifyAnimationTakeover(
|
|
|
| cc::ScrollOffsetAnimationCurve* scrollOffsetAnimationCurve =
|
| curve->ToScrollOffsetAnimationCurve();
|
| - FloatPoint targetValue(scrollOffsetAnimationCurve->target_value().x(),
|
| - scrollOffsetAnimationCurve->target_value().y());
|
| + ScrollOffset targetValue(scrollOffsetAnimationCurve->target_value().x(),
|
| + scrollOffsetAnimationCurve->target_value().y());
|
| if (willAnimateToOffset(targetValue)) {
|
| m_animationCurve = CompositorScrollOffsetAnimationCurve::create(
|
| std::move(scrollOffsetAnimationCurve));
|
|
|