LibWeb/CSS: Don't treat "-foo" as vendor-prefixed
Some checks are pending
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Build Dev Container Image / build (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run

To be vendor-prefixed, an ident has to start with a '-', then have
another '-' later. If the ident simply starts with a '-' then that's
perfectly fine.

Fixes 62 in-tree WPT subtests. :^)
This commit is contained in:
Sam Atkins 2025-05-23 15:14:44 +01:00 committed by Tim Ledbetter
commit ea44a1c2c7
Notes: github-actions[bot] 2025-05-23 18:40:24 +00:00
4 changed files with 69 additions and 68 deletions

View file

@ -1783,6 +1783,8 @@ bool Parser::has_ignored_vendor_prefix(StringView string)
return false;
if (string.starts_with("-libweb-"sv))
return false;
if (string.count('-') == 1)
return false;
return true;
}

View file

@ -2,8 +2,7 @@ Harness status: OK
Found 2232 tests
2180 Pass
52 Fail
2232 Pass
Pass font-family: simple
Pass font-family: simple (setter)
Pass font: 16px simple
@ -90,32 +89,32 @@ Pass font: bolder oblique 16px "simple"
Pass font: bolder oblique 16px "simple" (setter)
Pass font-family: -simple
Pass font-family: -simple (setter)
Fail font: 16px -simple
Fail font: 16px -simple (setter)
Fail font: 900px -simple
Fail font: 900px -simple (setter)
Fail font: 900em -simple
Fail font: 900em -simple (setter)
Fail font: 35% -simple
Fail font: 35% -simple (setter)
Fail font: 7832.3% -simple
Fail font: 7832.3% -simple (setter)
Fail font: xx-large -simple
Fail font: xx-large -simple (setter)
Fail font: lighter larger -simple
Fail font: lighter larger -simple (setter)
Fail font: italic 16px -simple
Fail font: italic 16px -simple (setter)
Fail font: italic bold 16px -simple
Fail font: italic bold 16px -simple (setter)
Fail font: normal smaller -simple
Fail font: normal smaller -simple (setter)
Fail font: normal normal 16px -simple
Fail font: normal normal 16px -simple (setter)
Fail font: 400 normal 16px -simple
Fail font: 400 normal 16px -simple (setter)
Fail font: bolder oblique 16px -simple
Fail font: bolder oblique 16px -simple (setter)
Pass font: 16px -simple
Pass font: 16px -simple (setter)
Pass font: 900px -simple
Pass font: 900px -simple (setter)
Pass font: 900em -simple
Pass font: 900em -simple (setter)
Pass font: 35% -simple
Pass font: 35% -simple (setter)
Pass font: 7832.3% -simple
Pass font: 7832.3% -simple (setter)
Pass font: xx-large -simple
Pass font: xx-large -simple (setter)
Pass font: lighter larger -simple
Pass font: lighter larger -simple (setter)
Pass font: italic 16px -simple
Pass font: italic 16px -simple (setter)
Pass font: italic bold 16px -simple
Pass font: italic bold 16px -simple (setter)
Pass font: normal smaller -simple
Pass font: normal smaller -simple (setter)
Pass font: normal normal 16px -simple
Pass font: normal normal 16px -simple (setter)
Pass font: 400 normal 16px -simple
Pass font: 400 normal 16px -simple (setter)
Pass font: bolder oblique 16px -simple
Pass font: bolder oblique 16px -simple (setter)
Pass font-family: _simple
Pass font-family: _simple (setter)
Pass font: 16px _simple
@ -202,32 +201,32 @@ Pass font: bolder oblique 16px quite _simple
Pass font: bolder oblique 16px quite _simple (setter)
Pass font-family: quite -simple
Pass font-family: quite -simple (setter)
Fail font: 16px quite -simple
Fail font: 16px quite -simple (setter)
Fail font: 900px quite -simple
Fail font: 900px quite -simple (setter)
Fail font: 900em quite -simple
Fail font: 900em quite -simple (setter)
Fail font: 35% quite -simple
Fail font: 35% quite -simple (setter)
Fail font: 7832.3% quite -simple
Fail font: 7832.3% quite -simple (setter)
Fail font: xx-large quite -simple
Fail font: xx-large quite -simple (setter)
Fail font: lighter larger quite -simple
Fail font: lighter larger quite -simple (setter)
Fail font: italic 16px quite -simple
Fail font: italic 16px quite -simple (setter)
Fail font: italic bold 16px quite -simple
Fail font: italic bold 16px quite -simple (setter)
Fail font: normal smaller quite -simple
Fail font: normal smaller quite -simple (setter)
Fail font: normal normal 16px quite -simple
Fail font: normal normal 16px quite -simple (setter)
Fail font: 400 normal 16px quite -simple
Fail font: 400 normal 16px quite -simple (setter)
Fail font: bolder oblique 16px quite -simple
Fail font: bolder oblique 16px quite -simple (setter)
Pass font: 16px quite -simple
Pass font: 16px quite -simple (setter)
Pass font: 900px quite -simple
Pass font: 900px quite -simple (setter)
Pass font: 900em quite -simple
Pass font: 900em quite -simple (setter)
Pass font: 35% quite -simple
Pass font: 35% quite -simple (setter)
Pass font: 7832.3% quite -simple
Pass font: 7832.3% quite -simple (setter)
Pass font: xx-large quite -simple
Pass font: xx-large quite -simple (setter)
Pass font: lighter larger quite -simple
Pass font: lighter larger quite -simple (setter)
Pass font: italic 16px quite -simple
Pass font: italic 16px quite -simple (setter)
Pass font: italic bold 16px quite -simple
Pass font: italic bold 16px quite -simple (setter)
Pass font: normal smaller quite -simple
Pass font: normal smaller quite -simple (setter)
Pass font: normal normal 16px quite -simple
Pass font: normal normal 16px quite -simple (setter)
Pass font: 400 normal 16px quite -simple
Pass font: 400 normal 16px quite -simple (setter)
Pass font: bolder oblique 16px quite -simple
Pass font: bolder oblique 16px quite -simple (setter)
Pass font-family: 0simple
Pass font-family: 0simple (setter)
Pass font: 16px 0simple

