Fix alignment of abspos child of flexbox with flipped direction (#34426)

The containing block for the static position of an absolutely positioned
element in flex layout is established by the flex container. However, if
the flex container has static position, the actual containing block will
be established by another ancestor.

If the flex container and the containing block have different directions,
the static position needs especial handling when aligning the abspos.
We were already trying to do so with the `flip_anchor` flag, but there
were bugs.

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
Oriol Brufau 2024-11-30 15:25:10 +01:00 committed by GitHub
parent 3b5ffabbca
commit f2b5f515d7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 66 additions and 374 deletions

View file

@ -8,12 +8,6 @@
[.flexbox 37]
expected: FAIL
[.flexbox 30]
expected: FAIL
[.flexbox 32]
expected: FAIL
[.flexbox 33]
expected: FAIL
@ -32,24 +26,9 @@
[.flexbox 85]
expected: FAIL
[.flexbox 86]
expected: FAIL
[.flexbox 16]
expected: FAIL
[.flexbox 14]
expected: FAIL
[.flexbox 13]
expected: FAIL
[.flexbox 96]
expected: FAIL
[.flexbox 94]
expected: FAIL
[.flexbox 93]
expected: FAIL
@ -74,9 +53,6 @@
[.flexbox 69]
expected: FAIL
[.flexbox 70]
expected: FAIL
[.flexbox 72]
expected: FAIL
@ -89,9 +65,6 @@
[.flexbox 77]
expected: FAIL
[.flexbox 78]
expected: FAIL
[.flexbox 45]
expected: FAIL
@ -107,15 +80,6 @@
[.flexbox 49]
expected: FAIL
[.flexbox 5]
expected: FAIL
[.flexbox 6]
expected: FAIL
[.flexbox 8]
expected: FAIL
[.flexbox 59]
expected: FAIL
@ -131,30 +95,6 @@
[.flexbox 57]
expected: FAIL
[.flexbox 29]
expected: FAIL
[.flexbox 24]
expected: FAIL
[.flexbox 22]
expected: FAIL
[.flexbox 21]
expected: FAIL
[.flexbox 7]
expected: FAIL
[.flexbox 15]
expected: FAIL
[.flexbox 23]
expected: FAIL
[.flexbox 31]
expected: FAIL
[.flexbox 34]
expected: FAIL
@ -179,16 +119,16 @@
[.flexbox 64]
expected: FAIL
[.flexbox 71]
[.flexbox 39]
expected: FAIL
[.flexbox 79]
[.flexbox 47]
expected: FAIL
[.flexbox 87]
[.flexbox 55]
expected: FAIL
[.flexbox 95]
[.flexbox 63]
expected: FAIL
[.flexbox 38]