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

Issue 2669003002: Optimize outline paint invalidation (Closed)

Created:
3 years, 10 months ago by Xianzhu
Modified:
3 years, 10 months ago
Reviewers:
chrishtr, wkorman
CC:
blink-reviews, blink-reviews-layout_chromium.org, blink-reviews-paint_chromium.org, chromium-reviews, dshwang, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Optimize outline paint invalidation Shape of an outline can be affected by layout/style change of descendants. Previously we assumed that an outline will change when an object having outline is checked for paint invalidation for any reason, which covered all cases of outline changes, but also produced over invalidations, which is especially bad when we move caret paint invalidation into paint invalidation stage: a blinking caret will cause full paint invalidation of the edit box having focus ring. Now tighten the condition. If a box's outline is not affected by descendants, don't do full paint invalidation. TEST=paint/invalidation/outline-*.html CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2669003002 Cr-Commit-Position: refs/heads/master@{#448079} Committed: https://chromium.googlesource.com/chromium/src/+/2b30e8534ceb11cd138fa1360e7ae6efc6b4c046

Patch Set 1 #

Patch Set 2 : Rebaseline #

Total comments: 2

Patch Set 3 : - #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+248 lines, -369 lines) Patch
M third_party/WebKit/LayoutTests/TestExpectations View 1 2 1 chunk +2 lines, -2 lines 2 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/border-radius-with-outline-expected.txt View 2 chunks +2 lines, -2 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/outline-become-affected-by-descendant.html View 1 chunk +11 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/outline-become-affected-by-descendant-expected.txt View 1 chunk +33 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/outline-become-not-affected-by-descendant.html View 1 chunk +11 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/outline-become-not-affected-by-descendant-expected.txt View 1 chunk +33 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/outline-child-repaint-expected.txt View 2 chunks +3 lines, -3 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/outline-inset-expected.txt View 1 3 chunks +4 lines, -4 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/outline-not-affected-by-descendant.html View 1 chunk +11 lines, -0 lines 0 comments Download
A + third_party/WebKit/LayoutTests/paint/invalidation/outline-not-affected-by-descendant-expected.txt View 1 chunk +5 lines, -5 lines 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/outline-repaint-glitch-expected.txt View 1 3 chunks +4 lines, -4 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/android/paint/invalidation/4776765-expected.txt View 1 1 chunk +0 lines, -27 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/android/paint/invalidation/delete-into-nested-block-expected.txt View 1 1 chunk +0 lines, -56 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/android/paint/invalidation/outline-inset-expected.txt View 1 1 chunk +0 lines, -25 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/android/paint/invalidation/outline-repaint-glitch-expected.txt View 1 1 chunk +0 lines, -25 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/4776765-expected.txt View 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/delete-into-nested-block-expected.txt View 2 chunks +0 lines, -9 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/outline-inset-expected.txt View 3 chunks +4 lines, -4 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/outline-repaint-glitch-expected.txt View 3 chunks +4 lines, -4 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/linux/virtual/spv2/fast/repaint/delete-into-nested-block-expected.txt View 1 1 chunk +0 lines, -55 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/4776765-expected.txt View 1 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/delete-into-nested-block-expected.txt View 1 2 chunks +0 lines, -9 lines 0 comments Download
A third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/outline-become-affected-by-descendant-expected.txt View 1 1 chunk +33 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/outline-become-not-affected-by-descendant-expected.txt View 1 1 chunk +33 lines, -0 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/mac/virtual/spv2/fast/repaint/delete-into-nested-block-expected.txt View 1 1 chunk +0 lines, -55 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/4776765-expected.txt View 1 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/delete-into-nested-block-expected.txt View 1 2 chunks +0 lines, -9 lines 0 comments Download
D third_party/WebKit/LayoutTests/platform/win/virtual/spv2/fast/repaint/delete-into-nested-block-expected.txt View 1 1 chunk +0 lines, -55 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBox.h View 1 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBox.cpp View 1 2 chunks +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.h View 6 chunks +31 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.cpp View 1 chunk +7 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp View 1 2 1 chunk +7 lines, -7 lines 0 comments Download

Messages

Total messages: 25 (18 generated)
Xianzhu
3 years, 10 months ago (2017-02-01 21:22:36 UTC) #5
chrishtr
https://codereview.chromium.org/2669003002/diff/20001/third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp File third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp (right): https://codereview.chromium.org/2669003002/diff/20001/third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp#newcode492 third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp:492: // simplicity, just force full paint invalidation if this ...
3 years, 10 months ago (2017-02-03 02:00:11 UTC) #13
Xianzhu
https://codereview.chromium.org/2669003002/diff/20001/third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp File third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp (right): https://codereview.chromium.org/2669003002/diff/20001/third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp#newcode492 third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp:492: // simplicity, just force full paint invalidation if this ...
3 years, 10 months ago (2017-02-03 04:38:35 UTC) #15
Xianzhu
https://codereview.chromium.org/2669003002/diff/40001/third_party/WebKit/LayoutTests/TestExpectations File third_party/WebKit/LayoutTests/TestExpectations (right): https://codereview.chromium.org/2669003002/diff/40001/third_party/WebKit/LayoutTests/TestExpectations#newcode107 third_party/WebKit/LayoutTests/TestExpectations:107: crbug.com/636271 virtual/stable/paint/invalidation/resize-iframe-text.html [ Pass Failure Crash ] This CL ...
3 years, 10 months ago (2017-02-03 04:40:46 UTC) #17
wkorman
lgtm https://codereview.chromium.org/2669003002/diff/40001/third_party/WebKit/LayoutTests/TestExpectations File third_party/WebKit/LayoutTests/TestExpectations (right): https://codereview.chromium.org/2669003002/diff/40001/third_party/WebKit/LayoutTests/TestExpectations#newcode107 third_party/WebKit/LayoutTests/TestExpectations:107: crbug.com/636271 virtual/stable/paint/invalidation/resize-iframe-text.html [ Pass Failure Crash ] On ...
3 years, 10 months ago (2017-02-03 18:30:38 UTC) #20
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/2669003002/40001
3 years, 10 months ago (2017-02-03 21:49:40 UTC) #22
commit-bot: I haz the power
3 years, 10 months ago (2017-02-03 21:57:40 UTC) #25
Message was sent while issue was closed.
Committed patchset #3 (id:40001) as
https://chromium.googlesource.com/chromium/src/+/2b30e8534ceb11cd138fa1360e7a...

Powered by Google App Engine
This is Rietveld 408576698