Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e9c380b9f2c89bc4341f6a8e44c931eb763b89c8
https://github.com/WebKit/WebKit/commit/e9c380b9f2c89bc4341f6a8e44c931eb763b89c8
Author: Alan Baradlay <[email protected]>
Date: 2025-06-17 (Tue, 17 Jun 2025)
Changed paths:
A LayoutTests/fast/table/table-section-missing-content-expected.txt
A LayoutTests/fast/table/table-section-missing-content.html
M Source/WebCore/rendering/RenderTableCell.cpp
M Source/WebCore/rendering/RenderTableCell.h
M Source/WebCore/rendering/RenderTableSection.cpp
Log Message:
-----------
[tables] ASSERT in WebCore::RenderTableSection::layoutRows (needsLayout)
https://bugs.webkit.org/show_bug.cgi?id=294611
<rdar://153541166>
Reviewed by Antti Koivisto.
setNeedsLayout and setChildNeedsLayout have slightly different behavior when
a descendent marks itself dirty and we walk the containing block chain until
we find an dirty ancestor. This traversal does not stop when the ancestor
hash the self-needs-layout bit set (setNeedsLayout) only when
set-normal-child-needs-layout
is set (setChildNeedsLayout).
Now during layout it's normally okay to mark the containing block chain dirty
it is supposed to
be dirty. However in this case we mark the table cell from table section layout
meaning
that the in-between table row is already cleared. If we mark it dirty at this
point (through the ancestor chain marking), we finish layout with this renderer
still needing layout.
* LayoutTests/fast/table/table-section-missing-content-expected.txt: Added.
* LayoutTests/fast/table/table-section-missing-content.html: Added.
* Source/WebCore/rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::computeIntrinsicPadding):
* Source/WebCore/rendering/RenderTableCell.h:
* Source/WebCore/rendering/RenderTableSection.cpp: replace setNeedsLayout with
setChildNeedsLayout which is what this function normally calls.
(WebCore::RenderTableSection::layoutRows):
Canonical link: https://commits.webkit.org/296328@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes