Skip to content

Commit 43f8338

Browse files
committed
Bug 1842754 - Make LoadInfoArgs non-optional over IPC r=necko-reviewers,jesup
This makes all occurences of LoadInfoArgs non-optional also when converting between nsILoadInfo in BackgroundUtils.h. Differential Revision: https://phabricator.services.mozilla.com/D185299
1 parent 74e150f commit 43f8338

29 files changed

+87
-123
lines changed

dom/ipc/ContentChild.cpp

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

42864286
mozilla::ipc::IPCResult ContentChild::RecvReportFrameTimingData(
4287-
const mozilla::Maybe<LoadInfoArgs>& loadInfoArgs, const nsString& entryName,
4287+
const 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-
42974293
nsCOMPtr<nsILoadInfo> loadInfo;
42984294
nsresult rv = mozilla::ipc::LoadInfoArgsToLoadInfo(
42994295
loadInfoArgs, NOT_REMOTE_TYPE, getter_AddRefs(loadInfo));

dom/ipc/ContentChild.h

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

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

736735
mozilla::ipc::IPCResult RecvLoadURI(
737736
const MaybeDiscarded<BrowsingContext>& aContext,

dom/ipc/ContentParent.cpp

Lines changed: 5 additions & 10 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 Maybe<mozilla::net::LoadInfoArgs>& aLoadInfoArgs,
4712+
nsIURI* uri, const 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 Maybe<LoadInfoArgs>& loadInfoArgs, const nsACString& aMimeContentType,
4727+
const LoadInfoArgs& loadInfoArgs, const nsACString& aMimeContentType,
47284728
const nsACString& aContentDisposition,
47294729
const uint32_t& aContentDispositionHint,
47304730
const nsAString& aContentDispositionFilename, const bool& aForceSave,
@@ -5073,19 +5073,14 @@ mozilla::ipc::IPCResult ContentParent::RecvConsoleMessage(
50735073
}
50745074

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

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

dom/ipc/ContentParent.h

Lines changed: 5 additions & 6 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 Maybe<mozilla::net::LoadInfoArgs>& aLoadInfoArgs,
941+
nsIURI* aUri, const 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 Maybe<LoadInfoArgs>& loadInfoArgs,
952-
const nsACString& aMimeContentType, const nsACString& aContentDisposition,
951+
const LoadInfoArgs& loadInfoArgs, const nsACString& aMimeContentType,
952+
const nsACString& aContentDisposition,
953953
const uint32_t& aContentDispositionHint,
954954
const nsAString& aContentDispositionFilename, const bool& aForceSave,
955955
const int64_t& aContentLength, const bool& aWasFileChannel,
@@ -1073,9 +1073,8 @@ class ContentParent final : public PContentParent,
10731073
const uint64_t& aInnerWindowId, const bool& aIsFromChromeContext);
10741074

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

10801079
mozilla::ipc::IPCResult RecvScriptErrorWithStack(
10811080
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
@@ -4616,11 +4616,11 @@ std::unique_ptr<NrSocketProxyConfig> PeerConnectionImpl::GetProxyConfig()
46164616
new net::LoadInfo(doc->NodePrincipal(), doc->NodePrincipal(), doc, 0,
46174617
nsIContentPolicy::TYPE_INVALID);
46184618

4619-
Maybe<net::LoadInfoArgs> loadInfoArgs;
4619+
net::LoadInfoArgs loadInfoArgs;
46204620
MOZ_ALWAYS_SUCCEEDS(
46214621
mozilla::ipc::LoadInfoToLoadInfoArgs(loadInfo, &loadInfoArgs));
46224622
return std::unique_ptr<NrSocketProxyConfig>(new NrSocketProxyConfig(
4623-
net::WebrtcProxyConfig(id, alpn, *loadInfoArgs, mForceProxy)));
4623+
net::WebrtcProxyConfig(id, alpn, loadInfoArgs, mForceProxy)));
46244624
}
46254625

46264626
std::map<uint64_t, PeerConnectionAutoTimer>

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

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

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

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

ipc/glue/BackgroundUtils.cpp

