diff --git a/components/style/gecko/conversions.rs b/components/style/gecko/conversions.rs index 76faf2a44ba..bb0ea1e5013 100644 --- a/components/style/gecko/conversions.rs +++ b/components/style/gecko/conversions.rs @@ -426,9 +426,10 @@ impl nsStyleImage { } } - unsafe fn get_image_url(self: &nsStyleImage) -> ComputedImageUrl { - let url_value = bindings::Gecko_GetURLValue(self); - ComputedImageUrl::from_url_value_data(url_value.as_ref().unwrap()) + unsafe fn get_image_url(&self) -> ComputedImageUrl { + let image_request = bindings::Gecko_GetImageRequest(self) + .as_ref().expect("Null image request?"); + ComputedImageUrl::from_image_request(image_request) } unsafe fn get_gradient(self: &nsStyleImage) -> Box { diff --git a/components/style/gecko/url.rs b/components/style/gecko/url.rs index 102f59dad9c..163c1690523 100644 --- a/components/style/gecko/url.rs +++ b/components/style/gecko/url.rs @@ -309,18 +309,10 @@ impl ToCss for ComputedImageUrl { } impl ComputedImageUrl { - /// Convert from URLValueData to SpecifiedUrl. - pub unsafe fn from_url_value_data(url: &URLValueData) -> Self { - ComputedImageUrl( - SpecifiedImageUrl::from_css_url(CssUrl::from_url_value_data(url)) - ) - } - /// Convert from nsStyleImageReques to ComputedImageUrl. pub unsafe fn from_image_request(image_request: &nsStyleImageRequest) -> Self { - let image_value = image_request.mImageValue.mRawPtr - .as_ref().expect("mImageValue is null"); - let url_value_data = &image_value._base; - Self::from_url_value_data(url_value_data) + let image_value = image_request.mImageValue.to_safe(); + let url = CssUrl::from_url_value_data(&image_value._base); + ComputedImageUrl(SpecifiedImageUrl { url, image_value }) } }