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

Issue 360833002: Divorce PaintInvalidationState from LayoutState (Closed)

Created:
6 years, 5 months ago by leviw_travelin_and_unemployed
Modified:
6 years, 5 months ago
CC:
blink-layers+watch_chromium.org, blink-reviews, blink-reviews-rendering, chromiumbugtracker_adobe.com, krit, eae+blinkwatch, ed+blinkwatch_opera.com, eric.carlson_apple.com, feature-media-reviews_chromium.org, f(malita), fs, gyuyoung.kim_webkit.org, jchaffraix+rendering, kouhei+svg_chromium.org, leviw+renderwatch, pdr., philipj_slow, rwlbuis, rune+blink, Stephen Chennney, zoltan1, Yuta Kitamura
Project:
blink
Visibility:
Public.

Description

Divorce PaintInvalidationState from LayoutState We don't actually benefit from most of the work LayoutState was doing to keep track of offsets during layout. Instead, we were doing all that additional work in both invalidation and layout but only using them for invalidation. The new PaintInvalidationState inherits the fast paint-offset caching from LayoutState, but goes the extra mile to identify new repaint containers, re-enable itself when disabled and an invalidation boundary is crossed, and work for invalidation containers other than the root. LayoutState was also improperly accumulating its layoutOffset using things like scroll offsets, which resulted in incorrect rendering on fast/multicol/shrink-to-column-height-for-pagination.html. This is fixed with this patch because we no longer consider paint-specific offsets at all in LayoutState. BUG=363834 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=177621

Patch Set 1 #

Patch Set 2 : ToT-ed #

Total comments: 13

Patch Set 3 : ToT-ed again! #

Patch Set 4 : Address nits #

Patch Set 5 : ToT-Ed again :) #

Total comments: 10

Patch Set 6 : Address Dan's comments and remove unnecessary ForceHorriblySlowRectMapping #

Patch Set 7 : ToT-ed again #

Patch Set 8 : ToT again... #

Total comments: 5

Patch Set 9 : Address Julien's comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+459 lines, -417 lines) Patch
M LayoutTests/TestExpectations View 1 2 3 4 5 6 1 chunk +3 lines, -0 lines 0 comments Download
M LayoutTests/platform/mac/fast/repaint/reflection-repaint-test-expected.txt View 1 2 3 4 5 1 chunk +2 lines, -2 lines 0 comments Download
M Source/core/core.gypi View 1 2 3 4 5 6 7 1 chunk +2 lines, -0 lines 0 comments Download
M Source/core/frame/FrameView.cpp View 1 2 3 4 5 6 1 chunk +2 lines, -2 lines 0 comments Download
M Source/core/rendering/LayoutState.h View 1 2 3 2 chunks +2 lines, -24 lines 0 comments Download
M Source/core/rendering/LayoutState.cpp View 1 4 chunks +7 lines, -79 lines 0 comments Download
A Source/core/rendering/PaintInvalidationState.h View 1 2 3 4 5 1 chunk +61 lines, -0 lines 0 comments Download
A Source/core/rendering/PaintInvalidationState.cpp View 1 2 3 4 5 6 7 8 1 chunk +137 lines, -0 lines 0 comments Download
M Source/core/rendering/RenderBlock.h View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M Source/core/rendering/RenderBlock.cpp View 1 2 3 4 5 6 7 5 chunks +26 lines, -19 lines 0 comments Download
M Source/core/rendering/RenderBlockFlow.cpp View 1 chunk +0 lines, -3 lines 0 comments Download
M Source/core/rendering/RenderBox.h View 1 2 3 4 5 3 chunks +4 lines, -4 lines 0 comments Download
M Source/core/rendering/RenderBox.cpp View 1 2 3 4 5 6 7 8 chunks +33 lines, -52 lines 0 comments Download
M Source/core/rendering/RenderBoxModelObject.cpp View 1 2 3 4 1 chunk +0 lines, -3 lines 0 comments Download
M Source/core/rendering/RenderFlowThread.cpp View 1 2 3 4 1 chunk +0 lines, -2 lines 0 comments Download
M Source/core/rendering/RenderInline.h View 1 2 3 4 5 2 chunks +5 lines, -5 lines 0 comments Download
M Source/core/rendering/RenderInline.cpp View 1 2 3 4 5 7 chunks +27 lines, -34 lines 0 comments Download
M Source/core/rendering/RenderLayer.h View 1 2 3 4 5 6 1 chunk +3 lines, -3 lines 0 comments Download
M Source/core/rendering/RenderLayer.cpp View 1 2 3 4 5 6 4 chunks +9 lines, -22 lines 0 comments Download
M Source/core/rendering/RenderListBox.h View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/RenderListBox.cpp View 1 2 3 4 5 1 chunk +3 lines, -5 lines 0 comments Download
M Source/core/rendering/RenderListItem.cpp View 1 2 3 4 5 6 7 1 chunk +0 lines, -3 lines 0 comments Download
M Source/core/rendering/RenderMediaControlElements.cpp View 1 chunk +0 lines, -1 line 0 comments Download
M Source/core/rendering/RenderObject.h View 1 2 3 4 5 6 7 7 chunks +11 lines, -10 lines 0 comments Download
M Source/core/rendering/RenderObject.cpp View 1 2 3 4 5 6 7 11 chunks +19 lines, -19 lines 0 comments Download
M Source/core/rendering/RenderReplaced.h View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/RenderReplaced.cpp View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M Source/core/rendering/RenderTableCell.h View 1 2 3 4 5 1 chunk +2 lines, -2 lines 0 comments Download
M Source/core/rendering/RenderTableCell.cpp View 1 2 3 4 5 6 7 8 2 chunks +6 lines, -7 lines 0 comments Download
M Source/core/rendering/RenderTableCol.h View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/RenderTableCol.cpp View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M Source/core/rendering/RenderText.h View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/RenderText.cpp View 1 2 3 4 5 2 chunks +3 lines, -3 lines 0 comments Download
M Source/core/rendering/RenderView.h View 1 2 3 4 5 5 chunks +11 lines, -25 lines 0 comments Download
M Source/core/rendering/RenderView.cpp View 1 2 3 4 5 5 chunks +5 lines, -6 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGBlock.h View 1 2 3 4 5 1 chunk +4 lines, -4 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGBlock.cpp View 1 2 3 4 5 3 chunks +9 lines, -9 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGContainer.cpp View 1 chunk +0 lines, -3 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGForeignObject.h View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/svg/RenderSVGForeignObject.cpp View 1 2 3 4 5 2 chunks +2 lines, -3 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGGradientStop.h View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/svg/RenderSVGHiddenContainer.h View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/svg/RenderSVGInline.h View 1 2 3 4 5 1 chunk +3 lines, -3 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGInline.cpp View 1 2 3 4 5 1 chunk +6 lines, -6 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGModelObject.h View 1 2 3 4 5 2 chunks +4 lines, -4 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGModelObject.cpp View 1 2 3 4 5 4 chunks +13 lines, -13 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGRoot.h View 1 2 3 4 5 1 chunk +3 lines, -3 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGRoot.cpp View 1 2 3 4 5 4 chunks +6 lines, -9 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGText.h View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/svg/RenderSVGText.cpp View 1 2 3 4 5 1 chunk +2 lines, -2 lines 0 comments Download
M Source/core/rendering/svg/SVGRenderSupport.h View 1 2 3 4 5 2 chunks +4 lines, -3 lines 0 comments Download
M Source/core/rendering/svg/SVGRenderSupport.cpp View 1 2 3 4 5 3 chunks +6 lines, -6 lines 0 comments Download

