aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/components/script/dom/bindings/codegen/Bindings.conf1
-rw-r--r--src/components/script/dom/bindings/codegen/HTMLLabelElement.webidl24
-rw-r--r--src/components/script/dom/bindings/element.rs2
-rw-r--r--src/components/script/dom/bindings/node.rs1
-rw-r--r--src/components/script/dom/element.rs1
-rw-r--r--src/components/script/dom/htmllabelelement.rs19
-rw-r--r--src/components/script/html/hubbub_html_parser.rs1
-rw-r--r--src/components/script/script.rc1
8 files changed, 50 insertions, 0 deletions
diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf
index d29f8e3222f..15c1fad3297 100644
--- a/src/components/script/dom/bindings/codegen/Bindings.conf
+++ b/src/components/script/dom/bindings/codegen/Bindings.conf
@@ -580,6 +580,7 @@ addHTMLElement('HTMLHRElement')
addHTMLElement('HTMLIFrameElement')
addHTMLElement('HTMLImageElement')
addHTMLElement('HTMLInputElement')
+addHTMLElement('HTMLLabelElement')
addHTMLElement('HTMLLegendElement')
addHTMLElement('HTMLLIElement')
addHTMLElement('HTMLLinkElement')
diff --git a/src/components/script/dom/bindings/codegen/HTMLLabelElement.webidl b/src/components/script/dom/bindings/codegen/HTMLLabelElement.webidl
new file mode 100644
index 00000000000..0b0ee0b9d19
--- /dev/null
+++ b/src/components/script/dom/bindings/codegen/HTMLLabelElement.webidl
@@ -0,0 +1,24 @@
+/* -*- 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.
+ */
+
+// import from http://mxr.mozilla.org/mozilla-central/source/dom/webidl/
+
+interface HTMLLabelElement : HTMLElement {
+/* FIXME:
+ readonly attribute HTMLFormElement? form;
+*/
+ attribute DOMString htmlFor;
+/*
+ readonly attribute HTMLElement? control;
+*/
+};
diff --git a/src/components/script/dom/bindings/element.rs b/src/components/script/dom/bindings/element.rs
index 95eae0bc7e3..805dea3d2fe 100644
--- a/src/components/script/dom/bindings/element.rs
+++ b/src/components/script/dom/bindings/element.rs
@@ -92,6 +92,8 @@ generate_cacheable_wrapper!(HTMLImageElement, HTMLImageElementBinding::Wrap)
generate_binding_object!(HTMLImageElement)
generate_cacheable_wrapper!(HTMLInputElement, HTMLInputElementBinding::Wrap)
generate_binding_object!(HTMLInputElement)
+generate_cacheable_wrapper!(HTMLLabelElement, HTMLLabelElementBinding::Wrap)
+generate_binding_object!(HTMLLabelElement)
generate_cacheable_wrapper!(HTMLLegendElement, HTMLLegendElementBinding::Wrap)
generate_binding_object!(HTMLLegendElement)
generate_cacheable_wrapper!(HTMLLIElement, HTMLLIElementBinding::Wrap)
diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs
index 39260bb3ae6..9e210bfee35 100644
--- a/src/components/script/dom/bindings/node.rs
+++ b/src/components/script/dom/bindings/node.rs
@@ -49,6 +49,7 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> *JSObject
ElementNodeTypeId(HTMLIframeElementTypeId) => generate_element!(HTMLIFrameElement),
ElementNodeTypeId(HTMLImageElementTypeId) => generate_element!(HTMLImageElement),
ElementNodeTypeId(HTMLInputElementTypeId) => generate_element!(HTMLInputElement),
+ ElementNodeTypeId(HTMLLabelElementTypeId) => generate_element!(HTMLLabelElement),
ElementNodeTypeId(HTMLLegendElementTypeId) => generate_element!(HTMLLegendElement),
ElementNodeTypeId(HTMLLIElementTypeId) => generate_element!(HTMLLIElement),
ElementNodeTypeId(HTMLLinkElementTypeId) => generate_element!(HTMLLinkElement),
diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs
index 038494c8d36..aca3ae0df2b 100644
--- a/src/components/script/dom/element.rs
+++ b/src/components/script/dom/element.rs
@@ -73,6 +73,7 @@ pub enum ElementTypeId {
HTMLIframeElementTypeId,
HTMLImageElementTypeId,
HTMLInputElementTypeId,
+ HTMLLabelElementTypeId,
HTMLLegendElementTypeId,
HTMLLinkElementTypeId,
HTMLLIElementTypeId,
diff --git a/src/components/script/dom/htmllabelelement.rs b/src/components/script/dom/htmllabelelement.rs
new file mode 100644
index 00000000000..1df3924cff2
--- /dev/null
+++ b/src/components/script/dom/htmllabelelement.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};
+use dom::htmlelement::HTMLElement;
+
+pub struct HTMLLabelElement {
+ parent: HTMLElement,
+}
+
+impl HTMLLabelElement {
+ pub fn HtmlFor(&self) -> DOMString {
+ null_string
+ }
+
+ pub fn SetHtmlFor(&mut self, _html_for: &DOMString) {
+ }
+}
diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs
index e01562f6f32..4587a46e4f5 100644
--- a/src/components/script/html/hubbub_html_parser.rs
+++ b/src/components/script/html/hubbub_html_parser.rs
@@ -208,6 +208,7 @@ fn build_element_from_tag(cx: *JSContext, tag: &str) -> AbstractNode<ScriptView>
handle_element!(cx, tag, "head", HTMLHeadElementTypeId, HTMLHeadElement, []);
handle_element!(cx, tag, "html", HTMLHtmlElementTypeId, HTMLHtmlElement, []);
handle_element!(cx, tag, "input", HTMLInputElementTypeId, HTMLInputElement, []);
+ handle_element!(cx, tag, "label", HTMLLabelElementTypeId, HTMLLabelElement, []);
handle_element!(cx, tag, "legend", HTMLLegendElementTypeId, HTMLLegendElement, []);
handle_element!(cx, tag, "link", HTMLLinkElementTypeId, HTMLLinkElement, []);
handle_element!(cx, tag, "li", HTMLLIElementTypeId, HTMLLIElement, []);
diff --git a/src/components/script/script.rc b/src/components/script/script.rc
index 8f47fe00362..b30cb5573d6 100644
--- a/src/components/script/script.rc
+++ b/src/components/script/script.rc
@@ -84,6 +84,7 @@ pub mod dom {
pub mod htmliframeelement;
pub mod htmlimageelement;
pub mod htmlinputelement;
+ pub mod htmllabelelement;
pub mod htmllegendelement;
pub mod htmllielement;
pub mod htmllinkelement;