diff options
Diffstat (limited to 'components/script/dom/document.rs')
-rw-r--r-- | components/script/dom/document.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 7995b438a4c..4fbdaab837d 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -47,6 +47,7 @@ use dom::htmltitleelement::HTMLTitleElement; use dom::location::Location; use dom::mouseevent::MouseEvent; use dom::keyboardevent::KeyboardEvent; +use dom::messageevent::MessageEvent; use dom::node::{Node, ElementNodeTypeId, DocumentNodeTypeId, NodeHelpers}; use dom::node::{CloneChildren, DoNotCloneChildren}; use dom::nodelist::NodeList; @@ -176,6 +177,7 @@ pub trait DocumentHelpers<'a> { fn set_last_modified(self, value: DOMString); fn set_encoding_name(self, name: DOMString); fn content_changed(self, node: JSRef<Node>); + fn content_and_heritage_changed(self, node: JSRef<Node>); fn reflow(self); fn wait_until_safe_to_modify_dom(self); fn unregister_named_element(self, to_unregister: JSRef<Element>, id: Atom); @@ -226,10 +228,17 @@ impl<'a> DocumentHelpers<'a> for JSRef<'a, Document> { } fn content_changed(self, node: JSRef<Node>) { + debug!("content_changed on {}", node.debug_str()); node.dirty(); self.reflow(); } + fn content_and_heritage_changed(self, node: JSRef<Node>) { + debug!("content_and_heritage_changed on {}", node.debug_str()); + node.force_dirty_ancestors(); + self.reflow(); + } + fn reflow(self) { self.window.root().reflow(); } @@ -716,6 +725,8 @@ impl<'a> DocumentMethods for JSRef<'a, Document> { global::Window(*window))), "keyboardevent" | "keyevents" => Ok(EventCast::from_temporary( KeyboardEvent::new_uninitialized(*window))), + "messageevent" => Ok(EventCast::from_temporary( + MessageEvent::new_uninitialized(global::Window(*window)))), _ => Err(NotSupported) } } |