Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f6252cb718d3595beb24ed306c92f12f3b43c292
      
https://github.com/WebKit/WebKit/commit/f6252cb718d3595beb24ed306c92f12f3b43c292
  Author: Alan Baradlay <[email protected]>
  Date:   2026-05-06 (Wed, 06 May 2026)

  Changed paths:
    A 
LayoutTests/fast/flexbox/fixed-position-in-flex-scrollbar-relayout-expected.txt
    A LayoutTests/fast/flexbox/fixed-position-in-flex-scrollbar-relayout.html
    M Source/WebCore/rendering/RenderBlock.cpp

  Log Message:
  -----------
  play.projectprismatic.com assert while loading
https://bugs.webkit.org/show_bug.cgi?id=314138
<rdar://176176909>

Reviewed by Antti Koivisto.

When a flex container's scrollbar update is deferred to an outer flex ancestor 
via
endAndCommitUpdateScrollInfoAfterLayoutTransaction, the subsequent relayout can 
re-dirty
a fixed-position element (via prepareFlexItemForPositionedLayout) whose 
containing block
has already completed its out-of-flow layout pass.

  outer-flex          <-- calls 
endAndCommitUpdateScrollInfoAfterLayoutTransaction
   containing-block   <-- containing block for fixed box
    scroller          <-- deferred scrollbar relayout starts here
     inner-flex
      fixed           <-- re-marked dirty, but nobody comes back to handle it

After processing deferred scrollbar relayouts, walk ancestors to find 
containing blocks
with dirty out-of-flow children and re-run layoutOutOfFlowBoxes on them. Also 
have
layoutOutOfFlowBoxes clear outOfFlowChildNeedsLayoutBit after processing.

* 
LayoutTests/fast/flexbox/fixed-position-in-flex-scrollbar-relayout-expected.txt:
 Added.
* LayoutTests/fast/flexbox/fixed-position-in-flex-scrollbar-relayout.html: 
Added.
* Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::endAndCommitUpdateScrollInfoAfterLayoutTransaction):
(WebCore::RenderBlock::layoutOutOfFlowBoxes):

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Canonical link: https://commits.webkit.org/312700@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to