diff options
author | Junyoung Cho <june0.cho@samsung.com> | 2013-08-12 11:27:40 +0900 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2013-08-22 16:31:38 -0400 |
commit | c8306795d14b25288215d38a35932f15342f21dc (patch) | |
tree | 39b95cc67c5eb077c6fdc59569f34752bfb5ef15 | |
parent | 13bb1a49b8f96b39f302145eee2042e32b9d35e5 (diff) | |
download | servo-c8306795d14b25288215d38a35932f15342f21dc.tar.gz servo-c8306795d14b25288215d38a35932f15342f21dc.zip |
Generate bindings for HTMLDataElement
-rw-r--r-- | src/components/script/dom/bindings/codegen/Bindings.conf | 1 | ||||
-rw-r--r-- | src/components/script/dom/bindings/codegen/CodegenRust.py | 9 | ||||
-rw-r--r-- | src/components/script/dom/bindings/codegen/HTMLBaseElement.webidl | 2 | ||||
-rw-r--r-- | src/components/script/dom/bindings/codegen/HTMLDataElement.webidl | 13 | ||||
-rw-r--r-- | src/components/script/dom/bindings/node.rs | 4 | ||||
-rw-r--r-- | src/components/script/dom/element.rs | 7 | ||||
-rw-r--r-- | src/components/script/dom/htmldataelement.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 | 1 |
11 files changed, 56 insertions, 9 deletions
diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf index 819bea65ae5..638cbb18ca9 100644 --- a/src/components/script/dom/bindings/codegen/Bindings.conf +++ b/src/components/script/dom/bindings/codegen/Bindings.conf @@ -552,6 +552,7 @@ addHTMLElement('HTMLBaseElement') addHTMLElement('HTMLBodyElement') addHTMLElement('HTMLBRElement') addHTMLElement('HTMLCanvasElement') +addHTMLElement('HTMLDataElement') addHTMLElement('HTMLDivElement') addHTMLElement('HTMLDListElement') addHTMLElement('HTMLElement') diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index 41c4a6f980a..53de48d595d 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -4618,12 +4618,13 @@ class CGBindingRoot(CGThing): 'dom::element::{Element, HTMLHeadElement, HTMLHtmlElement}', #XXXjdm 'dom::element::{HTMLDivElement, HTMLSpanElement, HTMLParagraphElement}', #XXXjdm 'dom::htmlanchorelement::HTMLAnchorElement', #XXXjdm - 'dom::htmlappletelement::HTMLAppletElement', - 'dom::htmlareaelement::HTMLAreaElement', - 'dom::htmlbaseelement::HTMLBaseElement', - 'dom::htmlbodyelement::HTMLBodyElement', + 'dom::htmlappletelement::HTMLAppletElement', #XXXjune0cho + 'dom::htmlareaelement::HTMLAreaElement', #XXXjune0cho + 'dom::htmlbaseelement::HTMLBaseElement', #XXXjune0cho + 'dom::htmlbodyelement::HTMLBodyElement', #XXXjune0cho 'dom::htmlbrelement::HTMLBRElement', #XXXrecrack 'dom::htmlcanvaselement::HTMLCanvasElement', + 'dom::htmldataelement::HTMLDataElement', #XXXjune0cho 'dom::htmldlistelement::HTMLDListElement', 'dom::htmlelement::HTMLElement', #XXXjdm 'dom::htmldocument::HTMLDocument', #XXXjdm diff --git a/src/components/script/dom/bindings/codegen/HTMLBaseElement.webidl b/src/components/script/dom/bindings/codegen/HTMLBaseElement.webidl index 5ca6555288b..d3e7e4d8d71 100644 --- a/src/components/script/dom/bindings/codegen/HTMLBaseElement.webidl +++ b/src/components/script/dom/bindings/codegen/HTMLBaseElement.webidl @@ -17,4 +17,4 @@ interface HTMLBaseElement : HTMLElement { attribute DOMString href; [SetterThrows, Pure] attribute DOMString target; -} +}; diff --git a/src/components/script/dom/bindings/codegen/HTMLDataElement.webidl b/src/components/script/dom/bindings/codegen/HTMLDataElement.webidl new file mode 100644 index 00000000000..8a487122873 --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLDataElement.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-data-element + */ + +interface HTMLDataElement : HTMLElement { + [SetterThrows] + attribute DOMString value; +}; diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs index 86bd57d959e..a14185bbb76 100644 --- a/src/components/script/dom/bindings/node.rs +++ b/src/components/script/dom/bindings/node.rs @@ -10,7 +10,7 @@ use dom::element::{HTMLElementTypeId, HTMLAnchorElementTypeId, HTMLAppletElementTypeId, HTMLAreaElementTypeId, HTMLBaseElementTypeId, HTMLBodyElementTypeId, HTMLBRElementTypeId, - HTMLCanvasElementTypeId, + HTMLCanvasElementTypeId, HTMLDataElementTypeId, HTMLDivElementTypeId, HTMLHeadElementTypeId, HTMLHRElementTypeId, HTMLHtmlElementTypeId, HTMLIframeElementTypeId, HTMLImageElementTypeId, HTMLMetaElementTypeId, HTMLOListElementTypeId, @@ -30,6 +30,7 @@ use dom::htmlbodyelement::HTMLBodyElement; use dom::htmlhrelement::HTMLHRElement; use dom::htmlbrelement::HTMLBRElement; use dom::htmlcanvaselement::HTMLCanvasElement; +use dom::htmldataelement::HTMLDataElement; use dom::htmldlistelement::HTMLDListElement; use dom::htmliframeelement::HTMLIFrameElement; use dom::htmlimageelement::HTMLImageElement; @@ -118,6 +119,7 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> *JSObject ElementNodeTypeId(HTMLBodyElementTypeId) => generate_element!(HTMLBodyElement), ElementNodeTypeId(HTMLBRElementTypeId) => generate_element!(HTMLBRElement), ElementNodeTypeId(HTMLCanvasElementTypeId) => generate_element!(HTMLCanvasElement), + ElementNodeTypeId(HTMLDataElementTypeId) => generate_element!(HTMLDataElement), ElementNodeTypeId(HTMLDListElementTypeId) => generate_element!(HTMLDListElement), ElementNodeTypeId(HTMLDivElementTypeId) => generate_element!(HTMLDivElement), ElementNodeTypeId(HTMLHeadElementTypeId) => generate_element!(HTMLHeadElement), diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index 966e664ef9a..186f5bfcff5 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -7,7 +7,8 @@ use dom::bindings::codegen::{HTMLAnchorElementBinding, HTMLAppletElementBinding, HTMLAreaElementBinding, HTMLBaseElementBinding, HTMLBodyElementBinding, HTMLBRElementBinding, - HTMLCanvasElementBinding, HTMLDListElementBinding, HTMLDivElementBinding, + HTMLCanvasElementBinding, HTMLDataElementBinding, + HTMLDListElementBinding, HTMLDivElementBinding, HTMLHeadElementBinding, HTMLHRElementBinding, HTMLHtmlElementBinding, HTMLIFrameElementBinding, HTMLImageElementBinding, HTMLMetaElementBinding, @@ -29,6 +30,7 @@ use dom::htmlbodyelement::HTMLBodyElement; use dom::htmlbrelement::HTMLBRElement; use dom::htmlcanvaselement::HTMLCanvasElement; use dom::htmlcollection::HTMLCollection; +use dom::htmldataelement::HTMLDataElement; use dom::htmldlistelement::HTMLDListElement; use dom::htmlelement::HTMLElement; use dom::htmlhrelement::HTMLHRElement; @@ -92,6 +94,7 @@ pub enum ElementTypeId { HTMLBRElementTypeId, HTMLBodyElementTypeId, HTMLCanvasElementTypeId, + HTMLDataElementTypeId, HTMLDListElementTypeId, HTMLDivElementTypeId, HTMLFontElementTypeId, @@ -221,6 +224,8 @@ generate_cacheable_wrapper!(HTMLHRElement, HTMLHRElementBinding::Wrap) generate_binding_object!(HTMLHRElement) generate_cacheable_wrapper!(HTMLHtmlElement, HTMLHtmlElementBinding::Wrap) generate_binding_object!(HTMLHtmlElement) +generate_cacheable_wrapper!(HTMLDataElement, HTMLDataElementBinding::Wrap) +generate_binding_object!(HTMLDataElement) generate_cacheable_wrapper!(HTMLDivElement, HTMLDivElementBinding::Wrap) generate_binding_object!(HTMLDivElement) generate_cacheable_wrapper!(HTMLIFrameElement, HTMLIFrameElementBinding::Wrap) diff --git a/src/components/script/dom/htmldataelement.rs b/src/components/script/dom/htmldataelement.rs new file mode 100644 index 00000000000..dd2ed31a6da --- /dev/null +++ b/src/components/script/dom/htmldataelement.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 HTMLDataElement { + parent: HTMLElement +} + +impl HTMLDataElement { + pub fn Value(&self) -> DOMString { + null_string + } + + pub fn SetValue(&mut self, _value: &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 fad0088555c..f384fcf348a 100644 --- a/src/components/script/html/hubbub_html_parser.rs +++ b/src/components/script/html/hubbub_html_parser.rs @@ -5,8 +5,8 @@ use dom::element::{HTMLElementTypeId, HTMLAnchorElementTypeId, HTMLAppletElementTypeId, HTMLAreaElementTypeId, HTMLBaseElementTypeId, HTMLBodyElementTypeId, - HTMLBRElementTypeId, HTMLCanvasElementTypeId, HTMLDivElementTypeId, - HTMLDListElementTypeId, + HTMLBRElementTypeId, HTMLCanvasElementTypeId, HTMLDataElementTypeId, + HTMLDivElementTypeId, HTMLDListElementTypeId, HTMLFontElementTypeId, HTMLFormElementTypeId, HTMLHRElementTypeId, HTMLHeadElementTypeId, HTMLHtmlElementTypeId, HTMLImageElementTypeId, HTMLIframeElementTypeId, HTMLInputElementTypeId, @@ -34,6 +34,7 @@ use dom::htmlareaelement::HTMLAreaElement; use dom::htmlbaseelement::HTMLBaseElement; use dom::htmlbodyelement::HTMLBodyElement; use dom::htmlcanvaselement::HTMLCanvasElement; +use dom::htmldataelement::HTMLDataElement; use dom::htmldlistelement::HTMLDListElement; use dom::htmlhrelement::HTMLHRElement; use dom::htmliframeelement::{IFrameSize, HTMLIFrameElement}; @@ -238,6 +239,7 @@ fn build_element_from_tag(cx: *JSContext, tag: &str) -> AbstractNode<ScriptView> handle_element!(cx, tag, "br", HTMLBRElementTypeId, HTMLBRElement, []); handle_element!(cx, tag, "body", HTMLBodyElementTypeId, HTMLBodyElement, []); handle_element!(cx, tag, "canvas", HTMLCanvasElementTypeId, HTMLCanvasElement, []); + handle_element!(cx, tag, "data", HTMLDataElementTypeId, HTMLDataElement, []); handle_element!(cx, tag, "div", HTMLDivElementTypeId, HTMLDivElement, []); handle_element!(cx, tag, "dl", HTMLDListElementTypeId, HTMLDListElement, []); handle_element!(cx, tag, "font", HTMLFontElementTypeId, HTMLFontElement, []); diff --git a/src/components/script/script.rc b/src/components/script/script.rc index 5526afcde55..f9e60fe1c76 100644 --- a/src/components/script/script.rc +++ b/src/components/script/script.rc @@ -50,6 +50,7 @@ pub mod dom { pub mod HTMLBRElementBinding; pub mod HTMLCanvasElementBinding; pub mod HTMLCollectionBinding; + pub mod HTMLDataElementBinding; pub mod HTMLDListElementBinding; pub mod HTMLDivElementBinding; pub mod HTMLDocumentBinding; @@ -102,6 +103,7 @@ pub mod dom { pub mod htmlbrelement; pub mod htmlcanvaselement; pub mod htmlcollection; + pub mod htmldataelement; pub mod htmldlistelement; pub mod htmldocument; pub mod htmlelement; diff --git a/src/test/html/test_bindings.html b/src/test/html/test_bindings.html index 506551e8937..2b8498d9bc2 100644 --- a/src/test/html/test_bindings.html +++ b/src/test/html/test_bindings.html @@ -39,5 +39,6 @@ <source src="horse.mp3" type="audio/mpeg"> </audio> <area></area> + <data></data> </body> </html> diff --git a/src/test/html/test_bindings.js b/src/test/html/test_bindings.js index ca69d98d6f0..d7a924e41fa 100644 --- a/src/test/html/test_bindings.js +++ b/src/test/html/test_bindings.js @@ -135,6 +135,7 @@ window.alert(document.getElementsByTagName('iframe')[0]); window.alert(document.getElementsByTagName("body")[0]); window.alert(document.getElementsByTagName("area")[0]); window.alert(document.getElementsByTagName("base")[0]); +window.alert(document.getElementsByTagName("data")[0]); window.alert("OList:"); let tags = document.getElementsByTagName("ol"); |