New issue
Advanced search Search tips

Issue 919436 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug



Sign in to add a comment

Scrolling cannot stop immediately when I touch the viewport again

Reported by wdhwg...@gmail.com, Jan 7

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3662.0 Safari/537.36

Steps to reproduce the problem:
1. Make sure you are using windows with a touch screen (I'm using Surface Book 2 15')
2. Open a page that is larger than the viewport. (e.g. https://github.com/)
3. Touch the viewport, slide up quickly and lift your finger to make the page scroll continually
4. Touch the viewport again

What is the expected behavior?
It should stop scrolling immediately, like in Microsoft Edge or mobile browsers.

What went wrong?
It scroll down a short(barely noticeable) distance before fully stop.

Did this work before? No 

Chrome version: 73.0.3662.0  Channel: canary
OS Version: 10.0
Flash Version:
 
Labels: Needs-Triage-M73
Components: Blink>Scroll
Can not reproduce issue on Surface Go Win10 1809 Chrome 73.0.3664.0 canary.
Maybe try this page: https://www.chromium.org/developers/calendar

There's a table named "OmahaProxy CSV Viewer", you can scroll the page with your finger, and re-touch the center of viewport again.

If you try this several times, you may find that sometimes when the page stops, a row of the table will be highlighted, but your finger is actually touching somewhere on the viewport above/below the row.
Cc: vamshi.kommuri@chromium.org
Labels: Triaged-ET Needs-Feedback
Unable to reproduce the issue on reported chrome version 73.0.3662.0 using Windows 10 Surface Pro 1803 with the below mentioned steps.
1. Launched Chrome
2. Navigated to https://www.chromium.org/developers/calendar
3. Scrolled the page using touch.
4. Touched the screen while the page is being scrolled.
5. Repeated steps 3-4 multiple times.
In the process we have observed the page stopped scrolling instantaneously when touched.

@Reporter: Could you please check the same in a new profile without any apps & extensions and let us know if the issue still persists.
You can try this:

HTML:
<html><body></body></html>

JS:
var str = '';
for (var i=0; i<200; i++){
  str += '<p>The quick brown fox jumps over a lazy dog.</p>'; 
}
document.body.innerHTML = str;
function handleStart(evt) {
  evt.preventDefault();
  var touch = evt.changedTouches[0];
  box = '<div style="position: absolute; width: 5px; height: 5px; background: red; top: '+touch.pageY+'px; left: '+ touch.pageX +'px"></div>';
  document.body.innerHTML+=box;
}
document.body.addEventListener("touchstart", handleStart, false);


You may notice that when you touch the page again, the small red box may not be exactly under your finger.

I think if the page scrolling stops immediately, the red box should be exactly under your finger, which means when touchstart event triggered, the scrolling should be already stopped.

I tried this and can reproduce on Chrome 73 using Windows 10 1803 Surface Book 2.
Project Member

Comment 6 by sheriffbot@chromium.org, Jan 8

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: bokan@chromium.org sahel@chromium.org
Status: Available (was: Unconfirmed)
I believe this effect is due to the fact that our raw events and gesture events have different queue and the raw event is fired to the renderer and might be handled on the main thread but cc is still scrolling the previous fling generated GSUs.
bokan@ what do you think?
Adding the jsbin link to make it easy to test:
https://output.jsbin.com/qojoqo
This is due to the fling boosting logic:
When the user touches the screen to cancel the fling, the fling does not stop immediately instead it waits for 50ms (https://cs.chromium.org/chromium/src/ui/events/blink/fling_booster.cc?gsn=ShouldSuppressTapDown&q=fling_booster&g=0&l=23). 50ms is enough for 2-3 frames and depending on fling velocity some scrolling happens before fling cancelation.

Comment 10 by bokan@chromium.org, Jan 18 (4 days ago)

Labels: -Pri-2 Pri-3
Yeah, tuning this to be more immediate would make fling boosting feel worse. IMHO, the current balance struck is works well so absent a compelling reason I don't think we should change anything here. wdhwg001@, is there a particular use-case where this is more noticeable or hurts UX significantly?

Sahel, do you know what Edge does? Do they have fling boosting?

Sign in to add a comment