From a80267e9e88b3dcebf7f8f1f6f10931a99ddf2ca Mon Sep 17 00:00:00 2001 From: janekptacijarabaci Date: Thu, 5 Jul 2018 13:04:44 +0200 Subject: Bug 604026 - Sync event loops in workers should be created only if compatible with the worker shutdown status --- dom/url/URL.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'dom/url') diff --git a/dom/url/URL.cpp b/dom/url/URL.cpp index c8724c359..04f5ec137 100644 --- a/dom/url/URL.cpp +++ b/dom/url/URL.cpp @@ -1113,6 +1113,12 @@ public: return true; } + void + Dispatch(ErrorResult& aRv) + { + WorkerMainThreadRunnable::Dispatch(Terminating, aRv); + } + private: nsAString& mValue; GetterType mType; @@ -1213,6 +1219,12 @@ public: return mFailed; } + void + Dispatch(ErrorResult& aRv) + { + WorkerMainThreadRunnable::Dispatch(Terminating, aRv); + } + private: const nsString mValue; SetterType mType; @@ -1224,7 +1236,7 @@ already_AddRefed FinishConstructor(JSContext* aCx, WorkerPrivate* aPrivate, ConstructorRunnable* aRunnable, ErrorResult& aRv) { - aRunnable->Dispatch(aRv); + aRunnable->Dispatch(Terminating, aRv); if (NS_WARN_IF(aRv.Failed())) { return nullptr; } @@ -1302,7 +1314,7 @@ URLWorker::CreateObjectURL(const GlobalObject& aGlobal, Blob& aBlob, RefPtr runnable = new CreateURLRunnable(workerPrivate, blobImpl, aOptions, aResult); - runnable->Dispatch(aRv); + runnable->Dispatch(Terminating, aRv); if (NS_WARN_IF(aRv.Failed())) { return; } @@ -1325,7 +1337,7 @@ URLWorker::RevokeObjectURL(const GlobalObject& aGlobal, const nsAString& aUrl, RefPtr runnable = new RevokeURLRunnable(workerPrivate, aUrl); - runnable->Dispatch(aRv); + runnable->Dispatch(Terminating, aRv); if (NS_WARN_IF(aRv.Failed())) { return; } @@ -1348,7 +1360,7 @@ URLWorker::IsValidURL(const GlobalObject& aGlobal, const nsAString& aUrl, RefPtr runnable = new IsValidURLRunnable(workerPrivate, aUrl); - runnable->Dispatch(aRv); + runnable->Dispatch(Terminating, aRv); if (NS_WARN_IF(aRv.Failed())) { return false; } -- cgit v1.2.3