layout: Implement proper absolute child position for flexbox (#33346)

This implements the requirements outlined in the [flexbox specification]
about how to position absolute children of flex containers. We must
establish a static position rectangle (to use if all insets are auto)
and also align the child into that rectangle.

[flebox specification]: https://drafts.csswg.org/css-flexbox/#abspos-items

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
Martin Robinson 2024-09-09 07:44:16 -07:00 committed by GitHub
parent a3a86d5913
commit d169a82d2e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 678 additions and 724 deletions

View file

@ -8,24 +8,12 @@
[.flexbox 34]
expected: FAIL
[.flexbox 35]
expected: FAIL
[.flexbox 36]
expected: FAIL
[.flexbox 37]
expected: FAIL
[.flexbox 30]
expected: FAIL
[.flexbox 31]
expected: FAIL
[.flexbox 33]
expected: FAIL
[.flexbox 89]
expected: FAIL
@ -53,18 +41,6 @@
[.flexbox 17]
expected: FAIL
[.flexbox 15]
expected: FAIL
[.flexbox 12]
expected: FAIL
[.flexbox 13]
expected: FAIL
[.flexbox 10]
expected: FAIL
[.flexbox 18]
expected: FAIL
@ -116,9 +92,6 @@
[.flexbox 67]
expected: FAIL
[.flexbox 66]
expected: FAIL
[.flexbox 65]
expected: FAIL
@ -149,9 +122,6 @@
[.flexbox 75]
expected: FAIL
[.flexbox 76]
expected: FAIL
[.flexbox 77]
expected: FAIL
@ -188,9 +158,6 @@
[.flexbox 44]
expected: FAIL
[.flexbox 47]
expected: FAIL
[.flexbox 46]
expected: FAIL
@ -227,21 +194,9 @@
[.flexbox 104]
expected: FAIL
[.flexbox 5]
expected: FAIL
[.flexbox 6]
expected: FAIL
[.flexbox 2]
expected: FAIL
[.flexbox 3]
expected: FAIL
[.flexbox 8]
expected: FAIL
[.flexbox 9]
expected: FAIL
@ -263,35 +218,38 @@
[.flexbox 56]
expected: FAIL
[.flexbox 57]
expected: FAIL
[.flexbox 54]
expected: FAIL
[.flexbox 55]
expected: FAIL
[.flexbox 28]
expected: FAIL
[.flexbox 27]
expected: FAIL
[.flexbox 25]
expected: FAIL
[.flexbox 24]
expected: FAIL
[.flexbox 23]
expected: FAIL
[.flexbox 21]
expected: FAIL
[.flexbox 20]
expected: FAIL
[.flexbox 120]
expected: FAIL
[.flexbox 7]
expected: FAIL
[.flexbox 26]
expected: FAIL
[.flexbox 52]
expected: FAIL
[.flexbox 71]
expected: FAIL
[.flexbox 87]
expected: FAIL
[.flexbox 106]
expected: FAIL