Backed out 3 changesets (bug 1627707) for build bustages @ mozilla::net::LoadInfo.

Backed out changeset 65d6a90651ce (bug 1627707)
Backed out changeset 378ec30d9979 (bug 1627707)
Backed out changeset 058a19e11b06 (bug 1627707)
This commit is contained in:
Cosmin Sabou 2020-04-06 20:07:04 +03:00
Родитель aefb5f9c88
Коммит d557e2ed22
35 изменённых файлов: 114 добавлений и 107 удалений

Просмотреть файл

@ -11162,9 +11162,9 @@ nsresult nsDocShell::AddToSessionHistory(
// For now keep storing just the principal in the SHEntry.
if (!principalToInherit) {
if (loadInfo->GetLoadingSandboxed()) {
if (loadInfo->GetLoadingPrincipal()) {
if (loadInfo->LoadingPrincipal()) {
principalToInherit = NullPrincipal::CreateWithInheritedAttributes(
loadInfo->GetLoadingPrincipal());
loadInfo->LoadingPrincipal());
} else {
// get the OriginAttributes
OriginAttributes attrs;

Просмотреть файл

@ -326,8 +326,8 @@ ThirdPartyUtil::IsThirdPartyChannel(nsIChannel* aChannel, nsIURI* aURI,
// Check if the channel itself is third-party to its own requestor.
// Unforunately, we have to go through the loading principal.
rv = loadInfo->GetLoadingPrincipal()->IsThirdPartyURI(channelURI,
&parentIsThird);
rv = loadInfo->LoadingPrincipal()->IsThirdPartyURI(channelURI,
&parentIsThird);
if (NS_FAILED(rv)) {
return rv;
}

Просмотреть файл

@ -172,37 +172,40 @@ inline const char* NS_CP_ContentTypeName(uint32_t contentType) {
* purpose */
#define CHECK_PRINCIPAL_CSP_AND_DATA(action) \
PR_BEGIN_MACRO \
if (loadingPrincipal && loadingPrincipal->IsSystemPrincipal()) { \
if (loadingPrincipal) { \
/* We exempt most loads into any document with the system principal \
* from content policy (except CSP) checks, mostly as an optimization. \
* from content policy (escept CSP) checks, mostly as an optimization. \
* Which means that we need to apply this check to the loading principal, \
* not the principal that triggered the load. */ \
/* Check CSP for System Privileged pages */ \
CSPService::ConsultCSP(contentLocation, loadInfo, mimeType, decision); \
if (NS_CP_REJECTED(*decision)) { \
return NS_OK; \
} \
if (contentType != nsIContentPolicy::TYPE_DOCUMENT) { \
*decision = nsIContentPolicy::ACCEPT; \
nsCOMPtr<nsINode> n = do_QueryInterface(context); \
if (!n) { \
nsCOMPtr<nsPIDOMWindowOuter> win = do_QueryInterface(context); \
n = win ? win->GetExtantDoc() : nullptr; \
bool isSystem = loadingPrincipal->IsSystemPrincipal(); \
if (isSystem) { \
/* Check CSP for System Privileged pages */ \
CSPService::ConsultCSP(contentLocation, loadInfo, mimeType, decision); \
if (NS_CP_REJECTED(*decision)) { \
return NS_OK; \
} \
if (n) { \
mozilla::dom::Document* d = n->OwnerDoc(); \
if (d->IsLoadedAsData() || d->IsBeingUsedAsImage() || \
d->IsResourceDoc()) { \
nsCOMPtr<nsIContentPolicy> dataPolicy = \
do_GetService("@mozilla.org/data-document-content-policy;1"); \
if (dataPolicy) { \
dataPolicy->action(contentLocation, loadInfo, mimeType, \
decision); \
if (contentType != nsIContentPolicy::TYPE_DOCUMENT) { \
*decision = nsIContentPolicy::ACCEPT; \
nsCOMPtr<nsINode> n = do_QueryInterface(context); \
if (!n) { \
nsCOMPtr<nsPIDOMWindowOuter> win = do_QueryInterface(context); \
n = win ? win->GetExtantDoc() : nullptr; \
} \
if (n) { \
mozilla::dom::Document* d = n->OwnerDoc(); \
if (d->IsLoadedAsData() || d->IsBeingUsedAsImage() || \
d->IsResourceDoc()) { \
nsCOMPtr<nsIContentPolicy> dataPolicy = \
do_GetService("@mozilla.org/data-document-content-policy;1"); \
if (dataPolicy) { \
dataPolicy->action(contentLocation, loadInfo, mimeType, \
decision); \
} \
} \
} \
} \
return NS_OK; \
} \
return NS_OK; \
} \
PR_END_MACRO
@ -219,7 +222,7 @@ inline const char* NS_CP_ContentTypeName(uint32_t contentType) {
inline nsresult NS_CheckContentLoadPolicy(
nsIURI* contentLocation, nsILoadInfo* loadInfo, const nsACString& mimeType,
int16_t* decision, nsIContentPolicy* policyService = nullptr) {
nsIPrincipal* loadingPrincipal = loadInfo->GetLoadingPrincipal();
nsIPrincipal* loadingPrincipal = loadInfo->LoadingPrincipal();
nsCOMPtr<nsISupports> context = loadInfo->GetLoadingContext();
nsContentPolicyType contentType = loadInfo->InternalContentPolicyType();
CHECK_PRINCIPAL_CSP_AND_DATA(ShouldLoad);
@ -235,7 +238,7 @@ inline nsresult NS_CheckContentLoadPolicy(
inline nsresult NS_CheckContentProcessPolicy(
nsIURI* contentLocation, nsILoadInfo* loadInfo, const nsACString& mimeType,
int16_t* decision, nsIContentPolicy* policyService = nullptr) {
nsIPrincipal* loadingPrincipal = loadInfo->GetLoadingPrincipal();
nsIPrincipal* loadingPrincipal = loadInfo->LoadingPrincipal();
nsCOMPtr<nsISupports> context = loadInfo->GetLoadingContext();
nsContentPolicyType contentType = loadInfo->InternalContentPolicyType();
CHECK_PRINCIPAL_CSP_AND_DATA(ShouldProcess);

Просмотреть файл

@ -384,7 +384,7 @@ bool nsNodeInfoManager::InternalSVGEnabled() {
nsIContentPolicy::TYPE_IMAGE ||
loadInfo->GetExternalContentPolicyType() ==
nsIContentPolicy::TYPE_OTHER) &&
(IsSystemOrAddonPrincipal(loadInfo->GetLoadingPrincipal()) ||
(IsSystemOrAddonPrincipal(loadInfo->LoadingPrincipal()) ||
IsSystemOrAddonPrincipal(loadInfo->TriggeringPrincipal()))));
mSVGEnabled = Some(conclusion);
return conclusion;

Просмотреть файл

@ -811,8 +811,8 @@ BlobURLProtocolHandler::NewChannel(nsIURI* aURI, nsILoadInfo* aLoadInfo,
// principal and which is never mutated to have a non-zero mPrivateBrowsingId
// or container.
if (aLoadInfo &&
(!aLoadInfo->GetLoadingPrincipal() ||
!aLoadInfo->GetLoadingPrincipal()->IsSystemPrincipal()) &&
(!aLoadInfo->LoadingPrincipal() ||
!aLoadInfo->LoadingPrincipal()->IsSystemPrincipal()) &&
!ChromeUtils::IsOriginAttributesEqualIgnoringFPD(
aLoadInfo->GetOriginAttributes(),
BasePrincipal::Cast(info->mPrincipal)->OriginAttributesRef())) {

Просмотреть файл

@ -276,7 +276,7 @@ bool PerformanceTimingData::CheckAllowedOrigin(nsIHttpChannel* aResourceChannel,
return true;
}
nsCOMPtr<nsIPrincipal> principal = loadInfo->GetLoadingPrincipal();
nsCOMPtr<nsIPrincipal> principal = loadInfo->LoadingPrincipal();
// Check if the resource is either same origin as the page that started
// the load, or if the response contains the proper Timing-Allow-Origin

Просмотреть файл

@ -110,7 +110,7 @@ void DOMSecurityMonitor::AuditParsingOfHTMLXMLFragments(
/* static */
void DOMSecurityMonitor::AuditUseOfJavaScriptURI(nsIChannel* aChannel) {
nsCOMPtr<nsILoadInfo> loadInfo = aChannel->LoadInfo();
nsCOMPtr<nsIPrincipal> loadingPrincipal = loadInfo->GetLoadingPrincipal();
nsCOMPtr<nsIPrincipal> loadingPrincipal = loadInfo->LoadingPrincipal();
// We only ever have no loadingPrincipal in case of a new top-level load.
// The purpose of this assertion is to make sure we do not allow loading

Просмотреть файл

@ -711,7 +711,7 @@ static void DebugDoContentSecurityCheck(nsIChannel* aChannel,
// Log Principals
nsCOMPtr<nsIPrincipal> requestPrincipal = aLoadInfo->TriggeringPrincipal();
LogPrincipal(aLoadInfo->GetLoadingPrincipal(),
LogPrincipal(aLoadInfo->LoadingPrincipal(),
NS_LITERAL_STRING("loadingPrincipal"));
LogPrincipal(requestPrincipal, NS_LITERAL_STRING("triggeringPrincipal"));
LogPrincipal(aLoadInfo->PrincipalToInherit(),
@ -769,8 +769,8 @@ nsresult nsContentSecurityManager::CheckAllowLoadInSystemPrivilegedContext(
// nothing to do here if we are not loading a resource into a
// system prvileged context.
if (!loadInfo->GetLoadingPrincipal() ||
!loadInfo->GetLoadingPrincipal()->IsSystemPrincipal()) {
if (!loadInfo->LoadingPrincipal() ||
!loadInfo->LoadingPrincipal()->IsSystemPrincipal()) {
return NS_OK;
}
@ -1033,7 +1033,7 @@ nsresult nsContentSecurityManager::CheckChannel(nsIChannel* aChannel) {
// We shouldn't have the SEC_COOKIES_SAME_ORIGIN flag for top level loads
MOZ_ASSERT(loadInfo->GetExternalContentPolicyType() !=
nsIContentPolicy::TYPE_DOCUMENT);
nsIPrincipal* loadingPrincipal = loadInfo->GetLoadingPrincipal();
nsIPrincipal* loadingPrincipal = loadInfo->LoadingPrincipal();
// It doesn't matter what we pass for the second, data-inherits, argument.
// Any protocol which inherits won't pay attention to cookies anyway.

Просмотреть файл

@ -280,7 +280,7 @@ nsMixedContentBlocker::AsyncOnChannelRedirect(
// Get the loading Info from the old channel
nsCOMPtr<nsILoadInfo> loadInfo = aOldChannel->LoadInfo();
nsCOMPtr<nsIPrincipal> requestingPrincipal = loadInfo->GetLoadingPrincipal();
nsCOMPtr<nsIPrincipal> requestingPrincipal = loadInfo->LoadingPrincipal();
// Since we are calling shouldLoad() directly on redirects, we don't go
// through the code in nsContentPolicyUtils::NS_CheckContentLoadPolicy().
@ -326,7 +326,7 @@ nsMixedContentBlocker::ShouldLoad(nsIURI* aContentLocation,
nsCOMPtr<nsISupports> requestingContext = aLoadInfo->GetLoadingContext();
nsCOMPtr<nsIPrincipal> requestPrincipal = aLoadInfo->TriggeringPrincipal();
nsCOMPtr<nsIURI> requestingLocation;
nsCOMPtr<nsIPrincipal> loadingPrincipal = aLoadInfo->GetLoadingPrincipal();
nsCOMPtr<nsIPrincipal> loadingPrincipal = aLoadInfo->LoadingPrincipal();
// We need to get a Requesting Location if possible
// so we're casting to BasePrincipal to acess GetURI

Просмотреть файл

@ -191,8 +191,7 @@ nsIconChannel::AsyncOpen(nsIStreamListener* aListener) {
MOZ_ASSERT(
mLoadInfo->GetSecurityMode() == 0 || mLoadInfo->GetInitialSecurityCheckDone() ||
(mLoadInfo->GetSecurityMode() == nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL &&
mLoadInfo->GetLoadingPrincipal() &&
mLoadInfo->GetLoadingPrincipal()->IsSystemPrincipal()),
mLoadInfo->LoadingPrincipal() && mLoadInfo->LoadingPrincipal()->IsSystemPrincipal()),
"security flags in loadInfo but doContentSecurityCheck() not called");
nsCOMPtr<nsIInputStream> inStream;

Просмотреть файл

@ -366,8 +366,8 @@ nsIconChannel::AsyncOpen(nsIStreamListener* aListener) {
mLoadInfo->GetInitialSecurityCheckDone() ||
(mLoadInfo->GetSecurityMode() ==
nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL &&
mLoadInfo->GetLoadingPrincipal() &&
mLoadInfo->GetLoadingPrincipal()->IsSystemPrincipal()),
mLoadInfo->LoadingPrincipal() &&
mLoadInfo->LoadingPrincipal()->IsSystemPrincipal()),
"security flags in loadInfo but doContentSecurityCheck() not called");
nsCOMPtr<nsIInputStream> inStream;

Просмотреть файл

@ -411,10 +411,12 @@ nsresult LoadInfoToLoadInfoArgs(nsILoadInfo* aLoadInfo,
Maybe<LoadInfoArgs>* aOptionalLoadInfoArgs) {
nsresult rv = NS_OK;
Maybe<PrincipalInfo> loadingPrincipalInfo;
if (nsIPrincipal* loadingPrin = aLoadInfo->GetLoadingPrincipal()) {
loadingPrincipalInfo.emplace();
rv = PrincipalToPrincipalInfo(loadingPrin, loadingPrincipalInfo.ptr());
if (aLoadInfo->LoadingPrincipal()) {
PrincipalInfo loadingPrincipalInfoTemp;
rv = PrincipalToPrincipalInfo(aLoadInfo->LoadingPrincipal(),
&loadingPrincipalInfoTemp);
NS_ENSURE_SUCCESS(rv, rv);
loadingPrincipalInfo = Some(loadingPrincipalInfoTemp);
}
PrincipalInfo triggeringPrincipalInfo;
@ -423,33 +425,40 @@ nsresult LoadInfoToLoadInfoArgs(nsILoadInfo* aLoadInfo,
NS_ENSURE_SUCCESS(rv, rv);
Maybe<PrincipalInfo> principalToInheritInfo;
if (nsIPrincipal* principalToInherit = aLoadInfo->PrincipalToInherit()) {
principalToInheritInfo.emplace();
rv = PrincipalToPrincipalInfo(principalToInherit,
principalToInheritInfo.ptr());
if (aLoadInfo->PrincipalToInherit()) {
PrincipalInfo principalToInheritInfoTemp;
rv = PrincipalToPrincipalInfo(aLoadInfo->PrincipalToInherit(),
&principalToInheritInfoTemp);
NS_ENSURE_SUCCESS(rv, rv);
principalToInheritInfo = Some(principalToInheritInfoTemp);
}
Maybe<PrincipalInfo> sandboxedLoadingPrincipalInfo;
if (aLoadInfo->GetLoadingSandboxed()) {
sandboxedLoadingPrincipalInfo.emplace();
PrincipalInfo sandboxedLoadingPrincipalInfoTemp;
rv = PrincipalToPrincipalInfo(aLoadInfo->GetSandboxedLoadingPrincipal(),
sandboxedLoadingPrincipalInfo.ptr());
&sandboxedLoadingPrincipalInfoTemp);
NS_ENSURE_SUCCESS(rv, rv);
sandboxedLoadingPrincipalInfo = Some(sandboxedLoadingPrincipalInfoTemp);
}
Maybe<PrincipalInfo> topLevelPrincipalInfo;
if (nsIPrincipal* topLevenPrin = aLoadInfo->GetTopLevelPrincipal()) {
topLevelPrincipalInfo.emplace();
rv = PrincipalToPrincipalInfo(topLevenPrin, topLevelPrincipalInfo.ptr());
if (aLoadInfo->GetTopLevelPrincipal()) {
PrincipalInfo topLevelPrincipalInfoTemp;
rv = PrincipalToPrincipalInfo(aLoadInfo->GetTopLevelPrincipal(),
&topLevelPrincipalInfoTemp);
NS_ENSURE_SUCCESS(rv, rv);
topLevelPrincipalInfo = Some(topLevelPrincipalInfoTemp);
}
Maybe<PrincipalInfo> topLevelStorageAreaPrincipalInfo;
if (nsIPrincipal* prin = aLoadInfo->GetTopLevelStorageAreaPrincipal()) {
topLevelStorageAreaPrincipalInfo.emplace();
rv = PrincipalToPrincipalInfo(prin, topLevelStorageAreaPrincipalInfo.ptr());
if (aLoadInfo->GetTopLevelStorageAreaPrincipal()) {
PrincipalInfo topLevelStorageAreaPrincipalInfoTemp;
rv = PrincipalToPrincipalInfo(aLoadInfo->GetTopLevelStorageAreaPrincipal(),
&topLevelStorageAreaPrincipalInfoTemp);
NS_ENSURE_SUCCESS(rv, rv);
topLevelStorageAreaPrincipalInfo =
Some(topLevelStorageAreaPrincipalInfoTemp);
}
Maybe<URIParams> optionalResultPrincipalURI;

Просмотреть файл

@ -378,7 +378,7 @@ nsresult WebrtcTCPSocket::OpenWithHttpProxy() {
rv = ioService->NewChannelFromURIWithProxyFlags(
mURI, nullptr,
// Proxy flags are overridden by SetConnectOnly()
0, loadInfo->LoadingNode(), loadInfo->GetLoadingPrincipal(),
0, loadInfo->LoadingNode(), loadInfo->LoadingPrincipal(),
loadInfo->TriggeringPrincipal(),
nsILoadInfo::SEC_DONT_FOLLOW_REDIRECTS | nsILoadInfo::SEC_COOKIES_OMIT |
// We need this flag to allow loads from any origin since this channel

Просмотреть файл

@ -874,8 +874,8 @@ nsJARChannel::AsyncOpen(nsIStreamListener* aListener) {
mLoadInfo->GetInitialSecurityCheckDone() ||
(mLoadInfo->GetSecurityMode() ==
nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL &&
mLoadInfo->GetLoadingPrincipal() &&
mLoadInfo->GetLoadingPrincipal()->IsSystemPrincipal()),
mLoadInfo->LoadingPrincipal() &&
mLoadInfo->LoadingPrincipal()->IsSystemPrincipal()),
"security flags in loadInfo but doContentSecurityCheck() not called");
NS_ENSURE_ARG_POINTER(listener);

Просмотреть файл

@ -727,7 +727,7 @@ LoadInfo::GetLoadingPrincipal(nsIPrincipal** aLoadingPrincipal) {
return NS_OK;
}
nsIPrincipal* LoadInfo::GetLoadingPrincipal() { return mLoadingPrincipal; }
nsIPrincipal* LoadInfo::LoadingPrincipal() { return mLoadingPrincipal; }
NS_IMETHODIMP
LoadInfo::GetTriggeringPrincipal(nsIPrincipal** aTriggeringPrincipal) {

Просмотреть файл

@ -55,7 +55,6 @@ class LoadInfo final : public nsILoadInfo {
public:
NS_DECL_ISUPPORTS
NS_DECL_NSILOADINFO
nsIPrincipal* GetLoadingPrincipal() final;
// aLoadingPrincipal MUST NOT BE NULL.
LoadInfo(nsIPrincipal* aLoadingPrincipal, nsIPrincipal* aTriggeringPrincipal,

Просмотреть файл

@ -32,7 +32,7 @@ TRRLoadInfo::GetLoadingPrincipal(nsIPrincipal** aLoadingPrincipal) {
return NS_ERROR_NOT_IMPLEMENTED;
}
nsIPrincipal* TRRLoadInfo::GetLoadingPrincipal() { return nullptr; }
nsIPrincipal* TRRLoadInfo::LoadingPrincipal() { return nullptr; }
NS_IMETHODIMP
TRRLoadInfo::GetTriggeringPrincipal(nsIPrincipal** aTriggeringPrincipal) {

Просмотреть файл

@ -24,7 +24,6 @@ class TRRLoadInfo final : public nsILoadInfo {
public:
NS_DECL_THREADSAFE_ISUPPORTS
NS_DECL_NSILOADINFO
nsIPrincipal* GetLoadingPrincipal() final;
TRRLoadInfo(nsIURI* aResultPrincipalURI,
nsContentPolicyType aContentPolicyType);

Просмотреть файл

@ -671,8 +671,8 @@ nsBaseChannel::AsyncOpen(nsIStreamListener* aListener) {
mLoadInfo->GetInitialSecurityCheckDone() ||
(mLoadInfo->GetSecurityMode() ==
nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL &&
mLoadInfo->GetLoadingPrincipal() &&
mLoadInfo->GetLoadingPrincipal()->IsSystemPrincipal()),
mLoadInfo->LoadingPrincipal() &&
mLoadInfo->LoadingPrincipal()->IsSystemPrincipal()),
"security flags in loadInfo but doContentSecurityCheck() not called");
NS_ENSURE_TRUE(mURI, NS_ERROR_NOT_INITIALIZED);

Просмотреть файл

@ -253,12 +253,11 @@ interface nsILoadInfo : nsISupports
*/
readonly attribute nsIPrincipal loadingPrincipal;
%{C++
/**
* A C++-friendly version of loadingPrincipal.
*/
virtual nsIPrincipal* GetLoadingPrincipal() = 0;
%}
[noscript, notxpcom, nostdcall, binaryname(LoadingPrincipal)]
nsIPrincipal binaryLoadingPrincipal();
/**
* This is the principal which caused the network load to start. I.e.

Просмотреть файл

@ -1853,7 +1853,7 @@ IOServiceProxyCallback::OnProxyAvailable(nsICancelable* request,
if (!speculativeHandler) return NS_OK;
nsCOMPtr<nsILoadInfo> loadInfo = channel->LoadInfo();
nsCOMPtr<nsIPrincipal> principal = loadInfo->GetLoadingPrincipal();
nsCOMPtr<nsIPrincipal> principal = loadInfo->LoadingPrincipal();
nsLoadFlags loadFlags = 0;
channel->GetLoadFlags(&loadFlags);

Просмотреть файл

@ -1974,7 +1974,7 @@ bool NS_HasBeenCrossOrigin(nsIChannel* aChannel, bool aReport) {
nsCOMPtr<nsILoadInfo> loadInfo = aChannel->LoadInfo();
// TYPE_DOCUMENT loads have a null LoadingPrincipal and can not be cross
// origin.
if (!loadInfo->GetLoadingPrincipal()) {
if (!loadInfo->LoadingPrincipal()) {
return false;
}
@ -1983,7 +1983,7 @@ bool NS_HasBeenCrossOrigin(nsIChannel* aChannel, bool aReport) {
return true;
}
nsCOMPtr<nsIPrincipal> loadingPrincipal = loadInfo->GetLoadingPrincipal();
nsCOMPtr<nsIPrincipal> loadingPrincipal = loadInfo->LoadingPrincipal();
uint32_t mode = loadInfo->GetSecurityMode();
bool dataInherits =
mode == nsILoadInfo::SEC_REQUIRE_SAME_ORIGIN_DATA_INHERITS ||
@ -3059,8 +3059,8 @@ nsresult NS_CompareLoadInfoAndLoadContext(nsIChannel* aChannel) {
// the loadInfo will use originAttributes from the content. Thus, the
// originAttributes between loadInfo and loadContext will be different.
// That's why we have to skip the comparison for the favicon loading.
if (loadInfo->GetLoadingPrincipal() &&
loadInfo->GetLoadingPrincipal()->IsSystemPrincipal() &&
if (loadInfo->LoadingPrincipal() &&
loadInfo->LoadingPrincipal()->IsSystemPrincipal() &&
loadInfo->InternalContentPolicyType() ==
nsIContentPolicy::TYPE_INTERNAL_IMAGE_FAVICON) {
return NS_OK;

Просмотреть файл

@ -2850,8 +2850,8 @@ void HttpBaseChannel::AssertPrivateBrowsingId() {
// We skip testing of favicon loading here since it could be triggered by XUL
// image which uses SystemPrincipal. The SystemPrincpal doesn't have
// mPrivateBrowsingId.
if (mLoadInfo->GetLoadingPrincipal() &&
mLoadInfo->GetLoadingPrincipal()->IsSystemPrincipal() &&
if (mLoadInfo->LoadingPrincipal() &&
mLoadInfo->LoadingPrincipal()->IsSystemPrincipal() &&
mLoadInfo->InternalContentPolicyType() ==
nsIContentPolicy::TYPE_INTERNAL_IMAGE_FAVICON) {
return;
@ -3157,7 +3157,7 @@ HttpBaseChannel::CloneReplacementChannelConfig(bool aPreserveMethod,
// AllRedirectsPassTimingAllowCheck on them.
if (loadInfo->GetExternalContentPolicyType() !=
nsIContentPolicy::TYPE_DOCUMENT) {
nsCOMPtr<nsIPrincipal> principal = loadInfo->GetLoadingPrincipal();
nsCOMPtr<nsIPrincipal> principal = loadInfo->LoadingPrincipal();
config.timedChannel->timingAllowCheckForPrincipal() =
Some(oldTimedChannel->TimingAllowCheck(principal));
}

Просмотреть файл

@ -2427,8 +2427,8 @@ nsresult HttpChannelChild::AsyncOpenInternal(nsIStreamListener* aListener) {
mLoadInfo->GetInitialSecurityCheckDone() ||
(mLoadInfo->GetSecurityMode() ==
nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL &&
mLoadInfo->GetLoadingPrincipal() &&
mLoadInfo->GetLoadingPrincipal()->IsSystemPrincipal()),
mLoadInfo->LoadingPrincipal() &&
mLoadInfo->LoadingPrincipal()->IsSystemPrincipal()),
"security flags in loadInfo but doContentSecurityCheck() not called");
LogCallingScriptLocation(this);

Просмотреть файл

@ -1384,7 +1384,7 @@ nsresult nsCORSListenerProxy::StartCORSPreflight(
nsILoadInfo::SEC_REQUIRE_CORS_DATA_INHERITS,
"how did we end up here?");
nsCOMPtr<nsIPrincipal> principal = originalLoadInfo->GetLoadingPrincipal();
nsCOMPtr<nsIPrincipal> principal = originalLoadInfo->LoadingPrincipal();
MOZ_ASSERT(principal && originalLoadInfo->GetExternalContentPolicyType() !=
nsIContentPolicy::TYPE_DOCUMENT,
"Should not do CORS loads for top-level loads, so a "

Просмотреть файл

@ -1475,9 +1475,8 @@ HttpTrafficCategory nsHttpChannel::CreateTrafficCategory() {
}
}
bool isSystemPrincipal =
mLoadInfo->GetLoadingPrincipal() &&
mLoadInfo->GetLoadingPrincipal()->IsSystemPrincipal();
bool isSystemPrincipal = mLoadInfo->LoadingPrincipal() &&
mLoadInfo->LoadingPrincipal()->IsSystemPrincipal();
return HttpTrafficAnalyzer::CreateTrafficCategory(
NS_UsePrivateBrowsing(this), isSystemPrincipal, isThirdParty, cos, tc);
}
@ -1631,8 +1630,8 @@ nsresult EnsureMIMEOfScript(nsHttpChannel* aChannel, nsIURI* aURI,
bool isPrivateWin = aLoadInfo->GetOriginAttributes().mPrivateBrowsingId > 0;
bool isSameOrigin = false;
aLoadInfo->GetLoadingPrincipal()->IsSameOrigin(aURI, isPrivateWin,
&isSameOrigin);
aLoadInfo->LoadingPrincipal()->IsSameOrigin(aURI, isPrivateWin,
&isSameOrigin);
if (isSameOrigin) {
// same origin
AccumulateCategorical(
@ -1652,7 +1651,7 @@ nsresult EnsureMIMEOfScript(nsHttpChannel* aChannel, nsIURI* aURI,
bool isPrivateWin =
aLoadInfo->GetOriginAttributes().mPrivateBrowsingId > 0;
bool isSameOrigin = false;
aLoadInfo->GetLoadingPrincipal()->IsSameOrigin(
aLoadInfo->LoadingPrincipal()->IsSameOrigin(
corsOriginURI, isPrivateWin, &isSameOrigin);
if (isSameOrigin) {
cors = true;
@ -6427,8 +6426,8 @@ nsHttpChannel::AsyncOpen(nsIStreamListener* aListener) {
mLoadInfo->GetInitialSecurityCheckDone() ||
(mLoadInfo->GetSecurityMode() ==
nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL &&
mLoadInfo->GetLoadingPrincipal() &&
mLoadInfo->GetLoadingPrincipal()->IsSystemPrincipal()),
mLoadInfo->LoadingPrincipal() &&
mLoadInfo->LoadingPrincipal()->IsSystemPrincipal()),
"security flags in loadInfo but doContentSecurityCheck() not called");
LOG(("nsHttpChannel::AsyncOpen [this=%p]\n", this));
@ -7594,7 +7593,7 @@ nsresult nsHttpChannel::ProcessCrossOriginResourcePolicyHeader() {
return NS_OK;
}
MOZ_ASSERT(mLoadInfo->GetLoadingPrincipal(),
MOZ_ASSERT(mLoadInfo->LoadingPrincipal(),
"Resources should always have a LoadingPrincipal");
if (!mResponseHead) {
return NS_OK;
@ -7629,7 +7628,7 @@ nsresult nsHttpChannel::ProcessCrossOriginResourcePolicyHeader() {
// Cross-Origin-Resource-Policy = %s"same-origin" / %s"same-site" /
// %s"cross-origin"
if (content.EqualsLiteral("same-origin")) {
if (!channelOrigin->Equals(mLoadInfo->GetLoadingPrincipal())) {
if (!channelOrigin->Equals(mLoadInfo->LoadingPrincipal())) {
return NS_ERROR_DOM_CORP_FAILED;
}
return NS_OK;
@ -7637,14 +7636,14 @@ nsresult nsHttpChannel::ProcessCrossOriginResourcePolicyHeader() {
if (content.EqualsLiteral("same-site")) {
nsAutoCString documentBaseDomain;
nsAutoCString resourceBaseDomain;
mLoadInfo->GetLoadingPrincipal()->GetBaseDomain(documentBaseDomain);
mLoadInfo->LoadingPrincipal()->GetBaseDomain(documentBaseDomain);
channelOrigin->GetBaseDomain(resourceBaseDomain);
if (documentBaseDomain != resourceBaseDomain) {
return NS_ERROR_DOM_CORP_FAILED;
}
nsCOMPtr<nsIURI> resourceURI = channelOrigin->GetURI();
if (!mLoadInfo->GetLoadingPrincipal()->SchemeIs("https") &&
if (!mLoadInfo->LoadingPrincipal()->SchemeIs("https") &&
resourceURI->SchemeIs("https")) {
return NS_ERROR_DOM_CORP_FAILED;
}

Просмотреть файл

@ -931,11 +931,10 @@ bool nsHttpChannelAuthProvider::BlockPrompt(bool proxyAuth) {
if (!topDoc && !xhr) {
nsCOMPtr<nsIURI> topURI;
Unused << chanInternal->GetTopWindowURI(getter_AddRefs(topURI));
nsCOMPtr<nsIPrincipal> loadingPrinc = loadInfo->LoadingPrincipal();
if (topURI) {
mCrossOrigin = !NS_SecurityCompareURIs(topURI, mURI, true);
} else {
nsIPrincipal* loadingPrinc = loadInfo->GetLoadingPrincipal();
MOZ_ASSERT(loadingPrinc);
bool sameOrigin = false;
loadingPrinc->IsSameOrigin(mURI, false, &sameOrigin);
mCrossOrigin = !sameOrigin;

Просмотреть файл

@ -3367,7 +3367,7 @@ WebSocketChannel::AsyncOpen(nsIURI* aURI, const nsACString& aOrigin,
nsIProtocolProxyService::RESOLVE_PREFER_SOCKS_PROXY |
nsIProtocolProxyService::RESOLVE_PREFER_HTTPS_PROXY |
nsIProtocolProxyService::RESOLVE_ALWAYS_TUNNEL,
mLoadInfo->LoadingNode(), mLoadInfo->GetLoadingPrincipal(),
mLoadInfo->LoadingNode(), mLoadInfo->LoadingPrincipal(),
mLoadInfo->TriggeringPrincipal(), mLoadInfo->GetSecurityFlags(),
mLoadInfo->InternalContentPolicyType(), getter_AddRefs(localChannel));
NS_ENSURE_SUCCESS(rv, rv);

Просмотреть файл

@ -46,7 +46,7 @@ bool UrlClassifierCommon::AddonMayLoad(nsIChannel* aChannel, nsIURI* aURI) {
// loadingPrincipal is used here to ensure we are loading into an
// addon principal. This allows an addon, with explicit permission, to
// call out to API endpoints that may otherwise get blocked.
nsIPrincipal* loadingPrincipal = channelLoadInfo->GetLoadingPrincipal();
nsIPrincipal* loadingPrincipal = channelLoadInfo->LoadingPrincipal();
if (!loadingPrincipal) {
return false;
}

Просмотреть файл

@ -274,7 +274,7 @@ bool AntiTrackingUtils::CheckStoragePermission(nsIPrincipal* aPrincipal,
}
// We try to use the loading principal if there is no TopLevelPrincipal.
targetPrincipal = loadInfo->GetLoadingPrincipal();
targetPrincipal = loadInfo->LoadingPrincipal();
}
if (!targetPrincipal) {

Просмотреть файл

@ -759,7 +759,7 @@ bool ContentBlocking::ShouldAllowAccessFor(nsIChannel* aChannel, nsIURI* aURI,
LOG(
("Our loadInfo lacks a top-level principal, use the loadInfo's loading "
"principal instead"));
toplevelPrincipal = loadInfo->GetLoadingPrincipal();
toplevelPrincipal = loadInfo->LoadingPrincipal();
}
nsCOMPtr<nsIHttpChannel> httpChannel = do_QueryInterface(aChannel);

Просмотреть файл

@ -446,7 +446,7 @@ static inline bool IsSystemPrincipal(nsIPrincipal* aPrincipal) {
bool ChannelWrapper::IsSystemLoad() const {
if (nsCOMPtr<nsILoadInfo> loadInfo = GetLoadInfo()) {
if (nsIPrincipal* prin = loadInfo->GetLoadingPrincipal()) {
if (nsIPrincipal* prin = loadInfo->LoadingPrincipal()) {
return IsSystemPrincipal(prin);
}
@ -470,7 +470,7 @@ bool ChannelWrapper::CanModify() const {
}
if (nsCOMPtr<nsILoadInfo> loadInfo = GetLoadInfo()) {
if (nsIPrincipal* prin = loadInfo->GetLoadingPrincipal()) {
if (nsIPrincipal* prin = loadInfo->LoadingPrincipal()) {
if (IsSystemPrincipal(prin)) {
return false;
}
@ -499,7 +499,7 @@ already_AddRefed<nsIURI> ChannelWrapper::GetOriginURI() const {
already_AddRefed<nsIURI> ChannelWrapper::GetDocumentURI() const {
nsCOMPtr<nsIURI> uri;
if (nsCOMPtr<nsILoadInfo> loadInfo = GetLoadInfo()) {
if (nsIPrincipal* prin = loadInfo->GetLoadingPrincipal()) {
if (nsIPrincipal* prin = loadInfo->LoadingPrincipal()) {
if (prin->GetIsContentPrincipal()) {
Unused << prin->GetURI(getter_AddRefs(uri));
}

Просмотреть файл

@ -198,7 +198,7 @@ nsresult PageIconProtocolHandler::NewChannelInternal(nsIURI* aURI,
nsCOMPtr<nsIChannel> channel;
rv = NS_NewInputStreamChannel(
getter_AddRefs(channel), aURI, pipeIn.forget(),
aLoadInfo->GetLoadingPrincipal(),
aLoadInfo->LoadingPrincipal(),
nsILoadInfo::SEC_REQUIRE_SAME_ORIGIN_DATA_IS_BLOCKED,
nsIContentPolicy::TYPE_INTERNAL_IMAGE);
NS_ENSURE_SUCCESS(rv, rv);

Просмотреть файл

@ -94,7 +94,8 @@ AddonContentPolicy::ShouldLoad(nsIURI* aContentLocation, nsILoadInfo* aLoadInfo,
uint32_t contentType = aLoadInfo->GetExternalContentPolicyType();
nsCOMPtr<nsIURI> requestOrigin;
if (nsIPrincipal* loadingPrincipal = aLoadInfo->GetLoadingPrincipal()) {
nsCOMPtr<nsIPrincipal> loadingPrincipal = aLoadInfo->LoadingPrincipal();
if (loadingPrincipal) {
loadingPrincipal->GetURI(getter_AddRefs(requestOrigin));
}

Просмотреть файл

@ -213,8 +213,8 @@ NS_IMETHODIMP nsExtProtocolChannel::AsyncOpen(nsIStreamListener* aListener) {
mLoadInfo->GetInitialSecurityCheckDone() ||
(mLoadInfo->GetSecurityMode() ==
nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL &&
mLoadInfo->GetLoadingPrincipal() &&
mLoadInfo->GetLoadingPrincipal()->IsSystemPrincipal()),
mLoadInfo->LoadingPrincipal() &&
mLoadInfo->LoadingPrincipal()->IsSystemPrincipal()),
"security flags in loadInfo but doContentSecurityCheck() not called");
NS_ENSURE_ARG_POINTER(listener);