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

Issue 2289833002: Disable clipping on root scroller's ancestors. (Closed)

Created:
4 years, 3 months ago by bokan
Modified:
4 years, 3 months ago
Reviewers:
chrishtr
CC:
ajuma+watch_chromium.org, blink-layers+watch_chromium.org, blink-reviews, blink-reviews-layout_chromium.org, blink-reviews-paint_chromium.org, blink-reviews-platform-graphics_chromium.org, Rik, chromium-reviews, danakj+watch_chromium.org, dshwang, drott+blinkwatch_chromium.org, krit, eae+blinkwatch, f(malita), jbroman, jchaffraix+rendering, Justin Novosad, kenneth.christiansen, kinuko+watch, leviw+renderwatch, pdr+graphicswatchlist_chromium.org, pdr+renderingwatchlist_chromium.org, rwlbuis, Stephen Chennney, slimming-paint-reviews_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Disable clipping on root scroller's ancestors. Currently, while the user is hiding the top controls, the compositor expands the main frame's clipping layer so that we reveal more content. This has to happen because we don't actually resize the anything in the Layer/Layout trees in Blink until after the top controls are fully shown or hidden. When an element is set as the root scroller, we want to provide the same effect. However, since there's still masking layers above the root scroller, we can't see the expanded clip. Instead of expanding all the layers above the root scroller, this CL removes the masksToBounds bit on all layers above the root scroller. This means parent boxes with hidden overflow will not clip the root scroller but this is acceptable as a property of the root scroller. Also, GraphicsLayer setMasksToBoundaries kept a bit on GraphicsLayer but this was never read so I removed it. BUG=505516 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/469bcf04ced0868049864010a367b0d56a73ffa7 Cr-Commit-Position: refs/heads/master@{#418647}

Patch Set 1 #

Total comments: 17

Patch Set 2 : Rebase #

Patch Set 3 : Fix tests - don't query compositing state inUpdateCompositing #

Patch Set 4 : Addressed review feedback #

Patch Set 5 : Rebase #

Patch Set 6 : Added tests #

Patch Set 7 : Undo changes to REF and moved comment #

Total comments: 13

Patch Set 8 : Rebase #

Patch Set 9 : Added tests + found some bugs #

Patch Set 10 : Use setNeedsGraphicsLayerUpdate #

Patch Set 11 : Rebase #

Patch Set 12 : Actually, use setNeedsCompositingUpdate #

Patch Set 13 : Nullcheck rootScrollerPaintLayer() #

Patch Set 14 : Rebase #

Patch Set 15 : Disable new tests on SPv2 bot #

Total comments: 2

Patch Set 16 : Also setNeedsCompositingUpdate from TopDocumentRootScrollerController #

