aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/components/script/dom/bindings/codegen/Bindings.conf3
-rw-r--r--src/components/script/dom/bindings/codegen/HTMLOptionElement.webidl31
-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/htmloptionelement.rs63
-rw-r--r--src/components/script/script.rc1
7 files changed, 99 insertions, 3 deletions
diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf
index 3b40c34476e..bd772f12669 100644
--- a/src/components/script/dom/bindings/codegen/Bindings.conf
+++ b/src/components/script/dom/bindings/codegen/Bindings.conf
@@ -590,6 +590,7 @@ addHTMLElement('HTMLModElement')
addHTMLElement('HTMLObjectElement')
addHTMLElement('HTMLOListElement')
addHTMLElement('HTMLOptGroupElement')
+addHTMLElement('HTMLOptionElement')
addHTMLElement('HTMLParagraphElement')
addHTMLElement('HTMLProgressElement')
addHTMLElement('HTMLQuoteElement')
@@ -615,8 +616,6 @@ def addExternalHTMLElement(element):
addExternalIface(element, nativeType=nativeElement,
headerFile=nativeElement + '.h')
-addExternalHTMLElement('HTMLOptionElement')
-#addExternalHTMLElement('HTMLOptGroupElement')
addExternalHTMLElement('HTMLVideoElement')
addExternalIface('CanvasGradient', headerFile='nsIDOMCanvasRenderingContext2D.h')
addExternalIface('CanvasPattern', headerFile='nsIDOMCanvasRenderingContext2D.h')
diff --git a/src/components/script/dom/bindings/codegen/HTMLOptionElement.webidl b/src/components/script/dom/bindings/codegen/HTMLOptionElement.webidl
new file mode 100644
index 00000000000..c80bedeef04
--- /dev/null
+++ b/src/components/script/dom/bindings/codegen/HTMLOptionElement.webidl
@@ -0,0 +1,31 @@
+/* -*- 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-option-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.
+ */
+
+[NamedConstructor=Option(optional DOMString text, optional DOMString value, optional boolean defaultSelected, optional boolean selected)]
+interface HTMLOptionElement : HTMLElement {
+ [SetterThrows]
+ attribute boolean disabled;
+ readonly attribute HTMLFormElement? form;
+ [SetterThrows]
+ attribute DOMString label;
+ [SetterThrows]
+ attribute boolean defaultSelected;
+ [SetterThrows]
+ attribute boolean selected;
+ [SetterThrows]
+ attribute DOMString value;
+
+ [SetterThrows]
+ attribute DOMString text;
+ readonly attribute long index;
+};
diff --git a/src/components/script/dom/bindings/element.rs b/src/components/script/dom/bindings/element.rs
index 57219659a41..c41940a9ff8 100644
--- a/src/components/script/dom/bindings/element.rs
+++ b/src/components/script/dom/bindings/element.rs
@@ -403,6 +403,8 @@ generate_cacheable_wrapper!(HTMLOListElement, HTMLOListElementBinding::Wrap)
generate_binding_object!(HTMLOListElement)
generate_cacheable_wrapper!(HTMLOptGroupElement, HTMLOptGroupElementBinding::Wrap)
generate_binding_object!(HTMLOptGroupElement)
+generate_cacheable_wrapper!(HTMLOptionElement, HTMLOptionElementBinding::Wrap)
+generate_binding_object!(HTMLOptionElement)
generate_cacheable_wrapper!(HTMLParagraphElement, HTMLParagraphElementBinding::Wrap)
generate_binding_object!(HTMLParagraphElement)
generate_cacheable_wrapper!(HTMLProgressElement, HTMLProgressElementBinding::Wrap)
diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs
index 1b5b5ad5cd2..73d4734837c 100644
--- a/src/components/script/dom/bindings/node.rs
+++ b/src/components/script/dom/bindings/node.rs
@@ -107,6 +107,7 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> *JSObject
ElementNodeTypeId(HTMLObjectElementTypeId) => generate_element!(HTMLObjectElement),
ElementNodeTypeId(HTMLOListElementTypeId) => generate_element!(HTMLOListElement),
ElementNodeTypeId(HTMLOptGroupElementTypeId) => generate_element!(HTMLOptGroupElement),
+ ElementNodeTypeId(HTMLOptionElementTypeId) => generate_element!(HTMLOptionElement),
ElementNodeTypeId(HTMLParagraphElementTypeId) => generate_element!(HTMLParagraphElement),
ElementNodeTypeId(HTMLProgressElementTypeId) => generate_element!(HTMLProgressElement),
ElementNodeTypeId(HTMLQuoteElementTypeId) => generate_element!(HTMLQuoteElement),
diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs
index c91f2c4162a..3bd21a60593 100644
--- a/src/components/script/dom/element.rs
+++ b/src/components/script/dom/element.rs
@@ -110,7 +110,6 @@ pub enum ElementTypeId {
// Regular old elements
//
-pub struct HTMLOptionElement { parent: HTMLElement }
pub struct HTMLSelectElement { parent: HTMLElement }
pub struct HTMLSmallElement { parent: HTMLElement }
pub struct UnknownElement { parent: HTMLElement }
diff --git a/src/components/script/dom/htmloptionelement.rs b/src/components/script/dom/htmloptionelement.rs
new file mode 100644
index 00000000000..c8453f85747
--- /dev/null
+++ b/src/components/script/dom/htmloptionelement.rs
@@ -0,0 +1,63 @@
+/* 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, ErrorResult, null_string};
+use dom::htmlelement::HTMLElement;
+use dom::node::{AbstractNode, ScriptView};
+
+pub struct HTMLOptionElement {
+ parent: HTMLElement
+}
+
+impl HTMLOptionElement {
+ pub fn Disabled(&self) -> bool {
+ false
+ }
+
+ pub fn SetDisabled(&mut self, _disabled: bool, _rv: &mut ErrorResult) {
+ }
+
+ pub fn GetForm(&self) -> Option<AbstractNode<ScriptView>> {
+ None
+ }
+
+ pub fn Label(&self) -> DOMString {
+ null_string
+ }
+
+ pub fn SetLabel(&mut self, _label: &DOMString, _rv: &mut ErrorResult) {
+ }
+
+ pub fn DefaultSelected(&self) -> bool {
+ false
+ }
+
+ pub fn SetDefaultSelected(&mut self, _default_selected: bool, _rv: &mut ErrorResult) {
+ }
+
+ pub fn Selected(&self) -> bool {
+ false
+ }
+
+ pub fn SetSelected(&mut self, _selected: bool, _rv: &mut ErrorResult) {
+ }
+
+ pub fn Value(&self) -> DOMString {
+ null_string
+ }
+
+ pub fn SetValue(&mut self, _value: &DOMString, _rv: &mut ErrorResult) {
+ }
+
+ pub fn Text(&self) -> DOMString {
+ null_string
+ }
+
+ pub fn SetText(&mut self, _text: &DOMString, _rv: &mut ErrorResult) {
+ }
+
+ pub fn Index(&self) -> i32 {
+ 0
+ }
+} \ No newline at end of file
diff --git a/src/components/script/script.rc b/src/components/script/script.rc
index eae0e3c4cd8..9f7f9c7131d 100644
--- a/src/components/script/script.rc
+++ b/src/components/script/script.rc
@@ -92,6 +92,7 @@ pub mod dom {
pub mod htmlobjectelement;
pub mod htmlolistelement;
pub mod htmloptgroupelement;
+ pub mod htmloptionelement;
pub mod htmlparagraphelement;
pub mod htmlprogresselement;
pub mod htmlquoteelement;