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

Issue 2208463003: First step of PaintInvalidator implementation (Closed)

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

First step of PaintInvalidator implementation This step moves some paint invalidation code from layout/ to paint/*PaintInvalidator. Current status: - Spv1 and spv2 share code in paint/*PaintInvalidator, but uses separate tree walks and geometry mappers. - Paint invalidation for spv2 is not complete yet. - Spv2 temporarily uses slow-path LayoutObject mapper. Paint invalidation behavior of spv1 is unchanged, except the following for better code organization: - PaintInvalidationBackgroundObscurationChange now has higher priority than some other reasons. This is not a real behavior change for end users. - For forced paint invalidation on paint offset change (will be removed soon) ObjectPaintInvalidator::invalidatePaintIfNeeded() returns PaintInvalidationLocationChange instead of PaintInvalidationNone. This affects one layout test with more object paint invalidations of first lines of LayoutBlockFlows. Next steps: - Complete paint/*PaintInvalidator; - Use GeometryMapper for Spv2; - Let the new code path (new tree walk, GeometryMapper) work for spv1 under slimmingPaintInvalidation flag; - Enable slimmingPaintInvalidation for spv1; BUG=510908 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/35ae155e46207526e3d178afcdf9e23e48bbe098 Cr-Commit-Position: refs/heads/master@{#411348}

Patch Set 1 #

Patch Set 2 : - #

Patch Set 3 : - #

Patch Set 4 : - #

Patch Set 5 : - #

Patch Set 6 : - #

Patch Set 7 : - #

Patch Set 8 : - #

Total comments: 22

Patch Set 9 : - #

Patch Set 10 : Rebase #

Patch Set 11 : - #

Total comments: 10

Patch Set 12 : Table and HTMLCanvas #

Total comments: 2

Patch Set 13 : Scroll #

Patch Set 14 : - #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1325 lines, -788 lines) Patch
D third_party/WebKit/LayoutTests/platform/android/svg/text/text-rescale-expected.txt View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -116 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/svg/text/text-rescale-expected.txt View 1 2 3 4 5 6 7 8 3 chunks +12 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/svg/text/text-rescale-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +12 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/svg/text/text-rescale-expected.txt View 1 2 3 4 5 6 7 8 3 chunks +12 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/core.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 6 chunks +12 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 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlow.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp View 3 4 5 2 chunks +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp View 1 2 3 4 5 1 chunk +1 line, -12 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBox.h View 1 2 3 4 5 6 7 8 7 chunks +11 lines, -27 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBox.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 7 chunks +10 lines, -233 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutHTMLCanvas.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutHTMLCanvas.cpp View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +3 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.h View 1 2 3 4 5 6 7 8 9 10 11 12 chunks +35 lines, -59 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 chunks +20 lines, -204 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutTable.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutTable.cpp View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +9 lines, -48 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutTableBoxComponent.h View 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/PaintInvalidationState.h View 1 2 3 4 5 6 7 8 9 10 5 chunks +16 lines, -13 lines 0 comments Download
M third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp View 1 2 3 4 5 6 7 8 5 chunks +28 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGModelObject.h View 1 2 3 4 5 6 7 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGModelObject.cpp View 1 2 3 4 5 6 7 2 chunks +3 lines, -11 lines 0 comments Download
A third_party/WebKit/Source/core/paint/BlockFlowPaintInvalidator.h View 1 chunk +31 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/BlockFlowPaintInvalidator.cpp View 1 2 3 4 5 1 chunk +30 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/BoxPaintInvalidator.h View 1 chunk +44 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/BoxPaintInvalidator.cpp View 1 2 3 4 5 6 7 8 1 chunk +278 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/HTMLCanvasPaintInvalidator.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +31 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/HTMLCanvasPaintInvalidator.cpp View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +28 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.h View 1 2 3 4 5 1 chunk +50 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/ObjectPaintInvalidator.cpp View 1 2 3 4 5 6 7 8 1 chunk +187 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintInvalidationCapableScrollableArea.h View 2 chunks +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintInvalidationCapableScrollableArea.cpp View 1 2 3 4 5 6 7 6 chunks +22 lines, -14 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintInvalidator.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +50 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintInvalidator.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +196 lines, -12 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayerPainterTest.cpp View 1 2 chunks +8 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp View 1 2 3 4 5 3 chunks +11 lines, -11 lines 0 comments Download
A third_party/WebKit/Source/core/paint/SVGModelObjectPaintInvalidator.h View 1 2 3 4 5 6 7 1 chunk +31 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/SVGModelObjectPaintInvalidator.cpp View 1 2 3 4 5 6 7 1 chunk +25 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/TablePaintInvalidator.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +31 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/TablePaintInvalidator.cpp View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +68 lines, -0 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 82 (62 generated)
Xianzhu
4 years, 4 months ago (2016-08-03 17:30:55 UTC) #14
Xianzhu
When working on follow-up CL (using *PaintInvalidator from spv1 code) based on this one, I ...
4 years, 4 months ago (2016-08-03 22:28:21 UTC) #21
chrishtr
On 2016/08/03 at 22:28:21, wangxianzhu wrote: > When working on follow-up CL (using *PaintInvalidator from ...
4 years, 4 months ago (2016-08-04 21:46:35 UTC) #22
Xianzhu
It's ready for review now. Updated description for the current status. Ptal.
4 years, 4 months ago (2016-08-08 16:56:02 UTC) #38
chrishtr
This is a great patch. Sending first round of comments. https://codereview.chromium.org/2208463003/diff/140001/third_party/WebKit/LayoutTests/fast/repaint/resources/text-based-repaint.js File third_party/WebKit/LayoutTests/fast/repaint/resources/text-based-repaint.js (right): https://codereview.chromium.org/2208463003/diff/140001/third_party/WebKit/LayoutTests/fast/repaint/resources/text-based-repaint.js#newcode12 ...
4 years, 4 months ago (2016-08-09 23:47:31 UTC) #40
Xianzhu
https://codereview.chromium.org/2208463003/diff/140001/third_party/WebKit/LayoutTests/fast/repaint/resources/text-based-repaint.js File third_party/WebKit/LayoutTests/fast/repaint/resources/text-based-repaint.js (right): https://codereview.chromium.org/2208463003/diff/140001/third_party/WebKit/LayoutTests/fast/repaint/resources/text-based-repaint.js#newcode12 third_party/WebKit/LayoutTests/fast/repaint/resources/text-based-repaint.js:12: // internals.runtimeFlags.slimmingPaintUnderInvalidationCheckingEnabled = true; On 2016/08/09 23:47:30, chrishtr wrote: ...
4 years, 4 months ago (2016-08-10 16:25:01 UTC) #42
chrishtr
could you explain the changes to the layout tests also? https://codereview.chromium.org/2208463003/diff/140001/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp File third_party/WebKit/Source/core/paint/PaintInvalidator.cpp (right): https://codereview.chromium.org/2208463003/diff/140001/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp#newcode22 ...
4 years, 4 months ago (2016-08-10 20:47:33 UTC) #54
chrishtr
could you explain the changes to the layout tests also?
4 years, 4 months ago (2016-08-10 20:47:37 UTC) #55
Xianzhu
https://codereview.chromium.org/2208463003/diff/140001/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp File third_party/WebKit/Source/core/paint/PaintInvalidator.cpp (right): https://codereview.chromium.org/2208463003/diff/140001/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp#newcode22 third_party/WebKit/Source/core/paint/PaintInvalidator.cpp:22: if (object.isBox()) On 2016/08/10 20:47:32, chrishtr wrote: > On ...
4 years, 4 months ago (2016-08-10 22:16:43 UTC) #57
Xianzhu
On 2016/08/10 20:47:37, chrishtr wrote: > could you explain the changes to the layout tests ...
4 years, 4 months ago (2016-08-10 22:21:02 UTC) #60
chrishtr
https://codereview.chromium.org/2208463003/diff/200001/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp File third_party/WebKit/Source/core/paint/PaintInvalidator.cpp (right): https://codereview.chromium.org/2208463003/diff/200001/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp#newcode94 third_party/WebKit/Source/core/paint/PaintInvalidator.cpp:94: // because it doesn't establish stacking context for stacked ...
4 years, 4 months ago (2016-08-10 23:23:23 UTC) #61
chrishtr
lgtm LGTM modulo that comment.
4 years, 4 months ago (2016-08-10 23:24:46 UTC) #62
Xianzhu
https://codereview.chromium.org/2208463003/diff/200001/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp File third_party/WebKit/Source/core/paint/PaintInvalidator.cpp (right): https://codereview.chromium.org/2208463003/diff/200001/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp#newcode94 third_party/WebKit/Source/core/paint/PaintInvalidator.cpp:94: // because it doesn't establish stacking context for stacked ...
4 years, 4 months ago (2016-08-10 23:48:31 UTC) #63
chrishtr
On 2016/08/10 at 23:48:31, wangxianzhu wrote: > https://codereview.chromium.org/2208463003/diff/200001/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp > File third_party/WebKit/Source/core/paint/PaintInvalidator.cpp (right): > > https://codereview.chromium.org/2208463003/diff/200001/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp#newcode94 ...
4 years, 4 months ago (2016-08-11 00:13:14 UTC) #64
chrishtr
https://codereview.chromium.org/2208463003/diff/240001/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp File third_party/WebKit/Source/core/paint/PaintInvalidator.cpp (right): https://codereview.chromium.org/2208463003/diff/240001/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp#newcode57 third_party/WebKit/Source/core/paint/PaintInvalidator.cpp:57: point = object.localToAncestorPoint(point, context.paintInvalidationContainer, TraverseDocumentBoundaries); I think you'll need ...
4 years, 4 months ago (2016-08-11 00:14:51 UTC) #65
Xianzhu
https://codereview.chromium.org/2208463003/diff/240001/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp File third_party/WebKit/Source/core/paint/PaintInvalidator.cpp (right): https://codereview.chromium.org/2208463003/diff/240001/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp#newcode57 third_party/WebKit/Source/core/paint/PaintInvalidator.cpp:57: point = object.localToAncestorPoint(point, context.paintInvalidationContainer, TraverseDocumentBoundaries); On 2016/08/11 00:14:50, chrishtr ...
4 years, 4 months ago (2016-08-11 01:27:08 UTC) #68
chrishtr
lgtm
4 years, 4 months ago (2016-08-11 01:27:33 UTC) #69
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/2208463003/280001
4 years, 4 months ago (2016-08-11 15:43:10 UTC) #78
commit-bot: I haz the power
Committed patchset #14 (id:280001)
4 years, 4 months ago (2016-08-11 16:20:57 UTC) #80
commit-bot: I haz the power
4 years, 4 months ago (2016-08-11 16:23:15 UTC) #82
Message was sent while issue was closed.
Patchset 14 (id:??) landed as
https://crrev.com/35ae155e46207526e3d178afcdf9e23e48bbe098
Cr-Commit-Position: refs/heads/master@{#411348}

Powered by Google App Engine
This is Rietveld 408576698