diff options
author | Rahul Sharma <rsconceptx@gmail.com> | 2016-06-09 18:52:52 +0530 |
---|---|---|
committer | Rahul Sharma <rsconceptx@gmail.com> | 2016-07-16 23:29:44 +0530 |
commit | 1e6293ea1d06120c9f3488d7d32c24d8d92df6b1 (patch) | |
tree | ffc6addc9aff4eeb5562fd1b3b588603532b38c4 /components/script/dom/worker.rs | |
parent | e8fa02a07f3ee8965c022df4e92d5bdb0fccdb0b (diff) | |
download | servo-1e6293ea1d06120c9f3488d7d32c24d8d92df6b1.tar.gz servo-1e6293ea1d06120c9f3488d7d32c24d8d92df6b1.zip |
Integrate service worker manager thread
Diffstat (limited to 'components/script/dom/worker.rs')
-rw-r--r-- | components/script/dom/worker.rs | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs index 2cf1d1c4e46..c318672fb7a 100644 --- a/components/script/dom/worker.rs +++ b/components/script/dom/worker.rs @@ -2,9 +2,9 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - +use devtools_traits::{ScriptToDevtoolsControlMsg, DevtoolsPageInfo}; +use dom::abstractworker::WorkerScriptMsg; use dom::abstractworker::{SimpleWorkerErrorHandler, SharedRt, WorkerErrorHandler}; -use dom::abstractworker::{WorkerScriptLoadOrigin, WorkerScriptMsg}; use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull; use dom::bindings::codegen::Bindings::WorkerBinding; use dom::bindings::codegen::Bindings::WorkerBinding::WorkerMethods; @@ -26,6 +26,7 @@ use ipc_channel::ipc; use js::jsapi::{HandleValue, JSContext, JSAutoCompartment}; use js::jsval::UndefinedValue; use script_thread::Runnable; +use script_traits::WorkerScriptLoadOrigin; use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::mpsc::{Sender, channel}; use std::sync::{Arc, Mutex}; @@ -81,21 +82,28 @@ impl Worker { let worker_load_origin = WorkerScriptLoadOrigin { referrer_url: None, referrer_policy: None, - request_source: global.request_source(), pipeline_id: Some(global.pipeline()) }; let (devtools_sender, devtools_receiver) = ipc::channel().unwrap(); + let worker_id = global.get_next_worker_id(); + if let Some(ref chan) = global.devtools_chan() { + let pipeline_id = global.pipeline(); + let title = format!("Worker for {}", worker_url); + let page_info = DevtoolsPageInfo { + title: title, + url: worker_url.clone(), + }; + let _ = chan.send(ScriptToDevtoolsControlMsg::NewGlobal((pipeline_id, Some(worker_id)), + devtools_sender.clone(), + page_info)); + } - let init = prepare_workerscope_init(global, - "Worker".to_owned(), - worker_url.clone(), - devtools_sender.clone(), - closing); + let init = prepare_workerscope_init(global, Some(devtools_sender)); DedicatedWorkerGlobalScope::run_worker_scope( init, worker_url, global.pipeline(), devtools_receiver, worker.runtime.clone(), worker_ref, - global.script_chan(), sender, receiver, worker_load_origin); + global.script_chan(), sender, receiver, worker_load_origin, closing); Ok(worker) } |