LibWeb: Move pseudo-element-from-string code into Selector
This commit is contained in:
parent
adc08d0646
commit
1c18bb13a2
Notes:
sideshowbarker
2024-07-17 17:37:43 +09:00
Author: https://github.com/AtkinsSJ Commit: https://github.com/SerenityOS/serenity/commit/1c18bb13a2 Pull-request: https://github.com/SerenityOS/serenity/pull/12873
3 changed files with 21 additions and 11 deletions
|
@ -496,20 +496,12 @@ Result<Selector::SimpleSelector, Parser::ParsingResult> Parser::parse_simple_sel
|
|||
if (has_ignored_vendor_prefix(pseudo_name))
|
||||
return ParsingResult::IncludesIgnoredVendorPrefix;
|
||||
|
||||
if (pseudo_name.equals_ignoring_case("after")) {
|
||||
simple_selector.pseudo_element = Selector::PseudoElement::After;
|
||||
} else if (pseudo_name.equals_ignoring_case("before")) {
|
||||
simple_selector.pseudo_element = Selector::PseudoElement::Before;
|
||||
} else if (pseudo_name.equals_ignoring_case("first-letter")) {
|
||||
simple_selector.pseudo_element = Selector::PseudoElement::FirstLetter;
|
||||
} else if (pseudo_name.equals_ignoring_case("first-line")) {
|
||||
simple_selector.pseudo_element = Selector::PseudoElement::FirstLine;
|
||||
} else if (pseudo_name.equals_ignoring_case("marker")) {
|
||||
simple_selector.pseudo_element = Selector::PseudoElement::Marker;
|
||||
} else {
|
||||
auto pseudo_element = pseudo_element_from_string(pseudo_name);
|
||||
if (!pseudo_element.has_value()) {
|
||||
dbgln_if(CSS_PARSER_DEBUG, "Unrecognized pseudo-element: '::{}'", pseudo_name);
|
||||
return ParsingResult::SyntaxError;
|
||||
}
|
||||
simple_selector.pseudo_element = pseudo_element.value();
|
||||
|
||||
return simple_selector;
|
||||
}
|
||||
|
|
|
@ -261,4 +261,20 @@ String serialize_a_group_of_selectors(NonnullRefPtrVector<Selector> const& selec
|
|||
return builder.to_string();
|
||||
}
|
||||
|
||||
Optional<Selector::PseudoElement> pseudo_element_from_string(StringView name)
|
||||
{
|
||||
if (name.equals_ignoring_case("after")) {
|
||||
return Selector::PseudoElement::After;
|
||||
} else if (name.equals_ignoring_case("before")) {
|
||||
return Selector::PseudoElement::Before;
|
||||
} else if (name.equals_ignoring_case("first-letter")) {
|
||||
return Selector::PseudoElement::FirstLetter;
|
||||
} else if (name.equals_ignoring_case("first-line")) {
|
||||
return Selector::PseudoElement::FirstLine;
|
||||
} else if (name.equals_ignoring_case("marker")) {
|
||||
return Selector::PseudoElement::Marker;
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -165,6 +165,8 @@ constexpr StringView pseudo_element_name(Selector::PseudoElement pseudo_element)
|
|||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
Optional<Selector::PseudoElement> pseudo_element_from_string(StringView);
|
||||
|
||||
constexpr StringView pseudo_class_name(Selector::SimpleSelector::PseudoClass::Type pseudo_class)
|
||||
{
|
||||
switch (pseudo_class) {
|
||||
|
|
Loading…
Add table
Reference in a new issue