style: Remove :-moz-lwtheme-{brighttext,darktext}

They are just convenience for :root[lwthemetextcolor="light"] (and dark,
respectively), but they generally shouldn't be used for dark mode
theming. In the past it was the only way to do it but now we have
prefers-color-scheme.

While at it, change lwthemetextcolor to be "lwtheme-brighttext" for
consistency with similar code we have for popups etc, and move it to
_setDarkModeAttributes.

While at it, remove layout.css.moz-lwtheme.content.enabled (which is
false always, we unshipped these from content successfully).

Differential Revision: https://phabricator.services.mozilla.com/D141593
This commit is contained in:
Emilio Cobos Álvarez 2023-06-18 13:33:43 +02:00 committed by Martin Robinson
parent 6edcfe9558
commit 62b84a1fac
4 changed files with 6 additions and 24 deletions

View file

@ -148,9 +148,5 @@ bitflags! {
const LTR_LOCALE = 1 << 2; const LTR_LOCALE = 1 << 2;
/// LWTheme status /// LWTheme status
const LWTHEME = 1 << 3; const LWTHEME = 1 << 3;
/// LWTheme status
const LWTHEME_BRIGHTTEXT = 1 << 4;
/// LWTheme status
const LWTHEME_DARKTEXT = 1 << 5;
} }
} }

View file

@ -92,8 +92,6 @@ macro_rules! apply_non_ts_list {
("-moz-is-html", MozIsHTML, _, _), ("-moz-is-html", MozIsHTML, _, _),
("-moz-placeholder", MozPlaceholder, _, _), ("-moz-placeholder", MozPlaceholder, _, _),
("-moz-lwtheme", MozLWTheme, _, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME), ("-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, _, _), ("-moz-window-inactive", MozWindowInactive, _, _),
] ]
} }

View file

@ -139,12 +139,6 @@ impl NonTSPseudoClass {
/// Returns whether the pseudo-class is enabled in content sheets. /// Returns whether the pseudo-class is enabled in content sheets.
#[inline] #[inline]
fn is_enabled_in_content(&self) -> bool { fn is_enabled_in_content(&self) -> bool {
if matches!(
*self,
Self::MozLWTheme | Self::MozLWThemeBrightText | Self::MozLWThemeDarkText
) {
return static_prefs::pref!("layout.css.moz-lwtheme.content.enabled");
}
if let NonTSPseudoClass::MozLocaleDir(..) = *self { if let NonTSPseudoClass::MozLocaleDir(..) = *self {
return static_prefs::pref!("layout.css.moz-locale-dir.content.enabled"); return static_prefs::pref!("layout.css.moz-locale-dir.content.enabled");
} }
@ -184,8 +178,6 @@ impl NonTSPseudoClass {
}, },
NonTSPseudoClass::MozWindowInactive => DocumentState::WINDOW_INACTIVE, NonTSPseudoClass::MozWindowInactive => DocumentState::WINDOW_INACTIVE,
NonTSPseudoClass::MozLWTheme => DocumentState::LWTHEME, NonTSPseudoClass::MozLWTheme => DocumentState::LWTHEME,
NonTSPseudoClass::MozLWThemeBrightText => DocumentState::LWTHEME_BRIGHTTEXT,
NonTSPseudoClass::MozLWThemeDarkText => DocumentState::LWTHEME_DARKTEXT,
_ => DocumentState::empty(), _ => DocumentState::empty(),
} }
} }
@ -208,15 +200,13 @@ impl NonTSPseudoClass {
NonTSPseudoClass::MozNativeAnonymous | NonTSPseudoClass::MozNativeAnonymous |
// :-moz-placeholder is parsed but never matches. // :-moz-placeholder is parsed but never matches.
NonTSPseudoClass::MozPlaceholder | NonTSPseudoClass::MozPlaceholder |
// :-moz-locale-dir and :-moz-window-inactive depend only on // :-moz-lwtheme, :-moz-locale-dir and
// the state of the document, which is invariant across all // :-moz-window-inactive depend only on the state of the
// the elements involved in a given style cache. // document, which is invariant across all the elements
NonTSPseudoClass::MozLocaleDir(_) | // involved in a given style cache.
NonTSPseudoClass::MozWindowInactive |
// Similar for the document themes.
NonTSPseudoClass::MozLWTheme | NonTSPseudoClass::MozLWTheme |
NonTSPseudoClass::MozLWThemeBrightText | NonTSPseudoClass::MozLocaleDir(_) |
NonTSPseudoClass::MozLWThemeDarkText NonTSPseudoClass::MozWindowInactive
) )
} }
} }

View file

@ -2063,8 +2063,6 @@ impl<'le> ::selectors::Element for GeckoElement<'le> {
NonTSPseudoClass::MozIsHTML => self.is_html_element_in_html_document(), NonTSPseudoClass::MozIsHTML => self.is_html_element_in_html_document(),
NonTSPseudoClass::MozLWTheme | NonTSPseudoClass::MozLWTheme |
NonTSPseudoClass::MozLWThemeBrightText |
NonTSPseudoClass::MozLWThemeDarkText |
NonTSPseudoClass::MozLocaleDir(..) | NonTSPseudoClass::MozLocaleDir(..) |
NonTSPseudoClass::MozWindowInactive => { NonTSPseudoClass::MozWindowInactive => {
let state_bit = pseudo_class.document_state_flag(); let state_bit = pseudo_class.document_state_flag();