aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2019-11-22 13:07:01 -0500
committerJosh Matthews <josh@joshmatthews.net>2019-11-22 14:08:02 -0500
commit0f30755522ac773235a1ad67c4ba65622b995c3b (patch)
treeca2ccbe2d912636b6e607a1d2ccf4b439ee4b313 /components/script/dom
parent1b524ead1e2626fe0152e049f634f8705ee187e2 (diff)
downloadservo-0f30755522ac773235a1ad67c4ba65622b995c3b.tar.gz
servo-0f30755522ac773235a1ad67c4ba65622b995c3b.zip
Ensure JS runnables are dispatched to a worker's event loop instead of its parent.
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/dedicatedworkerglobalscope.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs
index 9b16b0348d7..aa7443ce018 100644
--- a/components/script/dom/dedicatedworkerglobalscope.rs
+++ b/components/script/dom/dedicatedworkerglobalscope.rs
@@ -347,10 +347,14 @@ impl DedicatedWorkerGlobalScope {
let runtime = unsafe {
if let Some(pipeline_id) = pipeline_id {
- new_child_runtime(
- parent,
- Some(NetworkingTaskSource(parent_sender.clone(), pipeline_id)),
- )
+ let task_source = NetworkingTaskSource(
+ Box::new(WorkerThreadWorkerChan {
+ sender: own_sender.clone(),
+ worker: worker.clone(),
+ }),
+ pipeline_id,
+ );
+ new_child_runtime(parent, Some(task_source))
} else {
new_child_runtime(parent, None)
}