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

Issue 619796 link

Starred by 2 users

Issue metadata

Status: Duplicate
Merged: issue 622682
Owner: ----
Closed: Jul 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

Content gets out of sync with scroll position

Reported by oism...@gmail.com, Jun 14 2016

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36

Example URL:

Steps to reproduce the problem:
Here's how I've been able to recreate the problem:

1. Use a retina display Macbook (I have the 15" MBP). Have an external display connected (I have the Apple Thunderbolt display). I have the resolution of the main Macbook screen set to 1920x1200 and the Thunderbolt display resolution set to default.
2. Load up the test.html or test2.html file in Chrome
3. put the chrome tab on the Macbook Pro's main laptop display window (NOT on the Thunderbolt window).
4. scroll the green div with the Macbook's touchpad

What is the expected behavior?
The red box should appear stuck to the top left corner of the green box.

What went wrong?
You see that the red box becomes "unstuck" from the top left corner of the green box. The position of the red box lags behind so you see jitters as the red box falls behind and then catches up.

Does it occur on multiple sites: Yes

Is it a problem with a plugin? No 

Did this work before? Yes Commit: 972d458e0010f616364e6e4fd0fc50826fda431f

Does this work in other browsers? No Safari Version 9.0.3 (11601.4.4)

Chrome version: 51.0.2704.84  Channel: stable
OS Version: OS X 10.11.3
Flash Version: Shockwave Flash 21.0 r0

Notice the difference in test.html and test2.html.

You'll see that test.html binds to the scroll event. And test2.html instead registers a callback with each requestAnimationFrame. The same behavior is exhibited in both files.

I ran a build bisect and got it down to:
https://chromium.googlesource.com/chromium/src/+log/972d458e0010f616364e6e4fd0fc50826fda431f..80a3a994bcd04ef501f922e9bbb5b7c34010949a

It looks like this commit is the one to blame? (https://chromium.googlesource.com/chromium/src/+/a18c23a6fbef5c2ca4de8be4b5e83f98cb3edf5f)

The user facing impact is that our app implements a spreadsheet that renders cells on demand as they come into view. WIth this bug our users are complaining of jank/flickering where they can scroll past the set of rendered cells.

Since this bug has been around for a while my guess is that it's not going to be fixed anytime soon. Does anybody have a workaround in the meantime?
 
test.html
793 bytes View Download
test2.html
849 bytes View Download

Comment 1 by oism...@gmail.com, Jun 14 2016

A couple of other points I forgot to mention. If you move the Chrome window to the external display then the scroll jank does not occur.

If you scroll the container div using the scrollbar directly (i.e. click and drag the scroll thumb) then the scroll jank does not occur.
Components: -Blink Blink>Layout

Comment 3 by e...@chromium.org, Jun 17 2016

Components: -Blink>Layout Blink>Scroll
Cc: ccameron@chromium.org
Status: Assigned (was: Unconfirmed)
ccameron@, could you have a look?
Cc: shrike@chromium.org
Status: Available (was: Assigned)
Sorry, I'm not working on Mac input these days. We need someone to work on all Mac input issues.
I also noticed this.
I've investigated the code a little: seems that it's because threaded-scrolling enabled.
Threaded scrolling was disabled earlier if there is a blocking event listeners
https://chromium.googlesource.com/chromium/src/+/364349a3c0f701a0397ef5ffaaf948ad037fb369/cc/layers/layer_impl.cc#552

Now, after wheel-gestures was implemented
https://codereview.chromium.org/1749343004/patch/160001/170002
and enable by default
https://codereview.chromium.org/2047093002/
this code (about blocking event listeners) was lost and fast threaded-scrolling is enabled despite scroll listeners.

If it's a bug, I think I can fix it.
How to add dtapuska@ to cc?)
Cc: dtapu...@chromium.org
+dtapuska@, per #6
Mergedinto: 622682
Status: Duplicate (was: Available)

Sign in to add a comment