Skip to content

Commit 98f7137

Browse files
committed
Backed out changeset 05857d2111ba (bug 1842754) for causing build bustages on BackgroundUtils.cpp. CLOSED TREE
1 parent 438c14d commit 98f7137

29 files changed

+123
-87
lines changed

dom/ipc/ContentChild.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4284,12 +4284,16 @@ mozilla::ipc::IPCResult ContentChild::RecvScriptError(
42844284
}
42854285

42864286
mozilla::ipc::IPCResult ContentChild::RecvReportFrameTimingData(
4287-
const LoadInfoArgs& loadInfoArgs, const nsString& entryName,
4287+
const mozilla::Maybe<LoadInfoArgs>& loadInfoArgs, const nsString& entryName,
42884288
const nsString& initiatorType, UniquePtr<PerformanceTimingData>&& aData) {
42894289
if (!aData) {
42904290
return IPC_FAIL(this, "aData should not be null");
42914291
}
42924292

4293+
if (loadInfoArgs.isNothing()) {
4294+
return IPC_FAIL(this, "loadInfoArgs should not be null");
4295+
}
4296+
42934297
nsCOMPtr<nsILoadInfo> loadInfo;
42944298
nsresult rv = mozilla::ipc::LoadInfoArgsToLoadInfo(
42954299
loadInfoArgs, NOT_REMOTE_TYPE, getter_AddRefs(loadInfo));

dom/ipc/ContentChild.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -729,8 +729,9 @@ class ContentChild final : public PContentChild,
729729
const uint64_t& aInnerWindowId, const bool& aFromChromeContext);
730730

731731
mozilla::ipc::IPCResult RecvReportFrameTimingData(
732-
const LoadInfoArgs& loadInfoArgs, const nsString& entryName,
733-
const nsString& initiatorType, UniquePtr<PerformanceTimingData>&& aData);
732+
const mozilla::Maybe<LoadInfoArgs>& loadInfoArgs,
733+
const nsString& entryName, const nsString& initiatorType,
734+
UniquePtr<PerformanceTimingData>&& aData);
734735

