aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/element.rs
diff options
context:
space:
mode:
authorShanavas M <shanavas.m2@gmail.com>2019-01-14 18:50:59 +0530
committerShanavas M <shanavas.m2@gmail.com>2019-01-14 18:51:52 +0530
commit02d28e02e35d28437503033c7fd1336227a1dc4e (patch)
tree0683e343d520c1aeea2f16bd1066dd4052c098ce /components/script/dom/element.rs
parent37aa21d8db8a1e2e303100f6188b4a68e996e5ac (diff)
downloadservo-02d28e02e35d28437503033c7fd1336227a1dc4e.tar.gz
servo-02d28e02e35d28437503033c7fd1336227a1dc4e.zip
Parse url in getter method
Diffstat (limited to 'components/script/dom/element.rs')
-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 {