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