mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-11 10:18:15 +09:00
LibWeb: Implement the :volume-locked
pseudo-class
This commit is contained in:
parent
c8a51f232d
commit
eb7cda1172
Notes:
sideshowbarker
2024-07-16 16:34:22 +09:00
Author: https://github.com/AtkinsSJ
Commit: eb7cda1172
Pull-request: https://github.com/SerenityOS/serenity/pull/20302
Reviewed-by: https://github.com/trflynn89 ✅
5 changed files with 14 additions and 0 deletions
|
@ -511,6 +511,8 @@ Parser::ParseErrorOr<Selector::SimpleSelector> Parser::parse_pseudo_simple_selec
|
||||||
return make_pseudo_class_selector(Selector::SimpleSelector::PseudoClass::Type::Host);
|
return make_pseudo_class_selector(Selector::SimpleSelector::PseudoClass::Type::Host);
|
||||||
if (pseudo_name.equals_ignoring_ascii_case("visited"sv))
|
if (pseudo_name.equals_ignoring_ascii_case("visited"sv))
|
||||||
return make_pseudo_class_selector(Selector::SimpleSelector::PseudoClass::Type::Visited);
|
return make_pseudo_class_selector(Selector::SimpleSelector::PseudoClass::Type::Visited);
|
||||||
|
if (pseudo_name.equals_ignoring_ascii_case("volume-locked"sv))
|
||||||
|
return make_pseudo_class_selector(Selector::SimpleSelector::PseudoClass::Type::VolumeLocked);
|
||||||
if (pseudo_name.equals_ignoring_ascii_case("scope"sv))
|
if (pseudo_name.equals_ignoring_ascii_case("scope"sv))
|
||||||
return make_pseudo_class_selector(Selector::SimpleSelector::PseudoClass::Type::Scope);
|
return make_pseudo_class_selector(Selector::SimpleSelector::PseudoClass::Type::Scope);
|
||||||
|
|
||||||
|
|
|
@ -235,6 +235,7 @@ ErrorOr<String> Selector::SimpleSelector::serialize() const
|
||||||
case Selector::SimpleSelector::PseudoClass::Type::Paused:
|
case Selector::SimpleSelector::PseudoClass::Type::Paused:
|
||||||
case Selector::SimpleSelector::PseudoClass::Type::Seeking:
|
case Selector::SimpleSelector::PseudoClass::Type::Seeking:
|
||||||
case Selector::SimpleSelector::PseudoClass::Type::Muted:
|
case Selector::SimpleSelector::PseudoClass::Type::Muted:
|
||||||
|
case Selector::SimpleSelector::PseudoClass::Type::VolumeLocked:
|
||||||
// If the pseudo-class does not accept arguments append ":" (U+003A), followed by the name of the pseudo-class, to s.
|
// 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)));
|
||||||
|
|
|
@ -119,6 +119,7 @@ public:
|
||||||
Paused,
|
Paused,
|
||||||
Seeking,
|
Seeking,
|
||||||
Muted,
|
Muted,
|
||||||
|
VolumeLocked,
|
||||||
};
|
};
|
||||||
Type type;
|
Type type;
|
||||||
|
|
||||||
|
@ -316,6 +317,8 @@ constexpr StringView pseudo_class_name(Selector::SimpleSelector::PseudoClass::Ty
|
||||||
return "seeking"sv;
|
return "seeking"sv;
|
||||||
case Selector::SimpleSelector::PseudoClass::Type::Muted:
|
case Selector::SimpleSelector::PseudoClass::Type::Muted:
|
||||||
return "muted"sv;
|
return "muted"sv;
|
||||||
|
case Selector::SimpleSelector::PseudoClass::Type::VolumeLocked:
|
||||||
|
return "volume-locked"sv;
|
||||||
}
|
}
|
||||||
VERIFY_NOT_REACHED();
|
VERIFY_NOT_REACHED();
|
||||||
}
|
}
|
||||||
|
|
|
@ -401,6 +401,11 @@ static inline bool matches_pseudo_class(CSS::Selector::SimpleSelector::PseudoCla
|
||||||
auto const& media_element = static_cast<HTML::HTMLMediaElement const&>(element);
|
auto const& media_element = static_cast<HTML::HTMLMediaElement const&>(element);
|
||||||
return media_element.muted();
|
return media_element.muted();
|
||||||
}
|
}
|
||||||
|
case CSS::Selector::SimpleSelector::PseudoClass::Type::VolumeLocked: {
|
||||||
|
// FIXME: Currently we don't allow the user to specify an override volume, so this is always false.
|
||||||
|
// Once we do, implement this!
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -554,6 +554,9 @@ void dump_selector(StringBuilder& builder, CSS::Selector const& selector)
|
||||||
case CSS::Selector::SimpleSelector::PseudoClass::Type::Muted:
|
case CSS::Selector::SimpleSelector::PseudoClass::Type::Muted:
|
||||||
pseudo_class_description = "Muted";
|
pseudo_class_description = "Muted";
|
||||||
break;
|
break;
|
||||||
|
case CSS::Selector::SimpleSelector::PseudoClass::Type::VolumeLocked:
|
||||||
|
pseudo_class_description = "VolumeLocked";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.appendff(" pseudo_class={}", pseudo_class_description);
|
builder.appendff(" pseudo_class={}", pseudo_class_description);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue