diff --git a/components/style/gecko/non_ts_pseudo_class_list.rs b/components/style/gecko/non_ts_pseudo_class_list.rs index 6d53dc10b2b..0a7fce46263 100644 --- a/components/style/gecko/non_ts_pseudo_class_list.rs +++ b/components/style/gecko/non_ts_pseudo_class_list.rs @@ -39,6 +39,7 @@ macro_rules! apply_non_ts_list { ("active", Active, ACTIVE, _), ("autofill", Autofill, AUTOFILL, _), ("checked", Checked, CHECKED, _), + ("closed", Closed, CLOSED, _), ("defined", Defined, DEFINED, _), ("disabled", Disabled, DISABLED, _), ("enabled", Enabled, ENABLED, _), @@ -69,6 +70,7 @@ macro_rules! apply_non_ts_list { ("-moz-math-increment-script-level", MozMathIncrementScriptLevel, INCREMENT_SCRIPT_LEVEL, _), ("required", Required, REQUIRED, _), + ("open", Open, OPEN, _), ("optional", Optional, OPTIONAL_, _), ("valid", Valid, VALID, _), ("invalid", Invalid, INVALID, _), diff --git a/components/style/gecko/selector_parser.rs b/components/style/gecko/selector_parser.rs index 50858549d55..f5998611d7c 100644 --- a/components/style/gecko/selector_parser.rs +++ b/components/style/gecko/selector_parser.rs @@ -141,6 +141,9 @@ impl NonTSPseudoClass { /// Returns whether the pseudo-class is enabled in content sheets. #[inline] fn is_enabled_in_content(&self) -> bool { + if matches!(*self, Self::Open | Self::Closed) { + return static_prefs::pref!("dom.element.popover.enabled"); + } !self.has_any_flag(NonTSPseudoClassFlag::PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME) } diff --git a/components/style/gecko/wrapper.rs b/components/style/gecko/wrapper.rs index e09fb9e9af0..0e914bc1ff5 100644 --- a/components/style/gecko/wrapper.rs +++ b/components/style/gecko/wrapper.rs @@ -1996,9 +1996,11 @@ impl<'le> ::selectors::Element for GeckoElement<'le> { NonTSPseudoClass::Enabled | NonTSPseudoClass::Disabled | NonTSPseudoClass::Checked | + NonTSPseudoClass::Closed | NonTSPseudoClass::Fullscreen | NonTSPseudoClass::Indeterminate | NonTSPseudoClass::MozInert | + NonTSPseudoClass::Open | NonTSPseudoClass::PlaceholderShown | NonTSPseudoClass::Target | NonTSPseudoClass::Valid |