Index: chrome/browser/extensions/extension_system.h |
diff --git a/chrome/browser/extensions/extension_system.h b/chrome/browser/extensions/extension_system.h |
index 676bdb12bcbc4f514f804ba6ef523c8a291dfd72..23d228f4d3e9a89612bb435097a8c539cde3b006 100644 |
--- a/chrome/browser/extensions/extension_system.h |
+++ b/chrome/browser/extensions/extension_system.h |
@@ -30,6 +30,7 @@ class Extension; |
class LazyBackgroundTaskQueue; |
class ManagementPolicy; |
class RulesRegistryService; |
+class StateStore; |
} |
// The ExtensionSystem manages the creation and destruction of services |
@@ -74,6 +75,9 @@ class ExtensionSystem : public ProfileKeyedService { |
// The AlarmManager is created at startup. |
virtual extensions::AlarmManager* alarm_manager() = 0; |
+ // The StateStore is created at startup. |
+ virtual extensions::StateStore* state_store() = 0; |
+ |
// Returns the IO-thread-accessible extension data. |
virtual ExtensionInfoMap* info_map() = 0; |
@@ -126,6 +130,7 @@ class ExtensionSystemImpl : public ExtensionSystem { |
virtual ExtensionDevToolsManager* devtools_manager() OVERRIDE; |
virtual ExtensionProcessManager* process_manager() OVERRIDE; |
virtual extensions::AlarmManager* alarm_manager() OVERRIDE; |
+ virtual extensions::StateStore* state_store() OVERRIDE; |
virtual extensions::LazyBackgroundTaskQueue* lazy_background_task_queue() |
OVERRIDE; // shared |
virtual ExtensionInfoMap* info_map() OVERRIDE; // shared |
@@ -159,6 +164,7 @@ class ExtensionSystemImpl : public ExtensionSystem { |
void InitInfoMap(); |
void Init(bool extensions_enabled); |
+ extensions::StateStore* state_store(); |
ExtensionService* extension_service(); |
extensions::ManagementPolicy* management_policy(); |
UserScriptMaster* user_script_master(); |
@@ -173,9 +179,9 @@ class ExtensionSystemImpl : public ExtensionSystem { |
// The services that are shared between normal and incognito profiles. |
- // Keep extension_prefs_ above extension_service_, because the latter |
- // maintains a pointer to the former and must be destructed first. |
+ scoped_ptr<extensions::StateStore> state_store_; |
scoped_ptr<ExtensionPrefs> extension_prefs_; |
+ // ExtensionService depends on the 2 above. |
scoped_ptr<ExtensionService> extension_service_; |
scoped_ptr<extensions::ManagementPolicy> management_policy_; |
scoped_refptr<UserScriptMaster> user_script_master_; |