diff options
Diffstat (limited to 'src/components/script/dom/htmlserializer.rs')
-rw-r--r-- | src/components/script/dom/htmlserializer.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/components/script/dom/htmlserializer.rs b/src/components/script/dom/htmlserializer.rs index 8dbedcb2679..260fa437154 100644 --- a/src/components/script/dom/htmlserializer.rs +++ b/src/components/script/dom/htmlserializer.rs @@ -5,7 +5,9 @@ use servo_util::namespace; use dom::attr::Attr; use dom::node::NodeIterator; -use dom::node::{DoctypeNodeTypeId, DocumentFragmentNodeTypeId, CommentNodeTypeId, DocumentNodeTypeId, ElementNodeTypeId, TextNodeTypeId, AbstractNode}; +use dom::node::{DoctypeNodeTypeId, DocumentFragmentNodeTypeId, CommentNodeTypeId}; +use dom::node::{DocumentNodeTypeId, ElementNodeTypeId, ProcessingInstructionNodeTypeId}; +use dom::node::{TextNodeTypeId, AbstractNode}; pub fn serialize(iterator: &mut NodeIterator) -> ~str { let mut html = ~""; @@ -29,6 +31,9 @@ pub fn serialize(iterator: &mut NodeIterator) -> ~str { DoctypeNodeTypeId => { serialize_doctype(node) } + ProcessingInstructionNodeTypeId => { + serialize_processing_instruction(node) + } DocumentFragmentNodeTypeId => { ~"" } @@ -70,6 +75,12 @@ fn serialize_text(node: AbstractNode) -> ~str { }) } +fn serialize_processing_instruction(node: AbstractNode) -> ~str { + node.with_imm_processing_instruction(|processing_instruction| { + ~"<?" + processing_instruction.target + " " + processing_instruction.element.data + "?>" + }) +} + fn serialize_doctype(node: AbstractNode) -> ~str { node.with_imm_doctype(|doctype| { ~"<!DOCTYPE" + doctype.name + ">" |