Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Issue 2658333002: Don't omit ScrollableAreas in non-clickable FrameViews. (Closed)

Created:
3 years, 10 months ago by szager1
Modified:
3 years, 10 months ago
Reviewers:
skobes
CC:
chromium-reviews, blink-reviews, dshwang, blink-reviews-paint_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Don'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 #

Messages

Total messages: 14 (9 generated)
szager1
3 years, 10 months ago (2017-01-27 23:52:40 UTC) #1
skobes
lgtm w/ nit https://codereview.chromium.org/2658333002/diff/1/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp File third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp (right): https://codereview.chromium.org/2658333002/diff/1/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp#newcode1675 third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp:1675: // FIXME: Does this need to ...
3 years, 10 months ago (2017-01-28 00:26:33 UTC) #5
szager1
On 2017/01/28 00:26:33, skobes wrote: > lgtm w/ nit > > https://codereview.chromium.org/2658333002/diff/1/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp > File third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp ...
3 years, 10 months ago (2017-01-31 00:02:02 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2658333002/40001
3 years, 10 months ago (2017-01-31 17:03:42 UTC) #11
commit-bot: I haz the power
3 years, 10 months ago (2017-01-31 19:06:06 UTC) #14
Message was sent while issue was closed.
Committed patchset #3 (id:40001) as
https://chromium.googlesource.com/chromium/src/+/4139980b8a49249ba5389f942d80...

Powered by Google App Engine
This is Rietveld 408576698