diff options
-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/HTMLMapElement.webidl | 21 | ||||
-rw-r--r-- | src/components/script/dom/bindings/node.rs | 8 | ||||
-rw-r--r-- | src/components/script/dom/element.rs | 7 | ||||
-rw-r--r-- | src/components/script/dom/htmlmapelement.rs | 35 | ||||
-rw-r--r-- | src/components/script/html/hubbub_html_parser.rs | 10 | ||||
-rw-r--r-- | src/components/script/script.rc | 2 |
8 files changed, 77 insertions, 8 deletions
diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf index 7074a855198..2ee86c3cca1 100644 --- a/src/components/script/dom/bindings/codegen/Bindings.conf +++ b/src/components/script/dom/bindings/codegen/Bindings.conf @@ -577,6 +577,7 @@ addHTMLElement('HTMLImageElement') addHTMLElement('HTMLInputElement') addHTMLElement('HTMLLIElement') addHTMLElement('HTMLLinkElement') +addHTMLElement('HTMLMapElement') addHTMLElement('HTMLMetaElement') addHTMLElement('HTMLOListElement') addHTMLElement('HTMLParagraphElement') diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index 41a7b9af97e..c9dc5d28aee 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -4643,6 +4643,7 @@ class CGBindingRoot(CGThing): 'dom::htmlinputelement::HTMLInputElement', 'dom::htmllielement::HTMLLIElement', 'dom::htmllinkelement::HTMLLinkElement', #XXXrecrack + 'dom::htmlmapelement::HTMLMapElement', 'dom::htmlmetaelement::HTMLMetaElement', 'dom::htmlolistelement::HTMLOListElement', 'dom::htmlprogresselement::HTMLProgressElement', diff --git a/src/components/script/dom/bindings/codegen/HTMLMapElement.webidl b/src/components/script/dom/bindings/codegen/HTMLMapElement.webidl new file mode 100644 index 00000000000..88fe4e54c95 --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLMapElement.webidl @@ -0,0 +1,21 @@ +/* -*- 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-map-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-map-element +interface HTMLMapElement : HTMLElement { + [SetterThrows, Pure] + attribute DOMString name; + [Constant] + readonly attribute HTMLCollection areas; + // Not supported yet. + //readonly attribute HTMLCollection images; +}; diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs index 922864fa52d..0d7b99776d4 100644 --- a/src/components/script/dom/bindings/node.rs +++ b/src/components/script/dom/bindings/node.rs @@ -16,9 +16,9 @@ use dom::element::{HTMLElementTypeId, HTMLFrameSetElementTypeId, HTMLHeadElementTypeId, HTMLHeadingElementTypeId, HTMLHRElementTypeId, HTMLHtmlElementTypeId, HTMLIframeElementTypeId, HTMLImageElementTypeId, HTMLInputElementTypeId, HTMLLIElementTypeId, - HTMLLinkElementTypeId, HTMLMetaElementTypeId, HTMLOListElementTypeId, - HTMLParagraphElementTypeId, HTMLProgressElementTypeId, - HTMLQuoteElementTypeId, HTMLScriptElementTypeId, + HTMLLinkElementTypeId, HTMLMapElementTypeId, HTMLMetaElementTypeId, + HTMLOListElementTypeId, HTMLParagraphElementTypeId, + HTMLProgressElementTypeId, HTMLQuoteElementTypeId, HTMLScriptElementTypeId, HTMLSpanElementTypeId, HTMLSourceElementTypeId, HTMLStyleElementTypeId, HTMLTextAreaElementTypeId, HTMLTableElementTypeId, HTMLTableCaptionElementTypeId, HTMLTableCellElementTypeId, @@ -51,6 +51,7 @@ use dom::htmlimageelement::HTMLImageElement; use dom::htmlinputelement::HTMLInputElement; use dom::htmllielement::HTMLLIElement; use dom::htmllinkelement::HTMLLinkElement; +use dom::htmlmapelement::HTMLMapElement; use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlolistelement::HTMLOListElement; use dom::htmlprogresselement::HTMLProgressElement; @@ -160,6 +161,7 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> *JSObject ElementNodeTypeId(HTMLInputElementTypeId) => generate_element!(HTMLInputElement), ElementNodeTypeId(HTMLLIElementTypeId) => generate_element!(HTMLLIElement), ElementNodeTypeId(HTMLLinkElementTypeId) => generate_element!(HTMLLinkElement), + ElementNodeTypeId(HTMLMapElementTypeId) => generate_element!(HTMLMapElement), ElementNodeTypeId(HTMLMetaElementTypeId) => generate_element!(HTMLMetaElement), ElementNodeTypeId(HTMLOListElementTypeId) => generate_element!(HTMLOListElement), ElementNodeTypeId(HTMLParagraphElementTypeId) => generate_element!(HTMLParagraphElement), diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index 56095467bf7..8a296c5d3d0 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -17,7 +17,8 @@ use dom::bindings::codegen::{HTMLAnchorElementBinding, HTMLAppletElementBinding, HTMLHRElementBinding, HTMLHtmlElementBinding, HTMLIFrameElementBinding, HTMLImageElementBinding, HTMLInputElementBinding, HTMLLIElementBinding, - HTMLLinkElementBinding, HTMLMetaElementBinding, + HTMLLinkElementBinding, HTMLMapElementBinding, + HTMLMetaElementBinding, HTMLOListElementBinding, HTMLParagraphElementBinding, HTMLProgressElementBinding, HTMLQuoteElementBinding, HTMLScriptElementBinding, HTMLSourceElementBinding, HTMLSpanElementBinding, @@ -56,6 +57,7 @@ use dom::htmlimageelement::HTMLImageElement; use dom::htmlinputelement::HTMLInputElement; use dom::htmllielement::HTMLLIElement; use dom::htmllinkelement::HTMLLinkElement; +use dom::htmlmapelement::HTMLMapElement; use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlolistelement::HTMLOListElement; use dom::htmlprogresselement::HTMLProgressElement; @@ -139,6 +141,7 @@ pub enum ElementTypeId { HTMLInputElementTypeId, HTMLLinkElementTypeId, HTMLLIElementTypeId, + HTMLMapElementTypeId, HTMLMetaElementTypeId, HTMLOListElementTypeId, HTMLOptionElementTypeId, @@ -285,6 +288,8 @@ generate_cacheable_wrapper!(HTMLLIElement, HTMLLIElementBinding::Wrap) generate_binding_object!(HTMLLIElement) generate_cacheable_wrapper!(HTMLLinkElement, HTMLLinkElementBinding::Wrap) generate_binding_object!(HTMLLinkElement) +generate_cacheable_wrapper!(HTMLMapElement, HTMLMapElementBinding::Wrap) +generate_binding_object!(HTMLMapElement) generate_cacheable_wrapper!(HTMLMetaElement, HTMLMetaElementBinding::Wrap) generate_binding_object!(HTMLMetaElement) generate_cacheable_wrapper!(HTMLOListElement, HTMLOListElementBinding::Wrap) diff --git a/src/components/script/dom/htmlmapelement.rs b/src/components/script/dom/htmlmapelement.rs new file mode 100644 index 00000000000..815b6d7a692 --- /dev/null +++ b/src/components/script/dom/htmlmapelement.rs @@ -0,0 +1,35 @@ +/* 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, CacheableWrapper}; +use dom::htmlcollection::HTMLCollection; +use dom::htmlelement::HTMLElement; +use js::jsapi::{JSObject, JSContext}; + +pub struct HTMLMapElement { + parent: HTMLElement +} + +impl HTMLMapElement { + pub fn Name(&self) -> DOMString { + null_string + } + + pub fn SetName(&mut self, _name: &DOMString, _rv: &mut ErrorResult) { + } + + 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 Areas(&self) -> @mut HTMLCollection { + let (scope, cx) = self.get_scope_and_cx(); + HTMLCollection::new(~[], cx, scope) + } +} diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs index 9029bf0c5f1..8c912d28136 100644 --- a/src/components/script/html/hubbub_html_parser.rs +++ b/src/components/script/html/hubbub_html_parser.rs @@ -10,10 +10,10 @@ use dom::element::{HTMLElementTypeId, HTMLDirectoryElementTypeId, HTMLDListElementTypeId, HTMLEmbedElementTypeId, HTMLFieldSetElementTypeId, HTMLFontElementTypeId, HTMLFormElementTypeId, HTMLFrameElementTypeId, HTMLFrameSetElementTypeId, HTMLHRElementTypeId, - HTMLHeadElementTypeId, - HTMLHtmlElementTypeId, HTMLImageElementTypeId, HTMLIframeElementTypeId, - HTMLInputElementTypeId, HTMLLinkElementTypeId, HTMLLIElementTypeId, - HTMLMetaElementTypeId, HTMLOListElementTypeId, HTMLOptionElementTypeId, + HTMLHeadElementTypeId, HTMLHtmlElementTypeId, HTMLImageElementTypeId, + HTMLIframeElementTypeId, HTMLInputElementTypeId, HTMLLinkElementTypeId, + HTMLLIElementTypeId, HTMLMapElementTypeId, HTMLMetaElementTypeId, + HTMLOListElementTypeId, HTMLOptionElementTypeId, HTMLParagraphElementTypeId, HTMLProgressElementTypeId, HTMLQuoteElementTypeId, HTMLScriptElementTypeId, HTMLSelectElementTypeId, HTMLSmallElementTypeId, HTMLSourceElementTypeId, @@ -54,6 +54,7 @@ use dom::htmlimageelement::HTMLImageElement; use dom::htmlinputelement::HTMLInputElement; use dom::htmllielement::HTMLLIElement; use dom::htmllinkelement::HTMLLinkElement; +use dom::htmlmapelement::HTMLMapElement; use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlolistelement::HTMLOListElement; use dom::htmlprogresselement::HTMLProgressElement; @@ -276,6 +277,7 @@ fn build_element_from_tag(cx: *JSContext, tag: &str) -> AbstractNode<ScriptView> handle_element!(cx, tag, "input", HTMLInputElementTypeId, HTMLInputElement, []); handle_element!(cx, tag, "link", HTMLLinkElementTypeId, HTMLLinkElement, []); handle_element!(cx, tag, "li", HTMLLIElementTypeId, HTMLLIElement, []); + handle_element!(cx, tag, "map", HTMLMapElementTypeId, HTMLMapElement, []); handle_element!(cx, tag, "meta", HTMLMetaElementTypeId, HTMLMetaElement, []); handle_element!(cx, tag, "ol", HTMLOListElementTypeId, HTMLOListElement, []); handle_element!(cx, tag, "option", HTMLOptionElementTypeId, HTMLOptionElement, []); diff --git a/src/components/script/script.rc b/src/components/script/script.rc index e1b186fe6d8..2cbf9333de9 100644 --- a/src/components/script/script.rc +++ b/src/components/script/script.rc @@ -72,6 +72,7 @@ pub mod dom { pub mod HTMLInputElementBinding; pub mod HTMLLIElementBinding; pub mod HTMLLinkElementBinding; + pub mod HTMLMapElementBinding; pub mod HTMLMetaElementBinding; pub mod HTMLOListElementBinding; pub mod HTMLParagraphElementBinding; @@ -139,6 +140,7 @@ pub mod dom { pub mod htmlinputelement; pub mod htmllielement; pub mod htmllinkelement; + pub mod htmlmapelement; pub mod htmlmetaelement; pub mod htmlolistelement; pub mod htmlprogresselement; |