From a209298de2be7b3b61d243177ccba8aa20ab2e9c Mon Sep 17 00:00:00 2001 From: Matt Woodrow Date: Tue, 6 Aug 2019 17:30:05 +1000 Subject: [PATCH] Bug 1556489 - P7. Make LoadInfoArgsToLoadInfo works with LoadInfo class. r=mayhemer Differential Revision: https://phabricator.services.mozilla.com/D40964 --- ipc/glue/BackgroundUtils.cpp | 17 ++++++++++++++++- ipc/glue/BackgroundUtils.h | 7 +++++++ netwerk/base/LoadInfo.h | 9 +++++---- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/ipc/glue/BackgroundUtils.cpp b/ipc/glue/BackgroundUtils.cpp index 2a93933ed9d1..09c9d60a8ca3 100644 --- a/ipc/glue/BackgroundUtils.cpp +++ b/ipc/glue/BackgroundUtils.cpp @@ -596,10 +596,25 @@ nsresult LoadInfoArgsToLoadInfo( nsILoadInfo** outLoadInfo) { return LoadInfoArgsToLoadInfo(aOptionalLoadInfoArgs, nullptr, outLoadInfo); } - nsresult LoadInfoArgsToLoadInfo( const Maybe& aOptionalLoadInfoArgs, nsINode* aLoadingContext, nsILoadInfo** outLoadInfo) { + RefPtr loadInfo; + nsresult rv = LoadInfoArgsToLoadInfo(aOptionalLoadInfoArgs, aLoadingContext, + getter_AddRefs(loadInfo)); + NS_ENSURE_SUCCESS(rv, rv); + + loadInfo.forget(outLoadInfo); + return NS_OK; +} + +nsresult LoadInfoArgsToLoadInfo( + const Maybe& aOptionalLoadInfoArgs, LoadInfo** outLoadInfo) { + return LoadInfoArgsToLoadInfo(aOptionalLoadInfoArgs, nullptr, outLoadInfo); +} +nsresult LoadInfoArgsToLoadInfo( + const Maybe& aOptionalLoadInfoArgs, nsINode* aLoadingContext, + LoadInfo** outLoadInfo) { if (aOptionalLoadInfoArgs.isNothing()) { *outLoadInfo = nullptr; return NS_OK; diff --git a/ipc/glue/BackgroundUtils.h b/ipc/glue/BackgroundUtils.h index 55f25980f47a..183e6942a642 100644 --- a/ipc/glue/BackgroundUtils.h +++ b/ipc/glue/BackgroundUtils.h @@ -51,6 +51,7 @@ namespace mozilla { namespace net { class ChildLoadInfoForwarderArgs; class LoadInfoArgs; +class LoadInfo; class ParentLoadInfoForwarderArgs; class RedirectHistoryEntryInfo; } // namespace net @@ -136,6 +137,12 @@ nsresult LoadInfoArgsToLoadInfo( nsresult LoadInfoArgsToLoadInfo( const Maybe& aOptionalLoadInfoArgs, nsINode* aLoadingContext, nsILoadInfo** outLoadInfo); +nsresult LoadInfoArgsToLoadInfo( + const Maybe& aOptionalLoadInfoArgs, + mozilla::net::LoadInfo** outLoadInfo); +nsresult LoadInfoArgsToLoadInfo( + const Maybe& aOptionalLoadInfoArgs, + nsINode* aLoadingContext, mozilla::net::LoadInfo** outLoadInfo); /** * Fills ParentLoadInfoForwarderArgs with properties we want to carry to child diff --git a/netwerk/base/LoadInfo.h b/netwerk/base/LoadInfo.h index e33ea024326c..1e600af986ed 100644 --- a/netwerk/base/LoadInfo.h +++ b/netwerk/base/LoadInfo.h @@ -34,13 +34,14 @@ class XMLHttpRequestMainThread; namespace net { class LoadInfoArgs; +class LoadInfo; } // namespace net namespace ipc { // we have to forward declare that function so we can use it as a friend. -nsresult LoadInfoArgsToLoadInfo( - const Maybe& aLoadInfoArgs, - nsINode* aLoadingContext, nsILoadInfo** outLoadInfo); +nsresult LoadInfoArgsToLoadInfo(const Maybe& aLoadInfoArgs, + nsINode* aLoadingContext, + net::LoadInfo** outLoadInfo); } // namespace ipc namespace net { @@ -164,7 +165,7 @@ class LoadInfo final : public nsILoadInfo { friend nsresult mozilla::ipc::LoadInfoArgsToLoadInfo( const Maybe& aLoadInfoArgs, - nsINode* aLoadingContext, nsILoadInfo** outLoadInfo); + nsINode* aLoadingContext, net::LoadInfo** outLoadInfo); ~LoadInfo() = default;