diff --git a/components/style/custom_properties.rs b/components/style/custom_properties.rs index df3f9660dd4..a6908bb4cfa 100644 --- a/components/style/custom_properties.rs +++ b/components/style/custom_properties.rs @@ -71,10 +71,19 @@ static ENVIRONMENT_VARIABLES: [EnvironmentVariable; 4] = [ make_variable!(atom!("safe-area-inset-right"), get_safearea_inset_right), ]; +static CHROME_ENVIRONMENT_VARIABLES: [EnvironmentVariable; 0] = [ +]; + impl CssEnvironment { #[inline] fn get(&self, name: &Atom, device: &Device) -> Option { - let var = ENVIRONMENT_VARIABLES.iter().find(|var| var.name == *name)?; + if let Some(var) = ENVIRONMENT_VARIABLES.iter().find(|var| var.name == *name) { + return Some((var.evaluator)(device)); + } + if !device.is_chrome_document() { + return None; + } + let var = CHROME_ENVIRONMENT_VARIABLES.iter().find(|var| var.name == *name)?; Some((var.evaluator)(device)) } } diff --git a/components/style/gecko/media_queries.rs b/components/style/gecko/media_queries.rs index 2f5a9673d4c..2966363a8eb 100644 --- a/components/style/gecko/media_queries.rs +++ b/components/style/gecko/media_queries.rs @@ -439,4 +439,10 @@ impl Device { bindings::Gecko_IsSupportedImageMimeType(mime_type.as_ptr(), mime_type.len() as u32) } } + + /// Return whether the document is a chrome document. + #[inline] + pub fn is_chrome_document(&self) -> bool { + self.pref_sheet_prefs().mIsChrome + } }