Commit 35bc09f
Reparent abspos children in non-first inline continuation in a fragmentainer during column balancing.
This patch adds a new sanity check in absolute containing block for inline as
abspos containing block. It ensures only the first inline continuation in a
fragmentainer can contain abspos children, and all the other continuations in
the same fragmentainer cannot. The crashtest added in this patch can trigger the
assertions without the fix in `PrepareAbsoluteFrames()`.
The fix in `PrepareAbsoluteFrames()` has two parts: the first part after
`DrainPushedChildList()` is to ensure the above-mentioned invariant that the new
check verifies. The second part is to generalize existing logic, ensuring at
most one continuation of an abspos frame can be in the child list. The check for
this is at [1].
[1] https://searchfox.org/firefox-main/rev/3b3f727963c10fe58e6e72c15989ad0e35dbf832/layout/generic/AbsoluteContainingBlock.cpp#344-351
Differential Revision: https://phabricator.services.mozilla.com/D313899
bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=2055303
gecko-commit: ac9d3ffd60fc50cf8497e130e256723ec98c1ce8
gecko-reviewers: layout-reviewers, dshin1 parent 0c5e9f8 commit 35bc09f
1 file changed
Lines changed: 25 additions & 0 deletions
Lines changed: 25 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
0 commit comments