diff options
Diffstat (limited to 'components/script/parse/html.rs')
-rw-r--r-- | components/script/parse/html.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/components/script/parse/html.rs b/components/script/parse/html.rs index a2dd0109ed1..d7e1535e487 100644 --- a/components/script/parse/html.rs +++ b/components/script/parse/html.rs @@ -6,11 +6,12 @@ use document_loader::DocumentLoader; use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods; +use dom::bindings::codegen::Bindings::HTMLTemplateElementBinding::HTMLTemplateElementMethods; use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; -use dom::bindings::codegen::InheritTypes::ProcessingInstructionCast; use dom::bindings::codegen::InheritTypes::{CharacterDataCast, DocumentTypeCast}; -use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLScriptElementCast}; -use dom::bindings::codegen::InheritTypes::{HTMLFormElementDerived, NodeCast}; +use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLFormElementDerived}; +use dom::bindings::codegen::InheritTypes::{HTMLScriptElementCast, HTMLTemplateElementCast}; +use dom::bindings::codegen::InheritTypes::{NodeCast, ProcessingInstructionCast}; use dom::bindings::js::{JS, Root}; use dom::bindings::js::{RootedReference}; use dom::characterdata::CharacterDataTypeId; @@ -43,12 +44,20 @@ use util::str::DOMString; impl<'a> TreeSink for servohtmlparser::Sink { type Handle = JS<Node>; + fn get_document(&mut self) -> JS<Node> { let doc = self.document.root(); let node = NodeCast::from_ref(doc.r()); JS::from_ref(node) } + fn get_template_contents(&self, target: JS<Node>) -> JS<Node> { + let target = target.root(); + let template = HTMLTemplateElementCast::to_ref(&*target) + .expect("tried to get template contents of non-HTMLTemplateElement in HTML parsing"); + JS::from_ref(NodeCast::from_ref(&*template.Content())) + } + fn same_node(&self, x: JS<Node>, y: JS<Node>) -> bool { x == y } |