зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1517089 - Part 16: Implement QuotaManager::GetInfoFromValidatedPrincipalInfo; r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D19213
This commit is contained in:
Родитель
b359db62fd
Коммит
383bad7c55
|
@ -5457,6 +5457,46 @@ bool QuotaManager::IsPrincipalInfoValid(const PrincipalInfo& aPrincipalInfo) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
void QuotaManager::GetInfoFromValidatedPrincipalInfo(
|
||||||
|
const PrincipalInfo& aPrincipalInfo, nsACString* aSuffix,
|
||||||
|
nsACString* aGroup, nsACString* aOrigin) {
|
||||||
|
MOZ_ASSERT(IsPrincipalInfoValid(aPrincipalInfo));
|
||||||
|
|
||||||
|
switch (aPrincipalInfo.type()) {
|
||||||
|
case PrincipalInfo::TSystemPrincipalInfo: {
|
||||||
|
GetInfoForChrome(aSuffix, aGroup, aOrigin);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
case PrincipalInfo::TContentPrincipalInfo: {
|
||||||
|
const ContentPrincipalInfo& info =
|
||||||
|
aPrincipalInfo.get_ContentPrincipalInfo();
|
||||||
|
|
||||||
|
nsCString suffix;
|
||||||
|
info.attrs().CreateSuffix(suffix);
|
||||||
|
|
||||||
|
if (aSuffix) {
|
||||||
|
aSuffix->Assign(suffix);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (aGroup) {
|
||||||
|
aGroup->Assign(info.baseDomain() + suffix);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (aOrigin) {
|
||||||
|
aOrigin->Assign(info.originNoSuffix() + suffix);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
default: { break; }
|
||||||
|
}
|
||||||
|
|
||||||
|
MOZ_CRASH("Should never get here!");
|
||||||
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
nsresult QuotaManager::GetInfoFromPrincipal(nsIPrincipal* aPrincipal,
|
nsresult QuotaManager::GetInfoFromPrincipal(nsIPrincipal* aPrincipal,
|
||||||
nsACString* aSuffix,
|
nsACString* aSuffix,
|
||||||
|
@ -5531,9 +5571,6 @@ nsresult QuotaManager::GetInfoFromWindow(nsPIDOMWindowOuter* aWindow,
|
||||||
// static
|
// static
|
||||||
void QuotaManager::GetInfoForChrome(nsACString* aSuffix, nsACString* aGroup,
|
void QuotaManager::GetInfoForChrome(nsACString* aSuffix, nsACString* aGroup,
|
||||||
nsACString* aOrigin) {
|
nsACString* aOrigin) {
|
||||||
MOZ_ASSERT(NS_IsMainThread());
|
|
||||||
MOZ_ASSERT(nsContentUtils::LegacyIsCallerChromeOrNativeCode());
|
|
||||||
|
|
||||||
if (aSuffix) {
|
if (aSuffix) {
|
||||||
aSuffix->Assign(EmptyCString());
|
aSuffix->Assign(EmptyCString());
|
||||||
}
|
}
|
||||||
|
|
|
@ -336,6 +336,10 @@ class QuotaManager final : public BackgroundThreadObject {
|
||||||
|
|
||||||
static bool IsPrincipalInfoValid(const PrincipalInfo& aPrincipalInfo);
|
static bool IsPrincipalInfoValid(const PrincipalInfo& aPrincipalInfo);
|
||||||
|
|
||||||
|
static void GetInfoFromValidatedPrincipalInfo(
|
||||||
|
const PrincipalInfo& aPrincipalInfo, nsACString* aSuffix,
|
||||||
|
nsACString* aGroup, nsACString* aOrigin);
|
||||||
|
|
||||||
static nsresult GetInfoFromPrincipal(nsIPrincipal* aPrincipal,
|
static nsresult GetInfoFromPrincipal(nsIPrincipal* aPrincipal,
|
||||||
nsACString* aSuffix, nsACString* aGroup,
|
nsACString* aSuffix, nsACString* aGroup,
|
||||||
nsACString* aOrigin);
|
nsACString* aOrigin);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче