[root-layer-scrolls] Bottom-fixed Elements move as URL bar hides |
||
Issue descriptionChrome Version : 65.0.3309.0 OS Version: Android URLs (if applicable) : http://bokand.github.io/bottomfixed.html What steps will reproduce the problem? 1. Lauch chrome with --root-layer-scrolls 2. Visit any page with a position: fixed element fixed to the viewport bottom (e.g. above URL) 3. Scroll down to hide the URL bar What is the expected result? The fixed element should always remain at the bottom of the viewport. What happens instead of that? The fixed element moves up as the URL bar hides until the finger is lifted. It then snaps back to the bottom when the user finishes the scroll.
,
Jan 3 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/91418fce4d985330002fc38c39815dec3835ed51 commit 91418fce4d985330002fc38c39815dec3835ed51 Author: David Bokan <bokan@chromium.org> Date: Wed Jan 03 03:46:30 2018 Fix URL bar adjustment under root-layer-scrolls When an element is position: fixed to the bottom of the screen, hiding the URL bar produces a transform in the compositor so that the Element appears to stay fixed to the viewport bottom. This is because, as the URL bar is hidden, the viewport height is expanded. However, this expansion happens entirely in the compositor. Until the user releases their finger, Blink will not get a resize so the Element won't get be repositioned with the updated viewport height. With root-layer-scrolling, the root scroller becomes the root PaintLayer. We previously carved out exceptions for the root layer since its scrolling was delegated to special "frame scrolling" layers in the compositor. This patch removes these exceptions and marks the LayoutView's scrolling layer as being a "position fixed container" so that position: fixed Elements use it as their container. It also marks this layer as being affected by URL bar resizes so that we apply the above-mentioned URl bar transform. Bug: 798434 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: I69623c619471ced826aa61340d946a0eeb0110ae Reviewed-on: https://chromium-review.googlesource.com/847458 Reviewed-by: Steve Kobes <skobes@chromium.org> Commit-Queue: David Bokan <bokan@chromium.org> Cr-Commit-Position: refs/heads/master@{#526612} [modify] https://crrev.com/91418fce4d985330002fc38c39815dec3835ed51/third_party/WebKit/LayoutTests/VirtualTestSuites [add] https://crrev.com/91418fce4d985330002fc38c39815dec3835ed51/third_party/WebKit/LayoutTests/virtual/android/url-bar/README.txt [add] https://crrev.com/91418fce4d985330002fc38c39815dec3835ed51/third_party/WebKit/LayoutTests/virtual/android/url-bar/bottom-fixed-adjusted-when-showing-url-bar-expected.html [add] https://crrev.com/91418fce4d985330002fc38c39815dec3835ed51/third_party/WebKit/LayoutTests/virtual/android/url-bar/bottom-fixed-adjusted-when-showing-url-bar.html [modify] https://crrev.com/91418fce4d985330002fc38c39815dec3835ed51/third_party/WebKit/Source/core/frame/Settings.json5 [modify] https://crrev.com/91418fce4d985330002fc38c39815dec3835ed51/third_party/WebKit/Source/core/frame/SettingsDelegate.h [modify] https://crrev.com/91418fce4d985330002fc38c39815dec3835ed51/third_party/WebKit/Source/core/page/Page.cpp [modify] https://crrev.com/91418fce4d985330002fc38c39815dec3835ed51/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMapping.cpp [modify] https://crrev.com/91418fce4d985330002fc38c39815dec3835ed51/third_party/WebKit/Source/core/paint/compositing/PaintLayerCompositor.cpp
,
Jan 3 2018
|
||
►
Sign in to add a comment |
||
Comment 1 by bokan@chromium.org
, Jan 2 2018