зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1619592 - Refactor client type checks using new Client::IsValidType method; r=dom-workers-and-storage-reviewers,sg
This patch moves client type checks to the parameter validation phase. The checks are now done using new Client::IsValidType method. Differential Revision: https://phabricator.services.mozilla.com/D66948 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
5cebbc21b1
Коммит
c0757a0c2c
|
@ -8590,6 +8590,13 @@ bool Quota::VerifyRequestParams(const RequestParams& aParams) const {
|
|||
return false;
|
||||
}
|
||||
|
||||
if (params.clientTypeIsExplicit()) {
|
||||
if (NS_WARN_IF(!Client::IsValidType(params.clientType()))) {
|
||||
ASSERT_UNLESS_FUZZING();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -8610,6 +8617,13 @@ bool Quota::VerifyRequestParams(const RequestParams& aParams) const {
|
|||
}
|
||||
}
|
||||
|
||||
if (params.clientTypeIsExplicit()) {
|
||||
if (NS_WARN_IF(!Client::IsValidType(params.clientType()))) {
|
||||
ASSERT_UNLESS_FUZZING();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -8630,6 +8644,13 @@ bool Quota::VerifyRequestParams(const RequestParams& aParams) const {
|
|||
}
|
||||
}
|
||||
|
||||
if (params.clientTypeIsExplicit()) {
|
||||
if (NS_WARN_IF(!Client::IsValidType(params.clientType()))) {
|
||||
ASSERT_UNLESS_FUZZING();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -9533,8 +9554,6 @@ void InitStorageAndOriginOp::Init(Quota* aQuota) {
|
|||
mPersistenceType.SetValue(mParams.persistenceType());
|
||||
|
||||
if (mParams.clientTypeIsExplicit()) {
|
||||
MOZ_ASSERT(mParams.clientType() != Client::TYPE_MAX);
|
||||
|
||||
mClientType.SetValue(mParams.clientType());
|
||||
}
|
||||
|
||||
|
@ -9866,8 +9885,6 @@ void ClearOriginOp::Init(Quota* aQuota) {
|
|||
}
|
||||
|
||||
if (mParams.clientTypeIsExplicit()) {
|
||||
MOZ_ASSERT(mParams.clientType() != Client::TYPE_MAX);
|
||||
|
||||
mClientType.SetValue(mParams.clientType());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -148,6 +148,25 @@ void BadType() { MOZ_CRASH("Bad client type value!"); }
|
|||
|
||||
} // namespace
|
||||
|
||||
// static
|
||||
bool Client::IsValidType(Type aType) {
|
||||
switch (aType) {
|
||||
case Client::IDB:
|
||||
case Client::DOMCACHE:
|
||||
case Client::SDB:
|
||||
return true;
|
||||
|
||||
case Client::LS:
|
||||
if (CachedNextGenLocalStorageEnabled()) {
|
||||
return true;
|
||||
}
|
||||
[[fallthrough]];
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
bool Client::TypeToText(Type aType, nsAString& aText, const fallible_t&) {
|
||||
nsString text;
|
||||
|
|
|
@ -54,6 +54,8 @@ class Client {
|
|||
return LS;
|
||||
}
|
||||
|
||||
static bool IsValidType(Type aType);
|
||||
|
||||
static bool TypeToText(Type aType, nsAString& aText, const fallible_t&);
|
||||
|
||||
static void TypeToText(Type aType, nsAString& aText);
|
||||
|
|
Загрузка…
Ссылка в новой задаче