Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(172)

Unified Diff: extensions/common/permissions/permissions_info.cc

Issue 2379763003: Extract permission alias info from PermissionsProvider (Closed)
Patch Set: not nesting Alias in AliasProvider Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: extensions/common/permissions/permissions_info.cc
diff --git a/extensions/common/permissions/permissions_info.cc b/extensions/common/permissions/permissions_info.cc
index a3c942ead06f8b65d7a84d82d87904d7dfc6b598..6149acd2bee8cbf5f474d154cea42fa70387c387 100644
--- a/extensions/common/permissions/permissions_info.cc
+++ b/extensions/common/permissions/permissions_info.cc
@@ -8,6 +8,7 @@
#include "base/logging.h"
#include "base/stl_util.h"
#include "base/strings/string_util.h"
+#include "extensions/common/alias.h"
namespace extensions {
@@ -19,14 +20,16 @@ PermissionsInfo* PermissionsInfo::GetInstance() {
return g_permissions_info.Pointer();
}
-void PermissionsInfo::AddProvider(const PermissionsProvider& provider) {
- auto permissions = provider.GetAllPermissions();
- auto aliases = provider.GetAllAliases();
+void PermissionsInfo::AddProvider(
+ const PermissionsProvider& permissions_provider,
+ const AliasProvider& alias_provider) {
+ auto permissions = permissions_provider.GetAllPermissions();
+ auto aliases = alias_provider.GetValidPermissionAliases();
for (auto& permission : permissions)
RegisterPermission(std::move(permission));
for (const auto& alias : aliases)
- RegisterAlias(alias.name, alias.alias);
+ RegisterAlias(alias);
}
const APIPermissionInfo* PermissionsInfo::GetByID(APIPermission::ID id) const {
@@ -72,12 +75,10 @@ PermissionsInfo::PermissionsInfo()
PermissionsInfo::~PermissionsInfo() {
}
-void PermissionsInfo::RegisterAlias(
- const char* name,
- const char* alias) {
- DCHECK(base::ContainsKey(name_map_, name));
- DCHECK(!base::ContainsKey(name_map_, alias));
- name_map_[alias] = name_map_[name];
+void PermissionsInfo::RegisterAlias(const Alias& alias) {
+ DCHECK(base::ContainsKey(name_map_, alias.real_name()));
+ DCHECK(!base::ContainsKey(name_map_, alias.name()));
+ name_map_[alias.name()] = name_map_[alias.real_name()];
}
void PermissionsInfo::RegisterPermission(

Powered by Google App Engine
This is Rietveld 408576698