aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2015-03-30 14:12:05 +0200
committerMs2ger <ms2ger@gmail.com>2015-04-02 09:47:29 +0200
commit879c3710f4bbeda31c8a08f99e45931973f91f1c (patch)
tree2aa1fc271152466a10ee66f4a603469e4c152294 /components/script
parentdbd16932e67c63a778362f71be028132279d5e91 (diff)
downloadservo-879c3710f4bbeda31c8a08f99e45931973f91f1c.tar.gz
servo-879c3710f4bbeda31c8a08f99e45931973f91f1c.zip
Cleanup Document::Title.
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/document.rs26
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(" ")
}