diff options
Diffstat (limited to 'components/script/dom/workerglobalscope.rs')
-rw-r--r-- | components/script/dom/workerglobalscope.rs | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs index 0ae6e569875..363f2639960 100644 --- a/components/script/dom/workerglobalscope.rs +++ b/components/script/dom/workerglobalscope.rs @@ -8,10 +8,10 @@ use dom::bindings::codegen::InheritTypes::DedicatedWorkerGlobalScopeCast; use dom::bindings::error::{ErrorResult, Fallible}; use dom::bindings::error::Error::{Syntax, Network, JSFailed}; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, MutNullableHeap, Temporary}; +use dom::bindings::js::{JS, Root, MutNullableHeap}; use dom::bindings::utils::Reflectable; use dom::console::Console; -use dom::dedicatedworkerglobalscope::{DedicatedWorkerGlobalScope, DedicatedWorkerGlobalScopeHelpers}; +use dom::dedicatedworkerglobalscope::DedicatedWorkerGlobalScopeHelpers; use dom::eventtarget::{EventTarget, EventTargetTypeId}; use dom::workerlocation::WorkerLocation; use dom::workernavigator::WorkerNavigator; @@ -25,8 +25,7 @@ use msg::constellation_msg::{PipelineId, WorkerId}; use net_traits::{load_whole_resource, ResourceTask}; use util::str::DOMString; -use js::jsapi::JSContext; -use js::jsval::JSVal; +use js::jsapi::{JSContext, HandleValue}; use js::rust::Runtime; use url::{Url, UrlParser}; @@ -104,14 +103,14 @@ impl WorkerGlobalScope { } } -impl<'a> WorkerGlobalScopeMethods for JSRef<'a, WorkerGlobalScope> { +impl<'a> WorkerGlobalScopeMethods for &'a WorkerGlobalScope { // https://html.spec.whatwg.org/multipage/#dom-workerglobalscope-self - fn Self_(self) -> Temporary<WorkerGlobalScope> { - Temporary::from_rooted(self) + fn Self_(self) -> Root<WorkerGlobalScope> { + Root::from_ref(self) } // https://html.spec.whatwg.org/multipage/#dom-workerglobalscope-location - fn Location(self) -> Temporary<WorkerLocation> { + fn Location(self) -> Root<WorkerLocation> { self.location.or_init(|| { WorkerLocation::new(self, self.worker_url.clone()) }) @@ -151,11 +150,11 @@ impl<'a> WorkerGlobalScopeMethods for JSRef<'a, WorkerGlobalScope> { } // https://html.spec.whatwg.org/multipage/#dom-worker-navigator - fn Navigator(self) -> Temporary<WorkerNavigator> { + fn Navigator(self) -> Root<WorkerNavigator> { self.navigator.or_init(|| WorkerNavigator::new(self)) } - fn Console(self) -> Temporary<Console> { + fn Console(self) -> Root<Console> { self.console.or_init(|| Console::new(GlobalRef::Worker(self))) } @@ -167,7 +166,7 @@ impl<'a> WorkerGlobalScopeMethods for JSRef<'a, WorkerGlobalScope> { base64_atob(atob) } - fn SetTimeout(self, _cx: *mut JSContext, callback: Function, timeout: i32, args: Vec<JSVal>) -> i32 { + fn SetTimeout(self, _cx: *mut JSContext, callback: Rc<Function>, timeout: i32, args: Vec<HandleValue>) -> i32 { self.timers.set_timeout_or_interval(TimerCallback::FunctionTimerCallback(callback), args, timeout, @@ -176,7 +175,7 @@ impl<'a> WorkerGlobalScopeMethods for JSRef<'a, WorkerGlobalScope> { self.script_chan()) } - fn SetTimeout_(self, _cx: *mut JSContext, callback: DOMString, timeout: i32, args: Vec<JSVal>) -> i32 { + fn SetTimeout_(self, _cx: *mut JSContext, callback: DOMString, timeout: i32, args: Vec<HandleValue>) -> i32 { self.timers.set_timeout_or_interval(TimerCallback::StringTimerCallback(callback), args, timeout, @@ -189,7 +188,7 @@ impl<'a> WorkerGlobalScopeMethods for JSRef<'a, WorkerGlobalScope> { self.timers.clear_timeout_or_interval(handle); } - fn SetInterval(self, _cx: *mut JSContext, callback: Function, timeout: i32, args: Vec<JSVal>) -> i32 { + fn SetInterval(self, _cx: *mut JSContext, callback: Rc<Function>, timeout: i32, args: Vec<HandleValue>) -> i32 { self.timers.set_timeout_or_interval(TimerCallback::FunctionTimerCallback(callback), args, timeout, @@ -198,7 +197,7 @@ impl<'a> WorkerGlobalScopeMethods for JSRef<'a, WorkerGlobalScope> { self.script_chan()) } - fn SetInterval_(self, _cx: *mut JSContext, callback: DOMString, timeout: i32, args: Vec<JSVal>) -> i32 { + fn SetInterval_(self, _cx: *mut JSContext, callback: DOMString, timeout: i32, args: Vec<HandleValue>) -> i32 { self.timers.set_timeout_or_interval(TimerCallback::StringTimerCallback(callback), args, timeout, @@ -221,9 +220,9 @@ pub trait WorkerGlobalScopeHelpers { fn get_cx(self) -> *mut JSContext; } -impl<'a> WorkerGlobalScopeHelpers for JSRef<'a, WorkerGlobalScope> { +impl<'a> WorkerGlobalScopeHelpers for &'a WorkerGlobalScope { fn script_chan(self) -> Box<ScriptChan+Send> { - let dedicated: Option<JSRef<DedicatedWorkerGlobalScope>> = + let dedicated = DedicatedWorkerGlobalScopeCast::to_ref(self); match dedicated { Some(dedicated) => dedicated.script_chan(), @@ -232,7 +231,7 @@ impl<'a> WorkerGlobalScopeHelpers for JSRef<'a, WorkerGlobalScope> { } fn pipeline(self) -> PipelineId { - let dedicated: Option<JSRef<DedicatedWorkerGlobalScope>> = + let dedicated = DedicatedWorkerGlobalScopeCast::to_ref(self); match dedicated { Some(dedicated) => dedicated.pipeline(), @@ -241,7 +240,7 @@ impl<'a> WorkerGlobalScopeHelpers for JSRef<'a, WorkerGlobalScope> { } fn new_script_pair(self) -> (Box<ScriptChan+Send>, Box<ScriptPort+Send>) { - let dedicated: Option<JSRef<DedicatedWorkerGlobalScope>> = + let dedicated = DedicatedWorkerGlobalScopeCast::to_ref(self); match dedicated { Some(dedicated) => dedicated.new_script_pair(), @@ -250,7 +249,7 @@ impl<'a> WorkerGlobalScopeHelpers for JSRef<'a, WorkerGlobalScope> { } fn process_event(self, msg: ScriptMsg) { - let dedicated: Option<JSRef<DedicatedWorkerGlobalScope>> = + let dedicated = DedicatedWorkerGlobalScopeCast::to_ref(self); match dedicated { Some(dedicated) => dedicated.process_event(msg), |