Pass the attribute value to the update_image function.

This commit is contained in:
Ms2ger 2014-02-25 19:17:58 +01:00
parent e834e532c5
commit 9faf2c89e4

View file

@ -17,7 +17,6 @@ use servo_util::geometry::to_px;
use layout_interface::{ContentBoxQuery, ContentBoxResponse}; use layout_interface::{ContentBoxQuery, ContentBoxResponse};
use servo_net::image_cache_task; use servo_net::image_cache_task;
use servo_util::url::parse_url; use servo_util::url::parse_url;
use servo_util::namespace::Null;
use servo_util::str::DOMString; use servo_util::str::DOMString;
use extra::serialize::{Encoder, Encodable}; use extra::serialize::{Encoder, Encodable};
@ -65,13 +64,12 @@ impl HTMLImageElement {
impl HTMLImageElement { impl HTMLImageElement {
/// Makes the local `image` member match the status of the `src` attribute and starts /// 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. /// prefetching the image. This method must be called after `src` is changed.
fn update_image(&mut self, url: Option<Url>) { fn update_image(&mut self, value: Option<DOMString>, url: Option<Url>) {
let elem = &mut self.htmlelement.element; let elem = &mut self.htmlelement.element;
let document = elem.node.owner_doc(); let document = elem.node.owner_doc();
let window = document.get().window.get(); let window = document.get().window.get();
let image_cache = &window.image_cache_task; let image_cache = &window.image_cache_task;
let src_opt = elem.get_attribute(Null, "src").map(|x| x.get().Value()); match value {
match src_opt {
None => {} None => {}
Some(src) => { Some(src) => {
let img_url = parse_url(src, url); let img_url = parse_url(src, url);
@ -87,12 +85,12 @@ impl HTMLImageElement {
} }
} }
pub fn AfterSetAttr(&mut self, name: DOMString, _value: DOMString) { pub fn AfterSetAttr(&mut self, name: DOMString, value: DOMString) {
if "src" == name { if "src" == name {
let document = self.htmlelement.element.node.owner_doc(); let document = self.htmlelement.element.node.owner_doc();
let window = document.get().window.get(); let window = document.get().window.get();
let url = window.page.url.as_ref().map(|&(ref url, _)| url.clone()); let url = window.page.url.as_ref().map(|&(ref url, _)| url.clone());
self.update_image(url); self.update_image(Some(value), url);
} }
} }
@ -101,7 +99,7 @@ impl HTMLImageElement {
// This might not handle remove src attribute actually since // This might not handle remove src attribute actually since
// `self.update_image()` will see the missing src attribute and return early. // `self.update_image()` will see the missing src attribute and return early.
if "src" == name { if "src" == name {
self.update_image(None); self.update_image(None, None);
} }
} }