diff options
author | thiagopnts <thiagopnts@gmail.com> | 2015-04-04 00:15:51 -0300 |
---|---|---|
committer | thiagopnts <thiagopnts@gmail.com> | 2015-04-06 00:54:16 -0300 |
commit | ea5c702f4abf0e2f03a9cb3a6938ac4dc1fe10fe (patch) | |
tree | a44868b81a17cf98ae8ee5e462a6ac9e220ffb9f /components/script/dom/worker.rs | |
parent | f22d920b4dd97fff6e2c8666d2062f3ca2b0b2e6 (diff) | |
download | servo-ea5c702f4abf0e2f03a9cb3a6938ac4dc1fe10fe.tar.gz servo-ea5c702f4abf0e2f03a9cb3a6938ac4dc1fe10fe.zip |
Add devtools_chan method to GlobalRef and make new globals notifications work with nested workers
fixup! Add devtools_chan method to GlobalRef and make new globals notifications work with nested workers
fixup! Add devtools_chan method to GlobalRef and make new globals notifications work with nested workers
Diffstat (limited to 'components/script/dom/worker.rs')
-rw-r--r-- | components/script/dom/worker.rs | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs index 5d422edf7e7..04924bd4c86 100644 --- a/components/script/dom/worker.rs +++ b/components/script/dom/worker.rs @@ -4,7 +4,6 @@ use dom::bindings::codegen::Bindings::WorkerBinding; use dom::bindings::codegen::Bindings::WorkerBinding::WorkerMethods; -use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull; use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast}; use dom::bindings::error::{Fallible, ErrorResult}; @@ -76,25 +75,22 @@ impl Worker { let worker = Worker::new(global, sender.clone()).root(); let worker_ref = Trusted::new(global.get_cx(), worker.r(), global.script_chan()); - - if let GlobalRef::Window(window) = global { - if let Some(ref chan) = window.devtools_chan() { - let pipeline_id = window.Window().root().r().pipeline(); - let (devtools_sender, _) = channel(); - 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( - DevtoolsControlMsg::NewGlobal((pipeline_id, Some(worker_id)), devtools_sender.clone(), page_info) - ).unwrap(); - } + if let Some(ref chan) = global.devtools_chan() { + let pipeline_id = global.pipeline(); + let (devtools_sender, _) = channel(); + 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( + DevtoolsControlMsg::NewGlobal((pipeline_id, Some(worker_id)), devtools_sender.clone(), page_info) + ).unwrap(); } DedicatedWorkerGlobalScope::run_worker_scope( - worker_url, worker_ref, resource_task, global.script_chan(), + worker_url, global.pipeline(), global.devtools_chan(), worker_ref, resource_task, global.script_chan(), sender, receiver); Ok(Temporary::from_rooted(worker.r())) |