Bug 1612519 - Fix "Terminating worker revokes its URLs" WPT, r=smaug

Differential Revision: https://phabricator.services.mozilla.com/D61360

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Andrea Marchesini 2020-02-01 10:53:54 +00:00
parent 77d72088ad
commit 35bce0bd9c
2 changed files with 6 additions and 50 deletions

View File

@ -48,24 +48,6 @@ class CreateURLRunnable : public WorkerMainThreadRunnable {
return false;
}
if (!mWorkerPrivate->IsSharedWorker() &&
!mWorkerPrivate->IsServiceWorker()) {
// Walk up to top worker object.
WorkerPrivate* wp = mWorkerPrivate;
while (WorkerPrivate* parent = wp->GetParent()) {
wp = parent;
}
nsCOMPtr<nsIScriptContext> sc = wp->GetScriptContext();
// We could not have a ScriptContext in JSM code. In this case, we leak.
if (sc) {
nsCOMPtr<nsIGlobalObject> global = sc->GetGlobalObject();
MOZ_ASSERT(global);
global->RegisterHostObjectURI(url);
}
}
mURL = NS_ConvertUTF8toUTF16(url);
return true;
}
@ -99,24 +81,6 @@ class RevokeURLRunnable : public WorkerMainThreadRunnable {
BlobURLProtocolHandler::RemoveDataEntry(url);
}
if (!mWorkerPrivate->IsSharedWorker() &&
!mWorkerPrivate->IsServiceWorker()) {
// Walk up to top worker object.
WorkerPrivate* wp = mWorkerPrivate;
while (WorkerPrivate* parent = wp->GetParent()) {
wp = parent;
}
nsCOMPtr<nsIScriptContext> sc = wp->GetScriptContext();
// We could not have a ScriptContext in JSM code. In this case, we leak.
if (sc) {
nsCOMPtr<nsIGlobalObject> global = sc->GetGlobalObject();
MOZ_ASSERT(global);
global->UnregisterHostObjectURI(url);
}
}
return true;
}
};
@ -163,12 +127,10 @@ void URLWorker::CreateObjectURL(const GlobalObject& aGlobal, Blob& aBlob,
return;
}
if (workerPrivate->IsSharedWorker() || workerPrivate->IsServiceWorker()) {
WorkerGlobalScope* scope = workerPrivate->GlobalScope();
MOZ_ASSERT(scope);
WorkerGlobalScope* scope = workerPrivate->GlobalScope();
MOZ_ASSERT(scope);
scope->RegisterHostObjectURI(NS_ConvertUTF16toUTF8(aResult));
}
scope->RegisterHostObjectURI(NS_ConvertUTF16toUTF8(aResult));
}
/* static */
@ -185,12 +147,10 @@ void URLWorker::RevokeObjectURL(const GlobalObject& aGlobal,
return;
}
if (workerPrivate->IsSharedWorker() || workerPrivate->IsServiceWorker()) {
WorkerGlobalScope* scope = workerPrivate->GlobalScope();
MOZ_ASSERT(scope);
WorkerGlobalScope* scope = workerPrivate->GlobalScope();
MOZ_ASSERT(scope);
scope->UnregisterHostObjectURI(NS_ConvertUTF16toUTF8(aUrl));
}
scope->UnregisterHostObjectURI(NS_ConvertUTF16toUTF8(aUrl));
}
/* static */

View File

@ -1,4 +0,0 @@
[url-lifetime.html]
[Terminating worker revokes its URLs]
expected: FAIL