aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYoungsoo Son <ysoo.son@samsung.com>2013-08-12 13:42:44 +0900
committerJosh Matthews <josh@joshmatthews.net>2013-08-22 16:20:28 -0400
commit57f3ce8f811d8f7f1a74cac4cc5573f76c19169c (patch)
tree8c4abc848de6004311a42069a55044a025d36f3b /src
parentc0935cba7255e01ed58e11bbb61f87c2c04c9602 (diff)
downloadservo-57f3ce8f811d8f7f1a74cac4cc5573f76c19169c.tar.gz
servo-57f3ce8f811d8f7f1a74cac4cc5573f76c19169c.zip
Generate bindings for HTMLTimeElement
Diffstat (limited to 'src')
-rw-r--r--src/components/script/dom/bindings/codegen/Bindings.conf1
-rw-r--r--src/components/script/dom/bindings/codegen/CodegenRust.py1
-rw-r--r--src/components/script/dom/bindings/codegen/HTMLTimeElement.webidl13
-rw-r--r--src/components/script/dom/bindings/node.rs4
-rw-r--r--src/components/script/dom/element.rs8
-rw-r--r--src/components/script/dom/htmltimeelement.rs19
-rw-r--r--src/components/script/html/hubbub_html_parser.rs6
-rw-r--r--src/components/script/script.rc2
-rw-r--r--src/test/html/test_bindings.html1
-rw-r--r--src/test/html/test_bindings.js7
10 files changed, 57 insertions, 5 deletions
diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf
index 13cc61e8f3b..0e97543b1d8 100644
--- a/src/components/script/dom/bindings/codegen/Bindings.conf
+++ b/src/components/script/dom/bindings/codegen/Bindings.conf
@@ -568,6 +568,7 @@ addHTMLElement('HTMLTableElement')
addHTMLElement('HTMLTableRowElement')
addHTMLElement('HTMLTableSectionElement')
addHTMLElement('HTMLTextAreaElement')
+addHTMLElement('HTMLTimeElement')
addHTMLElement('HTMLTitleElement')
addHTMLElement('HTMLUListElement')
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py
index 0ab24f9c821..5b2a75a22c8 100644
--- a/src/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/src/components/script/dom/bindings/codegen/CodegenRust.py
@@ -4636,6 +4636,7 @@ class CGBindingRoot(CGThing):
'dom::htmltablerowelement::HTMLTableRowElement',
'dom::htmltablesectionelement::HTMLTableSectionElement',
'dom::htmltextareaelement::HTMLTextAreaElement',
+ 'dom::htmltimeelement::HTMLTimeElement',
'dom::htmltitleelement::HTMLTitleElement', #XXXyusukesuzuki
'dom::htmlulistelement::HTMLUListElement',
'dom::bindings::utils::*',
diff --git a/src/components/script/dom/bindings/codegen/HTMLTimeElement.webidl b/src/components/script/dom/bindings/codegen/HTMLTimeElement.webidl
new file mode 100644
index 00000000000..517ca9981ee
--- /dev/null
+++ b/src/components/script/dom/bindings/codegen/HTMLTimeElement.webidl
@@ -0,0 +1,13 @@
+/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * The origin of this IDL file is
+ * http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-time-element
+ */
+
+interface HTMLTimeElement : HTMLElement {
+ [SetterThrows]
+ attribute DOMString dateTime;
+};
diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs
index 3d1e0907ac0..94fddc745d8 100644
--- a/src/components/script/dom/bindings/node.rs
+++ b/src/components/script/dom/bindings/node.rs
@@ -15,7 +15,7 @@ use dom::element::{HTMLElementTypeId,
HTMLParagraphElementTypeId, HTMLScriptElementTypeId,
HTMLSpanElementTypeId, HTMLStyleElementTypeId, HTMLTextAreaElementTypeId,
HTMLTableCaptionElementTypeId, HTMLTableElementTypeId,
- HTMLTableRowElementTypeId, HTMLTableSectionElementTypeId,
+ HTMLTableRowElementTypeId, HTMLTableSectionElementTypeId, HTMLTimeElementTypeId,
HTMLTitleElementTypeId, HTMLUListElementTypeId, HTMLDListElementTypeId};
use dom::element::{HTMLHeadElement,HTMLHtmlElement, HTMLDivElement, HTMLParagraphElement, HTMLSpanElement};
use dom::htmlelement::HTMLElement;
@@ -36,6 +36,7 @@ use dom::htmltableelement::HTMLTableElement;
use dom::htmltablerowelement::HTMLTableRowElement;
use dom::htmltablesectionelement::HTMLTableSectionElement;
use dom::htmltextareaelement::HTMLTextAreaElement;
+use dom::htmltimeelement::HTMLTimeElement;
use dom::htmltitleelement::HTMLTitleElement;
use dom::htmlulistelement::HTMLUListElement;
use dom::node::{AbstractNode, Node, ElementNodeTypeId, TextNodeTypeId, CommentNodeTypeId};
@@ -125,6 +126,7 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> *JSObject
ElementNodeTypeId(HTMLTableRowElementTypeId) => generate_element!(HTMLTableRowElement),
ElementNodeTypeId(HTMLTableSectionElementTypeId) => generate_element!(HTMLTableSectionElement),
ElementNodeTypeId(HTMLTextAreaElementTypeId) => generate_element!(HTMLTextAreaElement),
+ ElementNodeTypeId(HTMLTimeElementTypeId) => generate_element!(HTMLTimeElement),
ElementNodeTypeId(HTMLTitleElementTypeId) => generate_element!(HTMLTitleElement),
ElementNodeTypeId(HTMLUListElementTypeId) => generate_element!(HTMLUListElement),
ElementNodeTypeId(_) => element::create(cx, node).ptr,
diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs
index 0c84fb7fddb..56d2ac6f421 100644
--- a/src/components/script/dom/element.rs
+++ b/src/components/script/dom/element.rs
@@ -14,7 +14,7 @@ use dom::bindings::codegen::{HTMLAnchorElementBinding, HTMLBodyElementBinding, H
HTMLStyleElementBinding, HTMLTableCaptionElementBinding,
HTMLTableElementBinding, HTMLTableRowElementBinding,
HTMLTableSectionElementBinding, HTMLTextAreaElementBinding,
- HTMLTitleElementBinding, HTMLUListElementBinding};
+ HTMLTimeElementBinding, HTMLTitleElementBinding, HTMLUListElementBinding};
use dom::bindings::utils::{null_string, str};
use dom::bindings::utils::{BindingObject, CacheableWrapper, DOMString, ErrorResult, WrapperCache};
use dom::clientrect::ClientRect;
@@ -36,10 +36,11 @@ use dom::htmlstyleelement::HTMLStyleElement;
use dom::htmltablecaptionelement::HTMLTableCaptionElement;
use dom::htmltableelement::HTMLTableElement;
use dom::htmltablerowelement::HTMLTableRowElement;
-use dom::htmlulistelement::HTMLUListElement;
use dom::htmltablesectionelement::HTMLTableSectionElement;
use dom::htmltextareaelement::HTMLTextAreaElement;
+use dom::htmltimeelement::HTMLTimeElement;
use dom::htmltitleelement::HTMLTitleElement;
+use dom::htmlulistelement::HTMLUListElement;
use dom::node::{ElementNodeTypeId, Node, ScriptView, AbstractNode};
use layout_interface::{ContentBoxQuery, ContentBoxResponse, ContentBoxesQuery};
use layout_interface::{ContentBoxesResponse};
@@ -110,6 +111,7 @@ pub enum ElementTypeId {
HTMLTableRowElementTypeId,
HTMLTableSectionElementTypeId,
HTMLTextAreaElementTypeId,
+ HTMLTimeElementTypeId,
HTMLTitleElementTypeId,
HTMLUListElementTypeId,
UnknownElementTypeId,
@@ -233,6 +235,8 @@ generate_cacheable_wrapper!(HTMLTextAreaElement, HTMLTextAreaElementBinding::Wra
generate_binding_object!(HTMLTextAreaElement)
generate_cacheable_wrapper!(HTMLTitleElement, HTMLTitleElementBinding::Wrap)
generate_binding_object!(HTMLTitleElement)
+generate_cacheable_wrapper!(HTMLTimeElement, HTMLTimeElementBinding::Wrap)
+generate_binding_object!(HTMLTimeElement)
generate_cacheable_wrapper!(HTMLUListElement, HTMLUListElementBinding::Wrap)
generate_binding_object!(HTMLUListElement)
diff --git a/src/components/script/dom/htmltimeelement.rs b/src/components/script/dom/htmltimeelement.rs
new file mode 100644
index 00000000000..2b3b5be795d
--- /dev/null
+++ b/src/components/script/dom/htmltimeelement.rs
@@ -0,0 +1,19 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+use dom::bindings::utils::{DOMString, null_string, ErrorResult};
+use dom::htmlelement::HTMLElement;
+
+pub struct HTMLTimeElement {
+ parent: HTMLElement
+}
+
+impl HTMLTimeElement {
+ pub fn DateTime(&self) -> DOMString {
+ null_string
+ }
+
+ pub fn SetDateTime(&mut self, _dateTime: &DOMString, _rv: &mut ErrorResult) {
+ }
+}
diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs
index 9b316ba7ada..a6b75b3f05f 100644
--- a/src/components/script/html/hubbub_html_parser.rs
+++ b/src/components/script/html/hubbub_html_parser.rs
@@ -16,7 +16,7 @@ use dom::element::{HTMLElementTypeId,
HTMLSpanElementTypeId, HTMLStyleElementTypeId, HTMLTableSectionElementTypeId,
HTMLTableCellElementTypeId, HTMLTableElementTypeId,
HTMLTableCaptionElementTypeId, HTMLTableRowElementTypeId, HTMLTextAreaElementTypeId,
- HTMLTitleElementTypeId, HTMLUListElementTypeId,
+ HTMLTimeElementTypeId, HTMLTitleElementTypeId, HTMLUListElementTypeId,
UnknownElementTypeId};
use dom::element::{HTMLDivElement, HTMLFontElement, HTMLFormElement,
HTMLHeadElement, HTMLHeadingElement, HTMLHtmlElement,
@@ -43,6 +43,7 @@ use dom::htmltableelement::HTMLTableElement;
use dom::htmltablerowelement::HTMLTableRowElement;
use dom::htmltablesectionelement::HTMLTableSectionElement;
use dom::htmltextareaelement::HTMLTextAreaElement;
+use dom::htmltimeelement::HTMLTimeElement;
use dom::htmltitleelement::HTMLTitleElement;
use dom::htmlulistelement::HTMLUListElement;
use dom::element::Element;
@@ -253,8 +254,9 @@ fn build_element_from_tag(cx: *JSContext, tag: &str) -> AbstractNode<ScriptView>
handle_element!(cx, tag, "table", HTMLTableElementTypeId, HTMLTableElement, []);
handle_element!(cx, tag, "tbody", HTMLTableSectionElementTypeId, HTMLTableSectionElement, []);
handle_element!(cx, tag, "textarea",HTMLTextAreaElementTypeId, HTMLTextAreaElement, []);
- handle_element!(cx, tag, "tr", HTMLTableRowElementTypeId, HTMLTableRowElement, []);
+ handle_element!(cx, tag, "time", HTMLTimeElementTypeId, HTMLTimeElement, []);
handle_element!(cx, tag, "title", HTMLTitleElementTypeId, HTMLTitleElement, []);
+ handle_element!(cx, tag, "tr", HTMLTableRowElementTypeId, HTMLTableRowElement, []);
handle_element!(cx, tag, "ul", HTMLUListElementTypeId, HTMLUListElement, []);
handle_element!(cx, tag, "img", HTMLImageElementTypeId, HTMLImageElement, [(image: None)]);
diff --git a/src/components/script/script.rc b/src/components/script/script.rc
index dfcbab356bf..786f1cb3c15 100644
--- a/src/components/script/script.rc
+++ b/src/components/script/script.rc
@@ -67,6 +67,7 @@ pub mod dom {
pub mod HTMLTableRowElementBinding;
pub mod HTMLTableSectionElementBinding;
pub mod HTMLTextAreaElementBinding;
+ pub mod HTMLTimeElementBinding;
pub mod HTMLTitleElementBinding;
pub mod HTMLUListElementBinding;
pub mod MouseEventBinding;
@@ -109,6 +110,7 @@ pub mod dom {
pub mod htmltablerowelement;
pub mod htmltablesectionelement;
pub mod htmltextareaelement;
+ pub mod htmltimeelement;
pub mod htmltitleelement;
pub mod htmlulistelement;
pub mod mouseevent;
diff --git a/src/test/html/test_bindings.html b/src/test/html/test_bindings.html
index 1c3f62e764d..da6780ef272 100644
--- a/src/test/html/test_bindings.html
+++ b/src/test/html/test_bindings.html
@@ -32,5 +32,6 @@
<b>b</b>
<i>i</i>
<textarea>textarea</textarea>
+ <time datetime="2014-02-14">Valentines day</time>
</body>
</html>
diff --git a/src/test/html/test_bindings.js b/src/test/html/test_bindings.js
index 2ce275e1086..fb6454137bb 100644
--- a/src/test/html/test_bindings.js
+++ b/src/test/html/test_bindings.js
@@ -158,6 +158,13 @@ window.alert(tags.length);
window.alert(tags[0].tagName);
window.alert(tags[0] instanceof HTMLCanvasElement);
+window.alert("HTMLTimeElement:");
+let tags = document.getElementsByTagName("time");
+window.alert(tags);
+window.alert(tags.length);
+window.alert(tags[0].tagName);
+window.alert(tags[0] instanceof HTMLTimeElement);
+
window.alert("HTMLTableCaptionElement:");
let tags = document.getElementsByTagName("caption");
window.alert(tags);