Lines changed: 22 additions & 29 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-
Maybe<LoadInfoArgs>* aOptionalLoadInfoArgs) {
402+
LoadInfoArgs* outLoadInfoArgs) {
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-
*aOptionalLoadInfoArgs = Some(LoadInfoArgs(
544+
*outLoadInfoArgs = 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(
593-
const Maybe<LoadInfoArgs>& aOptionalLoadInfoArgs,
594-
const nsACString& aOriginRemoteType, nsILoadInfo** outLoadInfo) {
595-
return LoadInfoArgsToLoadInfo(aOptionalLoadInfoArgs, aOriginRemoteType,
596-
nullptr, outLoadInfo);
592+
nsresult LoadInfoArgsToLoadInfo(const LoadInfoArgs& aLoadInfoArgs,
593+
const nsACString& aOriginRemoteType,
594+
nsILoadInfo** outLoadInfo) {
595+
return LoadInfoArgsToLoadInfo(aLoadInfoArgs, aOriginRemoteType, nullptr,
596+
outLoadInfo);
597597
}
598-
nsresult LoadInfoArgsToLoadInfo(
599-
const Maybe<LoadInfoArgs>& aOptionalLoadInfoArgs,
600-
const nsACString& aOriginRemoteType, nsINode* aCspToInheritLoadingContext,
601-
nsILoadInfo** outLoadInfo) {
598+
nsresult LoadInfoArgsToLoadInfo(const LoadInfoArgs& aLoadInfoArgs,
599+
const nsACString& aOriginRemoteType,
600+
nsINode* aCspToInheritLoadingContext,
601+
nsILoadInfo** outLoadInfo) {
602602
RefPtr<LoadInfo> loadInfo;
603-
nsresult rv = LoadInfoArgsToLoadInfo(aOptionalLoadInfoArgs, aOriginRemoteType,
603+
nsresult rv = LoadInfoArgsToLoadInfo(aLoadInfoArgs, aOriginRemoteType,
604604
aCspToInheritLoadingContext,
605605
getter_AddRefs(loadInfo));
606606
NS_ENSURE_SUCCESS(rv, rv);
@@ -609,23 +609,16 @@ nsresult LoadInfoArgsToLoadInfo(
609609
return NS_OK;
610610
}
611611

612-
nsresult LoadInfoArgsToLoadInfo(
613-
const Maybe<LoadInfoArgs>& aOptionalLoadInfoArgs,
614-
const nsACString& aOriginRemoteType, LoadInfo** outLoadInfo) {
615-
return LoadInfoArgsToLoadInfo(aOptionalLoadInfoArgs, aOriginRemoteType,
616-
nullptr, outLoadInfo);
612+
nsresult LoadInfoArgsToLoadInfo(const LoadInfoArgs& aLoadInfoArgs,
613+
const nsACString& aOriginRemoteType,
614+
LoadInfo** outLoadInfo) {
615+
return LoadInfoArgsToLoadInfo(aLoadInfoArgs, aOriginRemoteType, nullptr,
616+
outLoadInfo);
617617
}
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-
618+
nsresult LoadInfoArgsToLoadInfo(const LoadInfoArgs& loadInfoArgs,
619+
const nsACString& aOriginRemoteType,
620+
nsINode* aCspToInheritLoadingContext,
621+
LoadInfo** outLoadInfo) {
629622
nsCOMPtr<nsIPrincipal> loadingPrincipal;
630623
if (loadInfoArgs.requestingPrincipalInfo().isSome()) {
631624
auto loadingPrincipalOrErr =

ipc/glue/BackgroundUtils.h

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

142141
/**
143142
* Convert LoadInfoArgs to a LoadInfo.
144143
*/
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);
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);
159158

160159
/**
161160
* 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(
47-
const Maybe<mozilla::net::LoadInfoArgs>& aLoadInfoArgs,
48-
const nsACString& aOriginRemoteType, nsINode* aCspToInheritLoadingContext,
49-
net::LoadInfo** outLoadInfo);
46+
nsresult LoadInfoArgsToLoadInfo(const mozilla::net::LoadInfoArgs& aLoadInfoArgs,
47+
const nsACString& aOriginRemoteType,
48+
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 Maybe<mozilla::net::LoadInfoArgs>& aLoadInfoArgs,
255+
const mozilla::net::LoadInfoArgs& aLoadInfoArgs,
256256
const nsACString& aOriginRemoteType, nsINode* aCspToInheritLoadingContext,
257257
net::LoadInfo** outLoadInfo);
258258

0 commit comments

Comments
 (0)