New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 599876 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
(currently inactive on Chromium)
Closed: May 2016
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Smooth scroll handle subsequent user scroll when WaitingToCancelOnCompositor

Project Member Reported by ymalik@chromium.org, Apr 1 2016

Issue description

Currently, when an animation running on the compositor (initiated by MT) is interrupted, we go into m_runState == WaitingToCancelOnCompositor. While we are in this state and we get another user scroll, we just abort the running animation and reset the animation state.

We can be in WaitingToCancelOnCompositor and get another user scroll for cases like holding down the arrow keys. In the case of a repeating-input, we will just skip the first smooth scroll, but still end up in the right place. If this happens in the non-repeating case, we will just skip the scroll.

The correct thing to do is probably to add a new state WaitingToCancelOnCompositorButNewUserScroll that aborts the running animation and adds a new one with the updated target.

See  issue 598548  which has some additional context.
 
Project Member

Comment 1 by bugdroid1@chromium.org, May 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/98eaa26e00d063ccf9f31cd85261f66441bcd5b8

commit 98eaa26e00d063ccf9f31cd85261f66441bcd5b8
Author: ymalik <ymalik@chromium.org>
Date: Mon May 02 18:21:22 2016

Smooth scroll animation should not override scroll anchoring update (MT)

Previously, the adjustment made by scroll anchoriing would be overwritten by
the scroll position updates from the scroll offset animation because it worked
with absolute scroll offset values.

Now, when an adjustment is about to be made with an ongoing animation initiated
by MT, we cancel that animation, update the curve, and schedule an animatiion
with the update target. We do this by introducing a new state to the
ScrollAnimator class which also fixes  issue 599876 .

BUG= 594456 , 599876 

Review-Url: https://codereview.chromium.org/1926473003
Cr-Commit-Position: refs/heads/master@{#390997}

[modify] https://crrev.com/98eaa26e00d063ccf9f31cd85261f66441bcd5b8/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/98eaa26e00d063ccf9f31cd85261f66441bcd5b8/third_party/WebKit/LayoutTests/fast/scroll-behavior/smooth-scroll/ongoing-smooth-scroll-anchors.html
[modify] https://crrev.com/98eaa26e00d063ccf9f31cd85261f66441bcd5b8/third_party/WebKit/Source/core/layout/ScrollAnchor.cpp
[modify] https://crrev.com/98eaa26e00d063ccf9f31cd85261f66441bcd5b8/third_party/WebKit/Source/platform/scroll/ScrollAnimator.cpp
[modify] https://crrev.com/98eaa26e00d063ccf9f31cd85261f66441bcd5b8/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.cpp
[modify] https://crrev.com/98eaa26e00d063ccf9f31cd85261f66441bcd5b8/third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.h
[modify] https://crrev.com/98eaa26e00d063ccf9f31cd85261f66441bcd5b8/third_party/WebKit/Source/platform/scroll/ScrollAnimatorTest.cpp

Comment 2 by ymalik@chromium.org, May 27 2016

Status: Fixed (was: Available)

Sign in to add a comment