diff options
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 1 | ||||
-rw-r--r-- | components/script/dom/bindings/global.rs | 17 | ||||
-rw-r--r-- | components/script/dom/bindings/iterable.rs | 5 | ||||
-rw-r--r-- | components/script/dom/bindings/reflector.rs | 8 | ||||
-rw-r--r-- | components/script/dom/browsingcontext.rs | 2 |
5 files changed, 21 insertions, 12 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index cb7e796c627..71331dfe503 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -5452,6 +5452,7 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries 'dom::bindings::js::OptionalRootedReference', 'dom::bindings::js::Root', 'dom::bindings::js::RootedReference', + 'dom::bindings::reflector::MutReflectable', 'dom::bindings::reflector::Reflectable', 'dom::bindings::utils::DOMClass', 'dom::bindings::utils::DOMJSClass', diff --git a/components/script/dom/bindings/global.rs b/components/script/dom/bindings/global.rs index af4cd59a86f..54efb11250d 100644 --- a/components/script/dom/bindings/global.rs +++ b/components/script/dom/bindings/global.rs @@ -271,14 +271,6 @@ impl<'a> GlobalRef<'a> { } } - /// Returns the receiver's reflector. - pub fn reflector(&self) -> &Reflector { - match *self { - GlobalRef::Window(ref window) => window.reflector(), - GlobalRef::Worker(ref worker) => worker.reflector(), - } - } - /// Returns a wrapper for runnables to ensure they are cancelled if the global /// is being destroyed. pub fn get_runnable_wrapper(&self) -> RunnableWrapper { @@ -297,6 +289,15 @@ impl<'a> GlobalRef<'a> { } } +impl<'a> Reflectable for GlobalRef<'a> { + fn reflector(&self) -> &Reflector { + match *self { + GlobalRef::Window(ref window) => window.reflector(), + GlobalRef::Worker(ref worker) => worker.reflector(), + } + } +} + impl GlobalRoot { /// Obtain a safe reference to the global object that cannot outlive the /// lifetime of this root. diff --git a/components/script/dom/bindings/iterable.rs b/components/script/dom/bindings/iterable.rs index a3092ed73b6..84381b52655 100644 --- a/components/script/dom/bindings/iterable.rs +++ b/components/script/dom/bindings/iterable.rs @@ -12,7 +12,7 @@ use dom::bindings::codegen::Bindings::IterableIteratorBinding::IterableKeyOrValu use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, Root}; -use dom::bindings::reflector::{Reflector, Reflectable, reflect_dom_object}; +use dom::bindings::reflector::{Reflector, Reflectable, MutReflectable, reflect_dom_object}; use dom::bindings::trace::JSTraceable; use js::conversions::ToJSValConvertible; use js::jsapi::{JSContext, JSObject, MutableHandleValue, MutableHandleObject, HandleValue}; @@ -63,6 +63,9 @@ impl<T: Reflectable + JSTraceable + Iterable> Reflectable for IterableIterator<T fn reflector<'a>(&'a self) -> &'a Reflector { &self.reflector } +} + +impl<T: Reflectable + JSTraceable + Iterable> MutReflectable for IterableIterator<T> { fn init_reflector(&mut self, obj: *mut JSObject) { self.reflector.set_jsobject(obj); } diff --git a/components/script/dom/bindings/reflector.rs b/components/script/dom/bindings/reflector.rs index 04466ea6926..d5280712a03 100644 --- a/components/script/dom/bindings/reflector.rs +++ b/components/script/dom/bindings/reflector.rs @@ -73,11 +73,15 @@ impl Reflector { pub trait Reflectable { /// Returns the receiver's reflector. fn reflector(&self) -> &Reflector; - /// Initializes the Reflector - fn init_reflector(&mut self, obj: *mut JSObject); /// Returns the global object of the realm that the Reflectable was created in. fn global(&self) -> GlobalRoot where Self: Sized { global_root_from_reflector(self) } } + +/// A trait to initialize the `Reflector` for a DOM object. +pub trait MutReflectable: Reflectable { + /// Initializes the Reflector + fn init_reflector(&mut self, obj: *mut JSObject); +} diff --git a/components/script/dom/browsingcontext.rs b/components/script/dom/browsingcontext.rs index 18fbe914cef..919b574c27a 100644 --- a/components/script/dom/browsingcontext.rs +++ b/components/script/dom/browsingcontext.rs @@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods; use dom::bindings::conversions::{ToJSValConvertible, root_from_handleobject}; use dom::bindings::js::{JS, Root, RootedReference}; use dom::bindings::proxyhandler::{fill_property_descriptor, get_property_descriptor}; -use dom::bindings::reflector::{Reflectable, Reflector}; +use dom::bindings::reflector::{Reflectable, MutReflectable, Reflector}; use dom::bindings::str::DOMString; use dom::bindings::trace::JSTraceable; use dom::bindings::utils::WindowProxyHandler; |