diff options
Diffstat (limited to 'components/script/dom/worker.rs')
-rw-r--r-- | components/script/dom/worker.rs | 10 |
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) } |