Bug 1350680: Correctly handle null loadInfo in SubstituteChannel. r?ckerschb
MozReview-Commit-ID: 7aWuc874lTO
--- a/netwerk/protocol/res/ExtensionProtocolHandler.cpp
+++ b/netwerk/protocol/res/ExtensionProtocolHandler.cpp
@@ -148,21 +148,25 @@ ExtensionProtocolHandler::SubstituteChan
rv = NS_NewSimpleStreamListener(getter_AddRefs(listener), outputStream, observer);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIStreamListener> converter;
rv = convService->AsyncConvertData(kFromType, kToType, listener,
aURI, getter_AddRefs(converter));
NS_ENSURE_SUCCESS(rv, rv);
- nsCOMPtr<nsILoadInfo> loadInfo =
- static_cast<LoadInfo*>(aLoadInfo)->CloneForNewRequest();
- (*result)->SetLoadInfo(loadInfo);
+ if (aLoadInfo) {
+ nsCOMPtr<nsILoadInfo> loadInfo =
+ static_cast<LoadInfo*>(aLoadInfo)->CloneForNewRequest();
+ (*result)->SetLoadInfo(loadInfo);
- rv = (*result)->AsyncOpen2(converter);
+ rv = (*result)->AsyncOpen2(converter);
+ } else {
+ rv = (*result)->AsyncOpen(converter, nullptr);
+ }
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIChannel> channel;
rv = NS_NewInputStreamChannelInternal(getter_AddRefs(channel), aURI, inputStream,
NS_LITERAL_CSTRING("text/css"),
NS_LITERAL_CSTRING("utf-8"),
aLoadInfo);
NS_ENSURE_SUCCESS(rv, rv);