LibHTML: Handle stand-alone attribute selectors

A selector like "[foo]" is now parsed as a universal selector component
with an attribute match type. Pretty neat :^)
This commit is contained in:
Andreas Kling 2019-11-21 20:19:00 +01:00
parent c02f560f73
commit 61ba19f031
Notes: sideshowbarker 2024-07-19 11:07:17 +09:00
2 changed files with 13 additions and 4 deletions

View file

@ -244,14 +244,18 @@ public:
} else if (peek() == '#') {
type = Selector::Component::Type::Id;
consume_one();
} else {
} else if (isalpha(peek())) {
type = Selector::Component::Type::TagName;
} else {
type = Selector::Component::Type::Universal;
}
while (is_valid_selector_char(peek()))
buffer.append(consume_one());
if (type != Selector::Component::Type::Universal) {
while (is_valid_selector_char(peek()))
buffer.append(consume_one());
PARSE_ASSERT(!buffer.is_null());
}
PARSE_ASSERT(!buffer.is_null());
Selector::Component component {
type,
Selector::Component::PseudoClass::None,