Bug 1416193 - Cloned nsHostObjectURI objects should be stored together with their BlobImpl by nsHostObjectProtocolHandler, r=valentin

This commit is contained in:
Andrea Marchesini 2017-11-14 00:22:54 +01:00
Родитель 6232db29bd
Коммит e50200ef65
3 изменённых файлов: 18 добавлений и 0 удалений

Просмотреть файл

@ -913,6 +913,18 @@ nsFontTableProtocolHandler::GetScheme(nsACString &result)
return NS_OK;
}
/* static */ void
nsHostObjectProtocolHandler::StoreClonedURI(const nsACString& aSpec,
nsIURI* aURI)
{
MOZ_ASSERT(aURI);
DataInfo* info = GetDataInfo(aSpec);
if (info) {
info->mURIs.AppendElement(do_GetWeakReference(aURI));
}
}
nsresult
NS_GetBlobForBlobURI(nsIURI* aURI, BlobImpl** aBlob)
{

Просмотреть файл

@ -89,6 +89,9 @@ public:
GetAllBlobURLEntries(nsTArray<mozilla::dom::BlobURLRegistrationData>& aRegistrations,
mozilla::dom::ContentParent* aCP);
// This is for nsHostObjectURI.
static void StoreClonedURI(const nsACString& aSpec, nsIURI* aURI);
protected:
virtual ~nsHostObjectProtocolHandler() {}

Просмотреть файл

@ -187,6 +187,9 @@ nsHostObjectURI::CloneInternal(mozilla::net::nsSimpleURI::RefHandlingEnum aRefHa
u->mPrincipal = mPrincipal;
u->mBlobImpl = mBlobImpl;
nsHostObjectProtocolHandler::StoreClonedURI(newRef, simpleClone);
NS_TryToSetImmutable(simpleClone);
simpleClone.forget(aClone);
return NS_OK;
}