diff --git a/components/style/gecko/non_ts_pseudo_class_list.rs b/components/style/gecko/non_ts_pseudo_class_list.rs index 317cbfb83fe..14a74d3e570 100644 --- a/components/style/gecko/non_ts_pseudo_class_list.rs +++ b/components/style/gecko/non_ts_pseudo_class_list.rs @@ -90,9 +90,9 @@ macro_rules! apply_non_ts_list { ("-moz-use-shadow-tree-root", MozUseShadowTreeRoot, _, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS), ("-moz-is-html", MozIsHTML, _, _), ("-moz-placeholder", MozPlaceholder, _, _), - ("-moz-lwtheme", MozLWTheme, _, _), - ("-moz-lwtheme-brighttext", MozLWThemeBrightText, _, _), - ("-moz-lwtheme-darktext", MozLWThemeDarkText, _, _), + ("-moz-lwtheme", MozLWTheme, _, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME), + ("-moz-lwtheme-brighttext", MozLWThemeBrightText, _, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME), + ("-moz-lwtheme-darktext", MozLWThemeDarkText, _, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME), ("-moz-window-inactive", MozWindowInactive, _, _), ] } diff --git a/components/style/gecko/selector_parser.rs b/components/style/gecko/selector_parser.rs index 751a38d8465..f13df17a986 100644 --- a/components/style/gecko/selector_parser.rs +++ b/components/style/gecko/selector_parser.rs @@ -127,7 +127,7 @@ impl NonTSPseudoClass { ([$(($css:expr, $name:ident, $state:tt, $flags:tt),)*]) => { match *self { $(NonTSPseudoClass::$name => check_flag!($flags),)* - NonTSPseudoClass::MozLocaleDir(_) | + NonTSPseudoClass::MozLocaleDir(_) => check_flag!(PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME), NonTSPseudoClass::Lang(_) | NonTSPseudoClass::Dir(_) => false, } @@ -145,6 +145,12 @@ impl NonTSPseudoClass { if let NonTSPseudoClass::MozSubmitInvalid = *self { return static_prefs::pref!("layout.css.moz-submit-invalid.enabled"); } + if matches!(*self, Self::MozLWTheme | Self::MozLWThemeBrightText | Self::MozLWThemeDarkText) { + return static_prefs::pref!("layout.css.moz-lwtheme.content.enabled"); + } + if let NonTSPseudoClass::MozLocaleDir(..) = *self { + return static_prefs::pref!("layout.css.moz-locale-dir.content.enabled"); + } !self.has_any_flag(NonTSPseudoClassFlag::PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME) }