diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index d461cd11527..155098247b6 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -1508,6 +1508,11 @@ impl Element { .unwrap_or_else(|_| USVString(value.to_owned())) } + pub fn set_url_attribute(&self, local_name: &LocalName, value: USVString) { + assert!(*local_name == local_name.to_ascii_lowercase()); + self.set_attribute(local_name, AttrValue::String(value.to_string())); + } + pub fn get_string_attribute(&self, local_name: &LocalName) -> DOMString { match self.get_attribute(&ns!(), local_name) { Some(x) => x.Value(), diff --git a/components/script/dom/macros.rs b/components/script/dom/macros.rs index 454f1a678f8..a566fee4fb6 100644 --- a/components/script/dom/macros.rs +++ b/components/script/dom/macros.rs @@ -112,8 +112,8 @@ macro_rules! make_url_setter( use crate::dom::bindings::inheritance::Castable; use crate::dom::element::Element; let element = self.upcast::(); - element.set_string_attribute(&local_name!($htmlname), - DOMString::from(value.0)); + element.set_url_attribute(&local_name!($htmlname), + value); } ); );