diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs index 8ea89562f39..ce12696d94c 100644 --- a/components/script/dom/dedicatedworkerglobalscope.rs +++ b/components/script/dom/dedicatedworkerglobalscope.rs @@ -29,7 +29,7 @@ use js::rust::Runtime; use msg::constellation_msg::TopLevelBrowsingContextId; use net_traits::{IpcSend, load_whole_resource}; use net_traits::request::{CredentialsMode, Destination, RequestInit, Type as RequestType}; -use script_runtime::{CommonScriptMsg, ScriptChan, ScriptPort, StackRootTLS, get_reports, new_rt_and_cx}; +use script_runtime::{CommonScriptMsg, ScriptChan, ScriptPort, StackRootTLS, new_rt_and_cx}; use script_runtime::ScriptThreadEventCategory::WorkerEvent; use script_traits::{TimerEvent, TimerSource, WorkerGlobalScopeInit, WorkerScriptLoadOrigin}; use servo_rand::random; @@ -269,10 +269,6 @@ impl DedicatedWorkerGlobalScope { (chan, box rx) } - pub fn process_event(&self, msg: CommonScriptMsg) { - self.handle_script_event(WorkerScriptMsg::Common(msg)); - } - #[allow(unsafe_code)] fn receive_event(&self) -> Result { let scope = self.upcast::(); @@ -314,16 +310,9 @@ impl DedicatedWorkerGlobalScope { data.read(scope.upcast(), message.handle_mut()); MessageEvent::dispatch_jsval(target, scope.upcast(), message.handle()); }, - WorkerScriptMsg::Common(CommonScriptMsg::RunnableMsg(_, runnable)) => { - runnable.handler() + WorkerScriptMsg::Common(msg) => { + self.upcast::().process_event(msg); }, - WorkerScriptMsg::Common(CommonScriptMsg::CollectReports(reports_chan)) => { - let scope = self.upcast::(); - let cx = scope.get_cx(); - let path_seg = format!("url({})", scope.get_url()); - let reports = get_reports(cx, path_seg); - reports_chan.send(reports); - } } } diff --git a/components/script/dom/serviceworkerglobalscope.rs b/components/script/dom/serviceworkerglobalscope.rs index de0cbb2e8af..5f3a2b82aa2 100644 --- a/components/script/dom/serviceworkerglobalscope.rs +++ b/components/script/dom/serviceworkerglobalscope.rs @@ -25,7 +25,7 @@ use js::jsval::UndefinedValue; use js::rust::Runtime; use net_traits::{load_whole_resource, IpcSend, CustomResponseMediator}; use net_traits::request::{CredentialsMode, Destination, RequestInit, Type as RequestType}; -use script_runtime::{CommonScriptMsg, StackRootTLS, get_reports, new_rt_and_cx, ScriptChan}; +use script_runtime::{CommonScriptMsg, ScriptChan, StackRootTLS, new_rt_and_cx}; use script_traits::{TimerEvent, WorkerGlobalScopeInit, ScopeThings, ServiceWorkerMsg, WorkerScriptLoadOrigin}; use servo_config::prefs::PREFS; use servo_rand::random; @@ -262,15 +262,8 @@ impl ServiceWorkerGlobalScope { data.read(scope.upcast(), message.handle_mut()); ExtendableMessageEvent::dispatch_jsval(target, scope.upcast(), message.handle()); }, - CommonWorker(WorkerScriptMsg::Common(CommonScriptMsg::RunnableMsg(_, runnable))) => { - runnable.handler() - }, - CommonWorker(WorkerScriptMsg::Common(CommonScriptMsg::CollectReports(reports_chan))) => { - let scope = self.upcast::(); - let cx = scope.get_cx(); - let path_seg = format!("url({})", scope.get_url()); - let reports = get_reports(cx, path_seg); - reports_chan.send(reports); + CommonWorker(WorkerScriptMsg::Common(msg)) => { + self.upcast::().process_event(msg); }, Response(mediator) => { // TODO XXXcreativcoder This will eventually use a FetchEvent interface to fire event @@ -313,10 +306,6 @@ impl ServiceWorkerGlobalScope { } } - pub fn process_event(&self, msg: CommonScriptMsg) { - self.handle_script_event(ServiceWorkerScriptMsg::CommonWorker(WorkerScriptMsg::Common(msg))); - } - pub fn script_chan(&self) -> Box { box ServiceWorkerChan { sender: self.own_sender.clone() diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs index ebcebef6c27..f3e98f0de47 100644 --- a/components/script/dom/workerglobalscope.rs +++ b/components/script/dom/workerglobalscope.rs @@ -32,7 +32,7 @@ use js::panic::maybe_resume_unwind; use js::rust::Runtime; use net_traits::{IpcSend, load_whole_resource}; use net_traits::request::{CredentialsMode, Destination, RequestInit as NetRequestInit, Type as RequestType}; -use script_runtime::{CommonScriptMsg, ScriptChan, ScriptPort}; +use script_runtime::{CommonScriptMsg, ScriptChan, ScriptPort, get_reports}; use script_thread::RunnableWrapper; use script_traits::{TimerEvent, TimerEventId}; use script_traits::WorkerGlobalScopeInit; @@ -386,17 +386,19 @@ impl WorkerGlobalScope { } pub fn process_event(&self, msg: CommonScriptMsg) { - let dedicated = self.downcast::(); - let service_worker = self.downcast::(); - if let Some(dedicated) = dedicated { - return dedicated.process_event(msg); - } else if let Some(service_worker) = service_worker { - return service_worker.process_event(msg); - } else { - panic!("need to implement a sender for SharedWorker") + match msg { + CommonScriptMsg::RunnableMsg(_, runnable) => { + runnable.handler() + }, + CommonScriptMsg::CollectReports(reports_chan) => { + let cx = self.get_cx(); + let path_seg = format!("url({})", self.get_url()); + let reports = get_reports(cx, path_seg); + reports_chan.send(reports); + }, } - //XXXjdm should we do a microtask checkpoint here? + // FIXME(jdm): Should we do a microtask checkpoint here? } pub fn handle_fire_timer(&self, timer_id: TimerEventId) {