aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/worker.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/worker.rs')
-rw-r--r--components/script/dom/worker.rs33
1 files changed, 19 insertions, 14 deletions
diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs
index e536200fb43..2ef505308a3 100644
--- a/components/script/dom/worker.rs
+++ b/components/script/dom/worker.rs
@@ -77,23 +77,28 @@ impl Worker {
let worker = Worker::new(global, sender.clone());
let worker_ref = Trusted::new(global.get_cx(), worker.r(), global.script_chan());
- if let Some(ref chan) = global.devtools_chan() {
- let pipeline_id = global.pipeline();
- let (devtools_sender, _) = ipc::channel().unwrap();
- let title = format!("Worker for {}", worker_url);
- let page_info = DevtoolsPageInfo {
- title: title,
- url: worker_url.clone(),
- };
- let worker_id = global.get_next_worker_id();
- chan.send(ScriptToDevtoolsControlMsg::NewGlobal((pipeline_id, Some(worker_id)),
- devtools_sender.clone(),
- page_info)).unwrap();
- }
+ let (devtools_sender, devtools_receiver) = ipc::channel().unwrap();
+ let optional_sender = match global.devtools_chan() {
+ Some(ref chan) => {
+ let pipeline_id = global.pipeline();
+ let title = format!("Worker for {}", worker_url);
+ let page_info = DevtoolsPageInfo {
+ title: title,
+ url: worker_url.clone(),
+ };
+ let worker_id = global.get_next_worker_id();
+ chan.send(ScriptToDevtoolsControlMsg::NewGlobal((pipeline_id, Some(worker_id)),
+ devtools_sender.clone(),
+ page_info)).unwrap();
+ Some(devtools_sender)
+ },
+ None => None,
+ };
DedicatedWorkerGlobalScope::run_worker_scope(
worker_url, global.pipeline(), global.mem_profiler_chan(), global.devtools_chan(),
- worker_ref, resource_task, constellation_chan, global.script_chan(), sender, receiver);
+ optional_sender, devtools_receiver, worker_ref, resource_task,
+ constellation_chan, global.script_chan(), sender, receiver);
Ok(worker)
}