diff options
author | Ravi Shankar <wafflespeanut@gmail.com> | 2015-08-01 21:25:49 +0530 |
---|---|---|
committer | Ravi Shankar <wafflespeanut@gmail.com> | 2015-08-01 21:25:49 +0530 |
commit | 79b65402d70e54af10e11bc859db50fb0d5744c5 (patch) | |
tree | 29bdcfc951341fd8820f2cf7555281518bbf0343 /components/script/dom/worker.rs | |
parent | 4de6e699b2ee095177360ae1812d9f47829adcc3 (diff) | |
download | servo-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.rs | 33 |
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) } |