mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-26 01:35:08 +02:00
LibWeb: Properly parse attributes for CSS-connected FontFace
Previously we would just set the attributes to the serialized descriptors, even if they were the empty string. We now apply defaults when we have empty descriptors and apply parsing logic from the various `set_*` methods (only applicable to `font-family` so far where we now extract the value from either a string or a custom-ident) Fixes an issue in some css/css-shapes WPT tests where we weren't properly matching fonts.
This commit is contained in:
Notes:
github-actions[bot]
2026-01-13 10:41:03 +00:00
Author: https://github.com/Calme1709 Commit: https://github.com/LadybirdBrowser/ladybird/commit/668d3afde0c Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/7420 Reviewed-by: https://github.com/AtkinsSJ ✅
@@ -2,8 +2,8 @@ Harness status: OK
|
||||
|
||||
Found 780 tests
|
||||
|
||||
690 Pass
|
||||
90 Fail
|
||||
720 Pass
|
||||
60 Fail
|
||||
Pass test unit (inline): cm - circle(at 50cm)
|
||||
Pass test unit (inline): cm - circle(at 50% 50cm)
|
||||
Pass test unit (inline): cm - circle(at 50cm 50%)
|
||||
@@ -604,36 +604,36 @@ Fail test unit (computed): ex - circle(at right 80% bottom 70ex)
|
||||
Fail test unit (computed): ex - circle(at right 80ex top 50%)
|
||||
Fail test unit (computed): ex - circle(at right 80ex bottom 70%)
|
||||
Fail test unit (computed): ex - circle(at right 80ex bottom 70ex)
|
||||
Fail test unit (computed): ch - circle(at 50ch)
|
||||
Fail test unit (computed): ch - circle(at 50% 50ch)
|
||||
Fail test unit (computed): ch - circle(at 50ch 50%)
|
||||
Fail test unit (computed): ch - circle(at 50ch 50ch)
|
||||
Fail test unit (computed): ch - circle(at left 50ch)
|
||||
Fail test unit (computed): ch - circle(at 50ch top)
|
||||
Fail test unit (computed): ch - circle(at right 80ch)
|
||||
Fail test unit (computed): ch - circle(at 70ch bottom)
|
||||
Fail test unit (computed): ch - circle(at center 60ch)
|
||||
Fail test unit (computed): ch - circle(at 60ch center)
|
||||
Fail test unit (computed): ch - circle(at left 50% top 50ch)
|
||||
Fail test unit (computed): ch - circle(at left 50% bottom 70ch)
|
||||
Fail test unit (computed): ch - circle(at left 50ch top 50%)
|
||||
Fail test unit (computed): ch - circle(at left 50ch top 50ch)
|
||||
Fail test unit (computed): ch - circle(at left 50ch bottom 70%)
|
||||
Fail test unit (computed): ch - circle(at top 50% left 50ch)
|
||||
Fail test unit (computed): ch - circle(at top 50% right 80ch)
|
||||
Fail test unit (computed): ch - circle(at top 50ch left 50%)
|
||||
Fail test unit (computed): ch - circle(at top 50ch left 50ch)
|
||||
Fail test unit (computed): ch - circle(at top 50ch right 80%)
|
||||
Fail test unit (computed): ch - circle(at bottom 70% left 50ch)
|
||||
Fail test unit (computed): ch - circle(at bottom 70% right 80ch)
|
||||
Fail test unit (computed): ch - circle(at bottom 70ch left 50%)
|
||||
Fail test unit (computed): ch - circle(at bottom 70ch right 50%)
|
||||
Fail test unit (computed): ch - circle(at bottom 70ch right 80ch)
|
||||
Fail test unit (computed): ch - circle(at right 80% top 50ch)
|
||||
Fail test unit (computed): ch - circle(at right 80% bottom 70ch)
|
||||
Fail test unit (computed): ch - circle(at right 80ch top 50%)
|
||||
Fail test unit (computed): ch - circle(at right 80ch bottom 70%)
|
||||
Fail test unit (computed): ch - circle(at right 80ch bottom 70ch)
|
||||
Pass test unit (computed): ch - circle(at 50ch)
|
||||
Pass test unit (computed): ch - circle(at 50% 50ch)
|
||||
Pass test unit (computed): ch - circle(at 50ch 50%)
|
||||
Pass test unit (computed): ch - circle(at 50ch 50ch)
|
||||
Pass test unit (computed): ch - circle(at left 50ch)
|
||||
Pass test unit (computed): ch - circle(at 50ch top)
|
||||
Pass test unit (computed): ch - circle(at right 80ch)
|
||||
Pass test unit (computed): ch - circle(at 70ch bottom)
|
||||
Pass test unit (computed): ch - circle(at center 60ch)
|
||||
Pass test unit (computed): ch - circle(at 60ch center)
|
||||
Pass test unit (computed): ch - circle(at left 50% top 50ch)
|
||||
Pass test unit (computed): ch - circle(at left 50% bottom 70ch)
|
||||
Pass test unit (computed): ch - circle(at left 50ch top 50%)
|
||||
Pass test unit (computed): ch - circle(at left 50ch top 50ch)
|
||||
Pass test unit (computed): ch - circle(at left 50ch bottom 70%)
|
||||
Pass test unit (computed): ch - circle(at top 50% left 50ch)
|
||||
Pass test unit (computed): ch - circle(at top 50% right 80ch)
|
||||
Pass test unit (computed): ch - circle(at top 50ch left 50%)
|
||||
Pass test unit (computed): ch - circle(at top 50ch left 50ch)
|
||||
Pass test unit (computed): ch - circle(at top 50ch right 80%)
|
||||
Pass test unit (computed): ch - circle(at bottom 70% left 50ch)
|
||||
Pass test unit (computed): ch - circle(at bottom 70% right 80ch)
|
||||
Pass test unit (computed): ch - circle(at bottom 70ch left 50%)
|
||||
Pass test unit (computed): ch - circle(at bottom 70ch right 50%)
|
||||
Pass test unit (computed): ch - circle(at bottom 70ch right 80ch)
|
||||
Pass test unit (computed): ch - circle(at right 80% top 50ch)
|
||||
Pass test unit (computed): ch - circle(at right 80% bottom 70ch)
|
||||
Pass test unit (computed): ch - circle(at right 80ch top 50%)
|
||||
Pass test unit (computed): ch - circle(at right 80ch bottom 70%)
|
||||
Pass test unit (computed): ch - circle(at right 80ch bottom 70ch)
|
||||
Pass test unit (computed): rem - circle(at 50rem)
|
||||
Pass test unit (computed): rem - circle(at 50% 50rem)
|
||||
Pass test unit (computed): rem - circle(at 50rem 50%)
|
||||
|
||||
@@ -2,8 +2,8 @@ Harness status: OK
|
||||
|
||||
Found 52 tests
|
||||
|
||||
48 Pass
|
||||
4 Fail
|
||||
50 Pass
|
||||
2 Fail
|
||||
Pass test unit: cm - circle(50cm at 50% 50%) - inline
|
||||
Pass test unit: cm - circle(50cm) - inline
|
||||
Pass test unit: mm - circle(50mm at 50% 50%) - inline
|
||||
@@ -44,8 +44,8 @@ Pass test unit: em - circle(50em at 50% 50%) - computed
|
||||
Pass test unit: em - circle(50em) - computed
|
||||
Fail test unit: ex - circle(50ex at 50% 50%) - computed
|
||||
Fail test unit: ex - circle(50ex) - computed
|
||||
Fail test unit: ch - circle(50ch at 50% 50%) - computed
|
||||
Fail test unit: ch - circle(50ch) - computed
|
||||
Pass test unit: ch - circle(50ch at 50% 50%) - computed
|
||||
Pass test unit: ch - circle(50ch) - computed
|
||||
Pass test unit: rem - circle(50rem at 50% 50%) - computed
|
||||
Pass test unit: rem - circle(50rem) - computed
|
||||
Pass test unit: vw - circle(50vw at 50% 50%) - computed
|
||||
|
||||
@@ -2,8 +2,8 @@ Harness status: OK
|
||||
|
||||
Found 780 tests
|
||||
|
||||
690 Pass
|
||||
90 Fail
|
||||
720 Pass
|
||||
60 Fail
|
||||
Pass test unit (inline): cm - ellipse(at 50cm)
|
||||
Pass test unit (inline): cm - ellipse(at 50% 50cm)
|
||||
Pass test unit (inline): cm - ellipse(at 50cm 50%)
|
||||
@@ -604,36 +604,36 @@ Fail test unit (computed): ex - ellipse(at right 80% bottom 70ex)
|
||||
Fail test unit (computed): ex - ellipse(at right 80ex top 50%)
|
||||
Fail test unit (computed): ex - ellipse(at right 80ex bottom 70%)
|
||||
Fail test unit (computed): ex - ellipse(at right 80ex bottom 70ex)
|
||||
Fail test unit (computed): ch - ellipse(at 50ch)
|
||||
Fail test unit (computed): ch - ellipse(at 50% 50ch)
|
||||
Fail test unit (computed): ch - ellipse(at 50ch 50%)
|
||||
Fail test unit (computed): ch - ellipse(at 50ch 50ch)
|
||||
Fail test unit (computed): ch - ellipse(at left 50ch)
|
||||
Fail test unit (computed): ch - ellipse(at 50ch top)
|
||||
Fail test unit (computed): ch - ellipse(at right 80ch)
|
||||
Fail test unit (computed): ch - ellipse(at 70ch bottom)
|
||||
Fail test unit (computed): ch - ellipse(at center 60ch)
|
||||
Fail test unit (computed): ch - ellipse(at 60ch center)
|
||||
Fail test unit (computed): ch - ellipse(at left 50% top 50ch)
|
||||
Fail test unit (computed): ch - ellipse(at left 50% bottom 70ch)
|
||||
Fail test unit (computed): ch - ellipse(at left 50ch top 50%)
|
||||
Fail test unit (computed): ch - ellipse(at left 50ch top 50ch)
|
||||
Fail test unit (computed): ch - ellipse(at left 50ch bottom 70%)
|
||||
Fail test unit (computed): ch - ellipse(at top 50% left 50ch)
|
||||
Fail test unit (computed): ch - ellipse(at top 50% right 80ch)
|
||||
Fail test unit (computed): ch - ellipse(at top 50ch left 50%)
|
||||
Fail test unit (computed): ch - ellipse(at top 50ch left 50ch)
|
||||
Fail test unit (computed): ch - ellipse(at top 50ch right 80%)
|
||||
Fail test unit (computed): ch - ellipse(at bottom 70% left 50ch)
|
||||
Fail test unit (computed): ch - ellipse(at bottom 70% right 80ch)
|
||||
Fail test unit (computed): ch - ellipse(at bottom 70ch left 50%)
|
||||
Fail test unit (computed): ch - ellipse(at bottom 70ch right 50%)
|
||||
Fail test unit (computed): ch - ellipse(at bottom 70ch right 80ch)
|
||||
Fail test unit (computed): ch - ellipse(at right 80% top 50ch)
|
||||
Fail test unit (computed): ch - ellipse(at right 80% bottom 70ch)
|
||||
Fail test unit (computed): ch - ellipse(at right 80ch top 50%)
|
||||
Fail test unit (computed): ch - ellipse(at right 80ch bottom 70%)
|
||||
Fail test unit (computed): ch - ellipse(at right 80ch bottom 70ch)
|
||||
Pass test unit (computed): ch - ellipse(at 50ch)
|
||||
Pass test unit (computed): ch - ellipse(at 50% 50ch)
|
||||
Pass test unit (computed): ch - ellipse(at 50ch 50%)
|
||||
Pass test unit (computed): ch - ellipse(at 50ch 50ch)
|
||||
Pass test unit (computed): ch - ellipse(at left 50ch)
|
||||
Pass test unit (computed): ch - ellipse(at 50ch top)
|
||||
Pass test unit (computed): ch - ellipse(at right 80ch)
|
||||
Pass test unit (computed): ch - ellipse(at 70ch bottom)
|
||||
Pass test unit (computed): ch - ellipse(at center 60ch)
|
||||
Pass test unit (computed): ch - ellipse(at 60ch center)
|
||||
Pass test unit (computed): ch - ellipse(at left 50% top 50ch)
|
||||
Pass test unit (computed): ch - ellipse(at left 50% bottom 70ch)
|
||||
Pass test unit (computed): ch - ellipse(at left 50ch top 50%)
|
||||
Pass test unit (computed): ch - ellipse(at left 50ch top 50ch)
|
||||
Pass test unit (computed): ch - ellipse(at left 50ch bottom 70%)
|
||||
Pass test unit (computed): ch - ellipse(at top 50% left 50ch)
|
||||
Pass test unit (computed): ch - ellipse(at top 50% right 80ch)
|
||||
Pass test unit (computed): ch - ellipse(at top 50ch left 50%)
|
||||
Pass test unit (computed): ch - ellipse(at top 50ch left 50ch)
|
||||
Pass test unit (computed): ch - ellipse(at top 50ch right 80%)
|
||||
Pass test unit (computed): ch - ellipse(at bottom 70% left 50ch)
|
||||
Pass test unit (computed): ch - ellipse(at bottom 70% right 80ch)
|
||||
Pass test unit (computed): ch - ellipse(at bottom 70ch left 50%)
|
||||
Pass test unit (computed): ch - ellipse(at bottom 70ch right 50%)
|
||||
Pass test unit (computed): ch - ellipse(at bottom 70ch right 80ch)
|
||||
Pass test unit (computed): ch - ellipse(at right 80% top 50ch)
|
||||
Pass test unit (computed): ch - ellipse(at right 80% bottom 70ch)
|
||||
Pass test unit (computed): ch - ellipse(at right 80ch top 50%)
|
||||
Pass test unit (computed): ch - ellipse(at right 80ch bottom 70%)
|
||||
Pass test unit (computed): ch - ellipse(at right 80ch bottom 70ch)
|
||||
Pass test unit (computed): rem - ellipse(at 50rem)
|
||||
Pass test unit (computed): rem - ellipse(at 50% 50rem)
|
||||
Pass test unit (computed): rem - ellipse(at 50rem 50%)
|
||||
|
||||
@@ -2,8 +2,8 @@ Harness status: OK
|
||||
|
||||
Found 416 tests
|
||||
|
||||
380 Pass
|
||||
36 Fail
|
||||
396 Pass
|
||||
20 Fail
|
||||
Pass test unit: cm - ellipse(50cm 100cm at 50% 50%) - inline
|
||||
Pass test unit: cm - ellipse(100cm 100px at 50% 50%) - inline
|
||||
Pass test unit: cm - ellipse(50cm 25% at 50% 50%) - inline
|
||||
@@ -324,22 +324,22 @@ Fail test unit: ex - ellipse(25ex closest-side) - computed
|
||||
Fail test unit: ex - ellipse(closest-side 75ex) - computed
|
||||
Fail test unit: ex - ellipse(25ex farthest-side) - computed
|
||||
Fail test unit: ex - ellipse(farthest-side 75ex) - computed
|
||||
Fail test unit: ch - ellipse(50ch 100ch at 50% 50%) - computed
|
||||
Fail test unit: ch - ellipse(100ch 100px at 50% 50%) - computed
|
||||
Fail test unit: ch - ellipse(50ch 25% at 50% 50%) - computed
|
||||
Fail test unit: ch - ellipse(25% 50ch at 50% 50%) - computed
|
||||
Fail test unit: ch - ellipse(25ch closest-side at 50% 50%) - computed
|
||||
Fail test unit: ch - ellipse(closest-side 75ch at 50% 50%) - computed
|
||||
Fail test unit: ch - ellipse(25ch farthest-side at 50% 50%) - computed
|
||||
Fail test unit: ch - ellipse(farthest-side 75ch at 50% 50%) - computed
|
||||
Fail test unit: ch - ellipse(50ch 100ch) - computed
|
||||
Fail test unit: ch - ellipse(100ch 100px) - computed
|
||||
Fail test unit: ch - ellipse(50ch 25%) - computed
|
||||
Fail test unit: ch - ellipse(25% 50ch) - computed
|
||||
Fail test unit: ch - ellipse(25ch closest-side) - computed
|
||||
Fail test unit: ch - ellipse(closest-side 75ch) - computed
|
||||
Fail test unit: ch - ellipse(25ch farthest-side) - computed
|
||||
Fail test unit: ch - ellipse(farthest-side 75ch) - computed
|
||||
Pass test unit: ch - ellipse(50ch 100ch at 50% 50%) - computed
|
||||
Pass test unit: ch - ellipse(100ch 100px at 50% 50%) - computed
|
||||
Pass test unit: ch - ellipse(50ch 25% at 50% 50%) - computed
|
||||
Pass test unit: ch - ellipse(25% 50ch at 50% 50%) - computed
|
||||
Pass test unit: ch - ellipse(25ch closest-side at 50% 50%) - computed
|
||||
Pass test unit: ch - ellipse(closest-side 75ch at 50% 50%) - computed
|
||||
Pass test unit: ch - ellipse(25ch farthest-side at 50% 50%) - computed
|
||||
Pass test unit: ch - ellipse(farthest-side 75ch at 50% 50%) - computed
|
||||
Pass test unit: ch - ellipse(50ch 100ch) - computed
|
||||
Pass test unit: ch - ellipse(100ch 100px) - computed
|
||||
Pass test unit: ch - ellipse(50ch 25%) - computed
|
||||
Pass test unit: ch - ellipse(25% 50ch) - computed
|
||||
Pass test unit: ch - ellipse(25ch closest-side) - computed
|
||||
Pass test unit: ch - ellipse(closest-side 75ch) - computed
|
||||
Pass test unit: ch - ellipse(25ch farthest-side) - computed
|
||||
Pass test unit: ch - ellipse(farthest-side 75ch) - computed
|
||||
Pass test unit: rem - ellipse(50rem 100rem at 50% 50%) - computed
|
||||
Pass test unit: rem - ellipse(100rem 100px at 50% 50%) - computed
|
||||
Pass test unit: rem - ellipse(50rem 25% at 50% 50%) - computed
|
||||
|
||||
@@ -2,8 +2,8 @@ Harness status: OK
|
||||
|
||||
Found 520 tests
|
||||
|
||||
480 Pass
|
||||
40 Fail
|
||||
500 Pass
|
||||
20 Fail
|
||||
Pass inset(10cm round 10cm) - inline
|
||||
Pass inset(10cm round 10cm / 10cm) - inline
|
||||
Pass inset(10cm round 10cm / 10cm 20cm) - inline
|
||||
@@ -404,26 +404,26 @@ Fail inset(10ex round 10ex 20ex 30ex 40ex / 10ex) - computed
|
||||
Fail inset(10ex round 10ex 20ex 30ex 40ex / 10ex 20ex) - computed
|
||||
Fail inset(10ex round 10ex 20ex 30ex 40ex / 10ex 20ex 30ex) - computed
|
||||
Fail inset(10ex round 10ex 20ex 30ex 40ex / 10ex 20ex 30ex 40ex) - computed
|
||||
Fail inset(10ch round 10ch) - computed
|
||||
Fail inset(10ch round 10ch / 10ch) - computed
|
||||
Fail inset(10ch round 10ch / 10ch 20ch) - computed
|
||||
Fail inset(10ch round 10ch / 10ch 20ch 30ch) - computed
|
||||
Fail inset(10ch round 10ch / 10ch 20ch 30ch 40ch) - computed
|
||||
Fail inset(10ch round 10ch 20ch) - computed
|
||||
Fail inset(10ch round 10ch 20ch / 10ch) - computed
|
||||
Fail inset(10ch round 10ch 20ch / 10ch 20ch) - computed
|
||||
Fail inset(10ch round 10ch 20ch / 10ch 20ch 30ch) - computed
|
||||
Fail inset(10ch round 10ch 20ch / 10ch 20ch 30ch 40ch) - computed
|
||||
Fail inset(10ch round 10ch 20ch 30ch) - computed
|
||||
Fail inset(10ch round 10ch 20ch 30ch / 10ch) - computed
|
||||
Fail inset(10ch round 10ch 20ch 30ch / 10ch 20ch) - computed
|
||||
Fail inset(10ch round 10ch 20ch 30ch / 10ch 20ch 30ch) - computed
|
||||
Fail inset(10ch round 10ch 20ch 30ch / 10ch 20ch 30ch 40ch) - computed
|
||||
Fail inset(10ch round 10ch 20ch 30ch 40ch) - computed
|
||||
Fail inset(10ch round 10ch 20ch 30ch 40ch / 10ch) - computed
|
||||
Fail inset(10ch round 10ch 20ch 30ch 40ch / 10ch 20ch) - computed
|
||||
Fail inset(10ch round 10ch 20ch 30ch 40ch / 10ch 20ch 30ch) - computed
|
||||
Fail inset(10ch round 10ch 20ch 30ch 40ch / 10ch 20ch 30ch 40ch) - computed
|
||||
Pass inset(10ch round 10ch) - computed
|
||||
Pass inset(10ch round 10ch / 10ch) - computed
|
||||
Pass inset(10ch round 10ch / 10ch 20ch) - computed
|
||||
Pass inset(10ch round 10ch / 10ch 20ch 30ch) - computed
|
||||
Pass inset(10ch round 10ch / 10ch 20ch 30ch 40ch) - computed
|
||||
Pass inset(10ch round 10ch 20ch) - computed
|
||||
Pass inset(10ch round 10ch 20ch / 10ch) - computed
|
||||
Pass inset(10ch round 10ch 20ch / 10ch 20ch) - computed
|
||||
Pass inset(10ch round 10ch 20ch / 10ch 20ch 30ch) - computed
|
||||
Pass inset(10ch round 10ch 20ch / 10ch 20ch 30ch 40ch) - computed
|
||||
Pass inset(10ch round 10ch 20ch 30ch) - computed
|
||||
Pass inset(10ch round 10ch 20ch 30ch / 10ch) - computed
|
||||
Pass inset(10ch round 10ch 20ch 30ch / 10ch 20ch) - computed
|
||||
Pass inset(10ch round 10ch 20ch 30ch / 10ch 20ch 30ch) - computed
|
||||
Pass inset(10ch round 10ch 20ch 30ch / 10ch 20ch 30ch 40ch) - computed
|
||||
Pass inset(10ch round 10ch 20ch 30ch 40ch) - computed
|
||||
Pass inset(10ch round 10ch 20ch 30ch 40ch / 10ch) - computed
|
||||
Pass inset(10ch round 10ch 20ch 30ch 40ch / 10ch 20ch) - computed
|
||||
Pass inset(10ch round 10ch 20ch 30ch 40ch / 10ch 20ch 30ch) - computed
|
||||
Pass inset(10ch round 10ch 20ch 30ch 40ch / 10ch 20ch 30ch 40ch) - computed
|
||||
Pass inset(10rem round 10rem) - computed
|
||||
Pass inset(10rem round 10rem / 10rem) - computed
|
||||
Pass inset(10rem round 10rem / 10rem 20rem) - computed
|
||||
|
||||
Reference in New Issue
Block a user