diff --git a/dom/workers/Worker.cpp b/dom/workers/Worker.cpp index abddfa11c8a7..3452859c4c6d 100644 --- a/dom/workers/Worker.cpp +++ b/dom/workers/Worker.cpp @@ -86,6 +86,8 @@ void Worker::PostMessage(JSContext* aCx, JS::Handle aMessage, if (!mWorkerPrivate || mWorkerPrivate->ParentStatusProtected() > Running) { return; } + RefPtr workerPrivate = mWorkerPrivate; + Unused << workerPrivate; JS::Rooted transferable(aCx, JS::UndefinedValue()); @@ -145,6 +147,10 @@ void Worker::PostMessage(JSContext* aCx, JS::Handle aMessage, runnable->Write(aCx, aMessage, transferable, clonePolicy, aRv); + if (!mWorkerPrivate || mWorkerPrivate->ParentStatusProtected() > Running) { + return; + } + if (isTimelineRecording) { end = MakeUnique( NS_IsMainThread()