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

Unified Diff: apps/shell/common/shell_extensions_client.cc

Issue 293943002: Clean up TestFeaturesNativeHandler to use the ExtensionsClient's JSON feature sources. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 7 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: apps/shell/common/shell_extensions_client.cc
diff --git a/apps/shell/common/shell_extensions_client.cc b/apps/shell/common/shell_extensions_client.cc
index fe01ea345263eb32c09f5677777ed3ff96f376b6..2dac9e121f96f5f3cf03e46c44e5803237573389 100644
--- a/apps/shell/common/shell_extensions_client.cc
+++ b/apps/shell/common/shell_extensions_client.cc
@@ -29,6 +29,7 @@ using extensions::APIPermissionSet;
using extensions::BaseFeatureProvider;
using extensions::Extension;
using extensions::FeatureProvider;
+using extensions::JSONFeatureProviderSource;
using extensions::Manifest;
using extensions::PermissionMessage;
using extensions::PermissionMessages;
@@ -119,24 +120,41 @@ ShellExtensionsClient::GetPermissionMessageProvider() const {
scoped_ptr<FeatureProvider> ShellExtensionsClient::CreateFeatureProvider(
const std::string& name) const {
- extensions::JSONFeatureProviderSource source(name);
+ scoped_ptr<FeatureProvider> provider;
+ scoped_ptr<JSONFeatureProviderSource> source(
+ CreateFeatureProviderSource(name));
if (name == "api") {
- source.LoadJSON(IDR_EXTENSION_API_FEATURES);
- source.LoadJSON(IDR_SHELL_EXTENSION_API_FEATURES);
- return scoped_ptr<FeatureProvider>(new BaseFeatureProvider(
- source.dictionary(), CreateFeature<extensions::APIFeature>));
+ provider.reset(new BaseFeatureProvider(
+ source->dictionary(), CreateFeature<extensions::APIFeature>));
} else if (name == "manifest") {
- source.LoadJSON(IDR_EXTENSION_MANIFEST_FEATURES);
- return scoped_ptr<FeatureProvider>(new BaseFeatureProvider(
- source.dictionary(), CreateFeature<extensions::ManifestFeature>));
+ provider.reset(new BaseFeatureProvider(
+ source->dictionary(), CreateFeature<extensions::ManifestFeature>));
} else if (name == "permission") {
- source.LoadJSON(IDR_EXTENSION_PERMISSION_FEATURES);
- return scoped_ptr<FeatureProvider>(new BaseFeatureProvider(
- source.dictionary(), CreateFeature<extensions::PermissionFeature>));
+ provider.reset(new BaseFeatureProvider(
+ source->dictionary(), CreateFeature<extensions::PermissionFeature>));
} else {
NOTREACHED();
}
- return scoped_ptr<FeatureProvider>();
+ return provider.Pass();
+}
+
+scoped_ptr<JSONFeatureProviderSource>
+ShellExtensionsClient::CreateFeatureProviderSource(
+ const std::string& name) const {
+ scoped_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 {
+ NOTREACHED();
+ source.reset();
+ }
+ return source.Pass();
}
void ShellExtensionsClient::FilterHostPermissions(
« no previous file with comments | « apps/shell/common/shell_extensions_client.h ('k') | chrome/browser/bookmarks/enhanced_bookmarks_features.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698