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

Issue 744493002: Let RenderTable reach table cells needing overflow recalc (Closed)

Created:
6 years, 1 month ago by Xianzhu
Modified:
5 years, 9 months ago
CC:
blink-reviews, blink-reviews-rendering, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, zoltan1
Project:
blink
Visibility:
Public.

Description

Let RenderTable reach table cells needing overflow recalc When a RenderObject in a table cell is marked needsRecalcOverflowAfterStyleChange, the object won't be reached by the original RenderBlock::recalcChildOverflowAfterStyleChange(). Add RenderTable::recalcChildOverflowAfterStyleChange to ensure the RenderObject's needsRecalcOverflowAfterStyleChange is handled. (Basically this is like other layout flags like selfNeedsLayout, needsSimplifiedLayout, etc. that RenderTable needs special handling to reach the child needing layout). BUG=434700 TEST=fast/table/outline-change-in-table-cell.html TEST=fast/table/table-cell-outline-change.html

Patch Set 1 #

Total comments: 2

Patch Set 2 : Fix layout test crash #

Total comments: 7

Patch Set 3 : Avoid O(rows*cols) #

Total comments: 11

Patch Set 4 : address comments #

Total comments: 9

Patch Set 5 : #

Total comments: 9

Patch Set 6 : RenderTableRow::recomputeOverflow #

Total comments: 8

Patch Set 7 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+175 lines, -21 lines) Patch
A LayoutTests/fast/table/outline-change-in-table-cell.html View 1 2 3 4 5 6 1 chunk +21 lines, -0 lines 0 comments Download
A LayoutTests/fast/table/outline-change-in-table-cell-expected.txt View 1 2 3 4 5 6 1 chunk +21 lines, -0 lines 0 comments Download
A LayoutTests/fast/table/table-cell-outline-change.html View 1 2 3 4 1 chunk +22 lines, -0 lines 0 comments Download
A LayoutTests/fast/table/table-cell-outline-change-expected.txt View 1 2 3 4 1 chunk +20 lines, -0 lines 0 comments Download
M Source/core/rendering/RenderBlock.h View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/RenderBlock.cpp View 1 2 3 4 5 6 2 chunks +2 lines, -2 lines 0 comments Download
M Source/core/rendering/RenderObject.h View 1 2 3 4 5 6 3 chunks +5 lines, -3 lines 0 comments Download
M Source/core/rendering/RenderObject.cpp View 1 2 3 4 5 6 2 chunks +13 lines, -6 lines 0 comments Download
M Source/core/rendering/RenderTable.h View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M Source/core/rendering/RenderTable.cpp View 1 2 3 4 5 6 1 chunk +14 lines, -0 lines 0 comments Download
M Source/core/rendering/RenderTableRow.h View 1 2 3 4 5 1 chunk +3 lines, -1 line 0 comments Download
M Source/core/rendering/RenderTableRow.cpp View 1 2 3 4 5 1 chunk +9 lines, -0 lines 0 comments Download
M Source/core/rendering/RenderTableSection.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M Source/core/rendering/RenderTableSection.cpp View 1 2 3 4 5 6 6 chunks +42 lines, -8 lines 0 comments Download

Messages

