diff --git a/src/components/script/dom/document.rs b/src/components/script/dom/document.rs index a00a12c26de..497a739e172 100644 --- a/src/components/script/dom/document.rs +++ b/src/components/script/dom/document.rs @@ -328,6 +328,7 @@ pub trait DocumentMethods { fn Applets(&self) -> Temporary; fn Location(&self) -> Temporary; fn Children(&self) -> Temporary; + fn QuerySelector(&self, selectors: DOMString) -> Fallible>>; fn GetOnload(&self) -> Option; fn SetOnload(&mut self, listener: Option); } @@ -810,6 +811,10 @@ impl<'a> DocumentMethods for JSRef<'a, Document> { HTMLCollection::children(&*window, NodeCast::from_ref(self)) } + fn QuerySelector(&self, selectors: DOMString) -> Fallible>> { + Ok(None) + } + fn GetOnload(&self) -> Option { let eventtarget: &JSRef = EventTargetCast::from_ref(self); eventtarget.get_event_handler_common("load") diff --git a/src/components/script/dom/documentfragment.rs b/src/components/script/dom/documentfragment.rs index 886b1b894e1..2b3dc5afd80 100644 --- a/src/components/script/dom/documentfragment.rs +++ b/src/components/script/dom/documentfragment.rs @@ -7,10 +7,12 @@ use dom::bindings::codegen::Bindings::DocumentFragmentBinding; use dom::bindings::js::{JSRef, Temporary}; use dom::bindings::error::Fallible; use dom::document::Document; +use dom::element::Element; use dom::eventtarget::{EventTarget, NodeTargetTypeId}; use dom::htmlcollection::HTMLCollection; use dom::node::{DocumentFragmentNodeTypeId, Node, window_from_node}; use dom::window::{Window, WindowMethods}; +use servo_util::str::DOMString; #[deriving(Encodable)] pub struct DocumentFragment { @@ -46,6 +48,7 @@ impl DocumentFragment { pub trait DocumentFragmentMethods { fn Children(&self) -> Temporary; + fn QuerySelector(&self, selectors: DOMString) -> Fallible>>; } impl<'a> DocumentFragmentMethods for JSRef<'a, DocumentFragment> { @@ -53,4 +56,8 @@ impl<'a> DocumentFragmentMethods for JSRef<'a, DocumentFragment> { let window = window_from_node(self).root(); HTMLCollection::children(&window.root_ref(), NodeCast::from_ref(self)) } + + fn QuerySelector(&self, selectors: DOMString) -> Fallible>> { + Ok(None) + } } diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index 2e300985eed..ee2245e8394 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -429,6 +429,7 @@ pub trait ElementMethods { fn GetInnerHTML(&self) -> Fallible; fn GetOuterHTML(&self) -> Fallible; fn Children(&self) -> Temporary; + fn QuerySelector(&self, selectors: DOMString) -> Fallible>>; fn Remove(&self); } @@ -704,6 +705,10 @@ impl<'a> ElementMethods for JSRef<'a, Element> { HTMLCollection::children(&*window, NodeCast::from_ref(self)) } + fn QuerySelector(&self, selectors: DOMString) -> Fallible>> { + Ok(None) + } + // http://dom.spec.whatwg.org/#dom-childnode-remove fn Remove(&self) { let node: &JSRef = NodeCast::from_ref(self); diff --git a/src/components/script/dom/webidls/ParentNode.webidl b/src/components/script/dom/webidls/ParentNode.webidl index 54b05fbbad9..70ab892fea8 100644 --- a/src/components/script/dom/webidls/ParentNode.webidl +++ b/src/components/script/dom/webidls/ParentNode.webidl @@ -22,4 +22,10 @@ interface ParentNode { // Not implemented yet // void prepend((Node or DOMString)... nodes); // void append((Node or DOMString)... nodes); + + //Element? query(DOMString relativeSelectors); + //[NewObject] Elements queryAll(DOMString relativeSelectors); + [Throws] + Element? querySelector(DOMString selectors); + //[NewObject] NodeList querySelectorAll(DOMString selectors); };