New issue
Advanced search Search tips

Issue 655143 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug



Sign in to add a comment

Main thread gets GSU and GSE without corresponding GSB

Project Member Reported by bokan@chromium.org, Oct 12 2016

Issue description

Repro:
1) In Blink, add Logging to the ScrollManager::handleGestureScrollBegin|Update|End methods (or print the event type in handleGestureScrollEvent.
2) Load the attached file
3) While the page is loading (before the scrollbar appears), wheel scroll on the page

Notice that Blink is receiving GestureScrollUpdate events and a GestureScrollEnd but it never receives the GestureScrollBegin. We should make sure that this situation can't occur. Additionally, we paper over this by doing a hit test in handleGestureScrollEvent even on GSU and GSE. We should only do hit testing while handling a GestureScrollBegin

 
dialog.html
1.0 KB View Download
Owner: sahel@chromium.org
Status: Assigned (was: Available)
I believe this is fixed by wheel latching. Currently the begin can be consumed by the compositor thread but then the update can be passed to the main thread. 

Latching will make the determination only in the begin so this situation can't happen anymore.

Comment 2 by sahel@chromium.org, Aug 10 2017

Status: Fixed (was: Assigned)
The following two cls fix the issue:
1) If the GSB is ignored (e.g. trying to scroll when the page is still loading) the
rest of the scroll sequence will get ignored as well.
https://codereview.chromium.org/2924953002

2) If in the middle of scrolling we need to switch to main thread a GSB will be sent before the first GSU:
https://codereview.chromium.org/2854683002

Sign in to add a comment