diff options
author | Youngsoo Son <ysoo.son@samsung.com> | 2013-08-12 13:42:44 +0900 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2013-08-22 16:20:28 -0400 |
commit | 57f3ce8f811d8f7f1a74cac4cc5573f76c19169c (patch) | |
tree | 8c4abc848de6004311a42069a55044a025d36f3b | |
parent | c0935cba7255e01ed58e11bbb61f87c2c04c9602 (diff) | |
download | servo-57f3ce8f811d8f7f1a74cac4cc5573f76c19169c.tar.gz servo-57f3ce8f811d8f7f1a74cac4cc5573f76c19169c.zip |
Generate bindings for HTMLTimeElement
-rw-r--r-- | src/components/script/dom/bindings/codegen/Bindings.conf | 1 | ||||
-rw-r--r-- | src/components/script/dom/bindings/codegen/CodegenRust.py | 1 | ||||
-rw-r--r-- | src/components/script/dom/bindings/codegen/HTMLTimeElement.webidl | 13 | ||||
-rw-r--r-- | src/components/script/dom/bindings/node.rs | 4 | ||||
-rw-r--r-- | src/components/script/dom/element.rs | 8 | ||||
-rw-r--r-- | src/components/script/dom/htmltimeelement.rs | 19 | ||||
-rw-r--r-- | src/components/script/html/hubbub_html_parser.rs | 6 | ||||
-rw-r--r-- | src/components/script/script.rc | 2 | ||||
-rw-r--r-- | src/test/html/test_bindings.html | 1 | ||||
-rw-r--r-- | src/test/html/test_bindings.js | 7 |
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); |