diff options
author | Ms2ger <ms2ger@gmail.com> | 2015-03-30 14:12:05 +0200 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2015-04-02 09:47:29 +0200 |
commit | 879c3710f4bbeda31c8a08f99e45931973f91f1c (patch) | |
tree | 2aa1fc271152466a10ee66f4a603469e4c152294 /components/script/dom | |
parent | dbd16932e67c63a778362f71be028132279d5e91 (diff) | |
download | servo-879c3710f4bbeda31c8a08f99e45931973f91f1c.tar.gz servo-879c3710f4bbeda31c8a08f99e45931973f91f1c.zip |
Cleanup Document::Title.
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/document.rs | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index debd6c0831a..841b196ed3f 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -1118,21 +1118,21 @@ impl<'a> DocumentMethods for JSRef<'a, Document> { // TODO: Support root SVG namespace: https://github.com/servo/servo/issues/5315 // http://www.whatwg.org/specs/web-apps/current-work/#document.title fn Title(self) -> DOMString { - let mut title = String::new(); - self.GetDocumentElement().root().map(|root| { - let root: JSRef<Node> = NodeCast::from_ref(root.r()); - root.traverse_preorder() + let title_element = self.GetDocumentElement().root().and_then(|root| { + NodeCast::from_ref(root.get_unsound_ref_forever()) + .traverse_preorder() .find(|node| node.type_id() == NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTitleElement))) - .map(|title_elem| { - let children = title_elem.children().filter_map(|n| { - let t: Option<JSRef<Text>> = TextCast::to_ref(n); - t - }); - for text in children { - title.push_str(&text.characterdata().data()); - } - }); }); + + let mut title = String::new(); + if let Some(title_element) = title_element { + for child in title_element.children() { + if let Some(text) = TextCast::to_ref(child) { + title.push_str(&text.characterdata().data()); + } + } + } + let v: Vec<&str> = split_html_space_chars(&title).collect(); v.connect(" ") } |