diff options
author | Josh Matthews <josh@joshmatthews.net> | 2013-08-26 12:52:37 -0400 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2013-08-26 12:52:37 -0400 |
commit | f68639755d6c0ddc0e1093c2bdec02501aaedf6f (patch) | |
tree | aa340a63e9bf958ba456e21e2befd26f9fe50544 /src | |
parent | b36ae3b0dfe83d55c2776ae7fd1142cdf3bad16c (diff) | |
download | servo-f68639755d6c0ddc0e1093c2bdec02501aaedf6f.tar.gz servo-f68639755d6c0ddc0e1093c2bdec02501aaedf6f.zip |
Generate bindings for HTMLDataListElement.
Diffstat (limited to 'src')
-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/HTMLDataListElement.webidl | 16 | ||||
-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/htmldatalistelement.rs | 29 | ||||
-rw-r--r-- | src/components/script/html/hubbub_html_parser.rs | 8 | ||||
-rw-r--r-- | src/components/script/script.rc | 2 |
8 files changed, 63 insertions, 6 deletions
diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf index 360fa647e94..189556d8ac3 100644 --- a/src/components/script/dom/bindings/codegen/Bindings.conf +++ b/src/components/script/dom/bindings/codegen/Bindings.conf @@ -558,6 +558,7 @@ addHTMLElement('HTMLBRElement') addHTMLElement('HTMLCanvasElement') addHTMLElement('HTMLDataElement') addHTMLElement('HTMLDivElement') +addHTMLElement('HTMLDataListElement') addHTMLElement('HTMLDListElement') addHTMLElement('HTMLElement') addHTMLElement('HTMLFormElement') diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index f036c872b3d..d1044ec10a1 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -4626,6 +4626,7 @@ class CGBindingRoot(CGThing): 'dom::htmlbuttonelement::HTMLButtonElement', #XXXjdm 'dom::htmlcanvaselement::HTMLCanvasElement', 'dom::htmldataelement::HTMLDataElement', #XXXjune0cho + 'dom::htmldatalistelement::HTMLDataListElement', 'dom::htmldlistelement::HTMLDListElement', 'dom::htmlelement::HTMLElement', #XXXjdm 'dom::htmldocument::HTMLDocument', #XXXjdm diff --git a/src/components/script/dom/bindings/codegen/HTMLDataListElement.webidl b/src/components/script/dom/bindings/codegen/HTMLDataListElement.webidl new file mode 100644 index 00000000000..83b20cd2bc3 --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLDataListElement.webidl @@ -0,0 +1,16 @@ +/* -*- 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/ + * + * © 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. + */ + +interface HTMLDataListElement : HTMLElement { + readonly attribute HTMLCollection options; +}; diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs index 6400230df6b..c70a9ea8fbe 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, HTMLButtonElementTypeId, - HTMLCanvasElementTypeId, HTMLDataElementTypeId, + HTMLCanvasElementTypeId, HTMLDataElementTypeId, HTMLDataListElementTypeId, HTMLDivElementTypeId, HTMLHeadElementTypeId, HTMLHRElementTypeId, HTMLHtmlElementTypeId, HTMLIframeElementTypeId, HTMLImageElementTypeId, HTMLInputElementTypeId, HTMLLIElementTypeId, HTMLLinkElementTypeId, @@ -35,6 +35,7 @@ use dom::htmlhrelement::HTMLHRElement; use dom::htmlbrelement::HTMLBRElement; use dom::htmlcanvaselement::HTMLCanvasElement; use dom::htmldataelement::HTMLDataElement; +use dom::htmldatalistelement::HTMLDataListElement; use dom::htmldlistelement::HTMLDListElement; use dom::htmliframeelement::HTMLIFrameElement; use dom::htmlimageelement::HTMLImageElement; @@ -132,6 +133,7 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> *JSObject ElementNodeTypeId(HTMLButtonElementTypeId) => generate_element!(HTMLButtonElement), ElementNodeTypeId(HTMLCanvasElementTypeId) => generate_element!(HTMLCanvasElement), ElementNodeTypeId(HTMLDataElementTypeId) => generate_element!(HTMLDataElement), + ElementNodeTypeId(HTMLDataListElementTypeId) => generate_element!(HTMLDataListElement), 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 fd6e49d1006..70899477043 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -7,8 +7,8 @@ use dom::bindings::codegen::{HTMLAnchorElementBinding, HTMLAppletElementBinding, HTMLAreaElementBinding, HTMLBaseElementBinding, HTMLBodyElementBinding, HTMLBRElementBinding, - HTMLButtonElementBinding, - HTMLCanvasElementBinding, HTMLDataElementBinding, + HTMLButtonElementBinding, HTMLCanvasElementBinding, + HTMLDataElementBinding, HTMLDataListElementBinding, HTMLDListElementBinding, HTMLDivElementBinding, HTMLHeadElementBinding, HTMLHRElementBinding, HTMLHtmlElementBinding, HTMLIFrameElementBinding, @@ -37,6 +37,7 @@ use dom::htmlbuttonelement::HTMLButtonElement; use dom::htmlcanvaselement::HTMLCanvasElement; use dom::htmlcollection::HTMLCollection; use dom::htmldataelement::HTMLDataElement; +use dom::htmldatalistelement::HTMLDataListElement; use dom::htmldlistelement::HTMLDListElement; use dom::htmlelement::HTMLElement; use dom::htmlhrelement::HTMLHRElement; @@ -109,6 +110,7 @@ pub enum ElementTypeId { HTMLButtonElementTypeId, HTMLCanvasElementTypeId, HTMLDataElementTypeId, + HTMLDataListElementTypeId, HTMLDListElementTypeId, HTMLDivElementTypeId, HTMLFontElementTypeId, @@ -231,6 +233,8 @@ generate_cacheable_wrapper!(HTMLButtonElement, HTMLButtonElementBinding::Wrap) generate_binding_object!(HTMLButtonElement) generate_cacheable_wrapper!(HTMLCanvasElement, HTMLCanvasElementBinding::Wrap) generate_binding_object!(HTMLCanvasElement) +generate_cacheable_wrapper!(HTMLDataListElement, HTMLDataListElementBinding::Wrap) +generate_binding_object!(HTMLDataListElement) generate_cacheable_wrapper!(HTMLDListElement, HTMLDListElementBinding::Wrap) generate_binding_object!(HTMLDListElement) generate_cacheable_wrapper!(HTMLBRElement, HTMLBRElementBinding::Wrap) diff --git a/src/components/script/dom/htmldatalistelement.rs b/src/components/script/dom/htmldatalistelement.rs new file mode 100644 index 00000000000..3869716b6a4 --- /dev/null +++ b/src/components/script/dom/htmldatalistelement.rs @@ -0,0 +1,29 @@ +/* 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::CacheableWrapper; +use dom::htmlcollection::HTMLCollection; +use dom::htmlelement::HTMLElement; + +use js::jsapi::{JSObject, JSContext}; + +pub struct HTMLDataListElement { + parent: HTMLElement +} + +impl HTMLDataListElement { + fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) { + let doc = self.parent.parent.parent.owner_doc.unwrap(); + let win = doc.with_base(|doc| doc.window.unwrap()); + let cx = unsafe {(*win.page).js_info.get_ref().js_compartment.cx.ptr}; + let cache = win.get_wrappercache(); + let scope = cache.get_wrapper(); + (scope, cx) + } + + pub fn Options(&self) -> @mut HTMLCollection { + let (scope, cx) = self.get_scope_and_cx(); + HTMLCollection::new(~[], cx, scope) + } +}
\ No newline at end of file diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs index 69ae559ef57..4fd44fbd54b 100644 --- a/src/components/script/html/hubbub_html_parser.rs +++ b/src/components/script/html/hubbub_html_parser.rs @@ -6,9 +6,9 @@ use dom::element::{HTMLElementTypeId, HTMLAnchorElementTypeId, HTMLAppletElementTypeId, HTMLAreaElementTypeId, HTMLBaseElementTypeId, HTMLBodyElementTypeId, HTMLBRElementTypeId, HTMLButtonElementTypeId, HTMLCanvasElementTypeId, - HTMLDataElementTypeId, HTMLDivElementTypeId, HTMLDListElementTypeId, - HTMLFontElementTypeId, HTMLFormElementTypeId, HTMLHRElementTypeId, - HTMLHeadElementTypeId, HTMLHtmlElementTypeId, + HTMLDataElementTypeId, HTMLDataListElementTypeId, HTMLDivElementTypeId, + HTMLDListElementTypeId, HTMLFontElementTypeId, HTMLFormElementTypeId, + HTMLHRElementTypeId, HTMLHeadElementTypeId, HTMLHtmlElementTypeId, HTMLImageElementTypeId, HTMLIframeElementTypeId, HTMLInputElementTypeId, HTMLLinkElementTypeId, HTMLLIElementTypeId, HTMLMetaElementTypeId, HTMLOListElementTypeId, HTMLOptionElementTypeId, @@ -37,6 +37,7 @@ use dom::htmlbodyelement::HTMLBodyElement; use dom::htmlbuttonelement::HTMLButtonElement; use dom::htmlcanvaselement::HTMLCanvasElement; use dom::htmldataelement::HTMLDataElement; +use dom::htmldatalistelement::HTMLDataListElement; use dom::htmldlistelement::HTMLDListElement; use dom::htmlhrelement::HTMLHRElement; use dom::htmliframeelement::{IFrameSize, HTMLIFrameElement}; @@ -250,6 +251,7 @@ fn build_element_from_tag(cx: *JSContext, tag: &str) -> AbstractNode<ScriptView> handle_element!(cx, tag, "button", HTMLButtonElementTypeId, HTMLButtonElement, []); handle_element!(cx, tag, "canvas", HTMLCanvasElementTypeId, HTMLCanvasElement, []); handle_element!(cx, tag, "data", HTMLDataElementTypeId, HTMLDataElement, []); + handle_element!(cx, tag, "datalist",HTMLDataListElementTypeId, HTMLDataListElement, []); 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 efee8a7e67a..f3e0d994c53 100644 --- a/src/components/script/script.rc +++ b/src/components/script/script.rc @@ -52,6 +52,7 @@ pub mod dom { pub mod HTMLCanvasElementBinding; pub mod HTMLCollectionBinding; pub mod HTMLDataElementBinding; + pub mod HTMLDataListElementBinding; pub mod HTMLDListElementBinding; pub mod HTMLDivElementBinding; pub mod HTMLDocumentBinding; @@ -114,6 +115,7 @@ pub mod dom { pub mod htmlcanvaselement; pub mod htmlcollection; pub mod htmldataelement; + pub mod htmldatalistelement; pub mod htmldlistelement; pub mod htmldocument; pub mod htmlelement; |