mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-23 04:55:15 +00:00
LibWeb: Parse CSS :host selector
Let's at least parse it, even if we don't implement matching for it yet.
This commit is contained in:
parent
6acce60393
commit
088cc4ea73
Notes:
sideshowbarker
2024-07-16 22:22:13 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/088cc4ea73
5 changed files with 12 additions and 0 deletions
|
@ -534,6 +534,8 @@ Parser::ParseErrorOr<Selector::SimpleSelector> Parser::parse_pseudo_simple_selec
|
|||
return make_pseudo_class_selector(Selector::SimpleSelector::PseudoClass::Type::OnlyOfType);
|
||||
if (pseudo_name.equals_ignoring_ascii_case("root"sv))
|
||||
return make_pseudo_class_selector(Selector::SimpleSelector::PseudoClass::Type::Root);
|
||||
if (pseudo_name.equals_ignoring_ascii_case("host"sv))
|
||||
return make_pseudo_class_selector(Selector::SimpleSelector::PseudoClass::Type::Host);
|
||||
if (pseudo_name.equals_ignoring_ascii_case("visited"sv))
|
||||
return make_pseudo_class_selector(Selector::SimpleSelector::PseudoClass::Type::Visited);
|
||||
if (pseudo_name.equals_ignoring_ascii_case("scope"sv))
|
||||
|
|
|
@ -220,6 +220,7 @@ ErrorOr<String> Selector::SimpleSelector::serialize() const
|
|||
case Selector::SimpleSelector::PseudoClass::Type::OnlyChild:
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Empty:
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Root:
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Host:
|
||||
case Selector::SimpleSelector::PseudoClass::Type::FirstOfType:
|
||||
case Selector::SimpleSelector::PseudoClass::Type::LastOfType:
|
||||
case Selector::SimpleSelector::PseudoClass::Type::OnlyOfType:
|
||||
|
|
|
@ -98,6 +98,7 @@ public:
|
|||
NthLastChild,
|
||||
Empty,
|
||||
Root,
|
||||
Host,
|
||||
FirstOfType,
|
||||
LastOfType,
|
||||
OnlyOfType,
|
||||
|
@ -265,6 +266,8 @@ constexpr StringView pseudo_class_name(Selector::SimpleSelector::PseudoClass::Ty
|
|||
return "empty"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Root:
|
||||
return "root"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::Host:
|
||||
return "host"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::FirstOfType:
|
||||
return "first-of-type"sv;
|
||||
case Selector::SimpleSelector::PseudoClass::Type::LastOfType:
|
||||
|
|
|
@ -245,6 +245,9 @@ static inline bool matches_pseudo_class(CSS::Selector::SimpleSelector::PseudoCla
|
|||
}
|
||||
case CSS::Selector::SimpleSelector::PseudoClass::Type::Root:
|
||||
return is<HTML::HTMLHtmlElement>(element);
|
||||
case CSS::Selector::SimpleSelector::PseudoClass::Type::Host:
|
||||
// FIXME: Implement :host selector.
|
||||
return false;
|
||||
case CSS::Selector::SimpleSelector::PseudoClass::Type::Scope:
|
||||
return scope ? &element == scope : is<HTML::HTMLHtmlElement>(element);
|
||||
case CSS::Selector::SimpleSelector::PseudoClass::Type::FirstOfType:
|
||||
|
|
|
@ -467,6 +467,9 @@ void dump_selector(StringBuilder& builder, CSS::Selector const& selector)
|
|||
case CSS::Selector::SimpleSelector::PseudoClass::Type::Root:
|
||||
pseudo_class_description = "Root";
|
||||
break;
|
||||
case CSS::Selector::SimpleSelector::PseudoClass::Type::Host:
|
||||
pseudo_class_description = "Host";
|
||||
break;
|
||||
case CSS::Selector::SimpleSelector::PseudoClass::Type::FirstOfType:
|
||||
pseudo_class_description = "FirstOfType";
|
||||
break;
|
||||
|
|
Loading…
Add table
Reference in a new issue