LibWeb/CSS: Don't resolve @import URLs until they are used

The regression in the "conditional-CSSGroupingRule" test is we now fail
the "inserting an `@import`" subtests differently and the subtests
aren't independent. Specifically, we don't yet implement the checks in
`CSSRuleList::insert_a_css_rule()` that reject certain rules from being
inserted. Previously we didn't insert the `@import` rule because we
failed to parse its relative URL. Now we parse it correctly, we end up
inserting it.
This commit is contained in:
Sam Atkins 2025-04-08 18:16:38 +01:00 committed by Tim Ledbetter
commit 0f42d5ec3e
Notes: github-actions[bot] 2025-04-09 17:47:10 +00:00
9 changed files with 41 additions and 46 deletions

View file

@ -2,17 +2,17 @@ Harness status: OK
Found 22 tests
5 Pass
17 Fail
9 Pass
13 Fail
Pass @import url("nonexist.css") supports(); should be an invalid import rule due to an invalid supports() declaration
Pass @import url("nonexist.css") supports(foo: bar); should be an invalid import rule due to an invalid supports() declaration
Fail @import url("nonexist.css") supports(display:block); should be a valid supports() import rule
Fail @import url("nonexist.css") supports((display:flex)); should be a valid supports() import rule
Fail @import url("nonexist.css") supports(not (display: flex)); should be a valid supports() import rule
Fail @import url("nonexist.css") supports((display: flex) and (display: block)); should be a valid supports() import rule
Fail @import url("nonexist.css") supports((display: flex) or (display: block)); should be a valid supports() import rule
Fail @import url("nonexist.css") supports((display: flex) or (foo: bar)); should be a valid supports() import rule
Fail @import url("nonexist.css") supports(display: block !important); should be a valid supports() import rule
Pass @import url("nonexist.css") supports((display: flex) and (display: block)); should be a valid supports() import rule
Pass @import url("nonexist.css") supports((display: flex) or (display: block)); should be a valid supports() import rule
Pass @import url("nonexist.css") supports((display: flex) or (foo: bar)); should be a valid supports() import rule
Pass @import url("nonexist.css") supports(display: block !important); should be a valid supports() import rule
Pass @import url("nonexist.css") layer supports(); should be an invalid import rule due to an invalid supports() declaration
Pass @import url("nonexist.css") layer supports(foo: bar); should be an invalid import rule due to an invalid supports() declaration
Fail @import url("nonexist.css") layer(A) supports((display: flex) or (foo: bar)); should be a valid supports() import rule