diff --git a/components/style/values/specified/image.rs b/components/style/values/specified/image.rs index 844e50cbf79..9bf565ac635 100644 --- a/components/style/values/specified/image.rs +++ b/components/style/values/specified/image.rs @@ -227,9 +227,21 @@ impl Parse for Gradient { let (shape, repeating, mut compat_mode) = match result { Some(result) => result, - None => return Err(input.new_custom_error(StyleParseErrorKind::UnexpectedFunction(func.clone()))), + None => return Err(input.new_custom_error(StyleParseErrorKind::UnexpectedFunction(func))), }; + #[cfg(feature = "gecko")] + { + use gecko_bindings::structs; + if compat_mode == CompatMode::Moz && + !unsafe { structs::StaticPrefs_sVarCache_layout_css_prefixes_gradients } + { + return Err(input.new_custom_error( + StyleParseErrorKind::UnexpectedFunction(func) + )); + } + } + let (kind, items) = input.parse_nested_block(|i| { let shape = match shape { Shape::Linear => GradientKind::parse_linear(context, i, &mut compat_mode)?,