LibWeb/CSS: Serialize * namespace in attribute selectors

Gets us 13 WPT subtest passes.
This commit is contained in:
Sam Atkins 2025-05-15 14:59:26 +01:00
commit 3914bf05fb
Notes: github-actions[bot] 2025-05-16 15:43:21 +00:00
3 changed files with 18 additions and 17 deletions

View file

@ -348,6 +348,8 @@ String Selector::SimpleSelector::serialize() const
if (attribute.qualified_name.namespace_type == QualifiedName::NamespaceType::Named) {
serialize_an_identifier(s, attribute.qualified_name.namespace_);
s.append('|');
} else if (attribute.qualified_name.namespace_type == QualifiedName::NamespaceType::Any) {
s.append("*|"sv);
}
// 3. Append the serialization of the attribute name as an identifier to s.

View file

@ -2,8 +2,8 @@ Harness status: OK
Found 23 tests
19 Pass
4 Fail
20 Pass
3 Fail
Pass :nth-child serialization produces canonical form
Pass single universal selector shows '*' when serialized.
Pass single type (simple) selector in the sequence of simple selectors that is not a universal selector
@ -19,7 +19,7 @@ Pass single pseudo (simple) selector ":not" which accepts arguments in the seque
Pass escaped character in attribute name
Fail escaped character as code point in attribute name
Pass escaped character (@) in attribute name
Fail escaped character in attribute name with any namespace
Pass escaped character in attribute name with any namespace
Pass escaped character in attribute prefix
Pass escaped character in both attribute prefix and name
Pass escaped character (\) in element name

View file

@ -2,8 +2,7 @@ Harness status: OK
Found 72 tests
60 Pass
12 Fail
72 Pass
Pass [foo="bar"] /* sanity check */ insertRule
Pass [foo="bar"] /* sanity check */ getting CSSRule#cssText
Pass [foo="bar"] /* sanity check */ getting CSSStyleRule#selectorText
@ -37,13 +36,13 @@ Pass [foo="bar"/**/i] getting CSSRule#cssText in @media
Pass [foo="bar"/**/i] getting CSSStyleRule#selectorText in @media
Pass [foo="bar"/**/i] setting CSSStyleRule#selectorText in @media
Pass [*|foo="bar" i] insertRule
Fail [*|foo="bar" i] getting CSSRule#cssText
Fail [*|foo="bar" i] getting CSSStyleRule#selectorText
Fail [*|foo="bar" i] setting CSSStyleRule#selectorText
Pass [*|foo="bar" i] getting CSSRule#cssText
Pass [*|foo="bar" i] getting CSSStyleRule#selectorText
Pass [*|foo="bar" i] setting CSSStyleRule#selectorText
Pass [*|foo="bar" i] insertRule in @media
Fail [*|foo="bar" i] getting CSSRule#cssText in @media
Fail [*|foo="bar" i] getting CSSStyleRule#selectorText in @media
Fail [*|foo="bar" i] setting CSSStyleRule#selectorText in @media
Pass [*|foo="bar" i] getting CSSRule#cssText in @media
Pass [*|foo="bar" i] getting CSSStyleRule#selectorText in @media
Pass [*|foo="bar" i] setting CSSStyleRule#selectorText in @media
Pass [foo="bar" s] insertRule
Pass [foo="bar" s] getting CSSRule#cssText
Pass [foo="bar" s] getting CSSStyleRule#selectorText
@ -69,10 +68,10 @@ Pass [foo="bar"/**/s] getting CSSRule#cssText in @media
Pass [foo="bar"/**/s] getting CSSStyleRule#selectorText in @media
Pass [foo="bar"/**/s] setting CSSStyleRule#selectorText in @media
Pass [*|foo="bar" s] insertRule
Fail [*|foo="bar" s] getting CSSRule#cssText
Fail [*|foo="bar" s] getting CSSStyleRule#selectorText
Fail [*|foo="bar" s] setting CSSStyleRule#selectorText
Pass [*|foo="bar" s] getting CSSRule#cssText
Pass [*|foo="bar" s] getting CSSStyleRule#selectorText
Pass [*|foo="bar" s] setting CSSStyleRule#selectorText
Pass [*|foo="bar" s] insertRule in @media
Fail [*|foo="bar" s] getting CSSRule#cssText in @media
Fail [*|foo="bar" s] getting CSSStyleRule#selectorText in @media
Fail [*|foo="bar" s] setting CSSStyleRule#selectorText in @media
Pass [*|foo="bar" s] getting CSSRule#cssText in @media
Pass [*|foo="bar" s] getting CSSStyleRule#selectorText in @media
Pass [*|foo="bar" s] setting CSSStyleRule#selectorText in @media