From 2878f444164c603ba2a379a88f0fba58fbefc896 Mon Sep 17 00:00:00 2001 From: Tetsuharu OHZEKI Date: Tue, 13 Aug 2013 16:52:14 +0900 Subject: [PATCH] Generate bindings for HTMLQuoteElement. --- .../script/dom/bindings/codegen/Bindings.conf | 1 + .../dom/bindings/codegen/CodegenRust.py | 1 + .../bindings/codegen/HTMLQuoteElement.webidl | 19 +++++++++++++++++++ src/components/script/dom/bindings/node.rs | 4 +++- src/components/script/dom/element.rs | 5 +++++ src/components/script/dom/htmlquoteelement.rs | 19 +++++++++++++++++++ .../script/html/hubbub_html_parser.rs | 4 +++- src/components/script/script.rc | 2 ++ src/test/html/test_bindings.html | 1 + src/test/html/test_bindings.js | 7 +++++++ 10 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 src/components/script/dom/bindings/codegen/HTMLQuoteElement.webidl create mode 100644 src/components/script/dom/htmlquoteelement.rs diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf index 69c9dd5ab511..4afbe1a1c9d7 100644 --- a/src/components/script/dom/bindings/codegen/Bindings.conf +++ b/src/components/script/dom/bindings/codegen/Bindings.conf @@ -565,6 +565,7 @@ addHTMLElement('HTMLLinkElement') addHTMLElement('HTMLMetaElement') addHTMLElement('HTMLOListElement') addHTMLElement('HTMLParagraphElement') +addHTMLElement('HTMLQuoteElement') addHTMLElement('HTMLScriptElement') addHTMLElement('HTMLSourceElement') addHTMLElement('HTMLSpanElement') diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index 194280de15a3..bee3c6384194 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -4634,6 +4634,7 @@ def makeEnumTypedef(e): 'dom::htmllinkelement::HTMLLinkElement', #XXXrecrack 'dom::htmlmetaelement::HTMLMetaElement', 'dom::htmlolistelement::HTMLOListElement', + 'dom::htmlquoteelement::HTMLQuoteElement', 'dom::htmlscriptelement::HTMLScriptElement', 'dom::htmlsourceelement::HTMLSourceElement', 'dom::htmlstyleelement::HTMLStyleElement', diff --git a/src/components/script/dom/bindings/codegen/HTMLQuoteElement.webidl b/src/components/script/dom/bindings/codegen/HTMLQuoteElement.webidl new file mode 100644 index 000000000000..a266dd353a12 --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLQuoteElement.webidl @@ -0,0 +1,19 @@ +/* -*- 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/#the-blockquote-element + * + * © Copyright 2004-2011 Apple Computer, Inc., Mozilla Foundation, and + * Opera Software ASA. You are granted a license to use, reproduce + * and create derivative works of this document. + */ + +// http://www.whatwg.org/specs/web-apps/current-work/#the-blockquote-element +interface HTMLQuoteElement : HTMLElement { + [SetterThrows, Pure] + attribute DOMString cite; +}; + diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs index 02d505dbcb35..e7dfb583ac0c 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, HTMLHtmlElementTypeId, HTMLIframeElementTypeId, HTMLImageElementTypeId, HTMLLinkElementTypeId, HTMLMetaElementTypeId, HTMLOListElementTypeId, - HTMLParagraphElementTypeId, HTMLScriptElementTypeId, + HTMLParagraphElementTypeId, HTMLQuoteElementTypeId, HTMLScriptElementTypeId, HTMLSpanElementTypeId, HTMLSourceElementTypeId, HTMLStyleElementTypeId, HTMLTextAreaElementTypeId, HTMLTableCaptionElementTypeId, HTMLTableElementTypeId, @@ -38,6 +38,7 @@ use dom::htmlimageelement::HTMLImageElement; use dom::htmllinkelement::HTMLLinkElement; use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlolistelement::HTMLOListElement; +use dom::htmlquoteelement::HTMLQuoteElement; use dom::htmlscriptelement::HTMLScriptElement; use dom::htmlsourceelement::HTMLSourceElement; use dom::htmlstyleelement::HTMLStyleElement; @@ -133,6 +134,7 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode) -> *JSObject ElementNodeTypeId(HTMLMetaElementTypeId) => generate_element!(HTMLMetaElement), ElementNodeTypeId(HTMLOListElementTypeId) => generate_element!(HTMLOListElement), ElementNodeTypeId(HTMLParagraphElementTypeId) => generate_element!(HTMLParagraphElement), + ElementNodeTypeId(HTMLQuoteElementTypeId) => generate_element!(HTMLQuoteElement), ElementNodeTypeId(HTMLScriptElementTypeId) => generate_element!(HTMLScriptElement), ElementNodeTypeId(HTMLSourceElementTypeId) => generate_element!(HTMLSourceElement), ElementNodeTypeId(HTMLSpanElementTypeId) => generate_element!(HTMLSpanElement), diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index cfe9a1c17b78..5aaa4188f6bc 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -14,6 +14,7 @@ use dom::bindings::codegen::{HTMLAnchorElementBinding, HTMLAppletElementBinding, HTMLImageElementBinding, HTMLMetaElementBinding, HTMLLinkElementBinding, HTMLOListElementBinding, HTMLParagraphElementBinding, + HTMLQuoteElementBinding, HTMLScriptElementBinding, HTMLSourceElementBinding, HTMLSpanElementBinding, HTMLStyleElementBinding, HTMLTableCaptionElementBinding, HTMLTableElementBinding, HTMLTableRowElementBinding, @@ -40,6 +41,7 @@ use dom::htmlimageelement::HTMLImageElement; use dom::htmllinkelement::HTMLLinkElement; use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlolistelement::HTMLOListElement; +use dom::htmlquoteelement::HTMLQuoteElement; use dom::htmlscriptelement::HTMLScriptElement; use dom::htmlsourceelement::HTMLSourceElement; use dom::htmlstyleelement::HTMLStyleElement; @@ -114,6 +116,7 @@ pub enum ElementTypeId { HTMLOListElementTypeId, HTMLOptionElementTypeId, HTMLParagraphElementTypeId, + HTMLQuoteElementTypeId, HTMLScriptElementTypeId, HTMLSelectElementTypeId, HTMLSmallElementTypeId, @@ -241,6 +244,8 @@ generate_cacheable_wrapper!(HTMLOListElement, HTMLOListElementBinding::Wrap) generate_binding_object!(HTMLOListElement) generate_cacheable_wrapper!(HTMLParagraphElement, HTMLParagraphElementBinding::Wrap) generate_binding_object!(HTMLParagraphElement) +generate_cacheable_wrapper!(HTMLQuoteElement, HTMLQuoteElementBinding::Wrap) +generate_binding_object!(HTMLQuoteElement) generate_cacheable_wrapper!(HTMLScriptElement, HTMLScriptElementBinding::Wrap) generate_binding_object!(HTMLScriptElement) generate_cacheable_wrapper!(HTMLSourceElement, HTMLSourceElementBinding::Wrap) diff --git a/src/components/script/dom/htmlquoteelement.rs b/src/components/script/dom/htmlquoteelement.rs new file mode 100644 index 000000000000..3201ee150946 --- /dev/null +++ b/src/components/script/dom/htmlquoteelement.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 HTMLQuoteElement { + parent: HTMLElement, +} + +impl HTMLQuoteElement { + pub fn Cite(&self) -> DOMString { + null_string + } + + pub fn SetCite(&self, _cite: &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 b0f520f619e3..8cb4c1b1fbc4 100644 --- a/src/components/script/html/hubbub_html_parser.rs +++ b/src/components/script/html/hubbub_html_parser.rs @@ -12,7 +12,7 @@ use dom::element::{HTMLElementTypeId, HTMLImageElementTypeId, HTMLIframeElementTypeId, HTMLInputElementTypeId, HTMLLinkElementTypeId, HTMLListItemElementTypeId, HTMLMetaElementTypeId, HTMLOListElementTypeId, HTMLOptionElementTypeId, - HTMLParagraphElementTypeId, HTMLScriptElementTypeId, + HTMLParagraphElementTypeId, HTMLQuoteElementTypeId, HTMLScriptElementTypeId, HTMLSelectElementTypeId, HTMLSmallElementTypeId, HTMLSourceElementTypeId, HTMLSpanElementTypeId, HTMLStyleElementTypeId, HTMLTableSectionElementTypeId, HTMLTableCellElementTypeId, HTMLTableElementTypeId, @@ -42,6 +42,7 @@ use dom::htmlimageelement::HTMLImageElement; use dom::htmllinkelement::HTMLLinkElement; use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlolistelement::HTMLOListElement; +use dom::htmlquoteelement::HTMLQuoteElement; use dom::htmlscriptelement::HTMLScriptElement; use dom::htmlsourceelement::HTMLSourceElement; use dom::htmlstyleelement::HTMLStyleElement; @@ -255,6 +256,7 @@ fn build_element_from_tag(cx: *JSContext, tag: &str) -> AbstractNode handle_element!(cx, tag, "ol", HTMLOListElementTypeId, HTMLOListElement, []); handle_element!(cx, tag, "option", HTMLOptionElementTypeId, HTMLOptionElement, []); handle_element!(cx, tag, "p", HTMLParagraphElementTypeId, HTMLParagraphElement, []); + handle_element!(cx, tag, "q", HTMLQuoteElementTypeId, HTMLQuoteElement, []); handle_element!(cx, tag, "script", HTMLScriptElementTypeId, HTMLScriptElement, []); handle_element!(cx, tag, "select", HTMLSelectElementTypeId, HTMLSelectElement, []); handle_element!(cx, tag, "small", HTMLSmallElementTypeId, HTMLSmallElement, []); diff --git a/src/components/script/script.rc b/src/components/script/script.rc index 492b964eed2e..7cdc31d31288 100644 --- a/src/components/script/script.rc +++ b/src/components/script/script.rc @@ -64,6 +64,7 @@ pub mod dom { pub mod HTMLMetaElementBinding; pub mod HTMLOListElementBinding; pub mod HTMLParagraphElementBinding; + pub mod HTMLQuoteElementBinding; pub mod HTMLScriptElementBinding; pub mod HTMLSourceElementBinding; pub mod HTMLSpanElementBinding; @@ -114,6 +115,7 @@ pub mod dom { pub mod htmllinkelement; pub mod htmlmetaelement; pub mod htmlolistelement; + pub mod htmlquoteelement; pub mod htmlscriptelement; pub mod htmlsourceelement; pub mod htmlstyleelement; diff --git a/src/test/html/test_bindings.html b/src/test/html/test_bindings.html index 2b8498d9bc29..33d91e2e7782 100644 --- a/src/test/html/test_bindings.html +++ b/src/test/html/test_bindings.html @@ -19,6 +19,7 @@

pppppppppp

+ qqqqqqqqqqqqqqqqqqqqqqqqqqq
    diff --git a/src/test/html/test_bindings.js b/src/test/html/test_bindings.js index d7a924e41fa9..1217975e7b66 100644 --- a/src/test/html/test_bindings.js +++ b/src/test/html/test_bindings.js @@ -189,6 +189,13 @@ window.alert(tags.length); window.alert(tags[0].tagName); window.alert(tags[0] instanceof HTMLTextAreaElement); +window.alert("HTMLQuoteElement:"); +let tags = document.getElementsByTagName("q"); +window.alert(tags); +window.alert(tags.length); +window.alert(tags[0].tagName); +window.alert(tags[0] instanceof HTMLQuoteElement); + //TODO: Doesn't work until we throw proper exceptions instead of returning 0 on // unwrap failure. /*try {