aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/script/dom/htmltitleelement.rs29
-rw-r--r--src/components/script/dom/webidls/HTMLTitleElement.webidl3
2 files changed, 29 insertions, 3 deletions
diff --git a/src/components/script/dom/htmltitleelement.rs b/src/components/script/dom/htmltitleelement.rs
index 5a9f2fcd0a1..550a531aa76 100644
--- a/src/components/script/dom/htmltitleelement.rs
+++ b/src/components/script/dom/htmltitleelement.rs
@@ -3,14 +3,17 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLTitleElementBinding;
-use dom::bindings::codegen::InheritTypes::HTMLTitleElementDerived;
+use dom::bindings::codegen::Bindings::HTMLTitleElementBinding::HTMLTitleElementMethods;
+use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
+use dom::bindings::codegen::InheritTypes::{HTMLTitleElementDerived, NodeCast, TextCast};
use dom::bindings::js::{JSRef, Temporary};
use dom::bindings::utils::{Reflectable, Reflector};
use dom::document::Document;
use dom::element::HTMLTitleElementTypeId;
use dom::eventtarget::{EventTarget, NodeTargetTypeId};
use dom::htmlelement::HTMLElement;
-use dom::node::{Node, ElementNodeTypeId};
+use dom::node::{Node, NodeHelpers, ElementNodeTypeId};
+use dom::text::Text;
use servo_util::str::DOMString;
#[deriving(Encodable)]
@@ -37,6 +40,28 @@ impl HTMLTitleElement {
}
}
+impl<'a> HTMLTitleElementMethods for JSRef<'a, HTMLTitleElement> {
+ // http://www.whatwg.org/html/#dom-title-text
+ fn Text(&self) -> DOMString {
+ let node: &JSRef<Node> = NodeCast::from_ref(self);
+ let mut content = String::new();
+ for child in node.children() {
+ let text: Option<&JSRef<Text>> = TextCast::to_ref(&child);
+ match text {
+ Some(text) => content.push_str(text.characterdata.data.borrow().as_slice()),
+ None => (),
+ }
+ }
+ content
+ }
+
+ // http://www.whatwg.org/html/#dom-title-text
+ fn SetText(&self, value: DOMString) {
+ let node: &JSRef<Node> = NodeCast::from_ref(self);
+ node.SetTextContent(Some(value))
+ }
+}
+
impl Reflectable for HTMLTitleElement {
fn reflector<'a>(&'a self) -> &'a Reflector {
self.htmlelement.reflector()
diff --git a/src/components/script/dom/webidls/HTMLTitleElement.webidl b/src/components/script/dom/webidls/HTMLTitleElement.webidl
index aec275db56e..789fba3cf17 100644
--- a/src/components/script/dom/webidls/HTMLTitleElement.webidl
+++ b/src/components/script/dom/webidls/HTMLTitleElement.webidl
@@ -5,5 +5,6 @@
// http://www.whatwg.org/html/#htmltitleelement
interface HTMLTitleElement : HTMLElement {
- // attribute DOMString text;
+ [Pure]
+ attribute DOMString text;
};