Files
ladybird/Tests/LibWeb/Text/expected/wpt-import/css/css-scoping/slotted-parsing.txt
Sam Atkins bb4f2f49f5 LibWeb/CSS: Reject selectors with multiple pseudo-elements
Our codebase assumes that a selector only contains a single
pseudo-element, and that it's in the final compound selector. If there
are multiple of them, or they're somewhere else in the selector, we
just silently pretend the others aren't there, which is *not* what we
want, and causes the selector to match things it shouldn't.

A proper fix is quite involved, so as a temporary fix, just reject any
selector that doesn't fit our assumptions during parsing. That way we
get false negatives instead of false positives.
2025-12-09 15:48:57 +00:00

38 lines
1.8 KiB
Plaintext

Harness status: OK
Found 32 tests
13 Pass
19 Fail
Pass "::slotted" should be an invalid selector
Pass "::slotted()" should be an invalid selector
Fail "::slotted(*).class" should be an invalid selector
Pass "::slotted(*)#id {}" should be an invalid selector
Fail "::slotted(*)[attr]" should be an invalid selector
Fail "::slotted(*):host" should be an invalid selector
Fail "::slotted(*):host(div)" should be an invalid selector
Fail "::slotted(*):hover" should be an invalid selector
Fail "::slotted(*):read-only" should be an invalid selector
Pass "::slotted(*)::slotted(*)" should be an invalid selector
Pass "::slotted(*)::before::slotted(*)" should be an invalid selector
Pass "::slotted(*) span" should be an invalid selector
Pass "::slotted(*)" should be a valid selector
Pass "::slotted(div)" should be a valid selector
Pass "::slotted([attr]:hover)" should be a valid selector
Pass "::slotted(:not(.a))" should be a valid selector
Fail "::slotted(*):is()" should be a valid selector
Fail "::slotted(*):is(:hover)" should be a valid selector
Fail "::slotted(*):is(#id)" should be a valid selector
Fail "::slotted(*):where()" should be a valid selector
Fail "::slotted(*):where(:hover)" should be a valid selector
Fail "::slotted(*):where(#id)" should be a valid selector
Fail "::slotted(*):where(::before)" should be a valid selector
Fail "::slotted(*)::before" should be a valid selector
Fail "::slotted(*)::after" should be a valid selector
Fail "::slotted(*)::details-content" should be a valid selector
Fail "::slotted(*)::file-selector-button" should be a valid selector
Fail "::slotted(*)::placeholder" should be a valid selector
Fail "::slotted(*)::marker" should be a valid selector
Pass "::slotted(*)::first-line" should be an invalid selector
Pass "::slotted(*)::first-letter" should be an invalid selector
Pass "::slotted(*)::selection" should be an invalid selector