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

Reply via email to