Bug 1279186 - Blob URLs in multi-e10s - part 3 - Remove all the blobURLs when the child goes away, r=me

This commit is contained in:
Andrea Marchesini 2016-07-18 11:13:31 +02:00
parent e2f70c803b
commit a3d12cc23a
3 changed files with 20 additions and 0 deletions

View File

@ -498,6 +498,20 @@ nsHostObjectProtocolHandler::RemoveDataEntry(const nsACString& aUri,
}
}
void
nsHostObjectProtocolHandler::RemoveDataEntries()
{
MOZ_ASSERT(XRE_IsContentProcess());
if (!gDataTable) {
return;
}
gDataTable->Clear();
delete gDataTable;
gDataTable = nullptr;
}
nsresult
nsHostObjectProtocolHandler::GenerateURIString(const nsACString &aScheme,
nsIPrincipal* aPrincipal,

View File

@ -60,6 +60,10 @@ public:
nsACString& aUri);
static void RemoveDataEntry(const nsACString& aUri,
bool aBroadcastToOTherProcesses = true);
// This is for IPC only.
static void RemoveDataEntries();
static nsIPrincipal* GetDataEntryPrincipal(const nsACString& aUri);
static void Traverse(const nsACString& aUri, nsCycleCollectionTraversalCallback& aCallback);

View File

@ -2243,6 +2243,8 @@ ContentChild::ActorDestroy(ActorDestroyReason why)
sFirstIdleTask->Cancel();
}
nsHostObjectProtocolHandler::RemoveDataEntries();
mAlertObservers.Clear();
mIdleObservers.Clear();