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

Issue 1403963002: Invalidate non-self-painting-layer descendants when creating a layer (Closed)

Created:
5 years, 2 months ago by Xianzhu
Modified:
5 years, 2 months ago
Reviewers:
chrishtr
CC:
blink-reviews, blink-reviews-layout_chromium.org, chromium-reviews, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Invalidate non-self-painting-layer descendants when creating a layer When a layer is created, its descendants may change paint invalidation container. For example, previously the descendants had a containing layer which is composited but was not a stacking context, and now their paint invalidation container becomes the nearest stacking context ancestor. The real bug status is hard to reproduce with a test because it depends on reuse of display item client addresses (deleted display item client not invalidated on the correct paint invalidation container, then a new display item client is created at the same address which will be treated as validly cached). BUG=541544 TEST=paint/invalidation/invalidate-descendants-when-receiving-paint-layer.html Committed: https://crrev.com/84891953f9681beb9ae099e69b5403aa182f4522 Cr-Commit-Position: refs/heads/master@{#354202}

Patch Set 1 #

Total comments: 4

Patch Set 2 : #

Patch Set 3 : #

Total comments: 1

Patch Set 4 : Update test expectations #

Total comments: 5

Patch Set 5 : Remove resetting of previousPaintInvalidationRect #

Total comments: 3

Patch Set 6 : Add test #

Patch Set 7 : Fix layout test (a background made difference) #

Patch Set 8 : Add spv2 expectation for the test #

Unified diffs Side-by-side diffs Delta from patch set Stats (+119 lines, -43 lines) Patch
M third_party/WebKit/LayoutTests/TestExpectations View 1 2 3 4 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/compositing/repaint/should-not-repaint-composited-descendants-on-overflow-change-expected.txt View 1 2 3 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/css3/flexbox/repaint-opacity-change-expected.txt View 1 2 3 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-item-z-index-change-repaint-expected.txt View 1 2 3 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/change-transform-expected.txt View 1 2 3 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/erase-overflow-expected.txt View 1 2 3 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/mix-blend-mode-separate-stacking-context-expected.txt View 1 2 3 2 chunks +0 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/fast/repaint/paint-invalidation-with-opacity-expected.txt View 1 2 3 1 chunk +0 lines, -1 line 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/invalidate-descendants-when-receiving-paint-layer.html View 1 2 3 4 5 6 1 chunk +17 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/invalidate-descendants-when-receiving-paint-layer-expected.txt View 1 2 3 4 5 1 chunk +57 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/fast/layers/scroll-descendant-with-cached-cliprects-expected.txt View 1 2 3 1 chunk +1 line, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/fast/repaint/create-layer-repaint-expected.txt View 1 2 3 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/fast/repaint/static-to-positioned-expected.txt View 1 2 3 1 chunk +0 lines, -2 lines 0 comments Download
A + third_party/WebKit/LayoutTests/virtual/spv2/paint/invalidation/invalidate-descendants-when-receiving-paint-layer-expected.txt View 1 2 3 4 5 6 7 1 chunk +6 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp View 1 2 1 chunk +9 lines, -14 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.h View 1 2 3 2 chunks +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.cpp View 1 2 3 4 3 chunks +22 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObjectChildList.cpp View 1 chunk +1 line, -8 lines 0 comments Download

Messages

Total messages: 23 (8 generated)
Xianzhu
5 years, 2 months ago (2015-10-13 17:41:08 UTC) #2
chrishtr
https://codereview.chromium.org/1403963002/diff/1/third_party/WebKit/Source/core/layout/LayoutObject.cpp File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/1403963002/diff/1/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode3441 third_party/WebKit/Source/core/layout/LayoutObject.cpp:3441: void LayoutObject::invalidatePaintIncludingNonLayerDescendantsInternal(const LayoutBoxModelObject& paintInvalidationContainer) NonPaintLayer https://codereview.chromium.org/1403963002/diff/1/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode3446 third_party/WebKit/Source/core/layout/LayoutObject.cpp:3446: if (!child->hasLayer()) ...
5 years, 2 months ago (2015-10-13 17:49:01 UTC) #3
Xianzhu
https://codereview.chromium.org/1403963002/diff/1/third_party/WebKit/Source/core/layout/LayoutObject.cpp File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/1403963002/diff/1/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode3441 third_party/WebKit/Source/core/layout/LayoutObject.cpp:3441: void LayoutObject::invalidatePaintIncludingNonLayerDescendantsInternal(const LayoutBoxModelObject& paintInvalidationContainer) On 2015/10/13 17:49:01, chrishtr wrote: ...
5 years, 2 months ago (2015-10-13 23:58:12 UTC) #4
chrishtr
https://codereview.chromium.org/1403963002/diff/60001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp File third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp (right): https://codereview.chromium.org/1403963002/diff/60001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp#newcode287 third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp:287: if (!RuntimeEnabledFeatures::slimmingPaintV2Enabled() && isRooted() && styleRef().isTreatedAsOrStackingContext()) { If an ...
5 years, 2 months ago (2015-10-14 17:43:00 UTC) #5
Xianzhu
https://codereview.chromium.org/1403963002/diff/60001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp File third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp (right): https://codereview.chromium.org/1403963002/diff/60001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp#newcode287 third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp:287: if (!RuntimeEnabledFeatures::slimmingPaintV2Enabled() && isRooted() && styleRef().isTreatedAsOrStackingContext()) { On 2015/10/14 ...
5 years, 2 months ago (2015-10-14 18:17:48 UTC) #6
chrishtr
https://codereview.chromium.org/1403963002/diff/80001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp File third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp (right): https://codereview.chromium.org/1403963002/diff/80001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp#newcode288 third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp:288: if (const LayoutBoxModelObject* currentPaintInvalidationContainer = containerForPaintInvalidation()) { Re testing: ...
5 years, 2 months ago (2015-10-14 18:22:32 UTC) #7
Xianzhu
https://codereview.chromium.org/1403963002/diff/80001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp File third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp (right): https://codereview.chromium.org/1403963002/diff/80001/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp#newcode288 third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp:288: if (const LayoutBoxModelObject* currentPaintInvalidationContainer = containerForPaintInvalidation()) { On 2015/10/14 ...
5 years, 2 months ago (2015-10-14 19:47:21 UTC) #8
chrishtr
lgtm
5 years, 2 months ago (2015-10-14 19:49:15 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1403963002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1403963002/100001
5 years, 2 months ago (2015-10-14 19:50:14 UTC) #11
commit-bot: I haz the power
Try jobs failed on following builders: mac_chromium_rel_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/126331)
5 years, 2 months ago (2015-10-14 21:21:54 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1403963002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1403963002/120001
5 years, 2 months ago (2015-10-14 22:03:44 UTC) #16
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/120710)
5 years, 2 months ago (2015-10-14 23:05:05 UTC) #18
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1403963002/130001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1403963002/130001
5 years, 2 months ago (2015-10-15 00:51:24 UTC) #21
commit-bot: I haz the power
Committed patchset #8 (id:130001)
5 years, 2 months ago (2015-10-15 02:13:17 UTC) #22
commit-bot: I haz the power
5 years, 2 months ago (2015-10-15 02:14:07 UTC) #23
Message was sent while issue was closed.
Patchset 8 (id:??) landed as
https://crrev.com/84891953f9681beb9ae099e69b5403aa182f4522
Cr-Commit-Position: refs/heads/master@{#354202}

Powered by Google App Engine
This is Rietveld 408576698