From 04fdc6e68179cccb3155003d8db678abc4ce3c48 Mon Sep 17 00:00:00 2001 From: Jens Stutte Date: Thu, 12 Aug 2021 11:39:07 +0000 Subject: [PATCH] [DOM] Be more explicit about the WorkerPrivate self-reference. --- dom/workers/WorkerPrivate.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp index f33ded1c5f..5edf7dc4a5 100644 --- a/dom/workers/WorkerPrivate.cpp +++ b/dom/workers/WorkerPrivate.cpp @@ -4339,6 +4339,11 @@ WorkerPrivate::Constructor(JSContext* aCx, return nullptr; } + // From this point on (worker thread has been started) we + // must keep ourself alive. We can now only be cleared by + // ClearSelfAndParentEventTargetRef(). + worker->mSelfRef = worker; + worker->EnableDebugger(); RefPtr compiler = @@ -4348,8 +4353,6 @@ WorkerPrivate::Constructor(JSContext* aCx, return nullptr; } - worker->mSelfRef = worker; - return worker.forget(); }