DescriptionDon't omit ScrollableAreas in non-clickable FrameViews.
The FrameView-is-clickable check is an optimization to avoid
over-reporting non-fast-scrollable regions. However, there is code
in ScrollingCoordinator that serves the same purpose:
if (!frameView || frameView->shouldThrottleRendering() ||
!frameView->isVisible())
return shouldHandleScrollGestureOnMainThreadRegion;
This only starts causing problems when root layer scrolling is
enabled; in particular, this scenario:
- A div has visibility:hidden
- An iframe containing a non-fast-scrollable region is appended
to the div
- After the iframe has loaded and run layout, the div is set to
visibility:visible
When the iframe first loads and runs layout, it will eventually get to
PLSA::updateScrollableAreaSet; but that method won't do anything
because the owner iframe element isn't visible to hit testing. So the
PLSA isn't added to its FrameView's scrollable area set.
When the final style change is applied to the LayoutIFrame, it calls
FrameView::show(). Pre-RLS, that would cause the subframe to add
itself to the parent's scrollable area set. With RLS enabled, that's
not expected to happen. Because the iframe's document is layout
clean, PLSA::updateScrollableAreaSet() doesn't get called again, so
the PLSA never gets into its FrameView's scrollable area set.
This patch deletes a couple of tests that check for the number of
ScrollableArea's included in the FrameView's scrollableAreaSet.
That's no longer a useful number to check; there are other existing
tests that check the non-scrollable rects that are produced, which is
really the important thing.
BUG=417782
R=skobes@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Review-Url: https://codereview.chromium.org/2658333002
Cr-Commit-Position: refs/heads/master@{#447285}
Committed: https://chromium.googlesource.com/chromium/src/+/4139980b8a49249ba5389f942d808caa7c464896
Patch Set 1 #
Total comments: 1
Patch Set 2 : rebase #Patch Set 3 : Remove obsolete FIXME #
Depends on Patchset: Dependent Patchsets: Messages
Total messages: 14 (9 generated)
|