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.
Comment 1 by bugdroid1@chromium.org
, May 2 2016