| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "chrome/common/extensions/features/base_feature_provider.h" | 5 #include "chrome/common/extensions/features/base_feature_provider.h" | 
| 6 | 6 | 
| 7 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" | 
| 8 #include "base/lazy_instance.h" | 8 #include "base/lazy_instance.h" | 
| 9 #include "chrome/common/extensions/features/api_feature.h" | 9 #include "chrome/common/extensions/features/api_feature.h" | 
| 10 #include "chrome/common/extensions/features/complex_feature.h" | 10 #include "chrome/common/extensions/features/complex_feature.h" | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
| 25 class LazyFeatureProvider : public FeatureProvider { | 25 class LazyFeatureProvider : public FeatureProvider { | 
| 26  public: | 26  public: | 
| 27   LazyFeatureProvider(const std::string& name, | 27   LazyFeatureProvider(const std::string& name, | 
| 28                       BaseFeatureProvider::FeatureFactory factory, | 28                       BaseFeatureProvider::FeatureFactory factory, | 
| 29                       int resource_id) | 29                       int resource_id) | 
| 30       : name_(name), | 30       : name_(name), | 
| 31         factory_(factory), | 31         factory_(factory), | 
| 32         resource_id_(resource_id) { | 32         resource_id_(resource_id) { | 
| 33   } | 33   } | 
| 34 | 34 | 
| 35   virtual Feature* GetFeature(const std::string& name) { | 35   virtual Feature* GetFeature(const std::string& name) OVERRIDE { | 
| 36     return GetBaseFeatureProvider()->GetFeature(name); | 36     return GetBaseFeatureProvider()->GetFeature(name); | 
| 37   } | 37   } | 
| 38 | 38 | 
| 39   virtual std::set<std::string> GetAllFeatureNames() { | 39   virtual std::set<std::string> GetAllFeatureNames() OVERRIDE { | 
| 40     return GetBaseFeatureProvider()->GetAllFeatureNames(); | 40     return GetBaseFeatureProvider()->GetAllFeatureNames(); | 
| 41   } | 41   } | 
| 42 | 42 | 
| 43  private: | 43  private: | 
| 44   BaseFeatureProvider* GetBaseFeatureProvider() { | 44   BaseFeatureProvider* GetBaseFeatureProvider() { | 
| 45     if (!features_) | 45     if (!features_) | 
| 46       features_ = LoadProvider(); | 46       features_ = LoadProvider(); | 
| 47     return features_.get(); | 47     return features_.get(); | 
| 48   } | 48   } | 
| 49 | 49 | 
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 187 | 187 | 
| 188 Feature* BaseFeatureProvider::GetFeature(const std::string& name) { | 188 Feature* BaseFeatureProvider::GetFeature(const std::string& name) { | 
| 189   FeatureMap::iterator iter = features_.find(name); | 189   FeatureMap::iterator iter = features_.find(name); | 
| 190   if (iter != features_.end()) | 190   if (iter != features_.end()) | 
| 191     return iter->second.get(); | 191     return iter->second.get(); | 
| 192   else | 192   else | 
| 193     return NULL; | 193     return NULL; | 
| 194 } | 194 } | 
| 195 | 195 | 
| 196 }  // namespace | 196 }  // namespace | 
| OLD | NEW | 
|---|