Bug 1658780 - Update the prefers-contrast media query to use the new more/less keywords r=emilio

Per the resolution here:
https://github.com/w3c/csswg-drafts/issues/2943#issuecomment-672994920

Differential Revision: https://phabricator.services.mozilla.com/D86848
This commit is contained in:
Zeke Medley 2020-08-17 01:41:16 +00:00
Родитель 33a78c310f
Коммит d1653ccb9a
5 изменённых файлов: 20 добавлений и 17 удалений

Просмотреть файл

@ -9,7 +9,7 @@
width: 100px;
height: 100px;
}
@media (prefers-contrast: high) {
@media (prefers-contrast: more) {
div {
outline: 2px solid #000000;
}

Просмотреть файл

@ -281,7 +281,7 @@ StyleContrastPref Gecko_MediaFeatures_PrefersContrast(
// https://github.com/w3c/csswg-drafts/issues/3856#issuecomment-642313572
// https://github.com/w3c/csswg-drafts/issues/2943
if (!!LookAndFeel::GetInt(LookAndFeel::IntID::UseAccessibilityTheme, 0)) {
return StyleContrastPref::High;
return StyleContrastPref::More;
}
return StyleContrastPref::NoPreference;
}

Просмотреть файл

@ -74,9 +74,9 @@ expectParseable("(-moz-os-version: windows-win8)");
expectParseable("(-moz-os-version: windows-win10)");
expectNonParseable("(-moz-os-version: )");
expectParseable("(prefers-contrast: low)")
expectParseable("(prefers-contrast: more)")
expectParseable("(prefers-contrast: forced)")
expectParseable("(prefers-contrast: no-preference)")
expectParseable("(prefers-contrast: high)");
expectParseable("(prefers-contrast: less)");
expectParseable("(prefers-contrast)")
</script>

Просмотреть файл

@ -313,8 +313,8 @@ fn eval_prefers_reduced_motion(device: &Device, query_value: Option<PrefersReduc
#[repr(u8)]
#[allow(missing_docs)]
enum PrefersContrast {
High,
Low,
More,
Less,
NoPreference,
Forced,
}
@ -326,12 +326,11 @@ enum PrefersContrast {
#[derive(Clone, Copy, Debug, FromPrimitive, PartialEq)]
#[repr(u8)]
pub enum ContrastPref {
/// High contrast is prefered. Corresponds to an accessibility theme
/// More contrast is prefered. Corresponds to an accessibility theme
/// being enabled or firefox forcing high contrast colors.
High,
/// Low contrast is prefered. Corresponds to the
/// browser.display.prefers_low_contrast pref being true.
Low,
More,
/// Low contrast is prefered.
Less,
/// The default value if neither high or low contrast is enabled.
NoPreference,
}
@ -344,8 +343,8 @@ fn eval_prefers_contrast(device: &Device, query_value: Option<PrefersContrast>)
if let Some(query_value) = query_value {
match query_value {
PrefersContrast::Forced => forced_colors,
PrefersContrast::High => contrast_pref == ContrastPref::High,
PrefersContrast::Low => contrast_pref == ContrastPref::Low,
PrefersContrast::More => contrast_pref == ContrastPref::More,
PrefersContrast::Less => contrast_pref == ContrastPref::Less,
PrefersContrast::NoPreference => contrast_pref == ContrastPref::NoPreference,
}
} else {

Просмотреть файл

@ -7,8 +7,8 @@
<script>
query_should_be_css_parseable("(prefers-contrast)");
query_should_be_css_parseable("(prefers-contrast: no-preference)");
query_should_be_css_parseable("(prefers-contrast: high)");
query_should_be_css_parseable("(prefers-contrast: low)");
query_should_be_css_parseable("(prefers-contrast: more)");
query_should_be_css_parseable("(prefers-contrast: less)");
query_should_be_css_parseable("(prefers-contrast: forced)");
query_should_not_be_css_parseable("(prefers-contrast: increase)");
@ -18,11 +18,13 @@ query_should_not_be_css_parseable("(prefers-contrast: forced low)");
query_should_not_be_css_parseable("(prefers-contrast > increase)");
query_should_not_be_css_parseable("(prefers-increased-contrast)");
query_should_not_be_css_parseable("(prefers-decreased-contrast)");
query_should_not_be_css_parseable("(prefers-contrast: high)");
query_should_not_be_css_parseable("(prefers-contrast: low)");
query_should_be_js_parseable("(prefers-contrast)");
query_should_be_js_parseable("(prefers-contrast: no-preference)");
query_should_be_js_parseable("(prefers-contrast: high)");
query_should_be_js_parseable("(prefers-contrast: low)");
query_should_be_js_parseable("(prefers-contrast: more)");
query_should_be_js_parseable("(prefers-contrast: less)");
query_should_be_js_parseable("(prefers-contrast: forced)");
query_should_not_be_js_parseable("(prefers-contrast: increase)");
@ -32,6 +34,8 @@ query_should_not_be_js_parseable("(prefers-contrast: forced low)");
query_should_not_be_js_parseable("(prefers-contrast > increase)");
query_should_not_be_js_parseable("(prefers-increased-contrast)");
query_should_not_be_js_parseable("(prefers-decreased-contrast)");
query_should_not_be_js_parseable("(prefers-contrast: high)");
query_should_not_be_js_parseable("(prefers-contrast: low)");
test(() => {
// no-preference is the default and all other values evaluate to