aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/parse/html.rs
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2015-09-02 18:15:01 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2015-09-08 10:28:21 +0200
commita7476a758e531d8c995ae0688273e1e9063bb25b (patch)
tree0e93b7f2279fb064e9e3267e8016c15a04dc041c /components/script/parse/html.rs
parent880364b56dc60a08c122bb62bdbc1d99e4c9ae4d (diff)
downloadservo-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/html.rs')
-rw-r--r--components/script/parse/html.rs15
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
}