Messages

Total messages: 10 (0 generated)
Julien - ping for review
Some early comments. https://codereview.chromium.org/360833002/diff/20001/Source/core/rendering/InvalidationTreeWalkState.cpp File Source/core/rendering/InvalidationTreeWalkState.cpp (right): https://codereview.chromium.org/360833002/diff/20001/Source/core/rendering/InvalidationTreeWalkState.cpp#newcode72 Source/core/rendering/InvalidationTreeWalkState.cpp:72: , m_cachedOffsetsEnabled(false) Disabling cachedOffset as part ...
6 years, 5 months ago (2014-07-02 00:27:28 UTC) #1
leviw_travelin_and_unemployed
https://codereview.chromium.org/360833002/diff/20001/Source/core/rendering/InvalidationTreeWalkState.cpp File Source/core/rendering/InvalidationTreeWalkState.cpp (right): https://codereview.chromium.org/360833002/diff/20001/Source/core/rendering/InvalidationTreeWalkState.cpp#newcode72 Source/core/rendering/InvalidationTreeWalkState.cpp:72: , m_cachedOffsetsEnabled(false) On 2014/07/02 00:27:28, Julien Chaffraix - PST ...
6 years, 5 months ago (2014-07-02 00:41:02 UTC) #2
leviw_travelin_and_unemployed
6 years, 5 months ago (2014-07-02 18:18:09 UTC) #3
dsinclair
https://codereview.chromium.org/360833002/diff/80001/Source/core/core.gypi File Source/core/core.gypi (right): https://codereview.chromium.org/360833002/diff/80001/Source/core/core.gypi#newcode1505 Source/core/core.gypi:1505: 'rendering/InvalidationTreeWalkState.h', Should these be below the rendering/Inline* entries? https://codereview.chromium.org/360833002/diff/80001/Source/core/rendering/InvalidationTreeWalkState.cpp ...
6 years, 5 months ago (2014-07-02 18:48:24 UTC) #4
Julien - ping for review
Much better, lgtm https://codereview.chromium.org/360833002/diff/20001/Source/core/rendering/InvalidationTreeWalkState.cpp File Source/core/rendering/InvalidationTreeWalkState.cpp (right): https://codereview.chromium.org/360833002/diff/20001/Source/core/rendering/InvalidationTreeWalkState.cpp#newcode75 Source/core/rendering/InvalidationTreeWalkState.cpp:75: { } On 2014/07/02 00:41:02, leviw ...
6 years, 5 months ago (2014-07-07 22:10:00 UTC) #5
leviw_travelin_and_unemployed
The CQ bit was checked by leviw@chromium.org
6 years, 5 months ago (2014-07-08 00:53:46 UTC) #6
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/leviw@chromium.org/360833002/160001
6 years, 5 months ago (2014-07-08 00:54:31 UTC) #7
commit-bot: I haz the power
Change committed as 177621
6 years, 5 months ago (2014-07-08 00:58:25 UTC) #8
Yuta Kitamura
A revert of this CL has been created in https://codereview.chromium.org/377123002/ by yutak@chromium.org. The reason for ...
6 years, 5 months ago (2014-07-09 02:53:16 UTC) #9
Yuta Kitamura
6 years, 5 months ago (2014-07-09 04:31:38 UTC) #10
Message was sent while issue was closed.
Second try of revert:
https://codereview.chromium.org/379073002/

Powered by Google App Engine
This is Rietveld 408576698