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) {
void ChromeAppsAPIProvider::RegisterPermissions(
extensions::PermissionsInfo* permissions_info) {
permissions_info->RegisterPermissions(
chrome_apps_api_permissions::GetPermissionInfos(), {});
chrome_apps_api_permissions::GetPermissionInfos(),
base::span<const extensions::Alias>());
}
void ChromeAppsAPIProvider::RegisterManifestHandlers() {
......
......@@ -235,10 +235,12 @@ base::span<const APIPermissionInfo::InitInfo> GetPermissionInfos() {
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
// 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
......
......@@ -5,8 +5,7 @@
#ifndef 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/permissions/api_permission.h"
......@@ -18,7 +17,7 @@ namespace chrome_api_permissions {
base::span<const APIPermissionInfo::InitInfo> GetPermissionInfos();
// Returns the list of aliases for chrome-layer extension APIPermissions.
std::vector<Alias> GetPermissionAliases();
base::span<const Alias> GetPermissionAliases();
} // namespace chrome_api_permissions
} // namespace extensions
......
......@@ -5,8 +5,6 @@
#ifndef EXTENSIONS_COMMON_ALIAS_H_
#define EXTENSIONS_COMMON_ALIAS_H_
#include <string>
namespace extensions {
// Information about an alias.
......@@ -15,24 +13,18 @@ namespace extensions {
// 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
// old feature name don't break.
class Alias {
public:
// |name|: The alias name.
// |real_name|: The real name behind alias.
Alias(const char* const name, const char* const 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_; }
struct Alias {
// This struct is meant to contain pointers to character string constants,
// so the lifetime of the pointer parameters should exceed that of the Alias
// instance.
constexpr Alias(const char* name, const char* real_name)
: name(name), real_name(real_name) {}
private:
// The alias name.
std::string name_;
const char* name;
// The real name behind the alias.
std::string real_name_;
const char* real_name;
};
} // namespace extensions
......
......@@ -130,13 +130,16 @@ base::span<const APIPermissionInfo::InitInfo> GetPermissionInfos() {
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
// real name. See also alias.h.
return {Alias("alwaysOnTopWindows", "app.window.alwaysOnTop"),
Alias("fullscreen", "app.window.fullscreen"),
Alias("overrideEscFullscreen", "app.window.fullscreen.overrideEsc"),
Alias("unlimited_storage", "unlimitedStorage")};
static constexpr Alias aliases[] = {
Alias("alwaysOnTopWindows", "app.window.alwaysOnTop"),
Alias("fullscreen", "app.window.fullscreen"),
Alias("overrideEscFullscreen", "app.window.fullscreen.overrideEsc"),
Alias("unlimited_storage", "unlimitedStorage")};
return base::make_span(aliases);
}
} // namespace api_permissions
......
......@@ -5,8 +5,6 @@
#ifndef EXTENSIONS_COMMON_PERMISSIONS_EXTENSIONS_API_PERMISSIONS_H_
#define EXTENSIONS_COMMON_PERMISSIONS_EXTENSIONS_API_PERMISSIONS_H_
#include <vector>
#include "base/containers/span.h"
#include "extensions/common/alias.h"
#include "extensions/common/permissions/api_permission.h"
......@@ -15,7 +13,7 @@ namespace extensions {
namespace api_permissions {
base::span<const APIPermissionInfo::InitInfo> GetPermissionInfos();
std::vector<Alias> GetPermissionAliases();
base::span<const Alias> GetPermissionAliases();
} // namespace api_permissions
} // namespace extensions
......
......@@ -23,7 +23,7 @@ PermissionsInfo* PermissionsInfo::GetInstance() {
void PermissionsInfo::RegisterPermissions(
base::span<const APIPermissionInfo::InitInfo> infos,
const std::vector<Alias>& aliases) {
base::span<const Alias> aliases) {
for (const auto& info : infos)
RegisterPermission(base::WrapUnique(new APIPermissionInfo((info))));
......@@ -75,9 +75,9 @@ PermissionsInfo::~PermissionsInfo() {
}
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()];
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(
......
......@@ -23,7 +23,7 @@
namespace extensions {
class Alias;
struct Alias;
// A global object that holds the extension permission instances and provides
// methods for accessing them.
......@@ -33,9 +33,8 @@ class PermissionsInfo {
// Registers the permissions specified by |infos| along with the
// |aliases|.
// TODO(devlin): Convert |aliases| to be a base::span.
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.
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