mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 11:57:35 +00:00
LibWeb: Use PseudoClassMetadata to simplify serialization
This commit is contained in:
parent
b684bab5f1
commit
a31a0934b8
1 changed files with 8 additions and 44 deletions
|
@ -228,51 +228,16 @@ ErrorOr<String> Selector::SimpleSelector::serialize() const
|
||||||
case Selector::SimpleSelector::Type::PseudoClass: {
|
case Selector::SimpleSelector::Type::PseudoClass: {
|
||||||
auto& pseudo_class = this->pseudo_class();
|
auto& pseudo_class = this->pseudo_class();
|
||||||
|
|
||||||
switch (pseudo_class.type) {
|
auto metadata = pseudo_class_metadata(pseudo_class.type);
|
||||||
case PseudoClass::Link:
|
|
||||||
case PseudoClass::Visited:
|
// If the pseudo-class does not accept arguments append ":" (U+003A), followed by the name of the pseudo-class, to s.
|
||||||
case PseudoClass::Hover:
|
if (metadata.is_valid_as_identifier) {
|
||||||
case PseudoClass::Focus:
|
|
||||||
case PseudoClass::FocusVisible:
|
|
||||||
case PseudoClass::FocusWithin:
|
|
||||||
case PseudoClass::FirstChild:
|
|
||||||
case PseudoClass::LastChild:
|
|
||||||
case PseudoClass::OnlyChild:
|
|
||||||
case PseudoClass::Empty:
|
|
||||||
case PseudoClass::Root:
|
|
||||||
case PseudoClass::Host:
|
|
||||||
case PseudoClass::FirstOfType:
|
|
||||||
case PseudoClass::LastOfType:
|
|
||||||
case PseudoClass::OnlyOfType:
|
|
||||||
case PseudoClass::Disabled:
|
|
||||||
case PseudoClass::Enabled:
|
|
||||||
case PseudoClass::Checked:
|
|
||||||
case PseudoClass::Indeterminate:
|
|
||||||
case PseudoClass::Active:
|
|
||||||
case PseudoClass::Scope:
|
|
||||||
case PseudoClass::Defined:
|
|
||||||
case PseudoClass::Playing:
|
|
||||||
case PseudoClass::Paused:
|
|
||||||
case PseudoClass::Seeking:
|
|
||||||
case PseudoClass::Muted:
|
|
||||||
case PseudoClass::VolumeLocked:
|
|
||||||
case PseudoClass::Buffering:
|
|
||||||
case PseudoClass::Stalled:
|
|
||||||
case PseudoClass::Target:
|
|
||||||
// If the pseudo-class does not accept arguments append ":" (U+003A), followed by the name of the pseudo-class, to s.
|
|
||||||
TRY(s.try_append(':'));
|
TRY(s.try_append(':'));
|
||||||
TRY(s.try_append(pseudo_class_name(pseudo_class.type)));
|
TRY(s.try_append(pseudo_class_name(pseudo_class.type)));
|
||||||
break;
|
}
|
||||||
case PseudoClass::NthChild:
|
// Otherwise, append ":" (U+003A), followed by the name of the pseudo-class, followed by "(" (U+0028),
|
||||||
case PseudoClass::NthLastChild:
|
// followed by the value of the pseudo-class argument(s) determined as per below, followed by ")" (U+0029), to s.
|
||||||
case PseudoClass::NthOfType:
|
else {
|
||||||
case PseudoClass::NthLastOfType:
|
|
||||||
case PseudoClass::Not:
|
|
||||||
case PseudoClass::Is:
|
|
||||||
case PseudoClass::Where:
|
|
||||||
case PseudoClass::Lang:
|
|
||||||
// Otherwise, append ":" (U+003A), followed by the name of the pseudo-class, followed by "(" (U+0028),
|
|
||||||
// followed by the value of the pseudo-class argument(s) determined as per below, followed by ")" (U+0029), to s.
|
|
||||||
TRY(s.try_append(':'));
|
TRY(s.try_append(':'));
|
||||||
TRY(s.try_append(pseudo_class_name(pseudo_class.type)));
|
TRY(s.try_append(pseudo_class_name(pseudo_class.type)));
|
||||||
TRY(s.try_append('('));
|
TRY(s.try_append('('));
|
||||||
|
@ -293,7 +258,6 @@ ErrorOr<String> Selector::SimpleSelector::serialize() const
|
||||||
s.join(", "sv, pseudo_class.languages);
|
s.join(", "sv, pseudo_class.languages);
|
||||||
}
|
}
|
||||||
TRY(s.try_append(')'));
|
TRY(s.try_append(')'));
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue