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

Issue 2203933002: Replace LayoutObject::skipInvalidationWhenLaidOutChildren() with paintedOutputOfObjectHasNoEffect (Closed)

Created:
4 years, 4 months ago by Xianzhu
Modified:
4 years, 4 months ago
Reviewers:
chrishtr, trchen
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

Replace LayoutObject::skipInvalidationWhenLaidOutChildren() with paintedOutputOfObjectHasNoEffect We don't need to check if the layout is laid out because of children, but just check if it will paint anything and if its painting is affected by geometry change. Removed neededLayoutBecauseOfChildren logic and replaced skipInvalidationWhenLaiedOutChildren() with paintedOutputOfObjectHasNoEffect(). Also cleaned up selection paint invalidation. BUG=451090 Committed: https://crrev.com/bdd41f4e784486fd7522793283cb5c376a057f0a Cr-Commit-Position: refs/heads/master@{#409965}

Patch Set 1 #

Patch Set 2 : canSkipPaintInvalidation #

Patch Set 3 : canSkipPaintInvalidation #

Patch Set 4 : - #

Patch Set 5 #

Total comments: 17

Patch Set 6 : - #

Total comments: 7

Patch Set 7 : - #

Total comments: 2

Patch Set 8 : - #

Patch Set 9 : Fix first line invalidation issue #

Unified diffs Side-by-side diffs Delta from patch set Stats (+152 lines, -73 lines) Patch
M third_party/WebKit/LayoutTests/TestExpectations View 1 2 3 4 5 6 7 8 2 chunks +93 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/css3/flexbox/repaint-on-margin-change.html View 1 2 3 4 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/css3/flexbox/repaint-on-margin-change-expected.html View 1 2 3 4 5 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlow.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp View 1 2 3 4 5 6 7 8 1 chunk +9 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBox.h View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBox.cpp View 1 2 3 4 5 6 7 1 chunk +22 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.h View 1 2 3 4 5 6 7 9 chunks +9 lines, -16 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.cpp View 1 2 3 4 5 6 7 7 chunks +6 lines, -35 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutReplaced.h View 1 2 3 4 5 6 7 1 chunk +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutView.cpp View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGHiddenContainer.h View 1 2 3 4 5 6 7 1 chunk +4 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGHiddenContainer.cpp View 1 2 3 4 1 chunk +0 lines, -10 lines 0 comments Download

Messages

