Bug 1347379 - Don't bother searching for a newly generated UUID in the request context hashtable; r=mcmanus

This commit is contained in:
Ehsan Akhgari 2017-03-15 00:10:10 -04:00
parent 15bd78db3c
commit 5fcbc5ac5c
3 changed files with 18 additions and 10 deletions

View File

@ -181,16 +181,27 @@ RequestContextService::GetRequestContext(const nsID& rcID, nsIRequestContext **r
}
NS_IMETHODIMP
RequestContextService::NewRequestContextID(nsID *rcID)
RequestContextService::NewRequestContext(nsIRequestContext **rc)
{
MOZ_ASSERT(NS_IsMainThread());
NS_ENSURE_ARG_POINTER(rc);
*rc = nullptr;
nsresult rv;
if (!mUUIDGen) {
nsresult rv;
mUUIDGen = do_GetService("@mozilla.org/uuid-generator;1", &rv);
NS_ENSURE_SUCCESS(rv, rv);
}
return mUUIDGen->GenerateUUIDInPlace(rcID);
nsID rcID;
rv = mUUIDGen->GenerateUUIDInPlace(&rcID);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIRequestContext> newSC = new RequestContext(rcID);
mTable.Put(rcID, newSC);
newSC.swap(*rc);
return NS_OK;
}
NS_IMETHODIMP

View File

@ -84,9 +84,9 @@ interface nsIRequestContextService : nsISupports
nsIRequestContext getRequestContext(in nsIDRef id);
/**
* Create a new request context identifier
* Create a new request context
*/
nsID newRequestContextID();
nsIRequestContext newRequestContext();
/**
* Remove an existing request context from its ID

View File

@ -21,6 +21,7 @@
#include "nsIRequestContext.h"
#include "CacheObserver.h"
#include "MainThreadUtils.h"
#include "mozilla/Unused.h"
#include "mozilla/net/NeckoChild.h"
@ -1072,11 +1073,7 @@ nsresult nsLoadGroup::Init()
{
mRequestContextService = do_GetService("@mozilla.org/network/request-context-service;1");
if (mRequestContextService) {
nsID requestContextID;
if (NS_SUCCEEDED(mRequestContextService->NewRequestContextID(&requestContextID))) {
mRequestContextService->GetRequestContext(requestContextID,
getter_AddRefs(mRequestContext));
}
Unused << mRequestContextService->NewRequestContext(getter_AddRefs(mRequestContext));
}
return NS_OK;