diff options
author | Simon Sapin <simon.sapin@exyr.org> | 2014-07-19 18:45:11 +0100 |
---|---|---|
committer | Simon Sapin <simon.sapin@exyr.org> | 2014-07-21 20:22:29 +0100 |
commit | 6917fbf28e977f1e1da2e349b8f1685e267eb045 (patch) | |
tree | 38ad2d20aeb111fdc4eec3cd6468b9d6415d94b8 /src/components/script/dom/htmlimageelement.rs | |
parent | 779cb44a44b195eb7a88e69a4f2e5551f85448e1 (diff) | |
download | servo-6917fbf28e977f1e1da2e349b8f1685e267eb045.tar.gz servo-6917fbf28e977f1e1da2e349b8f1685e267eb045.zip |
Used rust-url directly instead of servo_util::url
The latter now only calls the former.
Diffstat (limited to 'src/components/script/dom/htmlimageelement.rs')
-rw-r--r-- | src/components/script/dom/htmlimageelement.rs | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/components/script/dom/htmlimageelement.rs b/src/components/script/dom/htmlimageelement.rs index dbf3e6cefca..31eb2687aab 100644 --- a/src/components/script/dom/htmlimageelement.rs +++ b/src/components/script/dom/htmlimageelement.rs @@ -17,10 +17,9 @@ use dom::node::{Node, ElementNodeTypeId, NodeHelpers, window_from_node}; use dom::virtualmethods::VirtualMethods; use servo_util::geometry::to_px; use servo_net::image_cache_task; -use servo_util::url::parse_url; use servo_util::str::DOMString; use std::cell::RefCell; -use url::Url; +use url::{Url, UrlParser}; #[deriving(Encodable)] pub struct HTMLImageElement { @@ -35,13 +34,13 @@ impl HTMLImageElementDerived for EventTarget { } trait PrivateHTMLImageElementHelpers { - fn update_image(&self, value: Option<DOMString>, url: Option<Url>); + fn update_image(&self, value: Option<(DOMString, &Url)>); } impl<'a> PrivateHTMLImageElementHelpers for JSRef<'a, HTMLImageElement> { /// Makes the local `image` member match the status of the `src` attribute and starts /// prefetching the image. This method must be called after `src` is changed. - fn update_image(&self, value: Option<DOMString>, url: Option<Url>) { + fn update_image(&self, value: Option<(DOMString, &Url)>) { let node: &JSRef<Node> = NodeCast::from_ref(self); let document = node.owner_doc().root(); let window = document.deref().window.root(); @@ -50,8 +49,10 @@ impl<'a> PrivateHTMLImageElementHelpers for JSRef<'a, HTMLImageElement> { None => { *self.image.deref().borrow_mut() = None; } - Some(src) => { - let img_url = parse_url(src.as_slice(), url); + Some((src, base_url)) => { + let img_url = UrlParser::new().base_url(base_url).parse(src.as_slice()); + // FIXME: handle URL parse errors more gracefully. + let img_url = img_url.unwrap(); *self.image.deref().borrow_mut() = Some(img_url.clone()); // inform the image cache to load this, but don't store a @@ -254,8 +255,8 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLImageElement> { if "src" == name.as_slice() { let window = window_from_node(self).root(); - let url = Some(window.deref().get_url()); - self.update_image(Some(value), url); + let url = window.deref().get_url(); + self.update_image(Some((value, &url))); } } @@ -266,7 +267,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLImageElement> { } if "src" == name.as_slice() { - self.update_image(None, None); + self.update_image(None); } } |