Auto merge of #18747 - jdm:serializing-childrenonly, r=jdm

Serializing childrenonly

Rebased from #17896.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #14975 (github issue number if applicable).
- [x] There are tests for these changes

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18747)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-10-09 11:12:53 -05:00 committed by GitHub
commit e3624e62a4
14 changed files with 38 additions and 56 deletions

View file

@ -45,7 +45,7 @@ gleam = "0.4"
half = "1.0"
heapsize = "0.4"
heapsize_derive = "0.1"
html5ever = {version = "0.19", features = ["heap_size"]}
html5ever = {version = "0.20", features = ["heap_size"]}
hyper = "0.10"
hyper_serde = "0.7"
image = "0.14"
@ -90,7 +90,7 @@ unicode-segmentation = "1.1.0"
url = {version = "1.2", features = ["heap_size", "query_encoding"]}
utf-8 = "0.7"
uuid = {version = "0.5", features = ["v4"]}
xml5ever = {version = "0.9"}
xml5ever = {version = "0.10"}
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
webvr_traits = {path = "../webvr_traits"}

View file

@ -2050,7 +2050,10 @@ impl ElementMethods for Element {
/// https://w3c.github.io/DOM-Parsing/#widl-Element-innerHTML
fn GetInnerHTML(&self) -> Fallible<DOMString> {
// XXX TODO: XML case
self.serialize(ChildrenOnly)
let qname = QualName::new(self.prefix().clone(),
self.namespace().clone(),
self.local_name().clone());
self.serialize(ChildrenOnly(Some(qname)))
}
/// https://w3c.github.io/DOM-Parsing/#widl-Element-innerHTML

View file

@ -21,7 +21,7 @@ use html5ever::QualName;
use html5ever::buffer_queue::BufferQueue;
use html5ever::serialize::{AttrRef, Serialize, Serializer};
use html5ever::serialize::TraversalScope;
use html5ever::serialize::TraversalScope::ChildrenOnly;
use html5ever::serialize::TraversalScope::IncludeNode;
use html5ever::tokenizer::{Tokenizer as HtmlTokenizer, TokenizerOpts, TokenizerResult};
use html5ever::tree_builder::{Tracer as HtmlTracer, TreeBuilder, TreeBuilderOpts};
use js::jsapi::JSTracer;
@ -202,7 +202,7 @@ impl<'a> Serialize for &'a Node {
let node = *self;
let iter = SerializationIterator::new(node, traversal_scope == ChildrenOnly);
let iter = SerializationIterator::new(node, traversal_scope != IncludeNode);
for cmd in iter {
match cmd {