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

Issue 1804963005: Avoid paintInvalidationContainer parameter of invalidatePaintIfNeeded() (Closed)

Created:
4 years, 9 months ago by Xianzhu
Modified:
4 years, 9 months ago
Reviewers:
chrishtr
CC:
blink-reviews, blink-reviews-layout_chromium.org, blink-reviews-paint_chromium.org, chromium-reviews, dshwang, krit, eae+blinkwatch, f(malita), fs, gyuyoung2, jchaffraix+rendering, kouhei+svg_chromium.org, leviw+renderwatch, pdr+svgwatchlist_chromium.org, pdr+renderingwatchlist_chromium.org, rwlbuis, Stephen Chennney, 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

Avoid paintInvalidationContainer parameter of invalidatePaintIfNeeded() Change the original flow: invalidateTreeIfNeeded(parentPaintInvalidationState) { newPaintInvalidationContainer = ...; invalidatePaintIfNeeded(parentPaintInvalidationState, newPaintInvalidationContainer); PaintInvalidationState childPaintInvalidationState(parentPaintInvalidationState); invalidatePaintOfSubtreesIfNeeded(childPaintinvalidationState); } to: invalidateTreeIfNeeded(parentPaintInvalidationState) { newPaintInvalidationState(parentPaintInvalidationState); // Which updates paintInvalidationContainer, but not geometry info for children. invalidatePaintIfNeeded(newPaintInvalidationState); newPaintInvalidationState.updatePaintOffsetAndClipForChildren(); invalidatePaintOfSubtreesIfNeeded(newPaintInvalidationState); } This is like how PaintPropertyTreeBuilderContexts are inherited and updated: copy from parent first, then update in multiple steps. We may use the state for different purposes after different steps. The benefits are: - Avoid additional paintInvalidationContainer in invalidatePaintIfNeeded() by letting paintInvalidationState parameter contain the correct paintInvalidationContainer for the current object; - We move the logic to find the paintInvalidationContainer from LayoutObjects into PaintInvalidationState which knows more information; - This is a preparation for the next step works to avoid some ForcedHorriblySlowRectMappings because we need to track correct paintInvalidationContainer (for normal objects and stacked objects) in PaintInvalidationState, instead of being passed in from LayoutBoxModelObject::invalidateTreeIfNeeded(); BUG=591199 Committed: https://crrev.com/468ca56ab508342df50c7ee16ac4f4e767a1614b Cr-Commit-Position: refs/heads/master@{#381875}

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Total comments: 2

Patch Set 5 : #

Patch Set 6 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+239 lines, -174 lines) Patch
M third_party/WebKit/Source/core/frame/FrameView.cpp View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlock.h View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlock.cpp View 2 chunks +2 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlow.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp View 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBox.h View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBox.cpp View 1 2 3 4 5 2 chunks +4 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBoxModelObject.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp View 1 2 3 4 2 chunks +12 lines, -13 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutEmbeddedObject.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutEmbeddedObject.cpp View 1 chunk +2 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutHTMLCanvas.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutHTMLCanvas.cpp View 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutMultiColumnSpannerPlaceholder.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutMultiColumnSpannerPlaceholder.cpp View 1 2 3 1 chunk +3 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.h View 1 2 3 4 3 chunks +4 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.cpp View 1 2 3 4 5 6 chunks +10 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutPart.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutPart.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutTable.h View 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutTable.cpp View 1 chunk +3 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutView.h View 1 2 chunks +1 line, -27 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutView.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/PaintInvalidationState.h View 1 2 3 4 5 4 chunks +53 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp View 1 2 3 4 5 5 chunks +88 lines, -49 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGBlock.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGBlock.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGInline.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGInline.cpp View 1 chunk +8 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGModelObject.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGModelObject.cpp View 2 chunks +6 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGText.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGText.cpp View 1 1 chunk +9 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintInvalidationCapableScrollableArea.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/PaintInvalidationCapableScrollableArea.cpp View 4 chunks +10 lines, -8 lines 0 comments Download

Messages

Total messages: 25 (15 generated)
Xianzhu
4 years, 9 months ago (2016-03-17 16:49:41 UTC) #6
chrishtr
lgtm https://codereview.chromium.org/1804963005/diff/60001/third_party/WebKit/Source/core/layout/PaintInvalidationState.h File third_party/WebKit/Source/core/layout/PaintInvalidationState.h (right): https://codereview.chromium.org/1804963005/diff/60001/third_party/WebKit/Source/core/layout/PaintInvalidationState.h#newcode96 third_party/WebKit/Source/core/layout/PaintInvalidationState.h:96: const LayoutObject& m_layoutObject; This name is not so ...
4 years, 9 months ago (2016-03-17 20:44:54 UTC) #8
Xianzhu
https://codereview.chromium.org/1804963005/diff/60001/third_party/WebKit/Source/core/layout/PaintInvalidationState.h File third_party/WebKit/Source/core/layout/PaintInvalidationState.h (right): https://codereview.chromium.org/1804963005/diff/60001/third_party/WebKit/Source/core/layout/PaintInvalidationState.h#newcode96 third_party/WebKit/Source/core/layout/PaintInvalidationState.h:96: const LayoutObject& m_layoutObject; On 2016/03/17 20:44:54, chrishtr wrote: > ...
4 years, 9 months ago (2016-03-17 21:11:43 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1804963005/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1804963005/80001
4 years, 9 months ago (2016-03-17 21:13:09 UTC) #12
commit-bot: I haz the power
Try jobs failed on following builders: win8_chromium_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win8_chromium_ng/builds/119018)
4 years, 9 months ago (2016-03-17 22:28:28 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1804963005/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1804963005/100001
4 years, 9 months ago (2016-03-17 22:59:50 UTC) #17
commit-bot: I haz the power
Try jobs failed on following builders: linux_android_rel_ng on tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_android_rel_ng/builds/40009)
4 years, 9 months ago (2016-03-18 00:56:26 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1804963005/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1804963005/100001
4 years, 9 months ago (2016-03-18 01:36:01 UTC) #21
commit-bot: I haz the power
Committed patchset #6 (id:100001)
4 years, 9 months ago (2016-03-18 02:37:46 UTC) #23
commit-bot: I haz the power
4 years, 9 months ago (2016-03-18 02:39:00 UTC) #25
Message was sent while issue was closed.
Patchset 6 (id:??) landed as
https://crrev.com/468ca56ab508342df50c7ee16ac4f4e767a1614b
Cr-Commit-Position: refs/heads/master@{#381875}

Powered by Google App Engine
This is Rietveld 408576698