735736
mozilla::ipc::IPCResult RecvLoadURI(
736737
const MaybeDiscarded<BrowsingContext>& aContext,

dom/ipc/ContentParent.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4709,7 +4709,7 @@ mozilla::ipc::IPCResult ContentParent::RecvAddSecurityState(
47094709

47104710
already_AddRefed<PExternalHelperAppParent>
47114711
ContentParent::AllocPExternalHelperAppParent(
4712-
nsIURI* uri, const mozilla::net::LoadInfoArgs& aLoadInfoArgs,
4712+
nsIURI* uri, const Maybe<mozilla::net::LoadInfoArgs>& aLoadInfoArgs,
47134713
const nsACString& aMimeContentType, const nsACString& aContentDisposition,
47144714
const uint32_t& aContentDispositionHint,
47154715
const nsAString& aContentDispositionFilename, const bool& aForceSave,
@@ -4724,7 +4724,7 @@ ContentParent::AllocPExternalHelperAppParent(
47244724

47254725
mozilla::ipc::IPCResult ContentParent::RecvPExternalHelperAppConstructor(
47264726
PExternalHelperAppParent* actor, nsIURI* uri,
4727-
const LoadInfoArgs& loadInfoArgs, const nsACString& aMimeContentType,
4727+
const Maybe<LoadInfoArgs>& loadInfoArgs, const nsACString& aMimeContentType,
47284728
const nsACString& aContentDisposition,
47294729
const uint32_t& aContentDispositionHint,
47304730
const nsAString& aContentDispositionFilename, const bool& aForceSave,
@@ -5073,14 +5073,19 @@ mozilla::ipc::IPCResult ContentParent::RecvConsoleMessage(
50735073
}
50745074

50755075
mozilla::ipc::IPCResult ContentParent::RecvReportFrameTimingData(
5076-
const LoadInfoArgs& loadInfoArgs, const nsAString& entryName,
5077-
const nsAString& initiatorType, UniquePtr<PerformanceTimingData>&& aData) {
5076+
const mozilla::Maybe<LoadInfoArgs>& loadInfoArgs,
5077+
const nsAString& entryName, const nsAString& initiatorType,
5078+
UniquePtr<PerformanceTimingData>&& aData) {
50785079
if (!aData) {
50795080
return IPC_FAIL(this, "aData should not be null");
50805081
}
50815082

5083+
if (loadInfoArgs.isNothing()) {
5084+
return IPC_FAIL(this, "loadInfoArgs should not be null");
5085+
}
5086+
50825087
RefPtr<WindowGlobalParent> parent =
5083-
WindowGlobalParent::GetByInnerWindowId(loadInfoArgs.innerWindowID());
5088+
WindowGlobalParent::GetByInnerWindowId(loadInfoArgs->innerWindowID());
50845089
if (!parent || !parent->GetContentParent()) {
50855090
return IPC_OK();
50865091
}

dom/ipc/ContentParent.h

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -938,7 +938,7 @@ class ContentParent final : public PContentParent,
938938
bool DeallocPScriptCacheParent(PScriptCacheParent* shell);
939939

940940
already_AddRefed<PExternalHelperAppParent> AllocPExternalHelperAppParent(
941-
nsIURI* aUri, const mozilla::net::LoadInfoArgs& aLoadInfoArgs,
941+
nsIURI* aUri, const Maybe<mozilla::net::LoadInfoArgs>& aLoadInfoArgs,
942942
const nsACString& aMimeContentType, const nsACString& aContentDisposition,
943943
const uint32_t& aContentDispositionHint,
944944
const nsAString& aContentDispositionFilename, const bool& aForceSave,
@@ -948,8 +948,8 @@ class ContentParent final : public PContentParent,
948948

949949
mozilla::ipc::IPCResult RecvPExternalHelperAppConstructor(
950950
PExternalHelperAppParent* actor, nsIURI* uri,
951-
const LoadInfoArgs& loadInfoArgs, const nsACString& aMimeContentType,
952-
const nsACString& aContentDisposition,
951+
const Maybe<LoadInfoArgs>& loadInfoArgs,
952+
const nsACString& aMimeContentType, const nsACString& aContentDisposition,
953953
const uint32_t& aContentDispositionHint,
954954
const nsAString& aContentDispositionFilename, const bool& aForceSave,
955955
const int64_t& aContentLength, const bool& aWasFileChannel,
@@ -1073,8 +1073,9 @@ class ContentParent final : public PContentParent,
10731073
const uint64_t& aInnerWindowId, const bool& aIsFromChromeContext);
10741074

10751075
mozilla::ipc::IPCResult RecvReportFrameTimingData(
1076-
const LoadInfoArgs& loadInfoArgs, const nsAString& entryName,
1077-
const nsAString& initiatorType, UniquePtr<PerformanceTimingData>&& aData);
1076+
const mozilla::Maybe<LoadInfoArgs>& loadInfoArgs,
1077+
const nsAString& entryName, const nsAString& initiatorType,
1078+
UniquePtr<PerformanceTimingData>&& aData);
10781079

10791080
mozilla::ipc::IPCResult RecvScriptErrorWithStack(
10801081
const nsAString& aMessage, const nsAString& aSourceName,

dom/ipc/PContent.ipdl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,7 +1185,7 @@ parent:
11851185
// Pass true for aShouldCloseWindow to specify that aContext was opened specifically
11861186
// for this load, and should be closed once we've handled it.
11871187
async PExternalHelperApp(nullable nsIURI uri,
1188-
LoadInfoArgs loadInfoArgs,
1188+
LoadInfoArgs? loadInfoArgs,
11891189
nsCString aMimeContentType,
11901190
nsCString aContentDisposition,
11911191
uint32_t aContentDispositionHint,
@@ -1851,7 +1851,7 @@ both:
18511851
* loadInfo is passed in order to enforce same-origin security checks
18521852
* aData must be non-null.
18531853
*/
1854-
async ReportFrameTimingData(LoadInfoArgs loadInfo, nsString entryName,
1854+
async ReportFrameTimingData(LoadInfoArgs? loadInfo, nsString entryName,
18551855
nsString initiatorType,
18561856
UniquePtr<PerformanceTimingData> aData);
18571857

dom/media/webrtc/jsapi/PeerConnectionImpl.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4623,11 +4623,11 @@ std::unique_ptr<NrSocketProxyConfig> PeerConnectionImpl::GetProxyConfig()
46234623
new net::LoadInfo(doc->NodePrincipal(), doc->NodePrincipal(), doc, 0,
46244624
nsIContentPolicy::TYPE_INVALID);
46254625

4626-
net::LoadInfoArgs loadInfoArgs;
4626+
Maybe<net::LoadInfoArgs> loadInfoArgs;
46274627
MOZ_ALWAYS_SUCCEEDS(
46284628
mozilla::ipc::LoadInfoToLoadInfoArgs(loadInfo, &loadInfoArgs));
46294629
return std::unique_ptr<NrSocketProxyConfig>(new NrSocketProxyConfig(
4630-
net::WebrtcProxyConfig(id, alpn, loadInfoArgs, mForceProxy)));
4630+
net::WebrtcProxyConfig(id, alpn, *loadInfoArgs, mForceProxy)));
46314631
}
46324632

46334633
std::map<uint64_t, PeerConnectionAutoTimer>

dom/media/webrtc/transport/ipc/WebrtcTCPSocket.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -399,15 +399,16 @@ nsresult WebrtcTCPSocket::OpenWithHttpProxy() {
399399
}
400400

401401
nsCOMPtr<nsILoadInfo> loadInfo;
402+
Maybe<net::LoadInfoArgs> loadInfoArgs = Some(mProxyConfig->loadInfoArgs());
402403

403404
// FIXME: We don't know the remote type of the process which provided these
404405
// LoadInfoArgs. Pass in `NOT_REMOTE_TYPE` as the origin process to blindly
405406
// accept whatever value was passed by the other side for now, as we aren't
406407
// using it for security checks here.
407408
// If this code ever starts checking the triggering remote type, this needs to
408409
// be changed.
409-
rv = ipc::LoadInfoArgsToLoadInfo(mProxyConfig->loadInfoArgs(),
410-
NOT_REMOTE_TYPE, getter_AddRefs(loadInfo));
410+
rv = ipc::LoadInfoArgsToLoadInfo(loadInfoArgs, NOT_REMOTE_TYPE,
411+
getter_AddRefs(loadInfo));
411412
if (NS_FAILED(rv)) {
412413
LOG(("WebrtcTCPSocket %p: could not init load info\n", this));
413414
return rv;

ipc/glue/BackgroundUtils.cpp

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,7 @@ nsresult RHEntryToRHEntryInfo(nsIRedirectHistoryEntry* aRHEntry,
399399
}
400400

401401
nsresult LoadInfoToLoadInfoArgs(nsILoadInfo* aLoadInfo,
402-
LoadInfoArgs* outLoadInfoArgs) {
402+
Maybe<LoadInfoArgs>* aOptionalLoadInfoArgs) {
403403
nsresult rv = NS_OK;
404404
Maybe<PrincipalInfo> loadingPrincipalInfo;
405405
if (nsIPrincipal* loadingPrin = aLoadInfo->GetLoadingPrincipal()) {
@@ -541,7 +541,7 @@ nsresult LoadInfoToLoadInfoArgs(nsILoadInfo* aLoadInfo,
541541
redirectChain, interceptionInfo->FromThirdParty()));
542542
}
543543

544-
*aLoadInfoArgs = LoadInfoArgs(
544+
*aOptionalLoadInfoArgs = Some(LoadInfoArgs(
545545
loadingPrincipalInfo, triggeringPrincipalInfo, principalToInheritInfo,
546546
topLevelPrincipalInfo, optionalResultPrincipalURI, triggeringRemoteType,
547547
aLoadInfo->GetSandboxedNullPrincipalID(), aLoadInfo->GetSecurityFlags(),
@@ -584,23 +584,23 @@ nsresult LoadInfoToLoadInfoArgs(nsILoadInfo* aLoadInfo,
584584
aLoadInfo->GetStoragePermission(), aLoadInfo->GetIsMetaRefresh(),
585585
aLoadInfo->GetLoadingEmbedderPolicy(),
586586
aLoadInfo->GetIsOriginTrialCoepCredentiallessEnabledForTopLevel(),
587-
unstrippedURI, interceptionInfoArg);
587+
unstrippedURI, interceptionInfoArg));
588588

589589
return NS_OK;
590590
}
591591

592-
nsresult LoadInfoArgsToLoadInfo(const LoadInfoArgs& aLoadInfoArgs,
593-
const nsACString& aOriginRemoteType,
594-
nsILoadInfo** outLoadInfo) {
595-
return LoadInfoArgsToLoadInfo(aLoadInfoArgs, aOriginRemoteType, nullptr,
596-
outLoadInfo);
592+
nsresult LoadInfoArgsToLoadInfo(
593+
const Maybe<LoadInfoArgs>& aOptionalLoadInfoArgs,
594+
const nsACString& aOriginRemoteType, nsILoadInfo** outLoadInfo) {
595+
return LoadInfoArgsToLoadInfo(aOptionalLoadInfoArgs, aOriginRemoteType,
596+
nullptr, outLoadInfo);
597597
}
598-
nsresult LoadInfoArgsToLoadInfo(const LoadInfoArgs& aLoadInfoArgs,
599-
const nsACString& aOriginRemoteType,
600-
nsINode* aCspToInheritLoadingContext,
601-
nsILoadInfo** outLoadInfo) {
598+
nsresult LoadInfoArgsToLoadInfo(
599+
const Maybe<LoadInfoArgs>& aOptionalLoadInfoArgs,
600+
const nsACString& aOriginRemoteType, nsINode* aCspToInheritLoadingContext,
601+
nsILoadInfo** outLoadInfo) {
602602
RefPtr<LoadInfo> loadInfo;
603-
nsresult rv = LoadInfoArgsToLoadInfo(aLoadInfoArgs, aOriginRemoteType,
603+
nsresult rv = LoadInfoArgsToLoadInfo(aOptionalLoadInfoArgs, aOriginRemoteType,
604604
aCspToInheritLoadingContext,
605605
getter_AddRefs(loadInfo));
606606
NS_ENSURE_SUCCESS(rv, rv);
@@ -609,16 +609,23 @@ nsresult LoadInfoArgsToLoadInfo(const LoadInfoArgs& aLoadInfoArgs,
609609
return NS_OK;
610610
}
611611

612-
nsresult LoadInfoArgsToLoadInfo(const LoadInfoArgs& aLoadInfoArgs,
613-
const nsACString& aOriginRemoteType,
614-
LoadInfo** outLoadInfo) {
615-
return LoadInfoArgsToLoadInfo(aLoadInfoArgs, aOriginRemoteType, nullptr,
616-
outLoadInfo);
612+
nsresult LoadInfoArgsToLoadInfo(
613+
const Maybe<LoadInfoArgs>& aOptionalLoadInfoArgs,
614+
const nsACString& aOriginRemoteType, LoadInfo** outLoadInfo) {
615+
return LoadInfoArgsToLoadInfo(aOptionalLoadInfoArgs, aOriginRemoteType,
616+
nullptr, outLoadInfo);
617617
}
618-
nsresult LoadInfoArgsToLoadInfo(const LoadInfoArgs& loadInfoArgs,
619-
const nsACString& aOriginRemoteType,
620-
nsINode* aCspToInheritLoadingContext,
621-
LoadInfo** outLoadInfo) {
618+
nsresult LoadInfoArgsToLoadInfo(
619+
const Maybe<LoadInfoArgs>& aOptionalLoadInfoArgs,
620+
const nsACString& aOriginRemoteType, nsINode* aCspToInheritLoadingContext,
621+
LoadInfo** outLoadInfo) {
622+
if (aOptionalLoadInfoArgs.isNothing()) {
623+
*outLoadInfo = nullptr;
624+
return NS_OK;
625+
}
626+
627+
const LoadInfoArgs& loadInfoArgs = aOptionalLoadInfoArgs.ref();
628+
622629
nsCOMPtr<nsIPrincipal> loadingPrincipal;
623630
if (loadInfoArgs.requestingPrincipalInfo().isSome()) {
624631
auto loadingPrincipalOrErr =

ipc/glue/BackgroundUtils.h

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -135,26 +135,27 @@ nsresult RHEntryToRHEntryInfo(
135135
/**
136136
* Convert a LoadInfo to LoadInfoArgs struct.
137137
*/
138-
nsresult LoadInfoToLoadInfoArgs(nsILoadInfo* aLoadInfo,
139-
mozilla::net::LoadInfoArgs* outLoadInfoArgs);
138+
nsresult LoadInfoToLoadInfoArgs(
139+
nsILoadInfo* aLoadInfo,
140+
Maybe<mozilla::net::LoadInfoArgs>* outOptionalLoadInfoArgs);
140141

141142
/**
142143
* Convert LoadInfoArgs to a LoadInfo.
143144
*/
144-
nsresult LoadInfoArgsToLoadInfo(const mozilla::net::LoadInfoArgs& aLoadInfoArgs,
145-
const nsACString& aOriginRemoteType,
146-
nsILoadInfo** outLoadInfo);
147-
nsresult LoadInfoArgsToLoadInfo(const mozilla::net::LoadInfoArgs& aLoadInfoArgs,
148-
const nsACString& aOriginRemoteType,
149-
nsINode* aCspToInheritLoadingContext,
150-
nsILoadInfo** outLoadInfo);
151-
nsresult LoadInfoArgsToLoadInfo(const net::LoadInfoArgs& aLoadInfoArgs,
152-
const nsACString& aOriginRemoteType,
153-
mozilla::net::LoadInfo** outLoadInfo);
154-
nsresult LoadInfoArgsToLoadInfo(const net::LoadInfoArgs& aLoadInfoArgs,
155-
const nsACString& aOriginRemoteType,
156-
nsINode* aCspToInheritLoadingContext,
157-
mozilla::net::LoadInfo** outLoadInfo);
145+
nsresult LoadInfoArgsToLoadInfo(
146+
const Maybe<mozilla::net::LoadInfoArgs>& aOptionalLoadInfoArgs,
147+
const nsACString& aOriginRemoteType, nsILoadInfo** outLoadInfo);
148+
nsresult LoadInfoArgsToLoadInfo(
149+
const Maybe<mozilla::net::LoadInfoArgs>& aOptionalLoadInfoArgs,
150+
const nsACString& aOriginRemoteType, nsINode* aCspToInheritLoadingContext,
151+
nsILoadInfo** outLoadInfo);
152+
nsresult LoadInfoArgsToLoadInfo(
153+
const Maybe<net::LoadInfoArgs>& aOptionalLoadInfoArgs,
154+
const nsACString& aOriginRemoteType, mozilla::net::LoadInfo** outLoadInfo);
155+
nsresult LoadInfoArgsToLoadInfo(
156+
const Maybe<net::LoadInfoArgs>& aOptionalLoadInfoArgs,
157+
const nsACString& aOriginRemoteType, nsINode* aCspToInheritLoadingContext,
158+
mozilla::net::LoadInfo** outLoadInfo);
158159

159160
/**
160161
* Fills ParentLoadInfoForwarderArgs with properties we want to carry to child

netwerk/base/LoadInfo.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ class LoadInfo;
4343

4444
namespace ipc {
4545
// we have to forward declare that function so we can use it as a friend.
46-
nsresult LoadInfoArgsToLoadInfo(const mozilla::net::LoadInfoArgs& aLoadInfoArgs,
47-
const nsACString& aOriginRemoteType,
48-
nsINode* aCspToInheritLoadingContext,
49-
net::LoadInfo** outLoadInfo);
46+
nsresult LoadInfoArgsToLoadInfo(
47+
const Maybe<mozilla::net::LoadInfoArgs>& aLoadInfoArgs,
48+
const nsACString& aOriginRemoteType, nsINode* aCspToInheritLoadingContext,
49+
net::LoadInfo** outLoadInfo);
5050
} // namespace ipc
5151

5252
namespace net {
@@ -252,7 +252,7 @@ class LoadInfo final : public nsILoadInfo {
252252
const RedirectHistoryArray& aArra);
253253

254254
friend nsresult mozilla::ipc::LoadInfoArgsToLoadInfo(
255-
const mozilla::net::LoadInfoArgs& aLoadInfoArgs,
255+
const Maybe<mozilla::net::LoadInfoArgs>& aLoadInfoArgs,
256256
const nsACString& aOriginRemoteType, nsINode* aCspToInheritLoadingContext,
257257
net::LoadInfo** outLoadInfo);
258258

netwerk/ipc/DocumentLoadListener.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2135,6 +2135,13 @@ DocumentLoadListener::RedirectToRealChannel(
21352135
args.timing() = std::move(mTiming);
21362136
}
21372137

2138+
auto loadInfo = args.loadInfo();
2139+
2140+
if (loadInfo.isNothing()) {
2141+
return PDocumentChannelParent::RedirectToRealChannelPromise::
2142+
CreateAndReject(ipc::ResponseRejectReason::SendError, __func__);
2143+
}
2144+
21382145
cp->TransmitBlobDataIfBlobURL(args.uri());
21392146

21402147
if (CanonicalBrowsingContext* bc = GetDocumentBrowsingContext()) {

netwerk/ipc/NeckoChannelParams.ipdlh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ struct HttpChannelOpenArgs
328328
nsCString contentTypeHint;
329329
nsString integrityMetadata;
330330
IPCStream? uploadStream;
331-
LoadInfoArgs loadInfo;
331+
LoadInfoArgs? loadInfo;
332332
uint32_t loadFlags;
333333
uint32_t thirdPartyFlags;
334334
uint32_t tlsFlags;
@@ -478,7 +478,7 @@ struct RedirectToRealChannelArgs {
478478
nullable nsIURI uri;
479479
uint32_t newLoadFlags;
480480
ReplacementChannelConfigInit? init;
481-
LoadInfoArgs loadInfo;
481+
LoadInfoArgs? loadInfo;
482482
uint64_t channelId;
483483
nullable nsIURI originalURI;
484484
uint32_t redirectMode;
@@ -585,7 +585,7 @@ struct GIOChannelOpenArgs
585585
uint64_t startPos;
586586
nsCString entityID;
587587
IPCStream? uploadStream;
588-
LoadInfoArgs loadInfo;
588+
LoadInfoArgs? loadInfo;
589589
uint32_t loadFlags;
590590
};
591591

netwerk/ipc/NeckoParent.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,14 @@ static PBOverrideStatus PBOverrideStatusFromLoadContext(
9393
}
9494

9595
static already_AddRefed<nsIPrincipal> GetRequestingPrincipal(
96-
const LoadInfoArgs& aLoadInfoArgs) {
96+
const Maybe<LoadInfoArgs>& aOptionalLoadInfoArgs) {
97+
if (aOptionalLoadInfoArgs.isNothing()) {
98+
return nullptr;
99+
}
100+
101+
const LoadInfoArgs& loadInfoArgs = aOptionalLoadInfoArgs.ref();
97102
const Maybe<PrincipalInfo>& optionalPrincipalInfo =
98-
aLoadInfoArgs.requestingPrincipalInfo();
103+
loadInfoArgs.requestingPrincipalInfo();
99104

100105
if (optionalPrincipalInfo.isNothing()) {
101106
return nullptr;
@@ -789,7 +794,7 @@ mozilla::ipc::IPCResult NeckoParent::RecvEnsureHSTSData(
789794
}
790795

791796
mozilla::ipc::IPCResult NeckoParent::RecvGetPageThumbStream(
792-
nsIURI* aURI, const LoadInfoArgs& aLoadInfoArgs,
797+
nsIURI* aURI, const Maybe<LoadInfoArgs>& aLoadInfoArgs,
793798
GetPageThumbStreamResolver&& aResolver) {
794799
// Only the privileged about content process is allowed to access
795800
// things over the moz-page-thumb protocol. Any other content process
@@ -834,7 +839,7 @@ mozilla::ipc::IPCResult NeckoParent::RecvGetPageThumbStream(
834839
}
835840

836841
mozilla::ipc::IPCResult NeckoParent::RecvGetPageIconStream(
837-
nsIURI* aURI, const LoadInfoArgs& aLoadInfoArgs,
842+
nsIURI* aURI, const Maybe<LoadInfoArgs>& aLoadInfoArgs,
838843
GetPageIconStreamResolver&& aResolver) {
839844
#ifdef MOZ_PLACES
840845
const nsACString& remoteType =
@@ -850,6 +855,10 @@ mozilla::ipc::IPCResult NeckoParent::RecvGetPageIconStream(
850855
return IPC_FAIL(this, "Wrong process type");
851856
}
852857

858+
if (aLoadInfoArgs.isNothing()) {
859+
return IPC_FAIL(this, "Page-icon request must include loadInfo");
860+
}
861+
853862
nsCOMPtr<nsILoadInfo> loadInfo;
854863
nsresult rv = mozilla::ipc::LoadInfoArgsToLoadInfo(aLoadInfoArgs, remoteType,
855864
getter_AddRefs(loadInfo));

0 commit comments

Comments
 (0)