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

Issue 204843002: Reduce invalidation on children-needs-layout containers (Closed)

Created:
6 years, 9 months ago by Julien - ping for review
Modified:
6 years, 5 months ago
CC:
dsinclair, bemjb+rendering_chromium.org, blink-reviews, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr., rune+blink, zoltan1
Visibility:
Public.

Description

Reduce invalidation on children-needs-layout containers The concept of this patch is to detect cases where containers don't need to generate invalidation because they don't need layout themselves (only need layout because of their children) and don't have anything that warrant an invalidation (e.g. a order, an outline, a background, basically anything that would require the difference in size to be invalidated). This change removes a lot of invalidation in our tests (yay!), a good chunk is due to not invalidating when body's size change but there are still some room for improvements. The new test is a variation of table-section-repaint.html that checks that we correctly handle block flow shifts. BUG=313447 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=177329

Patch Set 1 #

Total comments: 2

Patch Set 2 : Updated patch after Levi's comment + the bots failures #

Total comments: 4

Patch Set 3 : Updated after Levi's review. #

Total comments: 8

Patch Set 4 : Updated patch after eseidel and pdr reviews #

Patch Set 5 : Rebaselined patch. #

Patch Set 6 : Rebaselined and updated awesomeness! #

Total comments: 4

Patch Set 7 : Rebaselined change with all(?) the appropriate baselines #

Patch Set 8 : Investigated and added 2 missing expectation updates #

Patch Set 9 : Rebaselined another time. #

Patch Set 10 : And more and more... #

Unified diffs Side-by-side diffs Delta from patch set Stats (+180 lines, -81 lines) Patch
M LayoutTests/TestExpectations View 1 2 3 4 5 6 7 8 9 1 chunk +39 lines, -0 lines 0 comments Download
M LayoutTests/compositing/repaint/resize-repaint-expected.txt View 1 2 3 4 5 6 7 1 chunk +0 lines, -4 lines 0 comments Download
M LayoutTests/fast/box-shadow/negative-shadow-box-expand-expected.txt View 1 2 3 4 5 6 1 chunk +1 line, -3 lines 0 comments Download
M LayoutTests/fast/box-shadow/negative-shadow-box-shrink-expected.txt View 1 2 3 4 5 6 1 chunk +1 line, -3 lines 0 comments Download
M LayoutTests/fast/repaint/add-table-overpaint-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -3 lines 0 comments Download
M LayoutTests/fast/repaint/background-generated-expected.txt View 1 2 3 4 5 6 1 chunk +1 line, -3 lines 0 comments Download
A LayoutTests/fast/repaint/block-shift-repaint.html View 1 2 3 4 5 1 chunk +58 lines, -0 lines 0 comments Download
A + LayoutTests/fast/repaint/block-shift-repaint-expected.txt View 1 2 3 4 5 6 1 chunk +13 lines, -6 lines 0 comments Download
M LayoutTests/fast/repaint/border-radius-repaint-2-expected.txt View 1 2 3 4 5 6 1 chunk +1 line, -2 lines 0 comments Download
M LayoutTests/fast/repaint/box-shadow-inset-repaint-expected.txt View 1 2 3 4 5 6 1 chunk +1 line, -3 lines 0 comments Download
M LayoutTests/fast/repaint/content-into-overflow-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M LayoutTests/fast/repaint/intermediate-layout-position-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -2 lines 0 comments Download
M LayoutTests/fast/repaint/invalidation-with-zero-size-object-expected.txt View 1 2 3 4 5 6 1 chunk +1 line, -3 lines 0 comments Download
M LayoutTests/fast/repaint/overflow-into-content-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M LayoutTests/fast/repaint/repaint-table-row-in-composited-document-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M LayoutTests/fast/repaint/table-section-repaint-expected.txt View 1 2 3 4 5 6 1 chunk +8 lines, -3 lines 0 comments Download
M LayoutTests/fast/repaint/window-resize-percent-html-expected.txt View 1 2 3 4 5 6 2 chunks +0 lines, -4 lines 0 comments Download
M LayoutTests/fast/repaint/window-resize-viewport-percent-expected.txt View 1 2 3 4 5 6 2 chunks +0 lines, -4 lines 0 comments Download
M LayoutTests/platform/linux/fast/repaint/block-no-inflow-children-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M LayoutTests/platform/linux/fast/repaint/border-fit-lines-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M LayoutTests/platform/linux/fast/repaint/bugzilla-5699-expected.txt View 1 2 3 4 5 6 1 chunk +1 line, -3 lines 0 comments Download
M LayoutTests/platform/linux/fast/repaint/list-marker-2-expected.txt View 1 2 3 4 5 6 1 chunk +1 line, -2 lines 0 comments Download
M LayoutTests/platform/linux/fast/repaint/make-children-non-inline-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M LayoutTests/platform/linux/fast/repaint/outline-change-invalidation-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -2 lines 0 comments Download
M LayoutTests/platform/linux/fast/repaint/repaint-resized-overflow-expected.txt View 1 2 3 4 5 6 1 chunk +1 line, -4 lines 0 comments Download
M LayoutTests/platform/linux/fast/repaint/selection-clear-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M LayoutTests/platform/linux/fast/repaint/stacked-diacritics-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M LayoutTests/platform/linux/fast/repaint/table-cell-move-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M LayoutTests/platform/linux/fast/repaint/table-collapsed-border-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -7 lines 0 comments Download
M LayoutTests/platform/linux/fast/repaint/table-shrink-row-repaint-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M LayoutTests/platform/linux/fast/repaint/vertical-align-length1-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M LayoutTests/platform/linux/fast/repaint/vertical-align1-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M LayoutTests/platform/linux/fast/repaint/vertical-align2-expected.txt View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M LayoutTests/platform/linux/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt View 1 2 3 4 5 6 1 chunk +1 line, -2 lines 0 comments Download
M LayoutTests/platform/linux/svg/custom/use-setAttribute-crash-expected.txt View 1 2 3 4 5 6 1 chunk +1 line, -2 lines 0 comments Download
M Source/core/rendering/RenderBox.cpp View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/RenderObject.h View 1 2 3 4 5 6 7 8 6 chunks +17 lines, -2 lines 0 comments Download
M Source/core/rendering/RenderObject.cpp View 1 2 3 4 5 6 7 8 3 chunks +21 lines, -0 lines 0 comments Download
M Source/core/rendering/RenderTable.cpp View 1 2 3 4 5 6 7 8 2 chunks +8 lines, -0 lines 0 comments Download
M Source/core/rendering/style/RenderStyle.h View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -0 lines 0 comments Download

