Bug 1744737 [wpt PR 31929] - Correct document order for fixedpos flex item inside...
commit4acd157914d64d38ee43238f1b57f8d75db89246
authorMorten Stenshorne <mstensho@chromium.org>
Thu, 9 Dec 2021 16:14:16 +0000 (9 16:14 +0000)
committermoz-wptsync-bot <wptsync@mozilla.com>
Mon, 20 Dec 2021 11:38:21 +0000 (20 11:38 +0000)
tree74eabc7fd473d4de01887efdf87d91d064e5cb8e
parentb8639f1671e561ec43fdda80457de7470510fc71
Bug 1744737 [wpt PR 31929] - Correct document order for fixedpos flex item inside abspos legacy flex., a=testonly

Automatic update from web-platform-tests
Correct document order for fixedpos flex item inside abspos legacy flex.

If there's an OOF flex item inside an OOF legacy flex container, and the
flex container isn't the containing block for the item (e.g. fixed-
positioned inside absolute-positioned), check one extra time when
handling them at the containing block.

LayoutBlock::PositionedObjects() gets OOFs out of document order upon
re-layout on a general basis, if there's a fixed-positioned object
inside another OOF, so that we may end up laying out the child before
the parent. If, when eventually laying out the parent, we mark the child
for layout, we'd never get back to laying it out, and DCHECKs would
fail.

The only known actual problem with having objects out of document order
is precisely what's described above, so the fix is limited to that.

Hopefully the legacy engine is removed before we discover any problems
with my fix. :-p

Bug: 1269228
Change-Id: Ifc212e2b8baa6b9fcf58a5714fa7a8a1139f4b87

--

wpt-commits: 193d9758c4c900b3a80f71e47bc5fd85138d71fa
wpt-pr: 31929
testing/web-platform/tests/css/css-break/flexbox/fixed-flex-item-inside-abs-flex-in-multicol-crash.html [new file with mode: 0644]