Unified diffs Side-by-side diffs Delta from patch set Stats (+871 lines, -23 lines) Patch
M third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/compositing/root-scroller/basic-disable-ancestor-clipping.html View 1 2 3 4 5 6 7 8 1 chunk +82 lines, -0 lines 0 comments Download
A + third_party/WebKit/LayoutTests/compositing/root-scroller/basic-disable-ancestor-clipping-expected.png View 1 2 3 4 5 6 7 8 Binary file 0 comments Download
A + third_party/WebKit/LayoutTests/compositing/root-scroller/basic-disable-ancestor-clipping-expected.txt View 1 2 3 4 5 6 7 8 0 chunks +-1 lines, --1 lines 0 comments Download
A third_party/WebKit/LayoutTests/compositing/root-scroller/basic-reenable-ancestor-clipping.html View 1 2 3 4 5 6 7 8 1 chunk +88 lines, -0 lines 0 comments Download
A + third_party/WebKit/LayoutTests/compositing/root-scroller/basic-reenable-ancestor-clipping-expected.png View 1 2 3 4 5 6 7 8 Binary file 0 comments Download
A + third_party/WebKit/LayoutTests/compositing/root-scroller/basic-reenable-ancestor-clipping-expected.txt View 1 2 3 4 5 6 7 8 0 chunks +-1 lines, --1 lines 0 comments Download
A third_party/WebKit/LayoutTests/compositing/root-scroller/clipping-ancestor-is-composited-sibling.html View 1 2 3 4 5 1 chunk +53 lines, -0 lines 0 comments Download
A + third_party/WebKit/LayoutTests/compositing/root-scroller/clipping-ancestor-is-composited-sibling-expected.png View 1 2 3 4 5 Binary file 0 comments Download
A + third_party/WebKit/LayoutTests/compositing/root-scroller/clipping-ancestor-is-composited-sibling-expected.txt View 1 2 3 4 5 0 chunks +-1 lines, --1 lines 0 comments Download
A third_party/WebKit/LayoutTests/compositing/root-scroller/clipping-ancestor-is-non-composited-sibling.html View 1 2 3 4 5 1 chunk +52 lines, -0 lines 0 comments Download
A + third_party/WebKit/LayoutTests/compositing/root-scroller/clipping-ancestor-is-non-composited-sibling-expected.png View 1 2 3 4 5 Binary file 0 comments Download
A + third_party/WebKit/LayoutTests/compositing/root-scroller/clipping-ancestor-is-non-composited-sibling-expected.txt View 1 2 3 4 5 0 chunks +-1 lines, --1 lines 0 comments Download
A third_party/WebKit/LayoutTests/compositing/root-scroller/resources/clipping-ancestor-is-composited-sibling-iframe.html View 1 2 3 4 5 1 chunk +54 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/compositing/root-scroller/resources/clipping-ancestor-is-non-composited-sibling-iframe.html View 1 2 3 4 5 1 chunk +55 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/frame/FrameView.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp View 1 2 3 4 5 6 7 8 9 10 4 chunks +11 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/CompositedLayerMappingTest.cpp View 1 2 3 4 5 6 7 8 9 10 2 chunks +131 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/CompositingInputsUpdater.cpp View 1 2 3 4 5 6 7 8 2 chunks +5 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.h View 1 2 3 4 5 6 7 8 2 chunks +7 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp View 1 2 3 4 5 6 7 8 9 10 6 chunks +43 lines, -14 lines 0 comments Download
M third_party/WebKit/Source/core/page/scrolling/RootScrollerController.h View 1 2 3 4 5 6 7 8 9 3 chunks +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/page/scrolling/RootScrollerController.cpp View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +38 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.h View 1 2 3 4 5 6 7 8 2 chunks +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 chunks +39 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.h View 1 2 3 4 5 6 7 8 9 10 3 chunks +4 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.cpp View 1 2 3 4 5 6 7 8 9 10 2 chunks +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/GraphicsLayer.h View 1 2 3 4 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp View 1 2 3 4 5 6 7 8 9 10 2 chunks +1 line, -3 lines 0 comments Download
M third_party/WebKit/Source/web/tests/RootScrollerTest.cpp View 1 2 3 4 5 6 7 8 6 chunks +197 lines, -0 lines 0 comments Download

Messages

