Page Up/Down scrolling stops when a composited scroller is demoted
Reported by
thescott...@gmail.com,
May 16 2017
|
|||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Example URL: https://jsfiddle.net/eurcus92/1/ Steps to reproduce the problem: (See the JSFiddle attached) 1. Create a scrollable container with a z-index, position absolute or relative, and a solid background color. 2. Make the scrollable container change color to an rgba color partway down. What is the expected behavior? When pushing page down it's supposed to scroll the box all the way. What went wrong? In the JSFiddle you can observe when pushing page down inside the scrollable box it'll start smooth-scrolling down, but it'll get stuck where the solid color changes to a background color. You can also notice that repeated pushes to the page down key won't make it scroll any farther even though there's more room to scroll. Does it occur on multiple sites: Yes Is it a problem with a plugin? No Did this work before? N/A Does this work in other browsers? Yes Chrome version: 58.0.3029.110 Channel: stable OS Version: Fedora 25 Flash Version: If you disable the smooth scrolling flag in chrome and it will work as expected. This has been tested on linux(fedora) and on windows 10, in both cases the problem occurs. In firefox the problem does not occur. ⛆ |
|
|
,
May 16 2017
,
May 17 2017
Able to reproduce the issue on Windows 10, mac 10.12.4 and Ubuntu 14.04 using chrome reported version #58.0.3029.110 and latest canary #60.0.3101.0 . Bisect Information: ===================== Good build: 55.0.2872.0 Revision(420859) Bad Build : 55.0.2873.0 Revision(421052) Change Log URL: https://chromium.googlesource.com/chromium/src/+log/38d12538c8af0b8afbf9c5b586b10902b9ba1303..ef06887f125941e96ab19fba834d9027d36d4c88 From the above change log suspecting below change Review url: https://codereview.chromium.org/2358203002 schenney@ - Could you please check whether this is caused with respect to your change, if not please help us in assigning it to the right owner. Thanks...!!
,
May 17 2017
This is probably due to my change, but revealing a bug that pre-existed. Mouse scrolling works fine as does up/down arrow based keyboard scrolling. It is only Page Up/Down that breaks. The background color changes to something transparent, so we stop compositing the scrolling div, and the root layer starts painting everything related to the scroller. For some reason, machinery necessary for handling Page Up/Down is not being associated with the demoted content - there is not even a layer there. Over to the scroll team, or threaded rendering since this is a bug with layer status changes.
,
May 17 2017
,
May 17 2017
Actually, the up/down keys can break it to, it's just hard to see in the jsfiddle I gave. Here's a different one that's tweaked to make it easier to see the up/down key breaking the functionality. Just push down and you'll see it get's stuck one pixel down from the top where the color changes. https://jsfiddle.net/o9pL959u/
,
May 18 2017
Assigning to skobes@ for triage. Steve, I know we support handing off animations between main and CC, but that's for when scrolling is forced to one or the other - did we ever support the case where an animation starts on a CC layer which gets subsequently demoted? I have a feeling we just delete the animation in that case rather than handing it off to the main thread...
,
May 18 2017
,
May 18 2017
I think you're right. The cc -> main takeover is triggered by adding main-thread scrolling reasons to the layer. We don't do anything to handle the case of the layer going away.
,
Jul 26 2017
,
Aug 2 2017
I'm not sure why skobes unassigned this bug, but assigning to bokan@ to triage.
,
Aug 2 2017
Marking untriaged so I remember to take a look at triage meeting tomorrow
,
Aug 3 2017
This is a consequence of the fact that scrolling is so heavily tied to compositing. I think the approach for Scroll Unification should make this solvable in a satisfying way - since CC will be able to simply update the Node on the ScrollTree which wont go away and whether or not that causes an update to a "Layer" or just a reraster wont matter. It's long term but I'm going to block on that.
,
Aug 4 2017
,
Aug 9 2017
Going on the description of cc-> main handover, and main scrolling blocking on unification it sounds like shorter fix would be main side too. So: I'm removing this from cc hotlist.
,
Jan 11 2018
Blocked on keyboard gesture scrolling |
||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||
Comment 1 by kavvaru@chromium.org
, May 16 2017