aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/parse
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/parse')
-rw-r--r--components/script/parse/html.rs29
1 files changed, 15 insertions, 14 deletions
diff --git a/components/script/parse/html.rs b/components/script/parse/html.rs
index 2aecd9264e9..7509fd5d447 100644
--- a/components/script/parse/html.rs
+++ b/components/script/parse/html.rs
@@ -7,12 +7,14 @@
use dom::attr::AttrHelpers;
use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods;
use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
-use dom::bindings::codegen::InheritTypes::{NodeCast, ElementCast, HTMLScriptElementCast};
-use dom::bindings::codegen::InheritTypes::{DocumentTypeCast, TextCast, CommentCast};
+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::ProcessingInstructionCast;
-use dom::bindings::codegen::InheritTypes::HTMLFormElementDerived;
use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootable, Root};
+use dom::bindings::js::RootedReference;
use dom::bindings::trace::RootedVec;
+use dom::characterdata::CharacterDataHelpers;
use dom::comment::Comment;
use dom::document::{Document, DocumentHelpers};
use dom::document::{DocumentSource, IsHTMLDocument};
@@ -23,6 +25,7 @@ use dom::htmlscriptelement::HTMLScriptElementHelpers;
use dom::node::{Node, NodeHelpers, NodeTypeId};
use dom::node::{document_from_node, window_from_node};
use dom::processinginstruction::ProcessingInstruction;
+use dom::processinginstruction::ProcessingInstructionHelpers;
use dom::servohtmlparser;
use dom::servohtmlparser::{ServoHTMLParser, FragmentContext};
use dom::text::Text;
@@ -233,22 +236,19 @@ impl<'a> Serializable for JSRef<'a, Node> {
},
(IncludeNode, NodeTypeId::Text) => {
- let text: JSRef<Text> = TextCast::to_ref(node).unwrap();
- let data = text.characterdata().data();
- serializer.write_text(data.as_slice())
+ let cdata = CharacterDataCast::to_ref(node).unwrap();
+ serializer.write_text(&cdata.data())
},
(IncludeNode, NodeTypeId::Comment) => {
- let comment: JSRef<Comment> = CommentCast::to_ref(node).unwrap();
- let data = comment.characterdata().data();
- serializer.write_comment(data.as_slice())
+ let cdata = CharacterDataCast::to_ref(node).unwrap();
+ serializer.write_comment(&cdata.data())
},
(IncludeNode, NodeTypeId::ProcessingInstruction) => {
let pi: JSRef<ProcessingInstruction> = ProcessingInstructionCast::to_ref(node).unwrap();
- let data = pi.characterdata().data();
- serializer.write_processing_instruction(pi.target().as_slice(),
- data.as_slice())
+ let data = CharacterDataCast::from_ref(pi).data();
+ serializer.write_processing_instruction(&pi.target(), &data)
},
(IncludeNode, NodeTypeId::DocumentFragment) => Ok(()),
@@ -350,10 +350,11 @@ pub fn parse_html_fragment(context_node: JSRef<Node>,
// Step 11.
let form = context_node.inclusive_ancestors()
- .find(|element| element.is_htmlformelement());
+ .map(|element| element.root())
+ .find(|element| element.r().is_htmlformelement());
let fragment_context = FragmentContext {
context_elem: context_node,
- form_elem: form,
+ form_elem: form.r(),
};
parse_html(document.r(), HTMLInput::InputString(input), &url, Some(fragment_context));