From 6d887b96bc5d609b6cd74e25fe75537809a10223 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Wed, 31 May 2023 11:41:27 +0200 Subject: [PATCH] style: Unexpose :-moz-locale-dir and :-moz-lwtheme* from content Behind a pref for now. Given these selectors do nothing on non-chrome documents (they just don't match) it seems worth trying. A cursory search seems to indicate they're not used for UA detection or something like that (or at least I haven't found such an usage). Differential Revision: https://phabricator.services.mozilla.com/D130736 --- components/style/gecko/non_ts_pseudo_class_list.rs | 6 +++--- components/style/gecko/selector_parser.rs | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) 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) }