Handle device-pixel-ratio-webkit pref correctly. r?heycam
draft
Handle device-pixel-ratio-webkit pref correctly. r?heycam
MozReview-Commit-ID: CearSsEoS8Q
--- a/servo/components/style/gecko/media_queries.rs
+++ b/servo/components/style/gecko/media_queries.rs
@@ -6,16 +6,17 @@
use app_units::Au;
use context::QuirksMode;
use cssparser::{CssStringWriter, Parser, RGBA, Token, BasicParseError};
use euclid::Size2D;
use font_metrics::get_metrics_provider_for_product;
use gecko::values::convert_nscolor_to_rgba;
use gecko_bindings::bindings;
+use gecko_bindings::structs;
use gecko_bindings::structs::{nsCSSKeyword, nsCSSProps_KTableEntry, nsCSSValue, nsCSSUnit, nsStringBuffer};
use gecko_bindings::structs::{nsMediaExpression_Range, nsMediaFeature};
use gecko_bindings::structs::{nsMediaFeature_ValueType, nsMediaFeature_RangeType, nsMediaFeature_RequirementFlags};
use gecko_bindings::structs::{nsPresContext, RawGeckoPresContextOwned};
use media_queries::MediaType;
use parser::ParserContext;
use properties::{ComputedValues, StyleBuilder};
use properties::longhands::font_size;
@@ -470,20 +471,23 @@ impl Expression {
input.expect_parenthesis_block()?;
input.parse_nested_block(|input| {
let ident = input.expect_ident()?;
let mut flags = 0;
let result = {
let mut feature_name = &*ident;
- // TODO(emilio): this is under a pref in Gecko.
- if starts_with_ignore_ascii_case(feature_name, "-webkit-") {
+ if unsafe { structs::StylePrefs_sWebkitPrefixedAliasesEnabled } &&
+ starts_with_ignore_ascii_case(feature_name, "-webkit-") {
feature_name = &feature_name[8..];
flags |= nsMediaFeature_RequirementFlags::eHasWebkitPrefix as u8;
+ if unsafe { structs::StylePrefs_sWebkitDevicePixelRatioEnabled } {
+ flags |= nsMediaFeature_RequirementFlags::eWebkitDevicePixelRatioPrefEnabled as u8;
+ }
}
let range = if starts_with_ignore_ascii_case(feature_name, "min-") {
feature_name = &feature_name[4..];
nsMediaExpression_Range::eMin
} else if starts_with_ignore_ascii_case(feature_name, "max-") {
feature_name = &feature_name[4..];
nsMediaExpression_Range::eMax