diff options
author | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-07 20:44:41 +0000 |
---|---|---|
committer | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-07 20:44:41 +0000 |
commit | 276f05aa5fc98df61d947ccaf7480bca9c021730 (patch) | |
tree | 39f71a9d3ea8be562d942b702172e5e6b6c56433 /extensions | |
parent | c6176da0f310db393db5f02269f2e83cbe17aacf (diff) | |
download | chromium_src-276f05aa5fc98df61d947ccaf7480bca9c021730.zip chromium_src-276f05aa5fc98df61d947ccaf7480bca9c021730.tar.gz chromium_src-276f05aa5fc98df61d947ccaf7480bca9c021730.tar.bz2 |
Add FeatureProvider::GetAPIFeatures, GetManifestFeatures, and
GetPermissionFeatures as shortcuts for FeatureProvider::GetByName.
R=yoz@chromium.org
Review URL: https://codereview.chromium.org/25943002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227338 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/common/features/feature_provider.cc | 16 | ||||
-rw-r--r-- | extensions/common/features/feature_provider.h | 5 | ||||
-rw-r--r-- | extensions/common/manifest.cc | 11 |
3 files changed, 27 insertions, 5 deletions
diff --git a/extensions/common/features/feature_provider.cc b/extensions/common/features/feature_provider.cc index 8e15d4b..d5357f1 100644 --- a/extensions/common/features/feature_provider.cc +++ b/extensions/common/features/feature_provider.cc @@ -9,8 +9,24 @@ namespace extensions { +// static FeatureProvider* FeatureProvider::GetByName(const std::string& name) { return ExtensionsClient::Get()->GetFeatureProviderByName(name); } +// static +FeatureProvider* FeatureProvider::GetAPIFeatures() { + return GetByName("api"); +} + +// static +FeatureProvider* FeatureProvider::GetManifestFeatures() { + return GetByName("manifest"); +} + +// static +FeatureProvider* FeatureProvider::GetPermissionFeatures() { + return GetByName("permission"); +} + } // namespace extensions diff --git a/extensions/common/features/feature_provider.h b/extensions/common/features/feature_provider.h index c20e5d1..a295fe0 100644 --- a/extensions/common/features/feature_provider.h +++ b/extensions/common/features/feature_provider.h @@ -29,6 +29,11 @@ class FeatureProvider { // Gets a feature provider for a specific feature type, like "permission". static FeatureProvider* GetByName(const std::string& name); + + // Directly access the common feature types. + static FeatureProvider* GetAPIFeatures(); + static FeatureProvider* GetManifestFeatures(); + static FeatureProvider* GetPermissionFeatures(); }; } // namespace extensions diff --git a/extensions/common/manifest.cc b/extensions/common/manifest.cc index 39e6920..bbd8c32 100644 --- a/extensions/common/manifest.cc +++ b/extensions/common/manifest.cc @@ -145,9 +145,10 @@ bool Manifest::ValidateManifest( // TODO(aa): Consider having an error here in the case of strict error // checking to let developers know when they screw up. - FeatureProvider* provider = FeatureProvider::GetByName("manifest"); + FeatureProvider* manifest_feature_provider = + FeatureProvider::GetManifestFeatures(); const std::vector<std::string>& feature_names = - provider->GetAllFeatureNames(); + manifest_feature_provider->GetAllFeatureNames(); for (std::vector<std::string>::const_iterator feature_name = feature_names.begin(); feature_name != feature_names.end(); ++feature_name) { @@ -155,7 +156,7 @@ bool Manifest::ValidateManifest( if (!value_->Get(*feature_name, NULL)) continue; - Feature* feature = provider->GetFeature(*feature_name); + Feature* feature = manifest_feature_provider->GetFeature(*feature_name); Feature::Availability result = feature->IsAvailableToManifest( extension_id_, type_, Feature::ConvertLocation(location_), GetManifestVersion()); @@ -166,7 +167,7 @@ bool Manifest::ValidateManifest( // Also generate warnings for keys that are not features. for (base::DictionaryValue::Iterator it(*value_); !it.IsAtEnd(); it.Advance()) { - if (!provider->GetFeature(it.key())) { + if (!manifest_feature_provider->GetFeature(it.key())) { warnings->push_back(InstallWarning( ErrorUtils::FormatErrorMessage( manifest_errors::kUnrecognizedManifestKey, it.key()), @@ -253,7 +254,7 @@ bool Manifest::CanAccessPath(const std::string& path) const { } bool Manifest::CanAccessKey(const std::string& key) const { - Feature* feature = FeatureProvider::GetByName("manifest")->GetFeature(key); + Feature* feature = FeatureProvider::GetManifestFeatures()->GetFeature(key); if (!feature) return true; |