| Index: trunk/src/chrome/common/extensions/features/base_feature_provider.cc
 | 
| ===================================================================
 | 
| --- trunk/src/chrome/common/extensions/features/base_feature_provider.cc	(revision 190861)
 | 
| +++ trunk/src/chrome/common/extensions/features/base_feature_provider.cc	(working copy)
 | 
| @@ -6,7 +6,6 @@
 | 
|  
 | 
|  #include "base/json/json_reader.h"
 | 
|  #include "base/lazy_instance.h"
 | 
| -#include "chrome/common/extensions/features/api_feature.h"
 | 
|  #include "chrome/common/extensions/features/complex_feature.h"
 | 
|  #include "chrome/common/extensions/features/manifest_feature.h"
 | 
|  #include "chrome/common/extensions/features/permission_feature.h"
 | 
| @@ -24,11 +23,7 @@
 | 
|  
 | 
|  struct Static {
 | 
|    Static()
 | 
| -      : api_features(
 | 
| -            LoadProvider("api",
 | 
| -                         &CreateFeature<APIFeature>,
 | 
| -                         IDR_EXTENSION_API_FEATURES)),
 | 
| -        manifest_features(
 | 
| +      : manifest_features(
 | 
|              LoadProvider("manifest",
 | 
|                           &CreateFeature<ManifestFeature>,
 | 
|                           IDR_EXTENSION_MANIFEST_FEATURES)),
 | 
| @@ -38,7 +33,6 @@
 | 
|                           IDR_EXTENSION_PERMISSION_FEATURES)) {
 | 
|    }
 | 
|  
 | 
| -  scoped_ptr<BaseFeatureProvider> api_features;
 | 
|    scoped_ptr<BaseFeatureProvider> manifest_features;
 | 
|    scoped_ptr<BaseFeatureProvider> permission_features;
 | 
|  
 | 
| @@ -73,10 +67,20 @@
 | 
|                    const std::string& name,
 | 
|                    SimpleFeature* feature) {
 | 
|    feature->set_name(name);
 | 
| -  std::string error = feature->Parse(value);
 | 
| -  if (!error.empty())
 | 
| -    LOG(ERROR) << error;
 | 
| -  return error.empty();
 | 
| +  feature->Parse(value);
 | 
| +
 | 
| +  if (feature->extension_types()->empty()) {
 | 
| +    LOG(ERROR) << name << ": Simple features must specify at least one "
 | 
| +               << "value for extension_types.";
 | 
| +    return false;
 | 
| +  }
 | 
| +
 | 
| +  if (!feature->GetContexts()->empty()) {
 | 
| +    LOG(ERROR) << name << ": Simple features do not support contexts.";
 | 
| +    return false;
 | 
| +  }
 | 
| +
 | 
| +  return true;
 | 
|  }
 | 
|  
 | 
|  base::LazyInstance<Static> g_static = LAZY_INSTANCE_INITIALIZER;
 | 
| @@ -137,11 +141,6 @@
 | 
|  }
 | 
|  
 | 
|  // static
 | 
| -BaseFeatureProvider* BaseFeatureProvider::GetApiFeatures() {
 | 
| -  return g_static.Get().api_features.get();
 | 
| -}
 | 
| -
 | 
| -// static
 | 
|  BaseFeatureProvider* BaseFeatureProvider::GetManifestFeatures() {
 | 
|    return g_static.Get().manifest_features.get();
 | 
|  }
 | 
| 
 |