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

Issue 2507893002: Fix painting background for composited table cells in a non-composited row. (Closed)

Created:
4 years, 1 month ago by wkorman
Modified:
4 years, 1 month ago
Reviewers:
Xianzhu
CC:
chromium-reviews, szager+layoutwatch_chromium.org, zoltan1, blink-reviews-layout_chromium.org, pdr+renderingwatchlist_chromium.org, eae+blinkwatch, leviw+renderwatch, dshwang, jchaffraix+rendering, blink-reviews-paint_chromium.org, blink-reviews
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Fix painting background for composited table cells in a non-composited row. Use a background specific display item client and the LayoutTableRow's visual rect. BUG=658874 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/9c8fded973e0422c68dd85f3745b26a0a8d96085 Cr-Commit-Position: refs/heads/master@{#432693}

Patch Set 1 #

Total comments: 1

Patch Set 2 : Add test expectations. #

Total comments: 7

Patch Set 3 : Update comment. #

Patch Set 4 : Integrate feedback. #

Patch Set 5 : Sync to head. #

Total comments: 2

Patch Set 6 : Move ensureIsReadyForPaintInvalidation to start of for loop. #

Patch Set 7 : Add rebaselines to TestExpectations due to http://crbug.com/665765 preventing rebaseline-cl happine… #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1190 lines, -16 lines) Patch
M third_party/WebKit/LayoutTests/TestExpectations View 1 2 3 4 5 6 1 chunk +15 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background.html View 1 chunk +27 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-col.html View 1 2 3 1 chunk +31 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-col-expected.png View 1 2 3 Binary file 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-col-expected.txt View 1 2 3 1 chunk +38 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-col-initial-empty.html View 1 2 3 1 chunk +31 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-col-initial-empty-expected.png View 1 2 3 Binary file 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-col-initial-empty-expected.txt View 1 2 3 1 chunk +38 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-col-span.html View 1 2 3 1 chunk +31 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-col-span-expected.png View 1 2 3 Binary file 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-col-span-expected.txt View 1 2 3 1 chunk +52 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-col-span-initial-empty.html View 1 2 3 1 chunk +31 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-col-span-initial-empty-expected.png View 1 2 3 Binary file 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-col-span-initial-empty-expected.txt View 1 2 3 1 chunk +52 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-colgroup.html View 1 2 3 1 chunk +29 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-colgroup-expected.png View 1 2 3 Binary file 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-colgroup-expected.txt View 1 2 3 1 chunk +38 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-colgroup-initial-empty.html View 1 2 3 1 chunk +29 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-colgroup-initial-empty-expected.png View 1 2 3 Binary file 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-colgroup-initial-empty-expected.txt View 1 2 3 1 chunk +38 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-composited-row.html View 1 chunk +27 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-composited-row-expected.png View 1 Binary file 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-composited-row-expected.txt View 1 2 3 1 chunk +49 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-composited-row-initial-empty.html View 1 chunk +27 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-composited-row-initial-empty-expected.png View 1 Binary file 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-composited-row-initial-empty-expected.txt View 1 2 3 1 chunk +49 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-expected.png View 1 Binary file 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-expected.txt View 1 2 3 1 chunk +42 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-initial-empty.html View 1 chunk +27 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-initial-empty-expected.png View 1 Binary file 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-initial-empty-expected.txt View 1 2 3 1 chunk +42 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-section.html View 1 2 3 1 chunk +29 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-section-composited-row.html View 1 2 3 1 chunk +29 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-section-composited-row-expected.png View 1 2 3 Binary file 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-section-composited-row-expected.txt View 1 2 3 1 chunk +67 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-section-composited-row-initial-empty.html View 1 2 3 1 chunk +29 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-section-composited-row-initial-empty-expected.png View 1 2 3 Binary file 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-section-composited-row-initial-empty-expected.txt View 1 2 3 1 chunk +67 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-section-expected.png View 1 2 3 Binary file 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-section-expected.txt View 1 2 3 1 chunk +61 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-section-initial-empty.html View 1 2 3 1 chunk +29 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-section-initial-empty-expected.png View 1 2 3 Binary file 0 comments Download
A third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-section-initial-empty-expected.txt View 1 2 3 1 chunk +61 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutTableCell.h View 1 2 3 3 chunks +23 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutTableCell.cpp View 1 2 3 5 chunks +36 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/core/paint/TableCellPainter.cpp View 1 2 3 2 chunks +7 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/paint/TablePaintInvalidator.cpp View 1 2 3 4 5 3 chunks +9 lines, -4 lines 0 comments Download

Messages

