tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 8f2e67844e7042d39028f4b840bae28978bd9aac
parent 5641e22232ab301d9b8d19a2e0a5408cb2f85c0d
Author: Emilio Cobos Álvarez <emilio@crisal.io>
Date:   Mon,  8 Dec 2025 12:11:46 +0000

Bug 2004653 - Fix parsing of custom media features. r=jwatt

Differential Revision: https://phabricator.services.mozilla.com/D275420

Diffstat:
Mservo/components/style/queries/condition.rs | 7++++++-
Atesting/web-platform/tests/css/mediaqueries/at-custom-media-basic.html | 16++++++++++++++++
2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/servo/components/style/queries/condition.rs b/servo/components/style/queries/condition.rs @@ -11,7 +11,7 @@ use super::{FeatureFlags, FeatureType, QueryFeatureExpression}; use crate::custom_properties; use crate::stylesheets::CustomMediaEvaluator; use crate::values::{computed, AtomString, DashedIdent}; -use crate::{error_reporting::ContextualParseError, parser::ParserContext}; +use crate::{error_reporting::ContextualParseError, parser::ParserContext, parser::Parse}; use cssparser::{Parser, SourcePosition, Token}; use selectors::kleene_value::KleeneValue; use servo_arc::Arc; @@ -405,6 +405,11 @@ impl QueryCondition { Ok(expr) => return Ok(Self::Feature(expr)), Err(e) => e, }; + if static_prefs::pref!("layout.css.custom-media.enabled") { + if let Ok(custom) = input.try_parse(|input| DashedIdent::parse(context, input)) { + return Ok(Self::Custom(custom)); + } + } if let Ok(inner) = Self::parse(context, input, feature_type) { return Ok(Self::InParens(Box::new(inner))); } diff --git a/testing/web-platform/tests/css/mediaqueries/at-custom-media-basic.html b/testing/web-platform/tests/css/mediaqueries/at-custom-media-basic.html @@ -0,0 +1,16 @@ +<!doctype html> +<title>Basic custom media query</title> +<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> +<link rel="author" href="https://mozilla.com" title="Mozilla"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=2004653"> +<link rel="help" href="https://drafts.csswg.org/mediaqueries-5/#custom-mq"> +<link rel="match" href="/css/reference/green.html"> +<style> +@custom-media --foo (width > 0px); +@media (--foo) { + :root { + background: green; + } +} +</style> +<div></div>