diff options
Diffstat (limited to 'src/components/script/dom')
-rw-r--r-- | src/components/script/dom/element.rs | 5 | ||||
-rw-r--r-- | src/components/script/dom/node.rs | 15 |
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"); |