aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlfieldsetelement.rs
diff options
context:
space:
mode:
authorMukilan Thiyagarajan <mukilanthiagarajan@gmail.com>2017-01-28 17:20:01 +0300
committerAnthony Ramine <n.oxyde@gmail.com>2017-03-15 16:39:55 +0100
commit38a61712e41ddeebb52cace6a9787735947964a4 (patch)
treef9949282e968e9a8fd57a8c8aa1fd63a59d0a89c /components/script/dom/htmlfieldsetelement.rs
parentf90e19f7055387a14cabdf11f77335c7763e3fb7 (diff)
downloadservo-38a61712e41ddeebb52cace6a9787735947964a4.tar.gz
servo-38a61712e41ddeebb52cace6a9787735947964a4.zip
Implement the form owner concept
Diffstat (limited to 'components/script/dom/htmlfieldsetelement.rs')
-rw-r--r--components/script/dom/htmlfieldsetelement.rs26
1 files changed, 22 insertions, 4 deletions
diff --git a/components/script/dom/htmlfieldsetelement.rs b/components/script/dom/htmlfieldsetelement.rs
index 19dbc8d4f1b..9fdc65a513c 100644
--- a/components/script/dom/htmlfieldsetelement.rs
+++ b/components/script/dom/htmlfieldsetelement.rs
@@ -6,7 +6,7 @@ use dom::attr::Attr;
use dom::bindings::codegen::Bindings::HTMLFieldSetElementBinding;
use dom::bindings::codegen::Bindings::HTMLFieldSetElementBinding::HTMLFieldSetElementMethods;
use dom::bindings::inheritance::{Castable, ElementTypeId, HTMLElementTypeId, NodeTypeId};
-use dom::bindings::js::Root;
+use dom::bindings::js::{MutNullableJS, Root};
use dom::bindings::str::DOMString;
use dom::document::Document;
use dom::element::{AttributeMutation, Element};
@@ -19,11 +19,13 @@ use dom::validitystate::ValidityState;
use dom::virtualmethods::VirtualMethods;
use dom_struct::dom_struct;
use html5ever_atoms::LocalName;
+use std::default::Default;
use style::element_state::*;
#[dom_struct]
pub struct HTMLFieldSetElement {
- htmlelement: HTMLElement
+ htmlelement: HTMLElement,
+ form_owner: MutNullableJS<HTMLFormElement>,
}
impl HTMLFieldSetElement {
@@ -33,7 +35,8 @@ impl HTMLFieldSetElement {
HTMLFieldSetElement {
htmlelement:
HTMLElement::new_inherited_with_state(IN_ENABLED_STATE,
- local_name, prefix, document)
+ local_name, prefix, document),
+ form_owner: Default::default(),
}
}
@@ -148,9 +151,24 @@ impl VirtualMethods for HTMLFieldSetElement {
}
}
},
+ &local_name!("form") => {
+ self.form_attribute_mutated(mutation);
+ },
_ => {},
}
}
}
-impl FormControl for HTMLFieldSetElement {}
+impl FormControl for HTMLFieldSetElement {
+ fn form_owner(&self) -> Option<Root<HTMLFormElement>> {
+ self.form_owner.get()
+ }
+
+ fn set_form_owner(&self, form: Option<&HTMLFormElement>) {
+ self.form_owner.set(form);
+ }
+
+ fn to_element<'a>(&'a self) -> &'a Element {
+ self.upcast::<Element>()
+ }
+}