From 6d426f7c14b9108b11958bc303b56eda066e2f4f Mon Sep 17 00:00:00 2001 From: tigercosmos Date: Tue, 29 May 2018 16:39:24 -0700 Subject: [PATCH] Update type of custom element constructor --- components/script/dom/customelementregistry.rs | 13 +++++++++---- .../script/dom/webidls/CustomElementRegistry.webidl | 4 +++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/components/script/dom/customelementregistry.rs b/components/script/dom/customelementregistry.rs index 759da3f0203..98fc1eae5bd 100644 --- a/components/script/dom/customelementregistry.rs +++ b/components/script/dom/customelementregistry.rs @@ -5,6 +5,7 @@ use dom::bindings::callback::{CallbackContainer, ExceptionHandling}; use dom::bindings::cell::DomRefCell; use dom::bindings::codegen::Bindings::CustomElementRegistryBinding; +use dom::bindings::codegen::Bindings::CustomElementRegistryBinding::CustomElementConstructor; use dom::bindings::codegen::Bindings::CustomElementRegistryBinding::CustomElementRegistryMethods; use dom::bindings::codegen::Bindings::CustomElementRegistryBinding::ElementDefinitionOptions; use dom::bindings::codegen::Bindings::ElementBinding::ElementMethods; @@ -193,7 +194,11 @@ unsafe fn get_callback( impl CustomElementRegistryMethods for CustomElementRegistry { #[allow(unsafe_code, unrooted_must_root)] /// - fn Define(&self, name: DOMString, constructor_: Rc, options: &ElementDefinitionOptions) -> ErrorResult { + fn Define( + &self, name: DOMString, + constructor_: Rc, + options: &ElementDefinitionOptions + ) -> ErrorResult { let cx = self.window.get_cx(); rooted!(in(cx) let constructor = constructor_.callback()); let name = LocalName::from(&*name); @@ -402,7 +407,7 @@ pub struct CustomElementDefinition { pub local_name: LocalName, #[ignore_malloc_size_of = "Rc"] - pub constructor: Rc, + pub constructor: Rc, pub observed_attributes: Vec, @@ -414,7 +419,7 @@ pub struct CustomElementDefinition { impl CustomElementDefinition { fn new(name: LocalName, local_name: LocalName, - constructor: Rc, + constructor: Rc, observed_attributes: Vec, callbacks: LifecycleCallbacks) -> CustomElementDefinition { @@ -543,7 +548,7 @@ pub fn upgrade_element(definition: Rc, element: &Elemen /// /// Steps 7.1-7.2 #[allow(unsafe_code)] -fn run_upgrade_constructor(constructor: &Rc, element: &Element) -> ErrorResult { +fn run_upgrade_constructor(constructor: &Rc, element: &Element) -> ErrorResult { let window = window_from_node(element); let cx = window.get_cx(); rooted!(in(cx) let constructor_val = ObjectValue(constructor.callback())); diff --git a/components/script/dom/webidls/CustomElementRegistry.webidl b/components/script/dom/webidls/CustomElementRegistry.webidl index de0a25eb58f..8953d504a12 100644 --- a/components/script/dom/webidls/CustomElementRegistry.webidl +++ b/components/script/dom/webidls/CustomElementRegistry.webidl @@ -6,13 +6,15 @@ [Pref="dom.customelements.enabled"] interface CustomElementRegistry { [Throws, CEReactions] - void define(DOMString name, Function constructor_, optional ElementDefinitionOptions options); + void define(DOMString name, CustomElementConstructor constructor_, optional ElementDefinitionOptions options); any get(DOMString name); Promise whenDefined(DOMString name); }; +callback CustomElementConstructor = any(); + dictionary ElementDefinitionOptions { DOMString extends; };