Commit e83fe916 authored by David Bertoni's avatar David Bertoni Committed by Commit Bot

[Extensions] Convert vector of Alias(es) to base::span in API.

Bug: 847237
Change-Id: Ia95ec62d92a31bc5c71d53c355b6cb577acb4350
Reviewed-on: https://chromium-review.googlesource.com/1244099Reviewed-by: default avatarTrent Apted <tapted@chromium.org>
Reviewed-by: default avatarDevlin <rdevlin.cronin@chromium.org>
Commit-Queue: David Bertoni <dbertoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#594794}
parent 8244a2fd
...@@ -54,7 +54,8 @@ base::StringPiece ChromeAppsAPIProvider::GetAPISchema(const std::string& name) { ...@@ -54,7 +54,8 @@ base::StringPiece ChromeAppsAPIProvider::GetAPISchema(const std::string& name) {
void ChromeAppsAPIProvider::RegisterPermissions( void ChromeAppsAPIProvider::RegisterPermissions(
extensions::PermissionsInfo* permissions_info) { extensions::PermissionsInfo* permissions_info) {
permissions_info->RegisterPermissions( permissions_info->RegisterPermissions(
chrome_apps_api_permissions::GetPermissionInfos(), {}); chrome_apps_api_permissions::GetPermissionInfos(),
base::span<const extensions::Alias>());
} }
void ChromeAppsAPIProvider::RegisterManifestHandlers() { void ChromeAppsAPIProvider::RegisterManifestHandlers() {
......
...@@ -235,10 +235,12 @@ base::span<const APIPermissionInfo::InitInfo> GetPermissionInfos() { ...@@ -235,10 +235,12 @@ base::span<const APIPermissionInfo::InitInfo> GetPermissionInfos() {
return base::make_span(permissions_to_register); return base::make_span(permissions_to_register);
} }
std::vector<Alias> GetPermissionAliases() { base::span<const Alias> GetPermissionAliases() {
// In alias constructor, first value is the alias name; second value is the // In alias constructor, first value is the alias name; second value is the
// real name. See also alias.h. // real name. See also alias.h.
return {Alias("windows", "tabs")}; static constexpr Alias aliases[] = {Alias("windows", "tabs")};
return base::make_span(aliases);
} }
} // namespace chrome_api_permissions } // namespace chrome_api_permissions
......
...@@ -5,8 +5,7 @@ ...@@ -5,8 +5,7 @@
#ifndef CHROME_COMMON_EXTENSIONS_PERMISSIONS_CHROME_API_PERMISSIONS_H_ #ifndef CHROME_COMMON_EXTENSIONS_PERMISSIONS_CHROME_API_PERMISSIONS_H_
#define CHROME_COMMON_EXTENSIONS_PERMISSIONS_CHROME_API_PERMISSIONS_H_ #define CHROME_COMMON_EXTENSIONS_PERMISSIONS_CHROME_API_PERMISSIONS_H_
#include <vector> #include "base/containers/span.h"
#include "extensions/common/alias.h" #include "extensions/common/alias.h"
#include "extensions/common/permissions/api_permission.h" #include "extensions/common/permissions/api_permission.h"
...@@ -18,7 +17,7 @@ namespace chrome_api_permissions { ...@@ -18,7 +17,7 @@ namespace chrome_api_permissions {
base::span<const APIPermissionInfo::InitInfo> GetPermissionInfos(); base::span<const APIPermissionInfo::InitInfo> GetPermissionInfos();
// Returns the list of aliases for chrome-layer extension APIPermissions. // Returns the list of aliases for chrome-layer extension APIPermissions.
std::vector<Alias> GetPermissionAliases(); base::span<const Alias> GetPermissionAliases();
} // namespace chrome_api_permissions } // namespace chrome_api_permissions
} // namespace extensions } // namespace extensions
......
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
#ifndef EXTENSIONS_COMMON_ALIAS_H_ #ifndef EXTENSIONS_COMMON_ALIAS_H_
#define EXTENSIONS_COMMON_ALIAS_H_ #define EXTENSIONS_COMMON_ALIAS_H_
#include <string>
namespace extensions { namespace extensions {
// Information about an alias. // Information about an alias.
...@@ -15,24 +13,18 @@ namespace extensions { ...@@ -15,24 +13,18 @@ namespace extensions {
// features when they get renamed. Old feature name can be defined as an alias // features when they get renamed. Old feature name can be defined as an alias
// for the new feature name - this would ensure that the extensions using the // for the new feature name - this would ensure that the extensions using the
// old feature name don't break. // old feature name don't break.
class Alias { struct Alias {
public: // This struct is meant to contain pointers to character string constants,
// |name|: The alias name. // so the lifetime of the pointer parameters should exceed that of the Alias
// |real_name|: The real name behind alias. // instance.
Alias(const char* const name, const char* const real_name) constexpr Alias(const char* name, const char* real_name)
: name_(name), real_name_(real_name) {} : name(name), real_name(real_name) {}
~Alias() {}
const std::string& name() const { return name_; }
const std::string& real_name() const { return real_name_; }
private:
// The alias name. // The alias name.
std::string name_; const char* name;
// The real name behind the alias. // The real name behind the alias.
std::string real_name_; const char* real_name;
}; };
} // namespace extensions } // namespace extensions
......
...@@ -130,13 +130,16 @@ base::span<const APIPermissionInfo::InitInfo> GetPermissionInfos() { ...@@ -130,13 +130,16 @@ base::span<const APIPermissionInfo::InitInfo> GetPermissionInfos() {
return base::make_span(permissions_to_register); return base::make_span(permissions_to_register);
} }
std::vector<Alias> GetPermissionAliases() { base::span<const Alias> GetPermissionAliases() {
// In alias constructor, first value is the alias name; second value is the // In alias constructor, first value is the alias name; second value is the
// real name. See also alias.h. // real name. See also alias.h.
return {Alias("alwaysOnTopWindows", "app.window.alwaysOnTop"), static constexpr Alias aliases[] = {
Alias("fullscreen", "app.window.fullscreen"), Alias("alwaysOnTopWindows", "app.window.alwaysOnTop"),
Alias("overrideEscFullscreen", "app.window.fullscreen.overrideEsc"), Alias("fullscreen", "app.window.fullscreen"),
Alias("unlimited_storage", "unlimitedStorage")}; Alias("overrideEscFullscreen", "app.window.fullscreen.overrideEsc"),
Alias("unlimited_storage", "unlimitedStorage")};
return base::make_span(aliases);
} }
} // namespace api_permissions } // namespace api_permissions
......
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
#ifndef EXTENSIONS_COMMON_PERMISSIONS_EXTENSIONS_API_PERMISSIONS_H_ #ifndef EXTENSIONS_COMMON_PERMISSIONS_EXTENSIONS_API_PERMISSIONS_H_
#define EXTENSIONS_COMMON_PERMISSIONS_EXTENSIONS_API_PERMISSIONS_H_ #define EXTENSIONS_COMMON_PERMISSIONS_EXTENSIONS_API_PERMISSIONS_H_
#include <vector>
#include "base/containers/span.h" #include "base/containers/span.h"
#include "extensions/common/alias.h" #include "extensions/common/alias.h"
#include "extensions/common/permissions/api_permission.h" #include "extensions/common/permissions/api_permission.h"
...@@ -15,7 +13,7 @@ namespace extensions { ...@@ -15,7 +13,7 @@ namespace extensions {
namespace api_permissions { namespace api_permissions {
base::span<const APIPermissionInfo::InitInfo> GetPermissionInfos(); base::span<const APIPermissionInfo::InitInfo> GetPermissionInfos();
std::vector<Alias> GetPermissionAliases(); base::span<const Alias> GetPermissionAliases();
} // namespace api_permissions } // namespace api_permissions
} // namespace extensions } // namespace extensions
......
...@@ -23,7 +23,7 @@ PermissionsInfo* PermissionsInfo::GetInstance() { ...@@ -23,7 +23,7 @@ PermissionsInfo* PermissionsInfo::GetInstance() {
void PermissionsInfo::RegisterPermissions( void PermissionsInfo::RegisterPermissions(
base::span<const APIPermissionInfo::InitInfo> infos, base::span<const APIPermissionInfo::InitInfo> infos,
const std::vector<Alias>& aliases) { base::span<const Alias> aliases) {
for (const auto& info : infos) for (const auto& info : infos)
RegisterPermission(base::WrapUnique(new APIPermissionInfo((info)))); RegisterPermission(base::WrapUnique(new APIPermissionInfo((info))));
...@@ -75,9 +75,9 @@ PermissionsInfo::~PermissionsInfo() { ...@@ -75,9 +75,9 @@ PermissionsInfo::~PermissionsInfo() {
} }
void PermissionsInfo::RegisterAlias(const Alias& alias) { void PermissionsInfo::RegisterAlias(const Alias& alias) {
DCHECK(base::ContainsKey(name_map_, alias.real_name())); DCHECK(base::ContainsKey(name_map_, alias.real_name));
DCHECK(!base::ContainsKey(name_map_, alias.name())); DCHECK(!base::ContainsKey(name_map_, alias.name));
name_map_[alias.name()] = name_map_[alias.real_name()]; name_map_[alias.name] = name_map_[alias.real_name];
} }
void PermissionsInfo::RegisterPermission( void PermissionsInfo::RegisterPermission(
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
namespace extensions { namespace extensions {
class Alias; struct Alias;
// A global object that holds the extension permission instances and provides // A global object that holds the extension permission instances and provides
// methods for accessing them. // methods for accessing them.
...@@ -33,9 +33,8 @@ class PermissionsInfo { ...@@ -33,9 +33,8 @@ class PermissionsInfo {
// Registers the permissions specified by |infos| along with the // Registers the permissions specified by |infos| along with the
// |aliases|. // |aliases|.
// TODO(devlin): Convert |aliases| to be a base::span.
void RegisterPermissions(base::span<const APIPermissionInfo::InitInfo> infos, void RegisterPermissions(base::span<const APIPermissionInfo::InitInfo> infos,
const std::vector<Alias>& aliases); base::span<const Alias> aliases);
// Returns the permission with the given |id|, and NULL if it doesn't exist. // Returns the permission with the given |id|, and NULL if it doesn't exist.
const APIPermissionInfo* GetByID(APIPermission::ID id) const; const APIPermissionInfo* GetByID(APIPermission::ID id) const;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment