aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlselectelement.rs
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-09-28 13:23:18 -0600
committerbors-servo <metajack+bors@gmail.com>2015-09-28 13:23:18 -0600
commita72d7a4f5222d029a34b2b4a7da21ebe095fde53 (patch)
tree0e8477f4444193b2e46d330865585b7e8779577f /components/script/dom/htmlselectelement.rs
parent076f44a02d033bb5d0bb2e18065acdf18d98cce5 (diff)
parente6ea7b0feb302786c6bbd88c62e89f95fdb5782a (diff)
downloadservo-a72d7a4f5222d029a34b2b4a7da21ebe095fde53.tar.gz
servo-a72d7a4f5222d029a34b2b4a7da21ebe095fde53.zip
Auto merge of #7760 - aopicier:form_getter, r=Manishearth
Add form getters for additional elements; update test expectations This adds form getters for fieldset, label, object, output, select and textarea elements. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7760) <!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/htmlselectelement.rs')
-rw-r--r--components/script/dom/htmlselectelement.rs16
1 files changed, 14 insertions, 2 deletions
diff --git a/components/script/dom/htmlselectelement.rs b/components/script/dom/htmlselectelement.rs
index 6245b25daa3..48aea7422ee 100644
--- a/components/script/dom/htmlselectelement.rs
+++ b/components/script/dom/htmlselectelement.rs
@@ -5,15 +5,16 @@
use dom::attr::{Attr, AttrValue};
use dom::bindings::codegen::Bindings::HTMLSelectElementBinding;
use dom::bindings::codegen::Bindings::HTMLSelectElementBinding::HTMLSelectElementMethods;
-use dom::bindings::codegen::InheritTypes::{HTMLElementCast, NodeCast};
+use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, NodeCast};
use dom::bindings::codegen::InheritTypes::{HTMLFieldSetElementDerived, HTMLSelectElementDerived};
use dom::bindings::codegen::UnionTypes::HTMLElementOrLong;
use dom::bindings::codegen::UnionTypes::HTMLOptionElementOrHTMLOptGroupElement;
use dom::bindings::js::Root;
use dom::document::Document;
-use dom::element::{AttributeMutation, ElementTypeId};
+use dom::element::{AttributeMutation, Element, ElementTypeId};
use dom::eventtarget::{EventTarget, EventTargetTypeId};
use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
+use dom::htmlformelement::{FormControl, HTMLFormElement};
use dom::node::{Node, NodeTypeId, window_from_node};
use dom::validitystate::ValidityState;
use dom::virtualmethods::VirtualMethods;
@@ -73,6 +74,11 @@ impl HTMLSelectElementMethods for HTMLSelectElement {
// https://www.whatwg.org/html/#dom-fe-disabled
make_bool_setter!(SetDisabled, "disabled");
+ // https://html.spec.whatwg.org/multipage#dom-fae-form
+ fn GetForm(&self) -> Option<Root<HTMLFormElement>> {
+ self.form_owner()
+ }
+
// https://html.spec.whatwg.org/multipage/#dom-select-multiple
make_bool_getter!(Multiple);
@@ -154,3 +160,9 @@ impl VirtualMethods for HTMLSelectElement {
}
}
}
+
+impl<'a> FormControl<'a> for &'a HTMLSelectElement {
+ fn to_element(self) -> &'a Element {
+ ElementCast::from_ref(self)
+ }
+}