aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/element.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index b0f1e35d050..155098247b6 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -1501,16 +1501,16 @@ impl Element {
};
let value = &**attr.value();
// XXXManishearth this doesn't handle `javascript:` urls properly
- USVString(value.to_owned())
+ document_from_node(self)
+ .base_url()
+ .join(value)
+ .map(|parsed| USVString(parsed.into_string()))
+ .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());
- let base_url = document_from_node(self).base_url();
- self.set_attribute(
- local_name,
- AttrValue::from_resolved_url(&base_url, value.to_string()),
- );
+ self.set_attribute(local_name, AttrValue::String(value.to_string()));
}
pub fn get_string_attribute(&self, local_name: &LocalName) -> DOMString {