From 22e02b573d546f9e0eea3318e2691d3144735fc5 Mon Sep 17 00:00:00 2001 From: Tetsuharu OHZEKI Date: Sat, 24 Aug 2013 01:48:11 +0900 Subject: [PATCH] Generate bindings for HTMLTemplateElement. --- .../script/dom/bindings/codegen/Bindings.conf | 1 + .../codegen/HTMLTemplateElement.webidl | 19 +++++++++++++++++++ src/components/script/dom/bindings/element.rs | 2 ++ src/components/script/dom/bindings/node.rs | 1 + src/components/script/dom/element.rs | 1 + .../script/dom/htmltemplateelement.rs | 12 ++++++++++++ .../script/html/hubbub_html_parser.rs | 1 + src/components/script/script.rc | 1 + 8 files changed, 38 insertions(+) create mode 100644 src/components/script/dom/bindings/codegen/HTMLTemplateElement.webidl create mode 100644 src/components/script/dom/htmltemplateelement.rs diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf index d1bd1e1cff40..304b2fff2652 100644 --- a/src/components/script/dom/bindings/codegen/Bindings.conf +++ b/src/components/script/dom/bindings/codegen/Bindings.conf @@ -606,6 +606,7 @@ addHTMLElement('HTMLTableCellElement') addHTMLElement('HTMLTableColElement') addHTMLElement('HTMLTableRowElement') addHTMLElement('HTMLTableSectionElement') +addHTMLElement('HTMLTemplateElement') addHTMLElement('HTMLTextAreaElement') addHTMLElement('HTMLTimeElement') addHTMLElement('HTMLTitleElement') diff --git a/src/components/script/dom/bindings/codegen/HTMLTemplateElement.webidl b/src/components/script/dom/bindings/codegen/HTMLTemplateElement.webidl new file mode 100644 index 000000000000..ef87f656c610 --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLTemplateElement.webidl @@ -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/. + * + * The origin of this IDL file is + * https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html + * + * Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C + * liability, trademark and document use rules apply. + */ + +// import from http://mxr.mozilla.org/mozilla-central/source/dom/webidl/HTMLTemplateElement.webidl + +interface HTMLTemplateElement : HTMLElement { +/* FIXME: + readonly attribute DocumentFragment content; +*/ +}; + diff --git a/src/components/script/dom/bindings/element.rs b/src/components/script/dom/bindings/element.rs index b6d1d9a72fc8..8ccce2209334 100644 --- a/src/components/script/dom/bindings/element.rs +++ b/src/components/script/dom/bindings/element.rs @@ -144,6 +144,8 @@ generate_cacheable_wrapper!(HTMLTableRowElement, HTMLTableRowElementBinding::Wra generate_binding_object!(HTMLTableRowElement) generate_cacheable_wrapper!(HTMLTableSectionElement, HTMLTableSectionElementBinding::Wrap) generate_binding_object!(HTMLTableSectionElement) +generate_cacheable_wrapper!(HTMLTemplateElement, HTMLTemplateElementBinding::Wrap) +generate_binding_object!(HTMLTemplateElement) generate_cacheable_wrapper!(HTMLTextAreaElement, HTMLTextAreaElementBinding::Wrap) generate_binding_object!(HTMLTextAreaElement) generate_cacheable_wrapper!(HTMLTitleElement, HTMLTitleElementBinding::Wrap) diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs index 26c0d29a528a..d5094dd86242 100644 --- a/src/components/script/dom/bindings/node.rs +++ b/src/components/script/dom/bindings/node.rs @@ -75,6 +75,7 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode) -> *JSObject ElementNodeTypeId(HTMLTableColElementTypeId) => generate_element!(HTMLTableColElement), ElementNodeTypeId(HTMLTableRowElementTypeId) => generate_element!(HTMLTableRowElement), ElementNodeTypeId(HTMLTableSectionElementTypeId) => generate_element!(HTMLTableSectionElement), + ElementNodeTypeId(HTMLTemplateElementTypeId) => generate_element!(HTMLTemplateElement), ElementNodeTypeId(HTMLTextAreaElementTypeId) => generate_element!(HTMLTextAreaElement), ElementNodeTypeId(HTMLTimeElementTypeId) => generate_element!(HTMLTimeElement), ElementNodeTypeId(HTMLTitleElementTypeId) => generate_element!(HTMLTitleElement), diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index c4adf83022bd..ffe69cc0c179 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -99,6 +99,7 @@ pub enum ElementTypeId { HTMLTableColElementTypeId, HTMLTableRowElementTypeId, HTMLTableSectionElementTypeId, + HTMLTemplateElementTypeId, HTMLTextAreaElementTypeId, HTMLTimeElementTypeId, HTMLTitleElementTypeId, diff --git a/src/components/script/dom/htmltemplateelement.rs b/src/components/script/dom/htmltemplateelement.rs new file mode 100644 index 000000000000..f43e00421e90 --- /dev/null +++ b/src/components/script/dom/htmltemplateelement.rs @@ -0,0 +1,12 @@ +/* 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::htmlelement::HTMLElement; + +pub struct HTMLTemplateElement { + parent: HTMLElement, +} + +impl HTMLTemplateElement { +} diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs index 081c6a1ba253..9af6dadf58e6 100644 --- a/src/components/script/html/hubbub_html_parser.rs +++ b/src/components/script/html/hubbub_html_parser.rs @@ -234,6 +234,7 @@ fn build_element_from_tag(cx: *JSContext, tag: &str) -> AbstractNode handle_element!(cx, tag, "col", HTMLTableColElementTypeId, HTMLTableColElement, []); handle_element!(cx, tag, "colgroup",HTMLTableColElementTypeId, HTMLTableColElement, []); handle_element!(cx, tag, "tbody", HTMLTableSectionElementTypeId, HTMLTableSectionElement, []); + handle_element!(cx, tag, "template",HTMLTemplateElementTypeId, HTMLTemplateElement, []); handle_element!(cx, tag, "textarea",HTMLTextAreaElementTypeId, HTMLTextAreaElement, []); handle_element!(cx, tag, "time", HTMLTimeElementTypeId, HTMLTimeElement, []); handle_element!(cx, tag, "title", HTMLTitleElementTypeId, HTMLTitleElement, []); diff --git a/src/components/script/script.rc b/src/components/script/script.rc index 21a70515c863..51991e25943d 100644 --- a/src/components/script/script.rc +++ b/src/components/script/script.rc @@ -110,6 +110,7 @@ pub mod dom { pub mod htmltablecolelement; pub mod htmltablerowelement; pub mod htmltablesectionelement; + pub mod htmltemplateelement; pub mod htmltextareaelement; pub mod htmltimeelement; pub mod htmltitleelement;