aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/worker.rs
diff options
context:
space:
mode:
authorRavi Shankar <wafflespeanut@gmail.com>2015-08-01 21:25:49 +0530
committerRavi Shankar <wafflespeanut@gmail.com>2015-08-01 21:25:49 +0530
commit79b65402d70e54af10e11bc859db50fb0d5744c5 (patch)
tree29bdcfc951341fd8820f2cf7555281518bbf0343 /components/script/dom/worker.rs
parent4de6e699b2ee095177360ae1812d9f47829adcc3 (diff)
downloadservo-79b65402d70e54af10e11bc859db50fb0d5744c5.tar.gz
servo-79b65402d70e54af10e11bc859db50fb0d5744c5.zip
Persuading devtools to communicate with the workers; r=jdm
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)
}