LibWeb: Map logical aliases at cascade time

Previously we would incorrectly map these in
`CSSStyleProperties::convert_declarations_to_specified_order`, aside
from being too early (as it meant we didn't maintain them as distinct
from their physical counterparts in CSSStyleProperties), this meant
that we didn't yet have the required context to map them correctly.

We now map them as part of the cascade process. To compute the mapping
context we do a cascade without mapping, and extract the relevant
properties (writing-direction and direction).
This commit is contained in:
Callum Law 2025-06-18 17:45:26 +12:00 committed by Sam Atkins
commit cfc8d3031b
Notes: github-actions[bot] 2025-06-23 14:20:40 +00:00
14 changed files with 848 additions and 141 deletions

View file

@ -1,9 +1,9 @@
Harness status: OK
Found 206 tests
Found 236 tests
202 Pass
4 Fail
218 Pass
18 Fail
Pass accent-color
Pass border-collapse
Pass border-spacing
@ -90,11 +90,24 @@ Pass background-position-x
Pass background-position-y
Pass background-repeat
Pass background-size
Fail block-size
Pass border-block-end-color
Fail border-block-end-style
Fail border-block-end-width
Pass border-block-start-color
Fail border-block-start-style
Fail border-block-start-width
Pass border-bottom-color
Pass border-bottom-left-radius
Pass border-bottom-right-radius
Pass border-bottom-style
Pass border-bottom-width
Pass border-inline-end-color
Fail border-inline-end-style
Fail border-inline-end-width
Pass border-inline-start-color
Fail border-inline-start-style
Fail border-inline-start-width
Pass border-left-color
Pass border-left-style
Pass border-left-width
@ -142,20 +155,33 @@ Pass grid-template-areas
Pass grid-template-columns
Pass grid-template-rows
Fail height
Fail inline-size
Pass inset-block-end
Pass inset-block-start
Pass inset-inline-end
Pass inset-inline-start
Pass isolation
Pass justify-content
Pass justify-items
Pass justify-self
Pass left
Pass margin-block-end
Pass margin-block-start
Pass margin-bottom
Pass margin-inline-end
Pass margin-inline-start
Pass margin-left
Pass margin-right
Pass margin-top
Pass mask-image
Pass mask-type
Fail max-block-size
Pass max-height
Fail max-inline-size
Pass max-width
Fail min-block-size
Pass min-height
Fail min-inline-size
Pass min-width
Pass mix-blend-mode
Pass object-fit
@ -168,7 +194,11 @@ Pass outline-style
Pass outline-width
Pass overflow-x
Pass overflow-y
Pass padding-block-end
Pass padding-block-start
Pass padding-bottom
Pass padding-inline-end
Pass padding-inline-start
Pass padding-left
Pass padding-right
Pass padding-top