diff options
Diffstat (limited to 'components/script/dom/htmlelement.rs')
-rw-r--r-- | components/script/dom/htmlelement.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs index 346b15ef009..6c8a29c4f22 100644 --- a/components/script/dom/htmlelement.rs +++ b/components/script/dom/htmlelement.rs @@ -13,6 +13,7 @@ use script_layout_interface::QueryMsg; use style::attr::AttrValue; use style_dom::ElementState; +use super::customelementregistry::CustomElementState; use crate::dom::activation::Activatable; use crate::dom::attr::Attr; use crate::dom::bindings::codegen::Bindings::CharacterDataBinding::CharacterData_Binding::CharacterDataMethods; @@ -618,6 +619,15 @@ impl HTMLElementMethods<crate::DomTypeHolder> for HTMLElement { return Err(Error::NotSupported); } + // Step 6: If this's custom element state is not "precustomized" or "custom", + // then throw a "NotSupportedError" DOMException. + if !matches!( + element.get_custom_element_state(), + CustomElementState::Precustomized | CustomElementState::Custom + ) { + return Err(Error::NotSupported); + } + if self.is_form_associated_custom_element() { element.init_state_for_internals(); } |