Messages

Total messages: 28 (0 generated)
Julien - ping for review
We discussed this approach with Eric based on an earlier patch (https://codereview.chromium.org/171843005). The visual results ...
6 years, 9 months ago (2014-03-19 17:35:44 UTC) #1
leviw_travelin_and_unemployed
https://codereview.chromium.org/204843002/diff/1/Source/core/rendering/LayoutRepainter.cpp File Source/core/rendering/LayoutRepainter.cpp (right): https://codereview.chromium.org/204843002/diff/1/Source/core/rendering/LayoutRepainter.cpp#newcode58 Source/core/rendering/LayoutRepainter.cpp:58: if (!m_object.needsLayoutBecauseOfChildren() && m_object.hasNothingToPaint()) Why bother with the hasNothingToPaint ...
6 years, 9 months ago (2014-03-19 17:47:31 UTC) #2
Julien - ping for review
https://codereview.chromium.org/204843002/diff/1/Source/core/rendering/LayoutRepainter.cpp File Source/core/rendering/LayoutRepainter.cpp (right): https://codereview.chromium.org/204843002/diff/1/Source/core/rendering/LayoutRepainter.cpp#newcode58 Source/core/rendering/LayoutRepainter.cpp:58: if (!m_object.needsLayoutBecauseOfChildren() && m_object.hasNothingToPaint()) On 2014/03/19 17:47:32, Levi wrote: ...
6 years, 9 months ago (2014-03-20 01:30:32 UTC) #3
leviw_travelin_and_unemployed
LGTM with one nit https://codereview.chromium.org/204843002/diff/20001/LayoutTests/TestExpectations File LayoutTests/TestExpectations (right): https://codereview.chromium.org/204843002/diff/20001/LayoutTests/TestExpectations#newcode428 LayoutTests/TestExpectations:428: crbug.com/313447 [ Mac ] fast/repaint/table-cell-move.html ...
6 years, 9 months ago (2014-03-20 21:12:13 UTC) #4
Julien - ping for review
https://codereview.chromium.org/204843002/diff/20001/LayoutTests/TestExpectations File LayoutTests/TestExpectations (right): https://codereview.chromium.org/204843002/diff/20001/LayoutTests/TestExpectations#newcode428 LayoutTests/TestExpectations:428: crbug.com/313447 [ Mac ] fast/repaint/table-cell-move.html [ NeedsRebaseline ] On ...
6 years, 9 months ago (2014-03-20 22:25:32 UTC) #5
pdr.
LGTM 2 https://codereview.chromium.org/204843002/diff/40001/Source/core/rendering/LayoutRepainter.cpp File Source/core/rendering/LayoutRepainter.cpp (right): https://codereview.chromium.org/204843002/diff/40001/Source/core/rendering/LayoutRepainter.cpp#newcode59 Source/core/rendering/LayoutRepainter.cpp:59: // FIXME: We don't skip invalidations for ...
6 years, 9 months ago (2014-03-21 00:25:06 UTC) #6
eseidel
https://codereview.chromium.org/204843002/diff/40001/Source/core/rendering/LayoutRepainter.cpp File Source/core/rendering/LayoutRepainter.cpp (right): https://codereview.chromium.org/204843002/diff/40001/Source/core/rendering/LayoutRepainter.cpp#newcode54 Source/core/rendering/LayoutRepainter.cpp:54: bool LayoutRepainter::skipInvalidationWhenLayingOutChildren() const I would have pushed this check ...
6 years, 9 months ago (2014-03-21 00:37:09 UTC) #7
Julien - ping for review
https://codereview.chromium.org/204843002/diff/40001/Source/core/rendering/LayoutRepainter.cpp File Source/core/rendering/LayoutRepainter.cpp (right): https://codereview.chromium.org/204843002/diff/40001/Source/core/rendering/LayoutRepainter.cpp#newcode54 Source/core/rendering/LayoutRepainter.cpp:54: bool LayoutRepainter::skipInvalidationWhenLayingOutChildren() const On 2014/03/21 00:37:09, eseidel wrote: > ...
6 years, 9 months ago (2014-03-24 18:00:01 UTC) #8
eseidel
Do you still want this change Julien? Levi is probably your best reviewer atm.
6 years, 6 months ago (2014-05-30 00:19:44 UTC) #9
Julien - ping for review
On 2014/05/30 at 00:19:44, eseidel wrote: > Do you still want this change Julien? Levi ...
6 years, 6 months ago (2014-06-12 17:31:53 UTC) #10
leviw_travelin_and_unemployed
LGTM! \o/ )'( \o/ https://codereview.chromium.org/204843002/diff/100001/Source/core/rendering/RenderObject.h File Source/core/rendering/RenderObject.h (right): https://codereview.chromium.org/204843002/diff/100001/Source/core/rendering/RenderObject.h#newcode1362 Source/core/rendering/RenderObject.h:1362: // FIXME: Branch? Can you ...
6 years, 6 months ago (2014-06-13 00:03:43 UTC) #11
dsinclair
lgtm https://codereview.chromium.org/204843002/diff/100001/Source/core/rendering/RenderTable.cpp File Source/core/rendering/RenderTable.cpp (right): https://codereview.chromium.org/204843002/diff/100001/Source/core/rendering/RenderTable.cpp#newcode385 Source/core/rendering/RenderTable.cpp:385: if (caption->checkForPaintInvalidationDuringLayout()) This branch can go away as ...
6 years, 6 months ago (2014-06-25 12:51:16 UTC) #12
Julien - ping for review
Finally got to rebaseline this beast, thanks for the help folks! https://codereview.chromium.org/204843002/diff/100001/Source/core/rendering/RenderObject.h File Source/core/rendering/RenderObject.h (right): ...
6 years, 5 months ago (2014-06-30 22:36:30 UTC) #13
Julien - ping for review
The CQ bit was checked by jchaffraix@chromium.org
6 years, 5 months ago (2014-06-30 22:38:19 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/jchaffraix@chromium.org/204843002/120001
6 years, 5 months ago (2014-06-30 22:38:57 UTC) #15
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: linux_blink_dbg on tryserver.blink ...
6 years, 5 months ago (2014-06-30 23:57:27 UTC) #16
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 5 months ago (2014-06-30 23:58:49 UTC) #17
commit-bot: I haz the power
Try jobs failed on following builders: mac_blink_rel on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/mac_blink_rel/builds/13673)
6 years, 5 months ago (2014-06-30 23:58:50 UTC) #18
Julien - ping for review
The CQ bit was checked by jchaffraix@chromium.org
6 years, 5 months ago (2014-07-01 00:59:40 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/jchaffraix@chromium.org/204843002/140001
6 years, 5 months ago (2014-07-01 01:00:49 UTC) #20
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: android_blink_compile_dbg on tryserver.blink ...
6 years, 5 months ago (2014-07-01 01:47:49 UTC) #21
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 5 months ago (2014-07-01 01:49:21 UTC) #22
commit-bot: I haz the power
Try jobs failed on following builders: mac_blink_compile_dbg on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/mac_blink_compile_dbg/builds/10924) mac_blink_rel on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/mac_blink_rel/builds/13688) mac_gpu ...
6 years, 5 months ago (2014-07-01 01:49:22 UTC) #23
Julien - ping for review
The CQ bit was checked by jchaffraix@chromium.org
6 years, 5 months ago (2014-07-01 16:54:47 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/jchaffraix@chromium.org/204843002/160001
6 years, 5 months ago (2014-07-01 16:55:54 UTC) #25
Julien - ping for review
The CQ bit was checked by jchaffraix@chromium.org
6 years, 5 months ago (2014-07-01 17:59:33 UTC) #26
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/jchaffraix@chromium.org/204843002/180001
6 years, 5 months ago (2014-07-01 17:59:37 UTC) #27
commit-bot: I haz the power
6 years, 5 months ago (2014-07-01 19:07:35 UTC) #28
Message was sent while issue was closed.
Change committed as 177329

Powered by Google App Engine
This is Rietveld 408576698