Bug 1087442 - Attach LoadInfo inside each individual ProtocolHandler - chrome/ changes (r=sicking)

This commit is contained in:
Christoph Kerschbaumer 2014-12-11 20:45:43 -08:00
parent cb9582d54a
commit 4e8b56cef2

View File

@ -100,7 +100,7 @@ nsChromeProtocolHandler::NewURI(const nsACString &aSpec,
NS_IMETHODIMP
nsChromeProtocolHandler::NewChannel2(nsIURI* aURI,
nsILoadInfo* aLoadinfo,
nsILoadInfo* aLoadInfo,
nsIChannel** aResult)
{
nsresult rv;
@ -147,12 +147,22 @@ nsChromeProtocolHandler::NewChannel2(nsIURI* aURI,
return rv;
}
nsCOMPtr<nsIIOService> ioServ(do_GetIOService(&rv));
// Bug 1087720 (and Bug 1099296):
// Once all callsites have been updated to call NewChannel2() instead of NewChannel()
// we should have a non-null loadInfo consistently. Until then we have to branch on the
// loadInfo.
if (aLoadInfo) {
rv = NS_NewChannelInternal(getter_AddRefs(result),
resolvedURI,
aLoadInfo);
}
else {
nsCOMPtr<nsIIOService> ioServ(do_GetIOService(&rv));
NS_ENSURE_SUCCESS(rv, rv);
rv = ioServ->NewChannelFromURI(resolvedURI, getter_AddRefs(result));
}
NS_ENSURE_SUCCESS(rv, rv);
rv = ioServ->NewChannelFromURI(resolvedURI, getter_AddRefs(result));
if (NS_FAILED(rv)) return rv;
#ifdef DEBUG
nsCOMPtr<nsIFileChannel> fileChan(do_QueryInterface(result));
if (fileChan) {