diff --git a/components/style/gecko/conversions.rs b/components/style/gecko/conversions.rs index 720c1bd2315..980ef36b280 100644 --- a/components/style/gecko/conversions.rs +++ b/components/style/gecko/conversions.rs @@ -10,7 +10,7 @@ use app_units::Au; use gecko::values::{convert_rgba_to_nscolor, GeckoStyleCoordConvertible}; -use gecko_bindings::bindings::{Gecko_CreateGradient, Gecko_SetGradientImageValue, Gecko_SetUrlImageValue}; +use gecko_bindings::bindings::{Gecko_CreateGradient, Gecko_SetGradientImageValue, Gecko_SetLayerImageImageValue}; use gecko_bindings::bindings::{Gecko_InitializeImageCropRect, Gecko_SetImageElement}; use gecko_bindings::structs::{nsCSSUnit, nsStyleCoord_CalcValue, nsStyleImage}; use gecko_bindings::structs::{nsresult, SheetType}; @@ -144,7 +144,7 @@ impl nsStyleImage { }, GenericImage::Url(ref url) => { unsafe { - Gecko_SetUrlImageValue(self, url.for_ffi()); + Gecko_SetLayerImageImageValue(self, url.image_value.clone().unwrap().get()); // We unfortunately must make any url() value uncacheable, since // the applicable declarations cache is not per document, but // global, and the imgRequestProxy objects we store in the style @@ -157,7 +157,7 @@ impl nsStyleImage { }, GenericImage::Rect(ref image_rect) => { unsafe { - Gecko_SetUrlImageValue(self, image_rect.url.for_ffi()); + Gecko_SetLayerImageImageValue(self, image_rect.url.image_value.clone().unwrap().get()); Gecko_InitializeImageCropRect(self); // We unfortunately must make any url() value uncacheable, since diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs index adb25ae19a0..2d439ccef59 100644 --- a/ports/geckolib/glue.rs +++ b/ports/geckolib/glue.rs @@ -1845,7 +1845,8 @@ pub extern "C" fn Servo_DeclarationBlock_SetBackgroundImage(declarations: let context = ParserContext::new(Origin::Author, url_data, &error_reporter, Some(CssRuleType::Style), PARSING_MODE_DEFAULT, QuirksMode::NoQuirks); - if let Ok(url) = SpecifiedUrl::parse_from_string(string.into(), &context) { + if let Ok(mut url) = SpecifiedUrl::parse_from_string(string.into(), &context) { + url.build_image_value(); let decl = PropertyDeclaration::BackgroundImage(BackgroundImage( vec![Either::Second(Image::Url(url))] ));