Total messages: 18 (3 generated)
Xianzhu
6 years, 1 month ago (2014-11-20 01:02:34 UTC) #2
Xianzhu
6 years, 1 month ago (2014-11-20 20:15:30 UTC) #4
Julien - ping for review
https://codereview.chromium.org/744493002/diff/40001/LayoutTests/fast/table/outline-change-in-table-cell-expected.txt File LayoutTests/fast/table/outline-change-in-table-cell-expected.txt (right): https://codereview.chromium.org/744493002/diff/40001/LayoutTests/fast/table/outline-change-in-table-cell-expected.txt#newcode16 LayoutTests/fast/table/outline-change-in-table-cell-expected.txt:16: [21, 129, 140, 140], That's a lot of invalidations ...
6 years, 1 month ago (2014-11-22 02:35:04 UTC) #6
Xianzhu
https://codereview.chromium.org/744493002/diff/40001/LayoutTests/fast/table/outline-change-in-table-cell-expected.txt File LayoutTests/fast/table/outline-change-in-table-cell-expected.txt (right): https://codereview.chromium.org/744493002/diff/40001/LayoutTests/fast/table/outline-change-in-table-cell-expected.txt#newcode16 LayoutTests/fast/table/outline-change-in-table-cell-expected.txt:16: [21, 129, 140, 140], On 2014/11/22 02:35:04, Julien Chaffraix ...
6 years ago (2014-11-24 17:23:00 UTC) #7
mstensho (USE GERRIT)
https://codereview.chromium.org/744493002/diff/1/Source/core/rendering/RenderTableSection.cpp File Source/core/rendering/RenderTableSection.cpp (right): https://codereview.chromium.org/744493002/diff/1/Source/core/rendering/RenderTableSection.cpp#newcode1138 Source/core/rendering/RenderTableSection.cpp:1138: // Now that our height has been determined, add ...
6 years ago (2014-11-24 18:01:06 UTC) #8
Xianzhu
PTAL. The new Patch Set avoids O(rows*cols) checking of cells' needsOverflowRecalc flags. https://codereview.chromium.org/744493002/diff/1/Source/core/rendering/RenderTableSection.cpp File Source/core/rendering/RenderTableSection.cpp ...
6 years ago (2014-11-24 23:03:28 UTC) #9
Julien - ping for review
https://codereview.chromium.org/744493002/diff/60001/LayoutTests/fast/table/outline-change-in-table-cell.html File LayoutTests/fast/table/outline-change-in-table-cell.html (right): https://codereview.chromium.org/744493002/diff/60001/LayoutTests/fast/table/outline-change-in-table-cell.html#newcode16 LayoutTests/fast/table/outline-change-in-table-cell.html:16: Passes if there is a thick green outline and ...
6 years ago (2014-11-25 18:33:10 UTC) #10
Xianzhu
ptal. https://codereview.chromium.org/744493002/diff/60001/LayoutTests/fast/table/outline-change-in-table-cell.html File LayoutTests/fast/table/outline-change-in-table-cell.html (right): https://codereview.chromium.org/744493002/diff/60001/LayoutTests/fast/table/outline-change-in-table-cell.html#newcode16 LayoutTests/fast/table/outline-change-in-table-cell.html:16: Passes if there is a thick green outline ...
6 years ago (2014-11-25 20:17:13 UTC) #11
Julien - ping for review
https://codereview.chromium.org/744493002/diff/80001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/744493002/diff/80001/Source/core/rendering/RenderObject.cpp#newcode1622 Source/core/rendering/RenderObject.cpp:1622: return object->isTablePart() ? object->parent() : object->containingBlock(); You don't care ...
6 years ago (2014-11-26 19:23:34 UTC) #12
Xianzhu
https://codereview.chromium.org/744493002/diff/80001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/744493002/diff/80001/Source/core/rendering/RenderObject.cpp#newcode1622 Source/core/rendering/RenderObject.cpp:1622: return object->isTablePart() ? object->parent() : object->containingBlock(); On 2014/11/26 19:23:33, ...
6 years ago (2014-11-26 20:53:31 UTC) #13
Julien - ping for review
https://codereview.chromium.org/744493002/diff/80001/Source/core/rendering/RenderTableSection.cpp File Source/core/rendering/RenderTableSection.cpp (right): https://codereview.chromium.org/744493002/diff/80001/Source/core/rendering/RenderTableSection.cpp#newcode1169 Source/core/rendering/RenderTableSection.cpp:1169: computeOverflowFromCells(totalRows, numEffCols); On 2014/11/26 20:53:30, Xianzhu wrote: > On ...
6 years ago (2014-11-26 23:21:25 UTC) #14
Xianzhu
https://codereview.chromium.org/744493002/diff/80001/Source/core/rendering/RenderTableSection.cpp File Source/core/rendering/RenderTableSection.cpp (right): https://codereview.chromium.org/744493002/diff/80001/Source/core/rendering/RenderTableSection.cpp#newcode1169 Source/core/rendering/RenderTableSection.cpp:1169: computeOverflowFromCells(totalRows, numEffCols); On 2014/11/26 23:21:25, Julien Chaffraix - PST ...
6 years ago (2014-11-27 00:28:48 UTC) #15
Julien - ping for review
lgtm (though the 2 pass architecture makes us do a lot of extra computation) https://codereview.chromium.org/744493002/diff/120001/LayoutTests/fast/table/outline-change-in-table-cell.html ...
6 years ago (2014-12-03 19:44:36 UTC) #16
Xianzhu
https://codereview.chromium.org/744493002/diff/120001/LayoutTests/fast/table/outline-change-in-table-cell.html File LayoutTests/fast/table/outline-change-in-table-cell.html (right): https://codereview.chromium.org/744493002/diff/120001/LayoutTests/fast/table/outline-change-in-table-cell.html#newcode15 LayoutTests/fast/table/outline-change-in-table-cell.html:15: Passes if there is a thick green outline and ...
6 years ago (2014-12-03 22:56:35 UTC) #17
Xianzhu
6 years ago (2014-12-04 16:55:54 UTC) #18
This patch needs submitting only after we reapply the
outline-change-optimization change (reverted by
https://codereview.chromium.org/747493002). Tried with it reapplied and with
this change, I still found some bugs about overflows caused by outline-change,
so I will postpone reapplying that change and this until all of the bugs
resolved.

Powered by Google App Engine
This is Rietveld 408576698