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

@ -1,10 +1,4 @@
[position-absolute-012.html]
[.flexbox 38]
expected: FAIL
[.flexbox 39]
expected: FAIL
[.flexbox 35]
expected: FAIL
@ -38,9 +32,6 @@
[.flexbox 85]
expected: FAIL
[.flexbox 84]
expected: FAIL
[.flexbox 86]
expected: FAIL
@ -50,33 +41,15 @@
[.flexbox 14]
expected: FAIL
[.flexbox 12]
expected: FAIL
[.flexbox 13]
expected: FAIL
[.flexbox 10]
expected: FAIL
[.flexbox 11]
expected: FAIL
[.flexbox 18]
expected: FAIL
[.flexbox 19]
expected: FAIL
[.flexbox 96]
expected: FAIL
[.flexbox 94]
expected: FAIL
[.flexbox 92]
expected: FAIL
[.flexbox 93]
expected: FAIL
@ -86,12 +59,6 @@
[.flexbox 91]
expected: FAIL
[.flexbox 63]
expected: FAIL
[.flexbox 62]
expected: FAIL
[.flexbox 61]
expected: FAIL
@ -107,9 +74,6 @@
[.flexbox 69]
expected: FAIL
[.flexbox 68]
expected: FAIL
[.flexbox 70]
expected: FAIL
@ -122,9 +86,6 @@
[.flexbox 75]
expected: FAIL
[.flexbox 76]
expected: FAIL
[.flexbox 77]
expected: FAIL
@ -137,12 +98,6 @@
[.flexbox 44]
expected: FAIL
[.flexbox 47]
expected: FAIL
[.flexbox 46]
expected: FAIL
[.flexbox 41]
expected: FAIL
@ -152,21 +107,12 @@
[.flexbox 49]
expected: FAIL
[.flexbox 4]
expected: FAIL
[.flexbox 5]
expected: FAIL
[.flexbox 6]
expected: FAIL
[.flexbox 2]
expected: FAIL
[.flexbox 3]
expected: FAIL
[.flexbox 8]
expected: FAIL
@ -185,24 +131,9 @@
[.flexbox 57]
expected: FAIL
[.flexbox 54]
expected: FAIL
[.flexbox 55]
expected: FAIL
[.flexbox 29]
expected: FAIL
[.flexbox 28]
expected: FAIL
[.flexbox 27]
expected: FAIL
[.flexbox 26]
expected: FAIL
[.flexbox 24]
expected: FAIL
@ -212,5 +143,50 @@
[.flexbox 21]
expected: FAIL
[.flexbox 20]
[.flexbox 7]
expected: FAIL
[.flexbox 15]
expected: FAIL
[.flexbox 23]
expected: FAIL
[.flexbox 31]
expected: FAIL
[.flexbox 34]
expected: FAIL
[.flexbox 40]
expected: FAIL
[.flexbox 42]
expected: FAIL
[.flexbox 48]
expected: FAIL
[.flexbox 50]
expected: FAIL
[.flexbox 56]
expected: FAIL
[.flexbox 58]
expected: FAIL
[.flexbox 64]
expected: FAIL
[.flexbox 71]
expected: FAIL
[.flexbox 79]
expected: FAIL
[.flexbox 87]
expected: FAIL
[.flexbox 95]
expected: FAIL