diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs index 28ecf365848..b40fe2afd37 100644 --- a/components/script/dom/dedicatedworkerglobalscope.rs +++ b/components/script/dom/dedicatedworkerglobalscope.rs @@ -35,9 +35,8 @@ use util::task_state::{SCRIPT, IN_WORKER}; use js::jsapi::JSContext; use js::jsval::JSVal; -use js::rust::Cx; +use js::rust::Runtime; -use std::rc::Rc; use std::sync::mpsc::{Sender, Receiver, channel}; use url::Url; @@ -104,17 +103,18 @@ pub struct DedicatedWorkerGlobalScope { impl DedicatedWorkerGlobalScope { fn new_inherited(worker_url: Url, - id: PipelineId, - devtools_chan: Option, - cx: Rc, - resource_task: ResourceTask, - parent_sender: Box, - own_sender: Sender<(TrustedWorkerAddress, ScriptMsg)>, - receiver: Receiver<(TrustedWorkerAddress, ScriptMsg)>) - -> DedicatedWorkerGlobalScope { + id: PipelineId, + devtools_chan: Option, + runtime: Runtime, + resource_task: ResourceTask, + parent_sender: Box, + own_sender: Sender<(TrustedWorkerAddress, ScriptMsg)>, + receiver: Receiver<(TrustedWorkerAddress, ScriptMsg)>) + -> DedicatedWorkerGlobalScope { DedicatedWorkerGlobalScope { workerglobalscope: WorkerGlobalScope::new_inherited( - WorkerGlobalScopeTypeId::DedicatedGlobalScope, worker_url, cx, resource_task, devtools_chan), + WorkerGlobalScopeTypeId::DedicatedGlobalScope, worker_url, + runtime, resource_task, devtools_chan), id: id, receiver: receiver, own_sender: own_sender, @@ -126,16 +126,16 @@ impl DedicatedWorkerGlobalScope { pub fn new(worker_url: Url, id: PipelineId, devtools_chan: Option, - cx: Rc, + runtime: Runtime, resource_task: ResourceTask, parent_sender: Box, own_sender: Sender<(TrustedWorkerAddress, ScriptMsg)>, receiver: Receiver<(TrustedWorkerAddress, ScriptMsg)>) -> Temporary { let scope = box DedicatedWorkerGlobalScope::new_inherited( - worker_url, id, devtools_chan, cx.clone(), resource_task, parent_sender, - own_sender, receiver); - DedicatedWorkerGlobalScopeBinding::Wrap(cx.ptr, scope) + worker_url, id, devtools_chan, runtime.clone(), resource_task, + parent_sender, own_sender, receiver); + DedicatedWorkerGlobalScopeBinding::Wrap(runtime.cx(), scope) } } @@ -168,7 +168,7 @@ impl DedicatedWorkerGlobalScope { let runtime = ScriptTask::new_rt_and_cx(); let global = DedicatedWorkerGlobalScope::new( - worker_url, id, devtools_chan, runtime.cx.clone(), resource_task, + worker_url, id, devtools_chan, runtime.clone(), resource_task, parent_sender, own_sender, receiver).root(); { diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs index 8723454182b..0aadce50b1c 100644 --- a/components/script/dom/workerglobalscope.rs +++ b/components/script/dom/workerglobalscope.rs @@ -27,10 +27,9 @@ use util::str::DOMString; use js::jsapi::JSContext; use js::jsval::JSVal; -use js::rust::Cx; +use js::rust::Runtime; use std::default::Default; -use std::rc::Rc; use std::cell::Cell; use url::{Url, UrlParser}; @@ -45,7 +44,7 @@ pub enum WorkerGlobalScopeTypeId { pub struct WorkerGlobalScope { eventtarget: EventTarget, worker_url: Url, - js_context: Rc, + runtime: Runtime, next_worker_id: Cell, resource_task: ResourceTask, location: MutNullableHeap>, @@ -58,14 +57,14 @@ pub struct WorkerGlobalScope { impl WorkerGlobalScope { pub fn new_inherited(type_id: WorkerGlobalScopeTypeId, worker_url: Url, - cx: Rc, + runtime: Runtime, resource_task: ResourceTask, devtools_chan: Option) -> WorkerGlobalScope { WorkerGlobalScope { eventtarget: EventTarget::new_inherited(EventTargetTypeId::WorkerGlobalScope(type_id)), next_worker_id: Cell::new(WorkerId(0)), worker_url: worker_url, - js_context: cx, + runtime: runtime, resource_task: resource_task, location: Default::default(), navigator: Default::default(), @@ -85,7 +84,7 @@ impl WorkerGlobalScope { } pub fn get_cx(&self) -> *mut JSContext { - self.js_context.ptr + self.runtime.cx() } pub fn resource_task<'a>(&'a self) -> &'a ResourceTask { @@ -137,7 +136,7 @@ impl<'a> WorkerGlobalScopeMethods for JSRef<'a, WorkerGlobalScope> { } }; - match self.js_context.evaluate_script( + match self.runtime.cx.evaluate_script( self.reflector().get_jsobject(), source, url.serialize(), 1) { Ok(_) => (), Err(_) => { @@ -263,7 +262,7 @@ impl<'a> WorkerGlobalScopeHelpers for JSRef<'a, WorkerGlobalScope> { } fn get_cx(self) -> *mut JSContext { - self.js_context.ptr + self.runtime.cx() } }