Commit e3e9da53 authored by Devlin Cronin's avatar Devlin Cronin Committed by Commit Bot

[Extensions] Move Permissions registration to the ExtensionsAPIProvider

Move Permissions registration out of the body of
ExtensionsClient::Initialize() and into the ExtensionsAPIProviders by
introducing ExtensionsAPIProvider::AddPermissionsProviders().

Have each provider register their associated permissions, and have
a common ExtensionsClient initialization step call into them in order
to trigger the registration.

Bug: 873937

Change-Id: Idfc55d0690dd8cf77f62b63650deec2ae42623a2
Reviewed-on: https://chromium-review.googlesource.com/1177181Reviewed-by: default avatarIstiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: default avatarLuke Halliwell <halliwell@chromium.org>
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584788}
parent f2b32b02
...@@ -8,12 +8,14 @@ ...@@ -8,12 +8,14 @@
#include "chrome/common/extensions/api/generated_schemas.h" #include "chrome/common/extensions/api/generated_schemas.h"
#include "chrome/common/extensions/api/manifest_features.h" #include "chrome/common/extensions/api/manifest_features.h"
#include "chrome/common/extensions/api/permission_features.h" #include "chrome/common/extensions/api/permission_features.h"
#include "chrome/common/extensions/chrome_aliases.h"
#include "chrome/grit/common_resources.h" #include "chrome/grit/common_resources.h"
#include "extensions/common/features/json_feature_provider_source.h" #include "extensions/common/features/json_feature_provider_source.h"
#include "extensions/common/permissions/permissions_info.h"
namespace extensions { namespace extensions {
ChromeExtensionsAPIProvider::ChromeExtensionsAPIProvider() = default; ChromeExtensionsAPIProvider::ChromeExtensionsAPIProvider() {}
ChromeExtensionsAPIProvider::~ChromeExtensionsAPIProvider() = default; ChromeExtensionsAPIProvider::~ChromeExtensionsAPIProvider() = default;
void ChromeExtensionsAPIProvider::AddAPIFeatures(FeatureProvider* provider) { void ChromeExtensionsAPIProvider::AddAPIFeatures(FeatureProvider* provider) {
...@@ -50,4 +52,9 @@ base::StringPiece ChromeExtensionsAPIProvider::GetAPISchema( ...@@ -50,4 +52,9 @@ base::StringPiece ChromeExtensionsAPIProvider::GetAPISchema(
return api::ChromeGeneratedSchemas::Get(name); return api::ChromeGeneratedSchemas::Get(name);
} }
void ChromeExtensionsAPIProvider::AddPermissionsProviders(
PermissionsInfo* permissions_info) {
permissions_info->AddProvider(api_permissions_, GetChromePermissionAliases());
}
} // namespace extensions } // namespace extensions
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#define CHROME_COMMON_EXTENSIONS_CHROME_EXTENSIONS_API_PROVIDER_H_ #define CHROME_COMMON_EXTENSIONS_CHROME_EXTENSIONS_API_PROVIDER_H_
#include "base/macros.h" #include "base/macros.h"
#include "chrome/common/extensions/permissions/chrome_api_permissions.h"
#include "extensions/common/extensions_api_provider.h" #include "extensions/common/extensions_api_provider.h"
namespace extensions { namespace extensions {
...@@ -23,8 +24,11 @@ class ChromeExtensionsAPIProvider : public ExtensionsAPIProvider { ...@@ -23,8 +24,11 @@ class ChromeExtensionsAPIProvider : public ExtensionsAPIProvider {
void AddAPIJSONSources(JSONFeatureProviderSource* json_source) override; void AddAPIJSONSources(JSONFeatureProviderSource* json_source) override;
bool IsAPISchemaGenerated(const std::string& name) override; bool IsAPISchemaGenerated(const std::string& name) override;
base::StringPiece GetAPISchema(const std::string& name) override; base::StringPiece GetAPISchema(const std::string& name) override;
void AddPermissionsProviders(PermissionsInfo* permissions_info) override;
private: private:
const ChromeAPIPermissions api_permissions_;
DISALLOW_COPY_AND_ASSIGN(ChromeExtensionsAPIProvider); DISALLOW_COPY_AND_ASSIGN(ChromeExtensionsAPIProvider);
}; };
......
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
#include "chrome/common/chrome_content_client.h" #include "chrome/common/chrome_content_client.h"
#include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_switches.h"
#include "chrome/common/extensions/api/extension_action/action_info.h" #include "chrome/common/extensions/api/extension_action/action_info.h"
#include "chrome/common/extensions/chrome_aliases.h"
#include "chrome/common/extensions/chrome_extensions_api_provider.h" #include "chrome/common/extensions/chrome_extensions_api_provider.h"
#include "chrome/common/extensions/chrome_manifest_handlers.h" #include "chrome/common/extensions/chrome_manifest_handlers.h"
#include "chrome/common/extensions/manifest_handlers/theme_handler.h" #include "chrome/common/extensions/manifest_handlers/theme_handler.h"
...@@ -31,13 +30,11 @@ ...@@ -31,13 +30,11 @@
#include "extensions/common/extension_api.h" #include "extensions/common/extension_api.h"
#include "extensions/common/extension_icon_set.h" #include "extensions/common/extension_icon_set.h"
#include "extensions/common/extension_urls.h" #include "extensions/common/extension_urls.h"
#include "extensions/common/extensions_aliases.h"
#include "extensions/common/features/feature_channel.h" #include "extensions/common/features/feature_channel.h"
#include "extensions/common/manifest_constants.h" #include "extensions/common/manifest_constants.h"
#include "extensions/common/manifest_handler.h" #include "extensions/common/manifest_handler.h"
#include "extensions/common/manifest_handlers/icons_handler.h" #include "extensions/common/manifest_handlers/icons_handler.h"
#include "extensions/common/permissions/api_permission_set.h" #include "extensions/common/permissions/api_permission_set.h"
#include "extensions/common/permissions/permissions_info.h"
#include "extensions/common/url_pattern.h" #include "extensions/common/url_pattern.h"
#include "extensions/common/url_pattern_set.h" #include "extensions/common/url_pattern_set.h"
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
...@@ -104,12 +101,6 @@ void ChromeExtensionsClient::Initialize() { ...@@ -104,12 +101,6 @@ void ChromeExtensionsClient::Initialize() {
ManifestHandler::FinalizeRegistration(); ManifestHandler::FinalizeRegistration();
} }
// Set up permissions.
PermissionsInfo::GetInstance()->AddProvider(chrome_api_permissions_,
GetChromePermissionAliases());
PermissionsInfo::GetInstance()->AddProvider(extensions_api_permissions_,
GetExtensionsPermissionAliases());
// Set up the scripting whitelist. // Set up the scripting whitelist.
// Whitelist ChromeVox, an accessibility extension from Google that needs // Whitelist ChromeVox, an accessibility extension from Google that needs
// the ability to script webui pages. This is temporary and is not // the ability to script webui pages. This is temporary and is not
......
...@@ -9,10 +9,8 @@ ...@@ -9,10 +9,8 @@
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "base/macros.h" #include "base/macros.h"
#include "chrome/common/extensions/permissions/chrome_api_permissions.h"
#include "chrome/common/extensions/permissions/chrome_permission_message_provider.h" #include "chrome/common/extensions/permissions/chrome_permission_message_provider.h"
#include "extensions/common/extensions_client.h" #include "extensions/common/extensions_client.h"
#include "extensions/common/permissions/extensions_api_permissions.h"
#include "url/gurl.h" #include "url/gurl.h"
namespace extensions { namespace extensions {
...@@ -51,8 +49,6 @@ class ChromeExtensionsClient : public ExtensionsClient { ...@@ -51,8 +49,6 @@ class ChromeExtensionsClient : public ExtensionsClient {
std::string GetUserAgent() const override; std::string GetUserAgent() const override;
private: private:
const ChromeAPIPermissions chrome_api_permissions_;
const ExtensionsAPIPermissions extensions_api_permissions_;
const ChromePermissionMessageProvider permission_message_provider_; const ChromePermissionMessageProvider permission_message_provider_;
// A whitelist of extensions that can script anywhere. Do not add to this // A whitelist of extensions that can script anywhere. Do not add to this
......
...@@ -4,17 +4,19 @@ ...@@ -4,17 +4,19 @@
#include "chromecast/common/cast_extensions_api_provider.h" #include "chromecast/common/cast_extensions_api_provider.h"
#include "chromecast/common/extensions_api/cast_aliases.h"
#include "chromecast/common/extensions_api/cast_api_features.h" #include "chromecast/common/extensions_api/cast_api_features.h"
#include "chromecast/common/extensions_api/cast_api_permissions.h" #include "chromecast/common/extensions_api/cast_api_permissions.h"
#include "chromecast/common/extensions_api/cast_manifest_features.h" #include "chromecast/common/extensions_api/cast_manifest_features.h"
#include "chromecast/common/extensions_api/cast_permission_features.h" #include "chromecast/common/extensions_api/cast_permission_features.h"
#include "chromecast/common/extensions_api/generated_schemas.h" #include "chromecast/common/extensions_api/generated_schemas.h"
#include "extensions/common/features/json_feature_provider_source.h" #include "extensions/common/features/json_feature_provider_source.h"
#include "extensions/common/permissions/permissions_info.h"
#include "extensions/shell/grit/app_shell_resources.h" #include "extensions/shell/grit/app_shell_resources.h"
namespace extensions { namespace extensions {
CastExtensionsAPIProvider::CastExtensionsAPIProvider() = default; CastExtensionsAPIProvider::CastExtensionsAPIProvider() {}
CastExtensionsAPIProvider::~CastExtensionsAPIProvider() = default; CastExtensionsAPIProvider::~CastExtensionsAPIProvider() = default;
void CastExtensionsAPIProvider::AddAPIFeatures(FeatureProvider* provider) { void CastExtensionsAPIProvider::AddAPIFeatures(FeatureProvider* provider) {
...@@ -48,4 +50,9 @@ base::StringPiece CastExtensionsAPIProvider::GetAPISchema( ...@@ -48,4 +50,9 @@ base::StringPiece CastExtensionsAPIProvider::GetAPISchema(
return cast::api::CastGeneratedSchemas::Get(name); return cast::api::CastGeneratedSchemas::Get(name);
} }
void CastExtensionsAPIProvider::AddPermissionsProviders(
PermissionsInfo* permissions_info) {
permissions_info->AddProvider(api_permissions_, GetCastPermissionAliases());
}
} // namespace extensions } // namespace extensions
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#define CHROMECAST_COMMON_CAST_EXTENSIONS_API_PROVIDER_H_ #define CHROMECAST_COMMON_CAST_EXTENSIONS_API_PROVIDER_H_
#include "base/macros.h" #include "base/macros.h"
#include "chromecast/common/extensions_api/cast_api_permissions.h"
#include "extensions/common/extensions_api_provider.h" #include "extensions/common/extensions_api_provider.h"
namespace extensions { namespace extensions {
...@@ -23,8 +24,11 @@ class CastExtensionsAPIProvider : public ExtensionsAPIProvider { ...@@ -23,8 +24,11 @@ class CastExtensionsAPIProvider : public ExtensionsAPIProvider {
void AddAPIJSONSources(JSONFeatureProviderSource* json_source) override; void AddAPIJSONSources(JSONFeatureProviderSource* json_source) override;
bool IsAPISchemaGenerated(const std::string& name) override; bool IsAPISchemaGenerated(const std::string& name) override;
base::StringPiece GetAPISchema(const std::string& name) override; base::StringPiece GetAPISchema(const std::string& name) override;
void AddPermissionsProviders(PermissionsInfo* permissions_info) override;
private: private:
const CastAPIPermissions api_permissions_;
DISALLOW_COPY_AND_ASSIGN(CastExtensionsAPIProvider); DISALLOW_COPY_AND_ASSIGN(CastExtensionsAPIProvider);
}; };
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
#include "base/no_destructor.h" #include "base/no_destructor.h"
#include "chromecast/common/cast_extensions_api_provider.h" #include "chromecast/common/cast_extensions_api_provider.h"
#include "chromecast/common/cast_redirect_manifest_handler.h" #include "chromecast/common/cast_redirect_manifest_handler.h"
#include "chromecast/common/extensions_api/cast_aliases.h"
#include "components/version_info/version_info.h" #include "components/version_info/version_info.h"
#include "content/public/common/user_agent.h" #include "content/public/common/user_agent.h"
#include "extensions/common/api/api_features.h" #include "extensions/common/api/api_features.h"
...@@ -23,7 +22,6 @@ ...@@ -23,7 +22,6 @@
#include "extensions/common/common_manifest_handlers.h" #include "extensions/common/common_manifest_handlers.h"
#include "extensions/common/core_extensions_api_provider.h" #include "extensions/common/core_extensions_api_provider.h"
#include "extensions/common/extension_urls.h" #include "extensions/common/extension_urls.h"
#include "extensions/common/extensions_aliases.h"
#include "extensions/common/features/feature_provider.h" #include "extensions/common/features/feature_provider.h"
#include "extensions/common/features/manifest_feature.h" #include "extensions/common/features/manifest_feature.h"
#include "extensions/common/features/simple_feature.h" #include "extensions/common/features/simple_feature.h"
...@@ -31,8 +29,6 @@ ...@@ -31,8 +29,6 @@
#include "extensions/common/manifest_handlers/automation.h" #include "extensions/common/manifest_handlers/automation.h"
#include "extensions/common/manifest_handlers/content_scripts_handler.h" #include "extensions/common/manifest_handlers/content_scripts_handler.h"
#include "extensions/common/permissions/permission_message_provider.h" #include "extensions/common/permissions/permission_message_provider.h"
#include "extensions/common/permissions/permissions_info.h"
#include "extensions/common/permissions/permissions_provider.h"
#include "extensions/common/url_pattern_set.h" #include "extensions/common/url_pattern_set.h"
namespace extensions { namespace extensions {
...@@ -80,8 +76,7 @@ class ShellPermissionMessageProvider : public PermissionMessageProvider { ...@@ -80,8 +76,7 @@ class ShellPermissionMessageProvider : public PermissionMessageProvider {
} // namespace } // namespace
CastExtensionsClient::CastExtensionsClient() CastExtensionsClient::CastExtensionsClient()
: extensions_api_permissions_(ExtensionsAPIPermissions()), : webstore_base_url_(extension_urls::kChromeWebstoreBaseURL),
webstore_base_url_(extension_urls::kChromeWebstoreBaseURL),
webstore_update_url_(extension_urls::kChromeWebstoreUpdateURL) { webstore_update_url_(extension_urls::kChromeWebstoreUpdateURL) {
AddAPIProvider(std::make_unique<CoreExtensionsAPIProvider>()); AddAPIProvider(std::make_unique<CoreExtensionsAPIProvider>());
AddAPIProvider(std::make_unique<CastExtensionsAPIProvider>()); AddAPIProvider(std::make_unique<CastExtensionsAPIProvider>());
...@@ -94,11 +89,6 @@ void CastExtensionsClient::Initialize() { ...@@ -94,11 +89,6 @@ void CastExtensionsClient::Initialize() {
RegisterCastManifestHandlers(); RegisterCastManifestHandlers();
ManifestHandler::FinalizeRegistration(); ManifestHandler::FinalizeRegistration();
// TODO(jamescook): Do we need to whitelist any extensions? // TODO(jamescook): Do we need to whitelist any extensions?
PermissionsInfo::GetInstance()->AddProvider(cast_api_permissions_,
GetCastPermissionAliases());
PermissionsInfo::GetInstance()->AddProvider(extensions_api_permissions_,
GetExtensionsPermissionAliases());
} }
void CastExtensionsClient::InitializeWebStoreUrls( void CastExtensionsClient::InitializeWebStoreUrls(
......
...@@ -7,9 +7,7 @@ ...@@ -7,9 +7,7 @@
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "base/macros.h" #include "base/macros.h"
#include "chromecast/common/extensions_api/cast_api_permissions.h"
#include "extensions/common/extensions_client.h" #include "extensions/common/extensions_client.h"
#include "extensions/common/permissions/extensions_api_permissions.h"
#include "url/gurl.h" #include "url/gurl.h"
namespace extensions { namespace extensions {
...@@ -43,9 +41,6 @@ class CastExtensionsClient : public ExtensionsClient { ...@@ -43,9 +41,6 @@ class CastExtensionsClient : public ExtensionsClient {
std::string GetUserAgent() const override; std::string GetUserAgent() const override;
private: private:
const CastAPIPermissions cast_api_permissions_;
const ExtensionsAPIPermissions extensions_api_permissions_;
ScriptingWhitelist scripting_whitelist_; ScriptingWhitelist scripting_whitelist_;
const GURL webstore_base_url_; const GURL webstore_base_url_;
......
...@@ -9,12 +9,14 @@ ...@@ -9,12 +9,14 @@
#include "extensions/common/api/generated_schemas.h" #include "extensions/common/api/generated_schemas.h"
#include "extensions/common/api/manifest_features.h" #include "extensions/common/api/manifest_features.h"
#include "extensions/common/api/permission_features.h" #include "extensions/common/api/permission_features.h"
#include "extensions/common/extensions_aliases.h"
#include "extensions/common/features/json_feature_provider_source.h" #include "extensions/common/features/json_feature_provider_source.h"
#include "extensions/common/permissions/permissions_info.h"
#include "extensions/grit/extensions_resources.h" #include "extensions/grit/extensions_resources.h"
namespace extensions { namespace extensions {
CoreExtensionsAPIProvider::CoreExtensionsAPIProvider() = default; CoreExtensionsAPIProvider::CoreExtensionsAPIProvider() {}
CoreExtensionsAPIProvider::~CoreExtensionsAPIProvider() = default; CoreExtensionsAPIProvider::~CoreExtensionsAPIProvider() = default;
void CoreExtensionsAPIProvider::AddAPIFeatures(FeatureProvider* provider) { void CoreExtensionsAPIProvider::AddAPIFeatures(FeatureProvider* provider) {
...@@ -48,4 +50,10 @@ base::StringPiece CoreExtensionsAPIProvider::GetAPISchema( ...@@ -48,4 +50,10 @@ base::StringPiece CoreExtensionsAPIProvider::GetAPISchema(
return api::GeneratedSchemas::Get(name); return api::GeneratedSchemas::Get(name);
} }
void CoreExtensionsAPIProvider::AddPermissionsProviders(
PermissionsInfo* permissions_info) {
permissions_info->AddProvider(api_permissions_,
GetExtensionsPermissionAliases());
}
} // namespace extensions } // namespace extensions
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "extensions/common/extensions_api_provider.h" #include "extensions/common/extensions_api_provider.h"
#include "extensions/common/permissions/extensions_api_permissions.h"
namespace extensions { namespace extensions {
...@@ -23,8 +24,11 @@ class CoreExtensionsAPIProvider : public ExtensionsAPIProvider { ...@@ -23,8 +24,11 @@ class CoreExtensionsAPIProvider : public ExtensionsAPIProvider {
void AddAPIJSONSources(JSONFeatureProviderSource* json_source) override; void AddAPIJSONSources(JSONFeatureProviderSource* json_source) override;
bool IsAPISchemaGenerated(const std::string& name) override; bool IsAPISchemaGenerated(const std::string& name) override;
base::StringPiece GetAPISchema(const std::string& name) override; base::StringPiece GetAPISchema(const std::string& name) override;
void AddPermissionsProviders(PermissionsInfo* permissions_info) override;
private: private:
const ExtensionsAPIPermissions api_permissions_;
DISALLOW_COPY_AND_ASSIGN(CoreExtensionsAPIProvider); DISALLOW_COPY_AND_ASSIGN(CoreExtensionsAPIProvider);
}; };
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
namespace extensions { namespace extensions {
class FeatureProvider; class FeatureProvider;
class JSONFeatureProviderSource; class JSONFeatureProviderSource;
class PermissionsInfo;
// A class to provide API-specific bits and bobs to the extensions system. // A class to provide API-specific bits and bobs to the extensions system.
// This allows for composition of multiple providers, so that we can easily // This allows for composition of multiple providers, so that we can easily
...@@ -39,6 +40,9 @@ class ExtensionsAPIProvider { ...@@ -39,6 +40,9 @@ class ExtensionsAPIProvider {
// or an empty string if this provider doesn't know of the generated API. // or an empty string if this provider doesn't know of the generated API.
virtual base::StringPiece GetAPISchema(const std::string& name) = 0; virtual base::StringPiece GetAPISchema(const std::string& name) = 0;
// Adds any associated permissions.
virtual void AddPermissionsProviders(PermissionsInfo* permissions_info) = 0;
private: private:
DISALLOW_COPY_AND_ASSIGN(ExtensionsAPIProvider); DISALLOW_COPY_AND_ASSIGN(ExtensionsAPIProvider);
}; };
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "extensions/common/features/feature_provider.h" #include "extensions/common/features/feature_provider.h"
#include "extensions/common/features/json_feature_provider_source.h" #include "extensions/common/features/json_feature_provider_source.h"
#include "extensions/common/manifest_handlers/icons_handler.h" #include "extensions/common/manifest_handlers/icons_handler.h"
#include "extensions/common/permissions/permissions_info.h"
namespace extensions { namespace extensions {
...@@ -29,7 +30,7 @@ void ExtensionsClient::Set(ExtensionsClient* client) { ...@@ -29,7 +30,7 @@ void ExtensionsClient::Set(ExtensionsClient* client) {
if (g_client) if (g_client)
return; return;
g_client = client; g_client = client;
g_client->Initialize(); g_client->DoInitialize();
} }
ExtensionsClient::ExtensionsClient() = default; ExtensionsClient::ExtensionsClient() = default;
...@@ -85,6 +86,8 @@ base::StringPiece ExtensionsClient::GetAPISchema( ...@@ -85,6 +86,8 @@ base::StringPiece ExtensionsClient::GetAPISchema(
void ExtensionsClient::AddAPIProvider( void ExtensionsClient::AddAPIProvider(
std::unique_ptr<ExtensionsAPIProvider> provider) { std::unique_ptr<ExtensionsAPIProvider> provider) {
DCHECK(!initialize_called_)
<< "APIProviders can only be added before client initialization.";
api_providers_.push_back(std::move(provider)); api_providers_.push_back(std::move(provider));
} }
...@@ -103,4 +106,14 @@ std::string ExtensionsClient::GetUserAgent() const { ...@@ -103,4 +106,14 @@ std::string ExtensionsClient::GetUserAgent() const {
return std::string(); return std::string();
} }
void ExtensionsClient::DoInitialize() {
initialize_called_ = true;
PermissionsInfo* permissions_info = PermissionsInfo::GetInstance();
for (const auto& provider : api_providers_)
provider->AddPermissionsProviders(permissions_info);
Initialize();
}
} // namespace extensions } // namespace extensions
...@@ -151,8 +151,15 @@ class ExtensionsClient { ...@@ -151,8 +151,15 @@ class ExtensionsClient {
virtual std::string GetUserAgent() const; virtual std::string GetUserAgent() const;
private: private:
// Performs common initialization and calls Initialize() to allow subclasses
// to do any extra initialization.
void DoInitialize();
std::vector<std::unique_ptr<ExtensionsAPIProvider>> api_providers_; std::vector<std::unique_ptr<ExtensionsAPIProvider>> api_providers_;
// Whether DoInitialize() has been called.
bool initialize_called_ = false;
DISALLOW_COPY_AND_ASSIGN(ExtensionsClient); DISALLOW_COPY_AND_ASSIGN(ExtensionsClient);
}; };
......
...@@ -47,4 +47,7 @@ base::StringPiece ShellExtensionsAPIProvider::GetAPISchema( ...@@ -47,4 +47,7 @@ base::StringPiece ShellExtensionsAPIProvider::GetAPISchema(
return shell::api::ShellGeneratedSchemas::Get(name); return shell::api::ShellGeneratedSchemas::Get(name);
} }
void ShellExtensionsAPIProvider::AddPermissionsProviders(
PermissionsInfo* permissions_info) {}
} // namespace extensions } // namespace extensions
...@@ -23,6 +23,7 @@ class ShellExtensionsAPIProvider : public ExtensionsAPIProvider { ...@@ -23,6 +23,7 @@ class ShellExtensionsAPIProvider : public ExtensionsAPIProvider {
void AddAPIJSONSources(JSONFeatureProviderSource* json_source) override; void AddAPIJSONSources(JSONFeatureProviderSource* json_source) override;
bool IsAPISchemaGenerated(const std::string& name) override; bool IsAPISchemaGenerated(const std::string& name) override;
base::StringPiece GetAPISchema(const std::string& name) override; base::StringPiece GetAPISchema(const std::string& name) override;
void AddPermissionsProviders(PermissionsInfo* permissions_info) override;
private: private:
DISALLOW_COPY_AND_ASSIGN(ShellExtensionsAPIProvider); DISALLOW_COPY_AND_ASSIGN(ShellExtensionsAPIProvider);
......
...@@ -15,11 +15,9 @@ ...@@ -15,11 +15,9 @@
#include "extensions/common/common_manifest_handlers.h" #include "extensions/common/common_manifest_handlers.h"
#include "extensions/common/core_extensions_api_provider.h" #include "extensions/common/core_extensions_api_provider.h"
#include "extensions/common/extension_urls.h" #include "extensions/common/extension_urls.h"
#include "extensions/common/extensions_aliases.h"
#include "extensions/common/features/simple_feature.h" #include "extensions/common/features/simple_feature.h"
#include "extensions/common/manifest_handler.h" #include "extensions/common/manifest_handler.h"
#include "extensions/common/permissions/permission_message_provider.h" #include "extensions/common/permissions/permission_message_provider.h"
#include "extensions/common/permissions/permissions_info.h"
#include "extensions/common/permissions/permissions_provider.h" #include "extensions/common/permissions/permissions_provider.h"
#include "extensions/common/url_pattern_set.h" #include "extensions/common/url_pattern_set.h"
#include "extensions/shell/common/shell_extensions_api_provider.h" #include "extensions/shell/common/shell_extensions_api_provider.h"
...@@ -65,8 +63,7 @@ base::LazyInstance<ShellPermissionMessageProvider>::DestructorAtExit ...@@ -65,8 +63,7 @@ base::LazyInstance<ShellPermissionMessageProvider>::DestructorAtExit
} // namespace } // namespace
ShellExtensionsClient::ShellExtensionsClient() ShellExtensionsClient::ShellExtensionsClient()
: extensions_api_permissions_(ExtensionsAPIPermissions()), : webstore_base_url_(extension_urls::kChromeWebstoreBaseURL),
webstore_base_url_(extension_urls::kChromeWebstoreBaseURL),
webstore_update_url_(extension_urls::kChromeWebstoreUpdateURL) { webstore_update_url_(extension_urls::kChromeWebstoreUpdateURL) {
AddAPIProvider(std::make_unique<CoreExtensionsAPIProvider>()); AddAPIProvider(std::make_unique<CoreExtensionsAPIProvider>());
AddAPIProvider(std::make_unique<ShellExtensionsAPIProvider>()); AddAPIProvider(std::make_unique<ShellExtensionsAPIProvider>());
...@@ -79,9 +76,6 @@ void ShellExtensionsClient::Initialize() { ...@@ -79,9 +76,6 @@ void ShellExtensionsClient::Initialize() {
RegisterCommonManifestHandlers(); RegisterCommonManifestHandlers();
ManifestHandler::FinalizeRegistration(); ManifestHandler::FinalizeRegistration();
// TODO(jamescook): Do we need to whitelist any extensions? // TODO(jamescook): Do we need to whitelist any extensions?
PermissionsInfo::GetInstance()->AddProvider(extensions_api_permissions_,
GetExtensionsPermissionAliases());
} }
void ShellExtensionsClient::InitializeWebStoreUrls( void ShellExtensionsClient::InitializeWebStoreUrls(
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "base/macros.h" #include "base/macros.h"
#include "extensions/common/extensions_client.h" #include "extensions/common/extensions_client.h"
#include "extensions/common/permissions/extensions_api_permissions.h"
#include "url/gurl.h" #include "url/gurl.h"
namespace extensions { namespace extensions {
...@@ -42,8 +41,6 @@ class ShellExtensionsClient : public ExtensionsClient { ...@@ -42,8 +41,6 @@ class ShellExtensionsClient : public ExtensionsClient {
std::string GetUserAgent() const override; std::string GetUserAgent() const override;
private: private:
const ExtensionsAPIPermissions extensions_api_permissions_;
ScriptingWhitelist scripting_whitelist_; ScriptingWhitelist scripting_whitelist_;
const GURL webstore_base_url_; const GURL webstore_base_url_;
......
...@@ -14,10 +14,7 @@ ...@@ -14,10 +14,7 @@
#include "extensions/common/common_manifest_handlers.h" #include "extensions/common/common_manifest_handlers.h"
#include "extensions/common/core_extensions_api_provider.h" #include "extensions/common/core_extensions_api_provider.h"
#include "extensions/common/extension_urls.h" #include "extensions/common/extension_urls.h"
#include "extensions/common/extensions_aliases.h"
#include "extensions/common/manifest_handler.h" #include "extensions/common/manifest_handler.h"
#include "extensions/common/permissions/extensions_api_permissions.h"
#include "extensions/common/permissions/permissions_info.h"
#include "extensions/common/url_pattern_set.h" #include "extensions/common/url_pattern_set.h"
#include "extensions/grit/extensions_resources.h" #include "extensions/grit/extensions_resources.h"
#include "extensions/test/test_permission_message_provider.h" #include "extensions/test/test_permission_message_provider.h"
...@@ -50,11 +47,6 @@ void TestExtensionsClient::Initialize() { ...@@ -50,11 +47,6 @@ void TestExtensionsClient::Initialize() {
RegisterCommonManifestHandlers(); RegisterCommonManifestHandlers();
ManifestHandler::FinalizeRegistration(); ManifestHandler::FinalizeRegistration();
} }
// Allow the core API permissions.
static ExtensionsAPIPermissions extensions_api_permissions;
PermissionsInfo::GetInstance()->AddProvider(extensions_api_permissions,
GetExtensionsPermissionAliases());
} }
void TestExtensionsClient::InitializeWebStoreUrls( void TestExtensionsClient::InitializeWebStoreUrls(
......
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