Total messages: 58 (35 generated)
Xianzhu
https://codereview.chromium.org/2203933002/diff/80001/third_party/WebKit/LayoutTests/css3/flexbox/repaint-on-margin-change.html File third_party/WebKit/LayoutTests/css3/flexbox/repaint-on-margin-change.html (right): https://codereview.chromium.org/2203933002/diff/80001/third_party/WebKit/LayoutTests/css3/flexbox/repaint-on-margin-change.html#newcode17 third_party/WebKit/LayoutTests/css3/flexbox/repaint-on-margin-change.html:17: background-color: green; This change is for the original intent ...
4 years, 4 months ago (2016-08-03 19:56:37 UTC) #21
chrishtr
https://codereview.chromium.org/2203933002/diff/80001/third_party/WebKit/Source/core/layout/LayoutBox.cpp File third_party/WebKit/Source/core/layout/LayoutBox.cpp (right): https://codereview.chromium.org/2203933002/diff/80001/third_party/WebKit/Source/core/layout/LayoutBox.cpp#newcode2039 third_party/WebKit/Source/core/layout/LayoutBox.cpp:2039: if (getSelectionState() != SelectionNone) What's the (brief) explanation for ...
4 years, 4 months ago (2016-08-03 20:33:51 UTC) #23
Xianzhu
https://codereview.chromium.org/2203933002/diff/80001/third_party/WebKit/Source/core/layout/LayoutBox.cpp File third_party/WebKit/Source/core/layout/LayoutBox.cpp (right): https://codereview.chromium.org/2203933002/diff/80001/third_party/WebKit/Source/core/layout/LayoutBox.cpp#newcode2039 third_party/WebKit/Source/core/layout/LayoutBox.cpp:2039: if (getSelectionState() != SelectionNone) On 2016/08/03 20:33:50, chrishtr wrote: ...
4 years, 4 months ago (2016-08-03 21:30:35 UTC) #26
chrishtr
https://codereview.chromium.org/2203933002/diff/80001/third_party/WebKit/Source/core/layout/LayoutObject.cpp File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/2203933002/diff/80001/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode1426 third_party/WebKit/Source/core/layout/LayoutObject.cpp:1426: if (canSkipUnforcedPaintInvalidation()) On 2016/08/03 at 21:30:35, Xianzhu wrote: > ...
4 years, 4 months ago (2016-08-03 21:34:56 UTC) #27
Xianzhu
https://codereview.chromium.org/2203933002/diff/80001/third_party/WebKit/Source/core/layout/LayoutObject.cpp File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/2203933002/diff/80001/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode1426 third_party/WebKit/Source/core/layout/LayoutObject.cpp:1426: if (canSkipUnforcedPaintInvalidation()) On 2016/08/03 21:34:56, chrishtr wrote: > On ...
4 years, 4 months ago (2016-08-03 22:09:02 UTC) #28
chrishtr
https://codereview.chromium.org/2203933002/diff/100001/third_party/WebKit/Source/core/layout/LayoutBox.cpp File third_party/WebKit/Source/core/layout/LayoutBox.cpp (right): https://codereview.chromium.org/2203933002/diff/100001/third_party/WebKit/Source/core/layout/LayoutBox.cpp#newcode2037 third_party/WebKit/Source/core/layout/LayoutBox.cpp:2037: bool LayoutBox::canSkipUnforcedPaintInvalidation() const In what case are the conditions ...
4 years, 4 months ago (2016-08-03 23:13:16 UTC) #29
chrishtr
https://codereview.chromium.org/2203933002/diff/100001/third_party/WebKit/Source/core/layout/LayoutBox.cpp File third_party/WebKit/Source/core/layout/LayoutBox.cpp (right): https://codereview.chromium.org/2203933002/diff/100001/third_party/WebKit/Source/core/layout/LayoutBox.cpp#newcode2048 third_party/WebKit/Source/core/layout/LayoutBox.cpp:2048: // If the box has clip, we need to ...
4 years, 4 months ago (2016-08-03 23:13:43 UTC) #30
Xianzhu
https://codereview.chromium.org/2203933002/diff/100001/third_party/WebKit/Source/core/layout/LayoutBox.cpp File third_party/WebKit/Source/core/layout/LayoutBox.cpp (right): https://codereview.chromium.org/2203933002/diff/100001/third_party/WebKit/Source/core/layout/LayoutBox.cpp#newcode2037 third_party/WebKit/Source/core/layout/LayoutBox.cpp:2037: bool LayoutBox::canSkipUnforcedPaintInvalidation() const On 2016/08/03 23:13:15, chrishtr wrote: > ...
4 years, 4 months ago (2016-08-04 00:02:14 UTC) #31
chrishtr
On 2016/08/04 at 00:02:14, wangxianzhu wrote: > https://codereview.chromium.org/2203933002/diff/100001/third_party/WebKit/Source/core/layout/LayoutBox.cpp > File third_party/WebKit/Source/core/layout/LayoutBox.cpp (right): > > https://codereview.chromium.org/2203933002/diff/100001/third_party/WebKit/Source/core/layout/LayoutBox.cpp#newcode2037 ...
4 years, 4 months ago (2016-08-04 00:55:12 UTC) #32
chrishtr
https://codereview.chromium.org/2203933002/diff/100001/third_party/WebKit/Source/core/layout/LayoutBox.cpp File third_party/WebKit/Source/core/layout/LayoutBox.cpp (right): https://codereview.chromium.org/2203933002/diff/100001/third_party/WebKit/Source/core/layout/LayoutBox.cpp#newcode2037 third_party/WebKit/Source/core/layout/LayoutBox.cpp:2037: bool LayoutBox::canSkipUnforcedPaintInvalidation() const On 2016/08/04 at 00:02:14, Xianzhu wrote: ...
4 years, 4 months ago (2016-08-04 00:57:48 UTC) #33
Xianzhu
https://codereview.chromium.org/2203933002/diff/100001/third_party/WebKit/Source/core/layout/LayoutBox.cpp File third_party/WebKit/Source/core/layout/LayoutBox.cpp (right): https://codereview.chromium.org/2203933002/diff/100001/third_party/WebKit/Source/core/layout/LayoutBox.cpp#newcode2037 third_party/WebKit/Source/core/layout/LayoutBox.cpp:2037: bool LayoutBox::canSkipUnforcedPaintInvalidation() const On 2016/08/04 00:57:47, chrishtr wrote: > ...
4 years, 4 months ago (2016-08-04 16:27:02 UTC) #34
chrishtr
https://codereview.chromium.org/2203933002/diff/120001/third_party/WebKit/Source/core/layout/LayoutObject.cpp File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/2203933002/diff/120001/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode1427 third_party/WebKit/Source/core/layout/LayoutObject.cpp:1427: if (canSkipUnforcedPaintInvalidation()) If it was called paintedOutputOfObjectHasNoEffect() I think ...
4 years, 4 months ago (2016-08-04 16:47:54 UTC) #35
Xianzhu
An alternation of this CL is to still use LayoutObject::skipInvalidationWhenLaidOutChildren() from paint invalidation code. It ...
4 years, 4 months ago (2016-08-04 16:48:33 UTC) #36
chrishtr
On 2016/08/04 at 16:48:33, wangxianzhu wrote: > An alternation of this CL is to still ...
4 years, 4 months ago (2016-08-04 16:55:15 UTC) #37
Xianzhu
https://codereview.chromium.org/2203933002/diff/120001/third_party/WebKit/Source/core/layout/LayoutObject.cpp File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/2203933002/diff/120001/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode1427 third_party/WebKit/Source/core/layout/LayoutObject.cpp:1427: if (canSkipUnforcedPaintInvalidation()) On 2016/08/04 16:47:54, chrishtr wrote: > If ...
4 years, 4 months ago (2016-08-04 17:14:38 UTC) #39
Xianzhu
4 years, 4 months ago (2016-08-04 17:14:51 UTC) #40
chrishtr
lgtm
4 years, 4 months ago (2016-08-04 18:20:57 UTC) #44
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/2203933002/160001
4 years, 4 months ago (2016-08-04 23:31:16 UTC) #49
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_rel_ng/builds/255727)
4 years, 4 months ago (2016-08-05 00:45:36 UTC) #51
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/2203933002/160001
4 years, 4 months ago (2016-08-05 00:47:21 UTC) #53
commit-bot: I haz the power
Committed patchset #9 (id:160001)
4 years, 4 months ago (2016-08-05 01:57:55 UTC) #55
commit-bot: I haz the power
Patchset 9 (id:??) landed as https://crrev.com/bdd41f4e784486fd7522793283cb5c376a057f0a Cr-Commit-Position: refs/heads/master@{#409965}
4 years, 4 months ago (2016-08-05 01:59:51 UTC) #57
Xianzhu
4 years, 4 months ago (2016-08-05 17:06:44 UTC) #58
Message was sent while issue was closed.
A revert of this CL (patchset #9 id:160001) has been created in
https://codereview.chromium.org/2211283003/ by wangxianzhu@chromium.org.

The reason for reverting is: With the CL,
LayoutBox::getPaintInvalidationReason() sometimes returns
PaintInvalidationIncremental when paintedOutputOfObjectHasNoEffect() is true..

Powered by Google App Engine
This is Rietveld 408576698