mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 08:15:31 +00:00
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:
parent
77d72088ad
commit
35bce0bd9c
@ -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 */
|
||||
|
@ -1,4 +0,0 @@
|
||||
[url-lifetime.html]
|
||||
[Terminating worker revokes its URLs]
|
||||
expected: FAIL
|
||||
|
Loading…
Reference in New Issue
Block a user