diff options
Diffstat (limited to 'components/script/dom/htmllegendelement.rs')
-rw-r--r-- | components/script/dom/htmllegendelement.rs | 83 |
1 files changed, 43 insertions, 40 deletions
diff --git a/components/script/dom/htmllegendelement.rs b/components/script/dom/htmllegendelement.rs index 86b34c27dd0..bfb0f0701c8 100644 --- a/components/script/dom/htmllegendelement.rs +++ b/components/script/dom/htmllegendelement.rs @@ -1,34 +1,33 @@ // 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/. +// file, You can obtain one at https://mozilla.org/MPL/2.0/. -use dom::bindings::codegen::Bindings::HTMLLegendElementBinding; -use dom::bindings::codegen::Bindings::HTMLLegendElementBinding::HTMLLegendElementMethods; -use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; -use dom::bindings::inheritance::Castable; -use dom::bindings::js::{MutNullableJS, Root}; -use dom::bindings::str::DOMString; -use dom::document::Document; -use dom::element::Element; -use dom::htmlelement::HTMLElement; -use dom::htmlfieldsetelement::HTMLFieldSetElement; -use dom::htmlformelement::{HTMLFormElement, FormControl}; -use dom::node::{Node, UnbindContext}; -use dom::virtualmethods::VirtualMethods; +use crate::dom::bindings::codegen::Bindings::HTMLLegendElementBinding::HTMLLegendElementMethods; +use crate::dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; +use crate::dom::bindings::inheritance::Castable; +use crate::dom::bindings::root::{DomRoot, MutNullableDom}; +use crate::dom::document::Document; +use crate::dom::element::Element; +use crate::dom::htmlelement::HTMLElement; +use crate::dom::htmlfieldsetelement::HTMLFieldSetElement; +use crate::dom::htmlformelement::{FormControl, HTMLFormElement}; +use crate::dom::node::{BindContext, Node, UnbindContext}; +use crate::dom::virtualmethods::VirtualMethods; use dom_struct::dom_struct; -use html5ever_atoms::LocalName; +use html5ever::{LocalName, Prefix}; #[dom_struct] pub struct HTMLLegendElement { htmlelement: HTMLElement, - form_owner: MutNullableJS<HTMLFormElement>, + form_owner: MutNullableDom<HTMLFormElement>, } impl HTMLLegendElement { - fn new_inherited(local_name: LocalName, - prefix: Option<DOMString>, - document: &Document) - -> HTMLLegendElement { + fn new_inherited( + local_name: LocalName, + prefix: Option<Prefix>, + document: &Document, + ) -> HTMLLegendElement { HTMLLegendElement { htmlelement: HTMLElement::new_inherited(local_name, prefix, document), form_owner: Default::default(), @@ -36,27 +35,32 @@ impl HTMLLegendElement { } #[allow(unrooted_must_root)] - pub fn new(local_name: LocalName, - prefix: Option<DOMString>, - document: &Document) - -> Root<HTMLLegendElement> { - Node::reflect_node(box HTMLLegendElement::new_inherited(local_name, prefix, document), - document, - HTMLLegendElementBinding::Wrap) + pub fn new( + local_name: LocalName, + prefix: Option<Prefix>, + document: &Document, + ) -> DomRoot<HTMLLegendElement> { + Node::reflect_node( + Box::new(HTMLLegendElement::new_inherited( + local_name, prefix, document, + )), + document, + ) } } impl VirtualMethods for HTMLLegendElement { - fn super_type(&self) -> Option<&VirtualMethods> { - Some(self.upcast::<HTMLElement>() as &VirtualMethods) + fn super_type(&self) -> Option<&dyn VirtualMethods> { + Some(self.upcast::<HTMLElement>() as &dyn VirtualMethods) } - fn bind_to_tree(&self, tree_in_doc: bool) { + fn bind_to_tree(&self, context: &BindContext) { if let Some(ref s) = self.super_type() { - s.bind_to_tree(tree_in_doc); + s.bind_to_tree(context); } - self.upcast::<Element>().check_ancestors_disabled_state_for_form_control(); + self.upcast::<Element>() + .check_ancestors_disabled_state_for_form_control(); } fn unbind_from_tree(&self, context: &UnbindContext) { @@ -64,7 +68,10 @@ impl VirtualMethods for HTMLLegendElement { let node = self.upcast::<Node>(); let el = self.upcast::<Element>(); - if node.ancestors().any(|ancestor| ancestor.is::<HTMLFieldSetElement>()) { + if node + .ancestors() + .any(|ancestor| ancestor.is::<HTMLFieldSetElement>()) + { el.check_ancestors_disabled_state_for_form_control(); } else { el.check_disabled_attribute(); @@ -72,14 +79,10 @@ impl VirtualMethods for HTMLLegendElement { } } - impl HTMLLegendElementMethods for HTMLLegendElement { // https://html.spec.whatwg.org/multipage/#dom-legend-form - fn GetForm(&self) -> Option<Root<HTMLFormElement>> { - let parent = match self.upcast::<Node>().GetParentElement() { - Some(parent) => parent, - None => return None, - }; + fn GetForm(&self) -> Option<DomRoot<HTMLFormElement>> { + let parent = self.upcast::<Node>().GetParentElement()?; if parent.is::<HTMLFieldSetElement>() { return self.form_owner(); } @@ -88,7 +91,7 @@ impl HTMLLegendElementMethods for HTMLLegendElement { } impl FormControl for HTMLLegendElement { - fn form_owner(&self) -> Option<Root<HTMLFormElement>> { + fn form_owner(&self) -> Option<DomRoot<HTMLFormElement>> { self.form_owner.get() } |