diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2015-09-02 18:15:01 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2015-09-08 10:28:21 +0200 |
commit | a7476a758e531d8c995ae0688273e1e9063bb25b (patch) | |
tree | 0e93b7f2279fb064e9e3267e8016c15a04dc041c /components/script/parse | |
parent | 880364b56dc60a08c122bb62bdbc1d99e4c9ae4d (diff) | |
download | servo-a7476a758e531d8c995ae0688273e1e9063bb25b.tar.gz servo-a7476a758e531d8c995ae0688273e1e9063bb25b.zip |
Bump html5ever to 0.2.4, <template> support!
The failing <img> test comes from the now-correct parsing of <font face> elements
in SVG.
Diffstat (limited to 'components/script/parse')
-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 } |