diff --git a/components/style/gecko/media_features.rs b/components/style/gecko/media_features.rs index 7751b8dd162..35d57346034 100644 --- a/components/style/gecko/media_features.rs +++ b/components/style/gecko/media_features.rs @@ -126,18 +126,18 @@ fn eval_scan(_: &Context, _: Option) -> bool { } /// https://drafts.csswg.org/mediaqueries-4/#color -fn eval_color(context: &Context) -> u32 { +fn eval_color(context: &Context) -> i32 { unsafe { bindings::Gecko_MediaFeatures_GetColorDepth(context.device().document()) } } /// https://drafts.csswg.org/mediaqueries-4/#color-index -fn eval_color_index(_: &Context) -> u32 { +fn eval_color_index(_: &Context) -> i32 { // We should return zero if the device does not use a color lookup table. 0 } /// https://drafts.csswg.org/mediaqueries-4/#monochrome -fn eval_monochrome(context: &Context) -> u32 { +fn eval_monochrome(context: &Context) -> i32 { // For color devices we should return 0. unsafe { bindings::Gecko_MediaFeatures_GetMonochromeBitsPerPixel(context.device().document()) } } diff --git a/components/style/queries/feature.rs b/components/style/queries/feature.rs index c2bfee7db41..3658cb34998 100644 --- a/components/style/queries/feature.rs +++ b/components/style/queries/feature.rs @@ -36,7 +36,7 @@ pub type KeywordParser = for<'a, 'i, 't> fn( pub enum Evaluator { Length(QueryFeatureGetter), OptionalLength(QueryFeatureGetter>), - Integer(QueryFeatureGetter), + Integer(QueryFeatureGetter), Float(QueryFeatureGetter), BoolInteger(QueryFeatureGetter), /// A non-negative number ratio, such as the one from device-pixel-ratio. diff --git a/components/style/queries/feature_expression.rs b/components/style/queries/feature_expression.rs index ec0e7f5b113..24a09e5b54c 100644 --- a/components/style/queries/feature_expression.rs +++ b/components/style/queries/feature_expression.rs @@ -663,8 +663,8 @@ impl QueryFeatureExpression { pub enum QueryExpressionValue { /// A length. Length(Length), - /// A (non-negative) integer. - Integer(u32), + /// An integer. + Integer(i32), /// A floating point value. Float(CSSFloat), /// A boolean value, specified as an integer (i.e., either 0 or 1). @@ -705,12 +705,12 @@ impl QueryExpressionValue { ) -> Result> { Ok(match for_feature.evaluator { Evaluator::OptionalLength(..) | Evaluator::Length(..) => { - let length = Length::parse_non_negative(context, input)?; + let length = Length::parse(context, input)?; QueryExpressionValue::Length(length) }, Evaluator::Integer(..) => { - let integer = Integer::parse_non_negative(context, input)?; - QueryExpressionValue::Integer(integer.value() as u32) + let integer = Integer::parse(context, input)?; + QueryExpressionValue::Integer(integer.value()) }, Evaluator::BoolInteger(..) => { let integer = Integer::parse_non_negative(context, input)?;