diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index eb45de6a5e7..36a2af07e63 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -2672,7 +2672,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), " ")) }, } diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index bccde70bb88..9558d9c4b41 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -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::().children()) + self.upcast::().child_text_content() } // https://html.spec.whatwg.org/multipage/#dom-script-text diff --git a/components/script/dom/htmltitleelement.rs b/components/script/dom/htmltitleelement.rs index f3ec357cb56..6dde6a6203b 100644 --- a/components/script/dom/htmltitleelement.rs +++ b/components/script/dom/htmltitleelement.rs @@ -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; @@ -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::().children() { - if let Some(text) = child.downcast::() { - content.push_str(&text.upcast::().data()); - } - } - DOMString::from(content) + self.upcast::().child_text_content() } // https://html.spec.whatwg.org/multipage/#dom-title-text diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 736020e360a..7146154a647 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -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>>(iterator: T) -> DOMString { let mut content = String::new(); for node in iterator {