|
|
Chromium Code Reviews
DescriptionWith root layer scrolling we should paint fixed background attachment into GraphicsLayer and local/scroll attachment into ScrollingContentslayer.
BUG=682246
TEST=All/BoxPaintInvalidatorTest.CompositedLayoutViewResize/1; All/BoxPaintInvalidatorTest.CompositedLayoutViewGradientResize/1
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Review-Url: https://codereview.chromium.org/2655023003
Cr-Commit-Position: refs/heads/master@{#450764}
Committed: https://chromium.googlesource.com/chromium/src/+/97f1bc8106b41307d0b02eae771daa5ef266ef4f
Patch Set 1 #
Total comments: 2
Patch Set 2 : Update DisplayItemClient to correctly handle visual rect #Patch Set 3 : BoxPaintInvalidatorTest update && add a scroll recorder for scroll offset #
Total comments: 1
Patch Set 4 : address comments #
Total comments: 2
Patch Set 5 : Update condition check #
Messages
Total messages: 31 (19 generated)
Description was changed from ========== With root layer scrolling we should paint fixed background attachment into GraphicsLayer and local/scroll attachment into ScrollingContentslayer. BUG=682246 ========== to ========== With root layer scrolling we should paint fixed background attachment into GraphicsLayer and local/scroll attachment into ScrollingContentslayer. BUG=682246 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
Description was changed from ========== With root layer scrolling we should paint fixed background attachment into GraphicsLayer and local/scroll attachment into ScrollingContentslayer. BUG=682246 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== With root layer scrolling we should paint fixed background attachment into GraphicsLayer and local/scroll attachment into ScrollingContentslayer. BUG=682246 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
yigu@chromium.org changed reviewers: + chrishtr@chromium.org, flackr@chromium.org
yigu@chromium.org changed required reviewers: + chrishtr@chromium.org
Hi Chris, PTAL. Not sure whether this is the correct way of doing so. Thanks!
For the root layer, I'm a little confused about falling back to painting the background to the GraphicsLayer when most of the code today (i.e. without root layer scrolling) assumes that the background is painted into what is effectively the scrolling contents layer and forces scroll on main and repainting if we have fixed attachment backgrounds. I think we want to change backgroundPaintLocation to reflect this (i.e. preferring the scrolling contents layer). https://codereview.chromium.org/2655023003/diff/1/third_party/WebKit/Source/c... File third_party/WebKit/Source/core/paint/PaintLayer.cpp (right): https://codereview.chromium.org/2655023003/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/paint/PaintLayer.cpp:2629: if (RuntimeEnabledFeatures::rootLayerScrollingEnabled() || !isRootLayer()) { I wonder if this check is really necessary? The scrollsOverflow() should be false on the root layer if we don't have root layer scrolling right? https://codereview.chromium.org/2655023003/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/paint/PaintLayer.cpp:2636: location = BackgroundPaintInGraphicsLayer; This seems wrong, do we actually create a layer behind the scrolling contents layer for negative z index layers on the root scroller? If we do, and we paint a scrolling / local background into a non-scrolling layer then we'd have to repaint on scroll.
What's the latest on this patch?
On 2017/02/03 01:46:30, chrishtr wrote: > What's the latest on this patch? There is no update since flackr's feedback. I'm still trying to understand the machinery here. It looks like the current code breaks some "invalidation" related test.
The CQ bit was checked by yigu@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by yigu@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Hi Chris, thanks for the investigation! I made some changes to BoxPaintInvalidatorTest based on the purpose of this patch. PTAL.
Description was changed from ========== With root layer scrolling we should paint fixed background attachment into GraphicsLayer and local/scroll attachment into ScrollingContentslayer. BUG=682246 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== With root layer scrolling we should paint fixed background attachment into GraphicsLayer and local/scroll attachment into ScrollingContentslayer. BUG=682246 TEST=All/BoxPaintInvalidatorTest.CompositedLayoutViewResize/1; All/BoxPaintInvalidatorTest.CompositedLayoutViewGradientResize/1 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
https://codereview.chromium.org/2655023003/diff/40001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp (right): https://codereview.chromium.org/2655023003/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp:243: EXPECT_EQ(PaintInvalidationBackgroundOnScrollingContentsLayer, Isn't this only for cases when --root-layer-scrolls?
The CQ bit was checked by yigu@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
On 2017/02/15 02:08:35, chrishtr wrote: > https://codereview.chromium.org/2655023003/diff/40001/third_party/WebKit/Sour... > File third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp (right): > > https://codereview.chromium.org/2655023003/diff/40001/third_party/WebKit/Sour... > third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp:243: > EXPECT_EQ(PaintInvalidationBackgroundOnScrollingContentsLayer, > Isn't this only for cases when --root-layer-scrolls? Yes. New patch uploaded. Same for BoxPaintInvalidatorTest.CompositedLayoutViewGradientResize. The reasons are different w, w/o root-layer-scrolls.
lgtm
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_layout_tests_slimming_paint_v2 on master.tryserver.chromium.linux (JOB_TIMED_OUT, no build URL)
Have you tested that fixed position root backgrounds work correctly? https://codereview.chromium.org/2655023003/diff/60001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/PaintLayer.cpp (right): https://codereview.chromium.org/2655023003/diff/60001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/PaintLayer.cpp:2608: location = layoutObject()->backgroundPaintLocation(); Don't we still need to check scrollsOverflow? Otherwise we could return BackgroundPaintInScrollingContentsLayer for non scrolling paint layers.
Thanks! fixed background seems fine with this patch. The condition check has been updated. https://codereview.chromium.org/2655023003/diff/60001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/PaintLayer.cpp (right): https://codereview.chromium.org/2655023003/diff/60001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/PaintLayer.cpp:2608: location = layoutObject()->backgroundPaintLocation(); On 2017/02/15 05:52:19, flackr wrote: > Don't we still need to check scrollsOverflow? Otherwise we could return > BackgroundPaintInScrollingContentsLayer for non scrolling paint layers. Done.
The CQ bit was checked by yigu@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from chrishtr@chromium.org Link to the patchset: https://codereview.chromium.org/2655023003/#ps80001 (title: "Update condition check")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch.
Bot data: {"patchset_id": 80001, "attempt_start_ts": 1487174460746140,
"parent_rev": "59d6f53d51032a8b4b4568e2af635b21bd754f88", "commit_rev":
"97f1bc8106b41307d0b02eae771daa5ef266ef4f"}
Message was sent while issue was closed.
Description was changed from ========== With root layer scrolling we should paint fixed background attachment into GraphicsLayer and local/scroll attachment into ScrollingContentslayer. BUG=682246 TEST=All/BoxPaintInvalidatorTest.CompositedLayoutViewResize/1; All/BoxPaintInvalidatorTest.CompositedLayoutViewGradientResize/1 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== With root layer scrolling we should paint fixed background attachment into GraphicsLayer and local/scroll attachment into ScrollingContentslayer. BUG=682246 TEST=All/BoxPaintInvalidatorTest.CompositedLayoutViewResize/1; All/BoxPaintInvalidatorTest.CompositedLayoutViewGradientResize/1 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2655023003 Cr-Commit-Position: refs/heads/master@{#450764} Committed: https://chromium.googlesource.com/chromium/src/+/97f1bc8106b41307d0b02eae771d... ==========
Message was sent while issue was closed.
Committed patchset #5 (id:80001) as https://chromium.googlesource.com/chromium/src/+/97f1bc8106b41307d0b02eae771d... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