Total messages: 23 (13 generated)
wkorman
https://codereview.chromium.org/2507893002/diff/1/third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-composited-row.html File third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-composited-row.html (right): https://codereview.chromium.org/2507893002/diff/1/third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-composited-row.html#newcode16 third_party/WebKit/LayoutTests/paint/invalidation/table/composited-table-background-composited-row.html:16: <table> This test is intended to validate your comment ...
4 years, 1 month ago (2016-11-16 20:15:47 UTC) #3
Xianzhu
https://codereview.chromium.org/2507893002/diff/20001/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp File third_party/WebKit/Source/core/layout/LayoutTableCell.cpp (right): https://codereview.chromium.org/2507893002/diff/20001/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp#newcode471 third_party/WebKit/Source/core/layout/LayoutTableCell.cpp:471: if (row()->styleRef().hasBackground() && !m_rowBackgroundDisplayItemClient) { We should remove the ...
4 years, 1 month ago (2016-11-16 20:39:03 UTC) #5
wkorman
https://codereview.chromium.org/2507893002/diff/20001/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp File third_party/WebKit/Source/core/layout/LayoutTableCell.cpp (right): https://codereview.chromium.org/2507893002/diff/20001/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp#newcode471 third_party/WebKit/Source/core/layout/LayoutTableCell.cpp:471: if (row()->styleRef().hasBackground() && !m_rowBackgroundDisplayItemClient) { On 2016/11/16 20:39:03, Xianzhu ...
4 years, 1 month ago (2016-11-16 21:42:45 UTC) #10
Xianzhu
lgtm https://codereview.chromium.org/2507893002/diff/80001/third_party/WebKit/Source/core/paint/TablePaintInvalidator.cpp File third_party/WebKit/Source/core/paint/TablePaintInvalidator.cpp (right): https://codereview.chromium.org/2507893002/diff/80001/third_party/WebKit/Source/core/paint/TablePaintInvalidator.cpp#newcode63 third_party/WebKit/Source/core/paint/TablePaintInvalidator.cpp:63: cell->ensureIsReadyForPaintInvalidation(); Nit: can this be put at the ...
4 years, 1 month ago (2016-11-16 21:54:33 UTC) #13
wkorman
https://codereview.chromium.org/2507893002/diff/80001/third_party/WebKit/Source/core/paint/TablePaintInvalidator.cpp File third_party/WebKit/Source/core/paint/TablePaintInvalidator.cpp (right): https://codereview.chromium.org/2507893002/diff/80001/third_party/WebKit/Source/core/paint/TablePaintInvalidator.cpp#newcode63 third_party/WebKit/Source/core/paint/TablePaintInvalidator.cpp:63: cell->ensureIsReadyForPaintInvalidation(); On 2016/11/16 21:54:32, Xianzhu wrote: > Nit: can ...
4 years, 1 month ago (2016-11-16 22:07:42 UTC) #14
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/2507893002/120001
4 years, 1 month ago (2016-11-16 22:40:32 UTC) #17
commit-bot: I haz the power
Committed patchset #7 (id:120001)
4 years, 1 month ago (2016-11-17 01:51:37 UTC) #19
commit-bot: I haz the power
Patchset 7 (id:??) landed as https://crrev.com/9c8fded973e0422c68dd85f3745b26a0a8d96085 Cr-Commit-Position: refs/heads/master@{#432693}
4 years, 1 month ago (2016-11-17 02:07:08 UTC) #21
Xianzhu
Here are statistics of composited table component backgrounds (https://ct.skia.org/chromium_perf_runs/ run 1466): - Total cells: 514,873 ...
4 years, 1 month ago (2016-11-17 07:17:58 UTC) #22
wkorman
4 years, 1 month ago (2016-11-17 19:11:30 UTC) #23
Message was sent while issue was closed.
On 2016/11/17 07:17:58, Xianzhu wrote:
> Here are statistics of composited table component backgrounds
> (https://ct.skia.org/chromium_perf_runs/ run 1466):
> - Total cells: 514,873
>   Composited cells: 1,082
>   Composited cells, in any row/section/col with background: 27
> - Total rows: 367,275
>   Composited rows: 33
>   Composited rows, in any section with background, or intersecting any col
with
> background: 0
> - Total sections: 320,503
>   Composited sections: 28
>   Composited sections, intersecting any col with background: 0
> 
> The cases of composited rows and sections are very rare, and there is no
single
> case breaking this CL.

OK, thanks. It is worth noting the bug originally was found on Mac Retina where
we prioritize compositing over lcd text. I expect the perf run doesn't cover
this. We could run with --enable-prefer-compositing-to-lcd-text flag as well if
you think worthwhile. However our main concern was re: composited rows/sections
which I wouldn't expect to be affected by that flag.

Powered by Google App Engine
This is Rietveld 408576698