Skip to content

Commit

Permalink
Implement "child text content" concept; use it where appropriate.
Browse files Browse the repository at this point in the history
  • Loading branch information
frewsxcv committed Dec 15, 2016
1 parent 872ec89 commit 9073a2f
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 11 deletions.
2 changes: 1 addition & 1 deletion components/script/dom/document.rs
Expand Up @@ -2667,7 +2667,7 @@ impl DocumentMethods for Document {
None => DOMString::new(),
Some(ref title) => {
// Steps 3-4.
let value = Node::collect_text_contents(title.children());
let value = title.child_text_content();
DOMString::from(str_join(split_html_space_chars(&value), " "))
},
}
Expand Down
2 changes: 1 addition & 1 deletion components/script/dom/htmlscriptelement.rs
Expand Up @@ -713,7 +713,7 @@ impl HTMLScriptElementMethods for HTMLScriptElement {

// https://html.spec.whatwg.org/multipage/#dom-script-text
fn Text(&self) -> DOMString {
Node::collect_text_contents(self.upcast::<Node>().children())
self.upcast::<Node>().child_text_content()
}

// https://html.spec.whatwg.org/multipage/#dom-script-text
Expand Down
10 changes: 1 addition & 9 deletions components/script/dom/htmltitleelement.rs
Expand Up @@ -8,11 +8,9 @@ use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
use dom::bindings::inheritance::Castable;
use dom::bindings::js::Root;
use dom::bindings::str::DOMString;
use dom::characterdata::CharacterData;
use dom::document::Document;
use dom::htmlelement::HTMLElement;
use dom::node::{ChildrenMutation, Node};
use dom::text::Text;
use dom::virtualmethods::VirtualMethods;
use html5ever_atoms::LocalName;

Expand Down Expand Up @@ -41,13 +39,7 @@ impl HTMLTitleElement {
impl HTMLTitleElementMethods for HTMLTitleElement {
// https://html.spec.whatwg.org/multipage/#dom-title-text
fn Text(&self) -> DOMString {
let mut content = String::new();
for child in self.upcast::<Node>().children() {
if let Some(text) = child.downcast::<Text>() {
content.push_str(&text.upcast::<CharacterData>().data());
}
}
DOMString::from(content)
self.upcast::<Node>().child_text_content()
}

// https://html.spec.whatwg.org/multipage/#dom-title-text
Expand Down
5 changes: 5 additions & 0 deletions components/script/dom/node.rs
Expand Up @@ -1788,6 +1788,11 @@ impl Node {
copy
}

/// https://html.spec.whatwg.org/multipage/#child-text-content
pub fn child_text_content(&self) -> DOMString {
Node::collect_text_contents(self.children())
}

pub fn collect_text_contents<T: Iterator<Item=Root<Node>>>(iterator: T) -> DOMString {
let mut content = String::new();
for node in iterator {
Expand Down

0 comments on commit 9073a2f

Please sign in to comment.