Non-integer scaled scrollers do not stay positioned correctly |
||||||||
Issue descriptionWhen a scrollable element is scaled by a non-integer amount the position of the content area moves relative to the scroll bars. The attached html will demonstrate that one or more of the scrolled areas sticks above the vertical scrollbar. This happens symmetrically in each direction, even though the attached demo only shows vertical issues.
,
Jul 18 2017
I believe it is related to scroll snapping in cc. +jaydasika, +ajuma (Just my hunch. Feel free to re-label once we have more evidence.)
,
Jul 21 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b3bb16c205d2e2cb91f7afa6aeada4047ff6542d commit b3bb16c205d2e2cb91f7afa6aeada4047ff6542d Author: Tien-Ren Chen <trchen@chromium.org> Date: Fri Jul 21 00:03:37 2017 [Blink] Add layout test for composited scroller clip snapping This test verifies composited scrollers have consistent clip rect regardless of current scroll offset. The four boxes in the test have different fractional translations. The test body and reference are identical except for scroll offset. BUG=736052 Change-Id: I97257b29e5abf579aa028d0c04463f4c427f8a58 Reviewed-on: https://chromium-review.googlesource.com/578741 Commit-Queue: Tien-Ren Chen <trchen@chromium.org> Reviewed-by: Peter Mayo <petermayo@chromium.org> Cr-Commit-Position: refs/heads/master@{#488500} [modify] https://crrev.com/b3bb16c205d2e2cb91f7afa6aeada4047ff6542d/third_party/WebKit/LayoutTests/TestExpectations [add] https://crrev.com/b3bb16c205d2e2cb91f7afa6aeada4047ff6542d/third_party/WebKit/LayoutTests/compositing/overflow/composited-scroll-with-fractional-translation-expected.html [add] https://crrev.com/b3bb16c205d2e2cb91f7afa6aeada4047ff6542d/third_party/WebKit/LayoutTests/compositing/overflow/composited-scroll-with-fractional-translation.html
,
Jul 21 2017
Re #2 I strongly suspect scroll snapping as well. We can probably verify just by disabling snapping in a local build. My hypothesis is that we either only snap some of the layers of the scroller (i.e. not the scrollbars) and/or we don't apply consistent snapping to all of the layers because we snap based on each layer's position which may lead some to move down/left and others to move up/right.
,
Dec 7 2017
This test now passes, suggesting that the issue is resolved. Is that true, or is the reference now broken?
,
Dec 7 2017
,
Jan 5 2018
Ping
,
Jan 5 2018
,
Jan 6 2018
Nope, the above CL only added a test and marked it as [ Failure ]. Just checked and it is still failing as of today. I'll spend some time to investigate it next week, though I'm pretty preoccupied with clip-path recently.
,
Jan 6 2018
I think my PaintLayerClipper CL today might have made it start passing.
,
Sep 14
I'm leaving the team, thus re-assigning. It still reproducible as of today. I also tried with BGPT it is affected too. I think it is somewhere in cc/viz quad snapping. It feels like the clipped quad_rect is computed in the local space that's prior to snapping, then the draw transform of the quad getting snapped later.
,
Sep 14
,
Oct 2
Just to confirm, we're talking about physical "pixel snapping" of scrolls, rather than "scroll snap" which is a new CSS feature unused by the above tests. I can leave this in my queue for now but since it's low-severity and long-standing I'm unlikely to get to it in the near future. |
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by schenney@chromium.org
, Jun 22 2017Status: Available (was: Untriaged)