diff options
Diffstat (limited to 'components/script/dom/htmlobjectelement.rs')
-rw-r--r-- | components/script/dom/htmlobjectelement.rs | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/components/script/dom/htmlobjectelement.rs b/components/script/dom/htmlobjectelement.rs index 5f0520fd763..04c5228072b 100644 --- a/components/script/dom/htmlobjectelement.rs +++ b/components/script/dom/htmlobjectelement.rs @@ -4,14 +4,13 @@ use dom::attr::Attr; use dom::bindings::cell::DOMRefCell; -use dom::bindings::codegen::Bindings::AttrBinding::AttrMethods; use dom::bindings::codegen::Bindings::HTMLObjectElementBinding; use dom::bindings::codegen::Bindings::HTMLObjectElementBinding::HTMLObjectElementMethods; use dom::bindings::codegen::InheritTypes::HTMLObjectElementDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; use dom::bindings::js::Root; use dom::document::Document; -use dom::element::ElementTypeId; +use dom::element::{AttributeMutation, ElementTypeId}; use dom::eventtarget::{EventTarget, EventTargetTypeId}; use dom::htmlelement::{HTMLElement, HTMLElementTypeId}; use dom::node::{Node, NodeTypeId, window_from_node}; @@ -67,8 +66,8 @@ impl<'a> ProcessDataURL for &'a HTMLObjectElement { let elem = ElementCast::from_ref(*self); // TODO: support other values - match (elem.get_attribute(&ns!(""), &atom!("type")).map(|x| x.r().Value()), - elem.get_attribute(&ns!(""), &atom!("data")).map(|x| x.r().Value())) { + match (elem.get_attribute(&ns!(""), &atom!("type")), + elem.get_attribute(&ns!(""), &atom!("data"))) { (None, Some(_uri)) => { // TODO(gw): Prefetch the image here. } @@ -102,16 +101,15 @@ impl VirtualMethods for HTMLObjectElement { Some(htmlelement as &VirtualMethods) } - fn after_set_attr(&self, attr: &Attr) { - if let Some(ref s) = self.super_type() { - s.after_set_attr(attr); - } - + fn attribute_mutated(&self, attr: &Attr, mutation: AttributeMutation) { + self.super_type().unwrap().attribute_mutated(attr, mutation); match attr.local_name() { - &atom!("data") => { - self.process_data_url(); + &atom!(data) => { + if let AttributeMutation::Set(_) = mutation { + self.process_data_url(); + } }, - _ => () + _ => {}, } } } |