View file

@ -2,22 +2,22 @@ Harness status: OK
Found 30 tests
14 Pass
16 Fail
18 Pass
12 Fail
Pass Property grid-area value 'auto / auto / auto / auto'
Pass Property grid-row value 'auto / auto'
Pass Property grid-column-end value 'auto'
Fail Property grid-row value '-zπ'
Pass Property grid-row value '-zπ'
Pass Property grid-row-start value 'AZ'
Fail Property grid-column-start value '-_π'
Pass Property grid-column-start value '-_π'
Pass Property grid-row-end value '_9'
Fail Property grid-area value '1 / 90 -a- / auto / auto'
Pass Property grid-row value '2 az / auto'
Pass Property grid-column value '9 / -19 zA'
Pass Property grid-row-start value '-19'
Fail Property grid-row-start value '9 -Z_'
Pass Property grid-row-start value '9 -Z_'
Pass Property grid-column-start value '-44 Z'
Fail Property grid-row-end value '1 -πA'
Pass Property grid-row-end value '1 -πA'
Pass Property grid-column-end value '5 π_'
Fail Property grid-area value 'span 2 i / auto / auto / auto'
Pass Property grid-row value 'span 2 / auto'

View file

@ -2,8 +2,8 @@ Harness status: OK
Found 57 tests
24 Pass
33 Fail
30 Pass
27 Fail
Pass e.style['grid-area'] = "auto" should set the property value
Pass e.style['grid-area'] = "auto / auto" should set the property value
Pass e.style['grid-area'] = "auto / auto / auto" should set the property value
@ -13,23 +13,23 @@ Pass e.style['grid-row'] = "auto" should set the property value
Pass e.style['grid-row'] = "auto/auto" should set the property value
Pass e.style['grid-column-end'] = "AuTo" should set the property value
Fail e.style['grid-area'] = "--a" should set the property value
Fail e.style['grid-row'] = "-zπ" should set the property value
Fail e.style['grid-row'] = "-zπ/-zπ" should set the property value
Pass e.style['grid-row'] = "-zπ" should set the property value
Pass e.style['grid-row'] = "-zπ/-zπ" should set the property value
Pass e.style['grid-row'] = "i / i" should set the property value
Pass e.style['grid-row-start'] = "AZ" should set the property value
Fail e.style['grid-column-start'] = "-_π" should set the property value
Pass e.style['grid-column-start'] = "-_π" should set the property value
Pass e.style['grid-row-end'] = "_9" should set the property value
Fail e.style['grid-area'] = "1" should set the property value
Fail e.style['grid-area'] = "+90 -a-" should set the property value
Pass e.style['grid-row'] = "az 2" should set the property value
Pass e.style['grid-column'] = "9" should set the property value
Pass e.style['grid-column'] = "-19 zA" should set the property value
Fail e.style['grid-column'] = "-A0 33" should set the property value
Pass e.style['grid-column'] = "-A0 33" should set the property value
Pass e.style['grid-row-start'] = "-19" should set the property value
Fail e.style['grid-row-start'] = "9 -Z_" should set the property value
Pass e.style['grid-row-start'] = "9 -Z_" should set the property value
Pass e.style['grid-column-start'] = "+90" should set the property value
Pass e.style['grid-column-start'] = "Z -44" should set the property value
Fail e.style['grid-row-end'] = "1 -πA" should set the property value
Pass e.style['grid-row-end'] = "1 -πA" should set the property value
Pass e.style['grid-column-end'] = "π_ +5" should set the property value
Fail e.style['grid-area'] = "span 2 i" should set the property value
Fail e.style['grid-area'] = "i 2 SpAn" should set the property value