Commit 7b22cb5
committed
[out-of-flow] ASSERT in LayoutIntegration::LineLayout::paint
https://bugs.webkit.org/show_bug.cgi?id=297724
rdar://157024791
Reviewed by Antti Koivisto.
1. out-of-flow boxes participate first in in-flow layout as if they were in-flow boxes
where we compute their static position. This static position becomes their final
position when inset (left, right, top, bottom) is auto.
2. as a second step, as we reach the out-of-flow box's containing block
we run layout again and compute the final position (this might just be what we computed at #1 in case of auto inset)
Now we mark the out-of-flow box dirty at #1 and expect #2 to clear the box by moving
it to its final position.
However in case of subtree layout where the layout root has an out-of-flow descendant
while the containing block is an ancestor of the layout root, #2 will never happen (we bail out of layout before reaching the containing block).
"setNeedsLayout" was added at 254969@main to mimic what legacy line layout did.
However starting from 262470@main, we already move the box at #1 meaning that #2 does
not need to happen if the box is statically positioned only.
(If the out-of-flow box was not-statically positioned, subtree layout would not start "below"
its containing block)
* LayoutTests/TestExpectations:
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateRenderTreePositions):
Canonical link: https://commits.webkit.org/299021@main1 parent af8bdbe commit 7b22cb5
File tree
2 files changed
+0
-6
lines changed- LayoutTests
- Source/WebCore/layout/integration/inline
2 files changed
+0
-6
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4591 | 4591 | | |
4592 | 4592 | | |
4593 | 4593 | | |
4594 | | - | |
4595 | | - | |
4596 | | - | |
4597 | 4594 | | |
4598 | 4595 | | |
4599 | 4596 | | |
| |||
Lines changed: 0 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
672 | 672 | | |
673 | 673 | | |
674 | 674 | | |
675 | | - | |
676 | | - | |
677 | | - | |
678 | 675 | | |
679 | 676 | | |
680 | 677 | | |
| |||
0 commit comments