mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-26 04:09:50 +00:00
Bug 1534538 - Principal serialization should not serialize base domain if not needed, r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D24710 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
6a4e37ae32
commit
ac66f432bc
@ -206,7 +206,8 @@ nsresult PopulateContentSecurityPolicies(
|
|||||||
}
|
}
|
||||||
|
|
||||||
nsresult PrincipalToPrincipalInfo(nsIPrincipal* aPrincipal,
|
nsresult PrincipalToPrincipalInfo(nsIPrincipal* aPrincipal,
|
||||||
PrincipalInfo* aPrincipalInfo) {
|
PrincipalInfo* aPrincipalInfo,
|
||||||
|
bool aSkipBaseDomain) {
|
||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
MOZ_ASSERT(aPrincipal);
|
MOZ_ASSERT(aPrincipal);
|
||||||
MOZ_ASSERT(aPrincipalInfo);
|
MOZ_ASSERT(aPrincipalInfo);
|
||||||
@ -248,7 +249,7 @@ nsresult PrincipalToPrincipalInfo(nsIPrincipal* aPrincipal,
|
|||||||
PrincipalInfo info;
|
PrincipalInfo info;
|
||||||
|
|
||||||
for (auto& prin : expanded->AllowList()) {
|
for (auto& prin : expanded->AllowList()) {
|
||||||
rv = PrincipalToPrincipalInfo(prin, &info);
|
rv = PrincipalToPrincipalInfo(prin, &info, aSkipBaseDomain);
|
||||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
@ -313,9 +314,13 @@ nsresult PrincipalToPrincipalInfo(nsIPrincipal* aPrincipal,
|
|||||||
|
|
||||||
// This attribute is not crucial.
|
// This attribute is not crucial.
|
||||||
nsCString baseDomain;
|
nsCString baseDomain;
|
||||||
if (NS_FAILED(aPrincipal->GetBaseDomain(baseDomain))) {
|
if (aSkipBaseDomain) {
|
||||||
NS_WARNING("Failed to get base domain!");
|
|
||||||
baseDomain.SetIsVoid(true);
|
baseDomain.SetIsVoid(true);
|
||||||
|
} else {
|
||||||
|
if (NS_FAILED(aPrincipal->GetBaseDomain(baseDomain))) {
|
||||||
|
NS_WARNING("Failed to get base domain!");
|
||||||
|
baseDomain.SetIsVoid(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
*aPrincipalInfo =
|
*aPrincipalInfo =
|
||||||
|
@ -80,7 +80,8 @@ nsresult PopulateContentSecurityPolicies(
|
|||||||
* MUST be called on the main thread only.
|
* MUST be called on the main thread only.
|
||||||
*/
|
*/
|
||||||
nsresult PrincipalToPrincipalInfo(nsIPrincipal* aPrincipal,
|
nsresult PrincipalToPrincipalInfo(nsIPrincipal* aPrincipal,
|
||||||
PrincipalInfo* aPrincipalInfo);
|
PrincipalInfo* aPrincipalInfo,
|
||||||
|
bool aSkipBaseDomain = false);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return true if this PrincipalInfo is a content principal and it has
|
* Return true if this PrincipalInfo is a content principal and it has
|
||||||
|
@ -167,7 +167,8 @@ void CookieSettings::Serialize(CookieSettingsArgs& aData) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PrincipalInfo principalInfo;
|
PrincipalInfo principalInfo;
|
||||||
rv = PrincipalToPrincipalInfo(principal, &principalInfo);
|
rv = PrincipalToPrincipalInfo(principal, &principalInfo,
|
||||||
|
true /* aSkipBaseDomain */);
|
||||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user