From 0ca9a01be4b92ee8f9cdf6c650691008b42bedeb Mon Sep 17 00:00:00 2001 From: Mantaroh Yoshinaga Date: Tue, 13 Jun 2017 10:42:14 +0900 Subject: [PATCH] Add function which convert from URLValueData to SpecifiedUrl. We will need to convert from URLValueData to SpecifiedUrl when cloning the stylo's data from gecko's data. Because the filter structure on gecko has url as URLValue type. We will use this convert function when interpolating as discrete also(Bug 1368610). --- components/style/gecko/url.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/components/style/gecko/url.rs b/components/style/gecko/url.rs index 192d43ef5a1..bafab1c31d9 100644 --- a/components/style/gecko/url.rs +++ b/components/style/gecko/url.rs @@ -5,6 +5,7 @@ //! Common handling for the specified value CSS url() values. use gecko_bindings::structs::{ServoBundledURI, URLExtraData}; +use gecko_bindings::structs::mozilla::css::URLValueData; use gecko_bindings::structs::root::mozilla::css::ImageValue; use gecko_bindings::sugar::refptr::RefPtr; use parser::ParserContext; @@ -51,6 +52,16 @@ impl SpecifiedUrl { false } + /// Convert from URLValueData to SpecifiedUrl. + pub unsafe fn from_url_value_data(url: &URLValueData) + -> Result { + Ok(SpecifiedUrl { + serialization: Arc::new(url.mString.to_string()), + extra_data: url.mExtraData.to_safe(), + image_value: None, + }) + } + /// Returns true if this URL looks like a fragment. /// See https://drafts.csswg.org/css-values/#local-urls pub fn is_fragment(&self) -> bool {