diff --git a/components/script/stylesheet_loader.rs b/components/script/stylesheet_loader.rs index 48e3016458e..9657227f91a 100644 --- a/components/script/stylesheet_loader.rs +++ b/components/script/stylesheet_loader.rs @@ -38,7 +38,7 @@ use std::sync::Mutex; use style::media_queries::MediaList; use style::parser::ParserContext; use style::shared_lock::{Locked, SharedRwLock}; -use style::stylesheets::import_rule::ImportSheet; +use style::stylesheets::import_rule::{ImportLayer, ImportSheet}; use style::stylesheets::StylesheetLoader as StyleStylesheetLoader; use style::stylesheets::{CssRules, ImportRule, Origin, Stylesheet, StylesheetContents}; use style::values::CssUrl; @@ -358,6 +358,7 @@ impl<'a> StyleStylesheetLoader for StylesheetLoader<'a> { context: &ParserContext, lock: &SharedRwLock, media: Arc>, + layer: Option, ) -> Arc> { let sheet = Arc::new(Stylesheet { contents: StylesheetContents::from_shared_data( @@ -374,8 +375,9 @@ impl<'a> StyleStylesheetLoader for StylesheetLoader<'a> { let stylesheet = ImportSheet(sheet.clone()); let import = ImportRule { url, - source_location, stylesheet, + layer, + source_location, }; let url = match import.url.url().cloned() { diff --git a/components/style/stylesheets/rule_parser.rs b/components/style/stylesheets/rule_parser.rs index 421431a8c10..9ee3301094d 100644 --- a/components/style/stylesheets/rule_parser.rs +++ b/components/style/stylesheets/rule_parser.rs @@ -207,7 +207,12 @@ impl<'a, 'i> AtRuleParser<'i> for TopLevelRuleParser<'a> { let url_string = input.expect_url_or_string()?.as_ref().to_owned(); let url = CssUrl::parse_from_string(url_string, &self.context, CorsMode::None); - let layer = if !static_prefs::pref!("layout.css.cascade-layers.enabled") { + #[cfg(feature = "gecko")] + let layers_enabled = static_prefs::pref!("layout.css.cascade-layers.enabled"); + #[cfg(feature = "servo")] + let layers_enabled = false; + + let layer = if !layers_enabled { None } else if input.try_parse(|input| input.expect_ident_matching("layer")).is_ok() { Some(ImportLayer {