mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-23 09:22:30 +00:00
LibWeb: Serialize grid/grid-template as "none" when applicable
This exposes a bunch of false-positives in the grid-{shorthand,template}-invalid.html WPT tests, but gains us some new passes as well.
This commit is contained in:
parent
7d81823eb3
commit
12c9da2d3f
Notes:
github-actions[bot]
2025-06-16 11:38:44 +00:00
Author: https://github.com/Calme1709
Commit: 12c9da2d3f
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5066
Reviewed-by: https://github.com/AtkinsSJ ✅
7 changed files with 30 additions and 27 deletions
|
@ -383,6 +383,9 @@ String ShorthandStyleValue::to_string(SerializationMode mode) const
|
||||||
auto& rows = longhand(PropertyID::GridTemplateRows)->as_grid_track_size_list();
|
auto& rows = longhand(PropertyID::GridTemplateRows)->as_grid_track_size_list();
|
||||||
auto& columns = longhand(PropertyID::GridTemplateColumns)->as_grid_track_size_list();
|
auto& columns = longhand(PropertyID::GridTemplateColumns)->as_grid_track_size_list();
|
||||||
|
|
||||||
|
if (areas.grid_template_area().size() == 0 && rows.grid_track_size_list().track_list().size() == 0 && columns.grid_track_size_list().track_list().size() == 0)
|
||||||
|
return "none"_string;
|
||||||
|
|
||||||
auto construct_rows_string = [&]() {
|
auto construct_rows_string = [&]() {
|
||||||
StringBuilder builder;
|
StringBuilder builder;
|
||||||
size_t idx = 0;
|
size_t idx = 0;
|
||||||
|
|
|
@ -383,7 +383,7 @@ All supported properties and their default values exposed from CSSStylePropertie
|
||||||
'fontWidth': 'normal'
|
'fontWidth': 'normal'
|
||||||
'font-width': 'normal'
|
'font-width': 'normal'
|
||||||
'gap': 'normal'
|
'gap': 'normal'
|
||||||
'grid': ''
|
'grid': 'none'
|
||||||
'gridArea': 'auto'
|
'gridArea': 'auto'
|
||||||
'grid-area': 'auto'
|
'grid-area': 'auto'
|
||||||
'gridAutoColumns': 'auto'
|
'gridAutoColumns': 'auto'
|
||||||
|
@ -410,8 +410,8 @@ All supported properties and their default values exposed from CSSStylePropertie
|
||||||
'grid-row-gap': 'normal'
|
'grid-row-gap': 'normal'
|
||||||
'gridRowStart': 'auto'
|
'gridRowStart': 'auto'
|
||||||
'grid-row-start': 'auto'
|
'grid-row-start': 'auto'
|
||||||
'gridTemplate': ''
|
'gridTemplate': 'none'
|
||||||
'grid-template': ''
|
'grid-template': 'none'
|
||||||
'gridTemplateAreas': 'none'
|
'gridTemplateAreas': 'none'
|
||||||
'grid-template-areas': 'none'
|
'grid-template-areas': 'none'
|
||||||
'gridTemplateColumns': 'none'
|
'gridTemplateColumns': 'none'
|
||||||
|
|
|
@ -2,17 +2,17 @@ Harness status: OK
|
||||||
|
|
||||||
Found 34 tests
|
Found 34 tests
|
||||||
|
|
||||||
21 Pass
|
16 Pass
|
||||||
13 Fail
|
18 Fail
|
||||||
Pass e.style['grid'] = "none none" should not set the property value
|
Pass e.style['grid'] = "none none" should not set the property value
|
||||||
Pass e.style['grid'] = "none []" should not set the property value
|
Pass e.style['grid'] = "none []" should not set the property value
|
||||||
Fail e.style['grid'] = "10px" should not set the property value
|
Fail e.style['grid'] = "10px" should not set the property value
|
||||||
Fail e.style['grid'] = "20%" should not set the property value
|
Fail e.style['grid'] = "20%" should not set the property value
|
||||||
Fail e.style['grid'] = "5fr" should not set the property value
|
Fail e.style['grid'] = "5fr" should not set the property value
|
||||||
Pass e.style['grid'] = "[a]" should not set the property value
|
Fail e.style['grid'] = "[a]" should not set the property value
|
||||||
Fail e.style['grid'] = "[a] 10px" should not set the property value
|
Fail e.style['grid'] = "[a] 10px" should not set the property value
|
||||||
Fail e.style['grid'] = "[a] 10px []" should not set the property value
|
Fail e.style['grid'] = "[a] 10px []" should not set the property value
|
||||||
Pass e.style['grid'] = "[]" should not set the property value
|
Fail e.style['grid'] = "[]" should not set the property value
|
||||||
Fail e.style['grid'] = "10px \"a\"" should not set the property value
|
Fail e.style['grid'] = "10px \"a\"" should not set the property value
|
||||||
Fail e.style['grid'] = "[] 10px \"a\"" should not set the property value
|
Fail e.style['grid'] = "[] 10px \"a\"" should not set the property value
|
||||||
Fail e.style['grid'] = "10px [] \"a\"" should not set the property value
|
Fail e.style['grid'] = "10px [] \"a\"" should not set the property value
|
||||||
|
@ -28,13 +28,13 @@ Pass e.style['grid'] = "[a] \"a\" [a] [a]" should not set the property value
|
||||||
Pass e.style['grid'] = "\"a\" \"a\" [a] [a]" should not set the property value
|
Pass e.style['grid'] = "\"a\" \"a\" [a] [a]" should not set the property value
|
||||||
Pass e.style['grid'] = "\"a\" [a] [a] / none" should not set the property value
|
Pass e.style['grid'] = "\"a\" [a] [a] / none" should not set the property value
|
||||||
Pass e.style['grid'] = "\"a\" \"a\" [a] [a] / none" should not set the property value
|
Pass e.style['grid'] = "\"a\" \"a\" [a] [a] / none" should not set the property value
|
||||||
Pass e.style['grid'] = "none / \"a\"" should not set the property value
|
Fail e.style['grid'] = "none / \"a\"" should not set the property value
|
||||||
Pass e.style['grid'] = "\"a\" / none" should not set the property value
|
Pass e.style['grid'] = "\"a\" / none" should not set the property value
|
||||||
Pass e.style['grid'] = "none / [] \"a\"" should not set the property value
|
Fail e.style['grid'] = "none / [] \"a\"" should not set the property value
|
||||||
Pass e.style['grid'] = "none / \"a\" []" should not set the property value
|
Pass e.style['grid'] = "none / \"a\" []" should not set the property value
|
||||||
Pass e.style['grid'] = "none / \"a\" [] 10px" should not set the property value
|
Pass e.style['grid'] = "none / \"a\" [] 10px" should not set the property value
|
||||||
Pass e.style['grid'] = "auto-flow 100px" should not set the property value
|
Pass e.style['grid'] = "auto-flow 100px" should not set the property value
|
||||||
Pass e.style['grid'] = "auto-flow / auto-flow" should not set the property value
|
Fail e.style['grid'] = "auto-flow / auto-flow" should not set the property value
|
||||||
Pass e.style['grid'] = "auto-flow 1fr / auto-flow 1fr" should not set the property value
|
Pass e.style['grid'] = "auto-flow 1fr / auto-flow 1fr" should not set the property value
|
||||||
Pass e.style['grid'] = "dense auto-flow / dense auto-flow" should not set the property value
|
Pass e.style['grid'] = "dense auto-flow / dense auto-flow" should not set the property value
|
||||||
Pass e.style['grid'] = "auto / auto-flow foo()" should not set the property value
|
Pass e.style['grid'] = "auto / auto-flow foo()" should not set the property value
|
|
@ -2,10 +2,10 @@ Harness status: OK
|
||||||
|
|
||||||
Found 49 tests
|
Found 49 tests
|
||||||
|
|
||||||
5 Pass
|
7 Pass
|
||||||
44 Fail
|
42 Fail
|
||||||
Fail e.style['grid'] = "none" should set the property value
|
Pass e.style['grid'] = "none" should set the property value
|
||||||
Fail e.style['grid'] = "none / none" should set the property value
|
Pass e.style['grid'] = "none / none" should set the property value
|
||||||
Pass e.style['grid'] = "auto / auto" should set the property value
|
Pass e.style['grid'] = "auto / auto" should set the property value
|
||||||
Fail e.style['grid'] = "none / [a] 0px" should set the property value
|
Fail e.style['grid'] = "none / [a] 0px" should set the property value
|
||||||
Fail e.style['grid'] = "none / [] 0px" should set the property value
|
Fail e.style['grid'] = "none / [] 0px" should set the property value
|
||||||
|
|
|
@ -2,15 +2,15 @@ Harness status: OK
|
||||||
|
|
||||||
Found 66 tests
|
Found 66 tests
|
||||||
|
|
||||||
19 Pass
|
15 Pass
|
||||||
47 Fail
|
51 Fail
|
||||||
Fail e.style['grid-template'] = "auto" should not set the property value
|
Fail e.style['grid-template'] = "auto" should not set the property value
|
||||||
Pass e.style['grid-template'] = "none none" should not set the property value
|
Pass e.style['grid-template'] = "none none" should not set the property value
|
||||||
Pass e.style['grid-template'] = "none []" should not set the property value
|
Pass e.style['grid-template'] = "none []" should not set the property value
|
||||||
Fail e.style['grid-template'] = "10px" should not set the property value
|
Fail e.style['grid-template'] = "10px" should not set the property value
|
||||||
Fail e.style['grid-template'] = "20%" should not set the property value
|
Fail e.style['grid-template'] = "20%" should not set the property value
|
||||||
Fail e.style['grid-template'] = "5fr" should not set the property value
|
Fail e.style['grid-template'] = "5fr" should not set the property value
|
||||||
Pass e.style['grid-template'] = "[a]" should not set the property value
|
Fail e.style['grid-template'] = "[a]" should not set the property value
|
||||||
Fail e.style['grid-template'] = "[a] 10px" should not set the property value
|
Fail e.style['grid-template'] = "[a] 10px" should not set the property value
|
||||||
Fail e.style['grid-template'] = "[a] repeat(2, 10px)" should not set the property value
|
Fail e.style['grid-template'] = "[a] repeat(2, 10px)" should not set the property value
|
||||||
Fail e.style['grid-template'] = "[a] repeat(auto-fill, 10px)" should not set the property value
|
Fail e.style['grid-template'] = "[a] repeat(auto-fill, 10px)" should not set the property value
|
||||||
|
@ -19,7 +19,7 @@ Fail e.style['grid-template'] = "[a] 10px []" should not set the property value
|
||||||
Fail e.style['grid-template'] = "[a] repeat(2, 10px) []" should not set the property value
|
Fail e.style['grid-template'] = "[a] repeat(2, 10px) []" should not set the property value
|
||||||
Fail e.style['grid-template'] = "[a] repeat(auto-fill, 10px) []" should not set the property value
|
Fail e.style['grid-template'] = "[a] repeat(auto-fill, 10px) []" should not set the property value
|
||||||
Fail e.style['grid-template'] = "[a] repeat(auto-fit, 10px) []" should not set the property value
|
Fail e.style['grid-template'] = "[a] repeat(auto-fit, 10px) []" should not set the property value
|
||||||
Pass e.style['grid-template'] = "[]" should not set the property value
|
Fail e.style['grid-template'] = "[]" should not set the property value
|
||||||
Fail e.style['grid-template'] = "10px \"a\"" should not set the property value
|
Fail e.style['grid-template'] = "10px \"a\"" should not set the property value
|
||||||
Fail e.style['grid-template'] = "repeat(2, 10px) \"a\"" should not set the property value
|
Fail e.style['grid-template'] = "repeat(2, 10px) \"a\"" should not set the property value
|
||||||
Fail e.style['grid-template'] = "repeat(auto-fill, 10px) \"a\"" should not set the property value
|
Fail e.style['grid-template'] = "repeat(auto-fill, 10px) \"a\"" should not set the property value
|
||||||
|
@ -62,9 +62,9 @@ Pass e.style['grid-template'] = "[a] \"a\" [a] [a]" should not set the property
|
||||||
Pass e.style['grid-template'] = "\"a\" \"a\" [a] [a]" should not set the property value
|
Pass e.style['grid-template'] = "\"a\" \"a\" [a] [a]" should not set the property value
|
||||||
Pass e.style['grid-template'] = "\"a\" [a] [a] / none" should not set the property value
|
Pass e.style['grid-template'] = "\"a\" [a] [a] / none" should not set the property value
|
||||||
Pass e.style['grid-template'] = "\"a\" \"a\" [a] [a] / none" should not set the property value
|
Pass e.style['grid-template'] = "\"a\" \"a\" [a] [a] / none" should not set the property value
|
||||||
Pass e.style['grid-template'] = "none / \"a\"" should not set the property value
|
Fail e.style['grid-template'] = "none / \"a\"" should not set the property value
|
||||||
Pass e.style['grid-template'] = "\"a\" / none" should not set the property value
|
Pass e.style['grid-template'] = "\"a\" / none" should not set the property value
|
||||||
Pass e.style['grid-template'] = "none / [] \"a\"" should not set the property value
|
Fail e.style['grid-template'] = "none / [] \"a\"" should not set the property value
|
||||||
Pass e.style['grid-template'] = "none / \"a\" []" should not set the property value
|
Pass e.style['grid-template'] = "none / \"a\" []" should not set the property value
|
||||||
Pass e.style['grid-template'] = "none / \"a\" [] 10px" should not set the property value
|
Pass e.style['grid-template'] = "none / \"a\" [] 10px" should not set the property value
|
||||||
Pass e.style['grid-template'] = "none / \"a\" [] repeat(2, 10px)" should not set the property value
|
Pass e.style['grid-template'] = "none / \"a\" [] repeat(2, 10px)" should not set the property value
|
||||||
|
|
|
@ -2,10 +2,10 @@ Harness status: OK
|
||||||
|
|
||||||
Found 40 tests
|
Found 40 tests
|
||||||
|
|
||||||
5 Pass
|
7 Pass
|
||||||
35 Fail
|
33 Fail
|
||||||
Fail e.style['grid-template'] = "none" should set the property value
|
Pass e.style['grid-template'] = "none" should set the property value
|
||||||
Fail e.style['grid-template'] = "none / none" should set the property value
|
Pass e.style['grid-template'] = "none / none" should set the property value
|
||||||
Pass e.style['grid-template'] = "auto / auto" should set the property value
|
Pass e.style['grid-template'] = "auto / auto" should set the property value
|
||||||
Fail e.style['grid-template'] = "none / [a] 0px" should set the property value
|
Fail e.style['grid-template'] = "none / [a] 0px" should set the property value
|
||||||
Fail e.style['grid-template'] = "none / [] 0px" should set the property value
|
Fail e.style['grid-template'] = "none / [] 0px" should set the property value
|
||||||
|
|
|
@ -2,10 +2,10 @@ Harness status: OK
|
||||||
|
|
||||||
Found 11 tests
|
Found 11 tests
|
||||||
|
|
||||||
6 Pass
|
7 Pass
|
||||||
5 Fail
|
4 Fail
|
||||||
Fail All properties can serialize 'initial'
|
Fail All properties can serialize 'initial'
|
||||||
Fail All properties (except 'all') can serialize their initial value (computed)
|
Pass All properties (except 'all') can serialize their initial value (computed)
|
||||||
Fail All properties (except 'all') can serialize their initial value (specified)
|
Fail All properties (except 'all') can serialize their initial value (specified)
|
||||||
Fail All shorthands can serialize their longhands set to 'initial'
|
Fail All shorthands can serialize their longhands set to 'initial'
|
||||||
Fail All shorthands (except 'all') can serialize their longhands set to their initial value
|
Fail All shorthands (except 'all') can serialize their longhands set to their initial value
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue