diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2015-08-27 02:11:37 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2015-08-27 16:59:03 +0200 |
commit | c0cff59df895f2ed495bbd29ff5c8c8aec6ed453 (patch) | |
tree | 0a14898eec89c162049fc52468e5186c4d6fc9fc /components/script/dom/servohtmlparser.rs | |
parent | 275907f256814e492c53086f455938f11fedaf42 (diff) | |
download | servo-c0cff59df895f2ed495bbd29ff5c8c8aec6ed453.tar.gz servo-c0cff59df895f2ed495bbd29ff5c8c8aec6ed453.zip |
Remove SinkHelpers
Method get_or_create() is now directly on servohtmlparser::Sink.
Diffstat (limited to 'components/script/dom/servohtmlparser.rs')
-rw-r--r-- | components/script/dom/servohtmlparser.rs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/components/script/dom/servohtmlparser.rs b/components/script/dom/servohtmlparser.rs index bfaa5590f3c..75d060ddf29 100644 --- a/components/script/dom/servohtmlparser.rs +++ b/components/script/dom/servohtmlparser.rs @@ -8,6 +8,7 @@ use document_loader::LoadType; use dom::bindings::cell::DOMRefCell; use dom::bindings::codegen::Bindings::ServoHTMLParserBinding; +use dom::bindings::codegen::InheritTypes::NodeCast; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, Root}; use dom::bindings::refcounted::Trusted; @@ -15,6 +16,7 @@ use dom::bindings::trace::JSTraceable; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::document::Document; use dom::node::{window_from_node, Node}; +use dom::text::Text; use dom::window::Window; use network_listener::PreInvoke; use parse::Parser; @@ -27,7 +29,7 @@ use encoding::all::UTF_8; use encoding::types::{Encoding, DecoderTrap}; use html5ever::tokenizer; use html5ever::tree_builder; -use html5ever::tree_builder::{TreeBuilder, TreeBuilderOpts}; +use html5ever::tree_builder::{NodeOrText, TreeBuilder, TreeBuilderOpts}; use hyper::header::ContentType; use hyper::mime::{Mime, TopLevel, SubLevel}; use js::jsapi::JSTracer; @@ -42,6 +44,19 @@ pub struct Sink { pub document: JS<Document>, } +impl Sink { + pub fn get_or_create(&self, child: NodeOrText<JS<Node>>) -> Root<Node> { + match child { + NodeOrText::AppendNode(n) => n.root(), + NodeOrText::AppendText(t) => { + let doc = self.document.root(); + let text = Text::new(t.into(), &doc); + NodeCast::from_root(text) + } + } + } +} + /// FragmentContext is used only to pass this group of related values /// into functions. #[derive(Copy, Clone)] |