RESOLVED FIXED 74303
Regression(99212): table rows get incorrect height after changing some cells' height
https://bugs.webkit.org/show_bug.cgi?id=74303
Summary Regression(99212): table rows get incorrect height after changing some cells'...
Vsevolod Vlasov
Reported 2011-12-12 08:58:22 PST
Steps to reproduce: 1) Open inspector's network panel 2) Load some web page, make sure network log does not have scroll yet (just 1-3 requests) 3) Toggle large resource rows (in the bottom toolbar press fourth button) This was caused by http://trac.webkit.org/changeset/99212. Notes: pressing this button adds "small" class to table's container (".data-grid"). Essentially this button switches between following style rules: .network-log-grid.data-grid td { height: 37px; } .network-log-grid.data-grid.small td { height: 17px; }
Attachments
Reduction (991 bytes, text/html)
2011-12-12 15:58 PST, Vsevolod Vlasov
no flags
Proposed fix 1: Use the same row height recalculation algorithm for |rowLogicalHeightChange| and |recalCells|. (14.23 KB, patch)
2011-12-14 07:19 PST, Julien Chaffraix
no flags
Julien Chaffraix
Comment 1 2011-12-12 14:04:56 PST
I started investigating this regression and it doesn't look like it is as simple as just switching those 2 styles. There is some CSS & JS that must kick in that prevented me from getting a proper test case. I am pretty sure this is not a WebInspector-only bug but a more general Table one. The easy fix would be to revert the RenderTableCell part of r99212 and mark the section as needing cell recalculation when height changes (likely an overkill).
Vsevolod Vlasov
Comment 2 2011-12-12 15:58:40 PST
Created attachment 118898 [details] Reduction
Pavel Feldman
Comment 3 2011-12-13 04:20:57 PST
@caseq: could you take a look?
Julien Chaffraix
Comment 4 2011-12-13 08:24:06 PST
(In reply to comment #3) > @caseq: could you take a look? I am on it (which is why I took the bug). I understand the problem and can reproduce the issue. I just need to improve our test coverage of this area which is obviously lacking.
Julien Chaffraix
Comment 5 2011-12-14 07:19:29 PST
Created attachment 119217 [details] Proposed fix 1: Use the same row height recalculation algorithm for |rowLogicalHeightChange| and |recalCells|.
Pavel Feldman
Comment 6 2011-12-18 10:04:49 PST
Sounds like Darin has been reviewing the original issue (http://trac.webkit.org/changeset/99212).
Darin Adler
Comment 7 2011-12-18 18:04:22 PST
Comment on attachment 119217 [details] Proposed fix 1: Use the same row height recalculation algorithm for |rowLogicalHeightChange| and |recalCells|. View in context: https://bugs.webkit.org/attachment.cgi?id=119217&action=review > Source/WebCore/rendering/RenderTableSection.cpp:1170 > + for (RenderObject* cell = m_grid[rowIndex].rowRenderer->firstChild(); cell; cell = cell->nextSibling()) { What guarantees that rowRenderer is non-null?
Julien Chaffraix
Comment 8 2011-12-20 03:22:45 PST
Comment on attachment 119217 [details] Proposed fix 1: Use the same row height recalculation algorithm for |rowLogicalHeightChange| and |recalCells|. View in context: https://bugs.webkit.org/attachment.cgi?id=119217&action=review >> Source/WebCore/rendering/RenderTableSection.cpp:1170 >> + for (RenderObject* cell = m_grid[rowIndex].rowRenderer->firstChild(); cell; cell = cell->nextSibling()) { > > What guarantees that rowRenderer is non-null? This is called only from 2 places: * RenderTableCell::styleDidChange: we check that rowIndex was set which means that recalcCell was called and filled m_grid. * RenderTableRow::styleDidChange: to find |rowIndex|, we check against m_grid.rowRenderer. In both places, if m_grid was filled by recalcCells, each item should have a rowRenderer (per construction of the RenderTableSection tree).
WebKit Review Bot
Comment 9 2011-12-20 06:09:11 PST
Comment on attachment 119217 [details] Proposed fix 1: Use the same row height recalculation algorithm for |rowLogicalHeightChange| and |recalCells|. Clearing flags on attachment: 119217 Committed r103327: <http://trac.webkit.org/changeset/103327>
WebKit Review Bot
Comment 10 2011-12-20 06:09:16 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.