From affeeb8ac72b0c5feaf763c13d7292d4e2b8bde5 Mon Sep 17 00:00:00 2001 From: Peter Van der Beken Date: Mon, 2 May 2022 07:36:53 +0000 Subject: [PATCH] Bug 1688585 - extensions::RequestWorkerRunnable::Init should propagate failure of dom::PromiseWorkerProxy::Create. r=rpl Differential Revision: https://phabricator.services.mozilla.com/D145066 --- .../webidl-api/ExtensionAPIRequestForwarder.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/toolkit/components/extensions/webidl-api/ExtensionAPIRequestForwarder.cpp b/toolkit/components/extensions/webidl-api/ExtensionAPIRequestForwarder.cpp index 0edae10dfee6..10a8f0e72a67 100644 --- a/toolkit/components/extensions/webidl-api/ExtensionAPIRequestForwarder.cpp +++ b/toolkit/components/extensions/webidl-api/ExtensionAPIRequestForwarder.cpp @@ -337,9 +337,15 @@ void RequestWorkerRunnable::Init(nsIGlobalObject* aGlobal, JSContext* aCx, return; } - mPromiseProxy = dom::PromiseWorkerProxy::Create( - mWorkerPrivate, aPromiseRetval, - &kExtensionAPIRequestStructuredCloneCallbacks); + RefPtr promiseProxy = + dom::PromiseWorkerProxy::Create( + mWorkerPrivate, aPromiseRetval, + &kExtensionAPIRequestStructuredCloneCallbacks); + if (!promiseProxy) { + aRv.Throw(NS_ERROR_DOM_ABORT_ERR); + return; + } + mPromiseProxy = promiseProxy.forget(); } void RequestWorkerRunnable::SetSerializedCallerStack(