From b98ac61a7022ebb7be07be3cb3179018faa1752b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Sun, 20 Oct 2019 13:44:16 +0000 Subject: [PATCH] style: Hide -moz-touch-enabled media query in Nightly and Early Beta. This is effectively superseded by the hover / any-hover media queries, which actually are standard, and is also causing trouble in the wild. Not even the browser fronted uses it, so we should be able to just remove it everywhere at once. Differential Revision: https://phabricator.services.mozilla.com/D49506 --- components/style/gecko/media_features.rs | 3 +-- .../style/media_queries/media_feature.rs | 3 --- .../media_queries/media_feature_expression.rs | 22 ++++++++++++++----- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/components/style/gecko/media_features.rs b/components/style/gecko/media_features.rs index ce084c9d16b..e3de8dbfaaa 100644 --- a/components/style/gecko/media_features.rs +++ b/components/style/gecko/media_features.rs @@ -598,8 +598,7 @@ lazy_static! { atom!("device-pixel-ratio"), AllowsRanges::Yes, Evaluator::Float(eval_device_pixel_ratio), - ParsingRequirements::WEBKIT_PREFIX | - ParsingRequirements::WEBKIT_DEVICE_PIXEL_RATIO_PREF_ENABLED, + ParsingRequirements::WEBKIT_PREFIX, ), // -webkit-transform-3d. feature!( diff --git a/components/style/media_queries/media_feature.rs b/components/style/media_queries/media_feature.rs index c5251f7419f..a273e7f51be 100644 --- a/components/style/media_queries/media_feature.rs +++ b/components/style/media_queries/media_feature.rs @@ -123,9 +123,6 @@ bitflags! { const CHROME_AND_UA_ONLY = 1 << 0; /// The feature requires a -webkit- prefix. const WEBKIT_PREFIX = 1 << 1; - /// The feature requires the webkit-device-pixel-ratio preference to be - /// enabled. - const WEBKIT_DEVICE_PIXEL_RATIO_PREF_ENABLED = 1 << 2; } } diff --git a/components/style/media_queries/media_feature_expression.rs b/components/style/media_queries/media_feature_expression.rs index d4124450dc5..7fee093f86e 100644 --- a/components/style/media_queries/media_feature_expression.rs +++ b/components/style/media_queries/media_feature_expression.rs @@ -242,6 +242,16 @@ fn consume_operation_or_colon(input: &mut Parser) -> Result, () })) } +fn disabled_by_pref(feature: &Atom) -> bool { + if *feature == atom!("device-pixel-ratio") { + return !static_prefs::pref!("layout.css.prefixes.device-pixel-ratio-webkit"); + } + if *feature == atom!("-moz-touch-enabled") { + return !static_prefs::pref!("layout.css.moz-touch-enabled.enabled") + } + false +} + impl MediaFeatureExpression { fn new( feature_index: usize, @@ -301,11 +311,6 @@ impl MediaFeatureExpression { if starts_with_ignore_ascii_case(feature_name, "-webkit-") { feature_name = &feature_name[8..]; requirements.insert(ParsingRequirements::WEBKIT_PREFIX); - if static_prefs::pref!("layout.css.prefixes.device-pixel-ratio-webkit") { - requirements.insert( - ParsingRequirements::WEBKIT_DEVICE_PIXEL_RATIO_PREF_ENABLED, - ); - } } } @@ -320,6 +325,13 @@ impl MediaFeatureExpression { }; let atom = Atom::from(string_as_ascii_lowercase(feature_name)); + + if disabled_by_pref(&atom) { + return Err(location.new_custom_error( + StyleParseErrorKind::MediaQueryExpectedFeatureName(ident.clone()), + )); + } + match MEDIA_FEATURES .iter() .enumerate()