Implicit root scroller can cause unreachable content on some pages |
||
Issue descriptionChrome Version : 72.0.3602.2 OS Version: Android URLs (if applicable) : http://mikecrm.com What steps will reproduce the problem? 1. Scroll all the way to the bottom, with the URL bar hidden What is the expected result? Should see the bottom of the page What happens instead of that? Bottom of page is obscured Pages on which we activate the implicit root scroller but have a non-resizing ancestor that clips cause this scenario. On the page above, the root scroller has an overflow: hidden DIV as a parent. While the root scroller is resized by Blink when the URL bar hides, the parent DIV isn't so it obscured the bottom part of the content. We already resize ancestor layers in the same way so I'm assuming we just need to composite these cases. Otherwise we should make sure we don't activate in this case.
,
Nov 28
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ecddf567a4fef8a04d38b3dd8f418a58ec5867a7 commit ecddf567a4fef8a04d38b3dd8f418a58ec5867a7 Author: David Bokan <bokan@chromium.org> Date: Wed Nov 28 19:58:44 2018 [root-scroller] Don't promote descendant of clip Promoting an element with a clipping ancestor leads to a broken UX for users and so we should detect and prevent this case. The break occurs when the user hides the URL bar. Unless the page explicitly resizes the clipping element (which is difficult for us to detect), the clip will be smaller than the viewport and so it will block out the bottom region of the scroller. To the user, this appears as an inability to scroll to the bottom of the content. We already prevent promoting an element if it has a scrolling ancestor. This CL simply generalizes that check to check for clipping and masking (since scrollers will necessarily have an overflow clip). The exception here is the LayoutView (i.e. viewport). The viewport always has an overflow clip but we use the frame's bounds to clip (which accounts for the URL bar) so in that case we simply check for scrollability. Bug: 903273 Change-Id: I44b21a619052bcf6e4c08fa6369814f31bfb35cf Reviewed-on: https://chromium-review.googlesource.com/c/1351563 Commit-Queue: David Bokan <bokan@chromium.org> Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Cr-Commit-Position: refs/heads/master@{#611831} [modify] https://crrev.com/ecddf567a4fef8a04d38b3dd8f418a58ec5867a7/third_party/blink/renderer/core/page/scrolling/root_scroller_controller.cc [modify] https://crrev.com/ecddf567a4fef8a04d38b3dd8f418a58ec5867a7/third_party/blink/renderer/core/page/scrolling/root_scroller_test.cc
,
Nov 28
|
||
►
Sign in to add a comment |
||
Comment 1 by bokan@chromium.org
, Nov 8