| Index: extensions/shell/common/shell_extensions_client.cc
|
| diff --git a/extensions/shell/common/shell_extensions_client.cc b/extensions/shell/common/shell_extensions_client.cc
|
| index 338f31233b25b6ca1fa282a1b34cbfd361b7e3b8..0bce5f533ef27b6f9bf34ed822c9958e285b0c7a 100644
|
| --- a/extensions/shell/common/shell_extensions_client.cc
|
| +++ b/extensions/shell/common/shell_extensions_client.cc
|
| @@ -23,6 +23,10 @@
|
| #include "extensions/common/permissions/permissions_provider.h"
|
| #include "extensions/common/url_pattern_set.h"
|
| #include "extensions/shell/common/api/generated_schemas.h"
|
| +#include "extensions/shell/common/api/shell_api_features.h"
|
| +#include "extensions/shell/common/api/shell_behavior_features.h"
|
| +#include "extensions/shell/common/api/shell_manifest_features.h"
|
| +#include "extensions/shell/common/api/shell_permission_features.h"
|
| #include "grit/app_shell_resources.h"
|
| #include "grit/extensions_resources.h"
|
|
|
| @@ -99,20 +103,14 @@ const std::string ShellExtensionsClient::GetProductName() {
|
| std::unique_ptr<FeatureProvider> ShellExtensionsClient::CreateFeatureProvider(
|
| const std::string& name) const {
|
| std::unique_ptr<FeatureProvider> provider;
|
| - std::unique_ptr<JSONFeatureProviderSource> source(
|
| - CreateFeatureProviderSource(name));
|
| if (name == "api") {
|
| - provider.reset(new JSONFeatureProvider(source->dictionary(),
|
| - CreateFeature<APIFeature>));
|
| + provider.reset(new ShellAPIFeatureProvider());
|
| } else if (name == "manifest") {
|
| - provider.reset(new JSONFeatureProvider(source->dictionary(),
|
| - CreateFeature<ManifestFeature>));
|
| + provider.reset(new ShellManifestFeatureProvider());
|
| } else if (name == "permission") {
|
| - provider.reset(new JSONFeatureProvider(source->dictionary(),
|
| - CreateFeature<PermissionFeature>));
|
| + provider.reset(new ShellPermissionFeatureProvider());
|
| } else if (name == "behavior") {
|
| - provider.reset(new JSONFeatureProvider(source->dictionary(),
|
| - CreateFeature<BehaviorFeature>));
|
| + provider.reset(new ShellBehaviorFeatureProvider());
|
| } else {
|
| NOTREACHED();
|
| }
|
| @@ -120,23 +118,11 @@ std::unique_ptr<FeatureProvider> ShellExtensionsClient::CreateFeatureProvider(
|
| }
|
|
|
| std::unique_ptr<JSONFeatureProviderSource>
|
| -ShellExtensionsClient::CreateFeatureProviderSource(
|
| - const std::string& name) const {
|
| +ShellExtensionsClient::CreateAPIFeatureSource() const {
|
| std::unique_ptr<JSONFeatureProviderSource> source(
|
| - new JSONFeatureProviderSource(name));
|
| - if (name == "api") {
|
| - source->LoadJSON(IDR_EXTENSION_API_FEATURES);
|
| - source->LoadJSON(IDR_SHELL_EXTENSION_API_FEATURES);
|
| - } else if (name == "manifest") {
|
| - source->LoadJSON(IDR_EXTENSION_MANIFEST_FEATURES);
|
| - } else if (name == "permission") {
|
| - source->LoadJSON(IDR_EXTENSION_PERMISSION_FEATURES);
|
| - } else if (name == "behavior") {
|
| - source->LoadJSON(IDR_EXTENSION_BEHAVIOR_FEATURES);
|
| - } else {
|
| - NOTREACHED();
|
| - source.reset();
|
| - }
|
| + new JSONFeatureProviderSource("api"));
|
| + source->LoadJSON(IDR_EXTENSION_API_FEATURES);
|
| + source->LoadJSON(IDR_SHELL_EXTENSION_API_FEATURES);
|
| return source;
|
| }
|
|
|
|
|