aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlobjectelement.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/htmlobjectelement.rs')
-rw-r--r--components/script/dom/htmlobjectelement.rs22
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();
+ }
},
- _ => ()
+ _ => {},
}
}
}