diff options
author | Shanavas M <shanavas.m2@gmail.com> | 2019-01-14 18:50:59 +0530 |
---|---|---|
committer | Shanavas M <shanavas.m2@gmail.com> | 2019-01-14 18:51:52 +0530 |
commit | 02d28e02e35d28437503033c7fd1336227a1dc4e (patch) | |
tree | 0683e343d520c1aeea2f16bd1066dd4052c098ce /components/script/dom/element.rs | |
parent | 37aa21d8db8a1e2e303100f6188b4a68e996e5ac (diff) | |
download | servo-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.rs | 12 |
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 { |