Index: chrome/common/extensions/simple_feature_provider.h |
diff --git a/chrome/common/extensions/simple_feature_provider.h b/chrome/common/extensions/simple_feature_provider.h |
index 2ba5e5283bfcc7d34708551c299e51679f92f2b5..24d24fb0fdf7ee71b1cdcb287de1cedae71d7cf2 100644 |
--- a/chrome/common/extensions/simple_feature_provider.h |
+++ b/chrome/common/extensions/simple_feature_provider.h |
@@ -12,15 +12,19 @@ |
#include "base/memory/scoped_ptr.h" |
#include "base/values.h" |
#include "chrome/common/extensions/feature.h" |
+#include "chrome/common/extensions/feature_provider.h" |
namespace extensions { |
// Reads Features out of a simple JSON file description. |
-class SimpleFeatureProvider { |
+class SimpleFeatureProvider : public FeatureProvider { |
public: |
- // Create an instance for an arbitrary hunk of JSON. This is typically used |
- // during tests. |
- explicit SimpleFeatureProvider(scoped_ptr<DictionaryValue> root); |
+ typedef Feature*(*FeatureFactory)(); |
+ |
+ // Creates a new SimpleFeatureProvider. Pass null to |factory| to have the |
+ // provider create plain old Factory instances. |
koz (OOO until 15th September)
2012/04/02 06:39:48
plain old Factory instances -> plain old Feature i
|
+ SimpleFeatureProvider(scoped_ptr<DictionaryValue> root, |
+ FeatureFactory factory); |
~SimpleFeatureProvider(); |
// Gets an instance for the _manifest_features.json file that is baked into |
@@ -35,10 +39,12 @@ class SimpleFeatureProvider { |
std::set<std::string> GetAllFeatureNames() const; |
// Gets the feature |feature_name|, if it exists. |
- scoped_ptr<Feature> GetFeature(const std::string& feature_name) const; |
+ virtual scoped_ptr<Feature> GetFeature( |
+ const std::string& feature_name) OVERRIDE; |
private: |
scoped_ptr<DictionaryValue> root_; |
+ FeatureFactory factory_; |
}; |
} // namespace extensions |