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.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs
index ac865a0cf94..ca3b811b042 100644
--- a/components/script/dom/worker.rs
+++ b/components/script/dom/worker.rs
@@ -87,7 +87,6 @@ impl Worker {
let (sender, receiver) = unbounded();
let closing = Arc::new(AtomicBool::new(false));
let worker = Worker::new(global, sender.clone(), closing.clone());
- global.track_worker(closing.clone());
let worker_ref = Trusted::new(&*worker);
let worker_load_origin = WorkerScriptLoadOrigin {
@@ -125,7 +124,9 @@ impl Worker {
let init = prepare_workerscope_init(global, Some(devtools_sender), Some(worker_id));
- DedicatedWorkerGlobalScope::run_worker_scope(
+ let (control_sender, control_receiver) = unbounded();
+
+ let join_handle = DedicatedWorkerGlobalScope::run_worker_scope(
init,
worker_url,
devtools_receiver,
@@ -136,12 +137,15 @@ impl Worker {
worker_load_origin,
String::from(&*worker_options.name),
worker_options.type_,
- closing,
+ closing.clone(),
global.image_cache(),
browsing_context,
global.wgpu_id_hub(),
+ control_receiver,
);
+ global.track_worker(closing, join_handle, control_sender);
+
Ok(worker)
}