Total messages: 37 (17 generated)
bokan
Hi Chris, Are you the right person to review this? If not, could you please ...
4 years, 3 months ago (2016-08-29 16:56:53 UTC) #6
chrishtr
Yes I'm a good reviewer. I'll review it today hopefully.
4 years, 3 months ago (2016-08-30 16:44:59 UTC) #10
chrishtr
Doesn't removing this masking have a user-visible effect in some cases? If so, what are ...
4 years, 3 months ago (2016-08-31 01:23:58 UTC) #11
bokan
On 2016/08/31 01:23:58, chrishtr wrote: > Doesn't removing this masking have a user-visible effect in ...
4 years, 3 months ago (2016-08-31 13:32:42 UTC) #13
chrishtr
This change also needs some tests. https://codereview.chromium.org/2289833002/diff/1/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp File third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp (right): https://codereview.chromium.org/2289833002/diff/1/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp#newcode604 third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp:604: if (m_scrollingLayer) Could ...
4 years, 3 months ago (2016-09-01 23:42:57 UTC) #15
bokan
Sorry for the long delay. I think I've addressed all the feedback, ptal. I'll also ...
4 years, 3 months ago (2016-09-09 00:19:03 UTC) #16
chrishtr
https://codereview.chromium.org/2289833002/diff/1/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.h File third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.h (right): https://codereview.chromium.org/2289833002/diff/1/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.h#newcode140 third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.h:140: void setClippingOnRootScrollerAncestors(); On 2016/09/09 at 00:19:02, bokan wrote: > ...
4 years, 3 months ago (2016-09-09 18:21:16 UTC) #17
bokan
https://codereview.chromium.org/2289833002/diff/120001/third_party/WebKit/LayoutTests/compositing/root-scroller/clipping-ancestor-is-composited-sibling.html File third_party/WebKit/LayoutTests/compositing/root-scroller/clipping-ancestor-is-composited-sibling.html (right): https://codereview.chromium.org/2289833002/diff/120001/third_party/WebKit/LayoutTests/compositing/root-scroller/clipping-ancestor-is-composited-sibling.html#newcode52 third_party/WebKit/LayoutTests/compositing/root-scroller/clipping-ancestor-is-composited-sibling.html:52: <iframe id="child" src="resources/clipping-ancestor-is-composited-sibling-iframe.html"></iframe> On 2016/09/09 18:21:15, chrishtr wrote: > ...
4 years, 3 months ago (2016-09-10 00:05:54 UTC) #18
chrishtr
https://codereview.chromium.org/2289833002/diff/120001/third_party/WebKit/Source/core/page/scrolling/RootScrollerController.cpp File third_party/WebKit/Source/core/page/scrolling/RootScrollerController.cpp (right): https://codereview.chromium.org/2289833002/diff/120001/third_party/WebKit/Source/core/page/scrolling/RootScrollerController.cpp#newcode98 third_party/WebKit/Source/core/page/scrolling/RootScrollerController.cpp:98: layer->setNeedsCompositingInputsUpdate(); On 2016/09/10 at 00:05:54, bokan wrote: > On ...
4 years, 3 months ago (2016-09-12 21:01:28 UTC) #19
bokan
ptal https://codereview.chromium.org/2289833002/diff/120001/third_party/WebKit/Source/core/page/scrolling/RootScrollerController.cpp File third_party/WebKit/Source/core/page/scrolling/RootScrollerController.cpp (right): https://codereview.chromium.org/2289833002/diff/120001/third_party/WebKit/Source/core/page/scrolling/RootScrollerController.cpp#newcode98 third_party/WebKit/Source/core/page/scrolling/RootScrollerController.cpp:98: layer->setNeedsCompositingInputsUpdate(); On 2016/09/12 21:01:28, chrishtr wrote: > On ...
4 years, 3 months ago (2016-09-13 20:40:52 UTC) #22
bokan
My newly added tests fail on the slimming_paint_v2 bot but pass on the regular ones. ...
4 years, 3 months ago (2016-09-13 22:40:05 UTC) #25
bokan
On 2016/09/13 22:40:05, bokan wrote: > My newly added tests fail on the slimming_paint_v2 bot ...
4 years, 3 months ago (2016-09-13 22:43:19 UTC) #26
chrishtr
On 2016/09/13 at 22:43:19, bokan wrote: > On 2016/09/13 22:40:05, bokan wrote: > > My ...
4 years, 3 months ago (2016-09-13 22:48:23 UTC) #27
bokan
On 2016/09/13 22:48:23, chrishtr wrote: > On 2016/09/13 at 22:43:19, bokan wrote: > > On ...
4 years, 3 months ago (2016-09-13 23:00:55 UTC) #28
chrishtr
https://codereview.chromium.org/2289833002/diff/280001/third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp File third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp (right): https://codereview.chromium.org/2289833002/diff/280001/third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp#newcode117 third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp:117: layer->setNeedsCompositingInputsUpdate(); I think you're going to need compositor()->setNeedsCompositingUpdate(CompositingUpdateRebuildTree); because ...
4 years, 3 months ago (2016-09-14 17:16:42 UTC) #29
bokan
https://codereview.chromium.org/2289833002/diff/280001/third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp File third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp (right): https://codereview.chromium.org/2289833002/diff/280001/third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp#newcode117 third_party/WebKit/Source/core/page/scrolling/TopDocumentRootScrollerController.cpp:117: layer->setNeedsCompositingInputsUpdate(); On 2016/09/14 17:16:41, chrishtr wrote: > I think ...
4 years, 3 months ago (2016-09-14 17:25:46 UTC) #30
chrishtr
lgtm
4 years, 3 months ago (2016-09-14 17:26:16 UTC) #32
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/2289833002/300001
4 years, 3 months ago (2016-09-14 17:26:31 UTC) #33
commit-bot: I haz the power
Committed patchset #16 (id:300001)
4 years, 3 months ago (2016-09-14 19:58:12 UTC) #35
commit-bot: I haz the power
4 years, 3 months ago (2016-09-14 20:00:14 UTC) #37
Message was sent while issue was closed.
Patchset 16 (id:??) landed as
https://crrev.com/469bcf04ced0868049864010a367b0d56a73ffa7
Cr-Commit-Position: refs/heads/master@{#418647}

Powered by Google App Engine
This is Rietveld 408576698