aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script/dom')
-rw-r--r--src/components/script/dom/element.rs5
-rw-r--r--src/components/script/dom/node.rs15
2 files changed, 19 insertions, 1 deletions
diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs
index 2eb0553f2f6..12361d7ec85 100644
--- a/src/components/script/dom/element.rs
+++ b/src/components/script/dom/element.rs
@@ -248,6 +248,11 @@ impl Element {
iframe.AfterSetAttr(local_name.clone(), value.clone());
});
}
+ ElementNodeTypeId(HTMLObjectElementTypeId) => {
+ abstract_self.with_mut_object_element(|object| {
+ object.AfterSetAttr(local_name.clone(), value.clone());
+ });
+ }
_ => ()
}
diff --git a/src/components/script/dom/node.rs b/src/components/script/dom/node.rs
index 87e2bddaa37..3f0649fbdac 100644
--- a/src/components/script/dom/node.rs
+++ b/src/components/script/dom/node.rs
@@ -10,11 +10,12 @@ use dom::bindings::utils;
use dom::characterdata::CharacterData;
use dom::document::{AbstractDocument, DocumentTypeId};
use dom::documenttype::DocumentType;
-use dom::element::{Element, ElementTypeId, HTMLImageElementTypeId, HTMLIframeElementTypeId};
+use dom::element::{Element, ElementTypeId, HTMLImageElementTypeId, HTMLIframeElementTypeId, HTMLObjectElementTypeId};
use dom::element::{HTMLAnchorElementTypeId, HTMLStyleElementTypeId};
use dom::eventtarget::{AbstractEventTarget, EventTarget, NodeTypeId};
use dom::htmliframeelement::HTMLIFrameElement;
use dom::htmlimageelement::HTMLImageElement;
+use dom::htmlobjectelement::HTMLObjectElement;
use dom::nodelist::{NodeList};
use dom::text::Text;
use dom::processinginstruction::ProcessingInstruction;
@@ -488,6 +489,18 @@ impl<'a> AbstractNode {
self.type_id() == ElementNodeTypeId(HTMLIframeElementTypeId)
}
+ #[inline]
+ pub fn is_object_element(self) -> bool {
+ self.type_id() == ElementNodeTypeId(HTMLObjectElementTypeId)
+ }
+
+ pub fn with_mut_object_element<R>(self, f: |&mut HTMLObjectElement| -> R) -> R {
+ if !self.is_object_element() {
+ fail!(~"node is not an image element");
+ }
+ self.transmute_mut(f)
+ }
+
pub fn with_mut_iframe_element<R>(self, f: |&mut HTMLIFrameElement| -> R) -> R {
if !self.is_iframe_element() {
fail!(~"node is not an iframe element");