| 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 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_SYSTEM_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_SYSTEM_H_ |
| 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_SYSTEM_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_SYSTEM_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 class ExtensionService; | 23 class ExtensionService; |
| 24 class Profile; | 24 class Profile; |
| 25 class UserScriptMaster; | 25 class UserScriptMaster; |
| 26 | 26 |
| 27 namespace extensions { | 27 namespace extensions { |
| 28 class AlarmManager; | 28 class AlarmManager; |
| 29 class Extension; | 29 class Extension; |
| 30 class LazyBackgroundTaskQueue; | 30 class LazyBackgroundTaskQueue; |
| 31 class ManagementPolicy; | 31 class ManagementPolicy; |
| 32 class RulesRegistryService; | 32 class RulesRegistryService; |
| 33 class StateStore; |
| 33 } | 34 } |
| 34 | 35 |
| 35 // The ExtensionSystem manages the creation and destruction of services | 36 // The ExtensionSystem manages the creation and destruction of services |
| 36 // related to extensions. Most objects are shared between normal | 37 // related to extensions. Most objects are shared between normal |
| 37 // and incognito Profiles, except as called out in comments. | 38 // and incognito Profiles, except as called out in comments. |
| 38 // This interface supports using TestExtensionSystem for TestingProfiles | 39 // This interface supports using TestExtensionSystem for TestingProfiles |
| 39 // that don't want all of the extensions baggage in their tests. | 40 // that don't want all of the extensions baggage in their tests. |
| 40 class ExtensionSystem : public ProfileKeyedService { | 41 class ExtensionSystem : public ProfileKeyedService { |
| 41 public: | 42 public: |
| 42 ExtensionSystem(); | 43 ExtensionSystem(); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 67 | 68 |
| 68 // The UserScriptMaster is created at startup. | 69 // The UserScriptMaster is created at startup. |
| 69 virtual UserScriptMaster* user_script_master() = 0; | 70 virtual UserScriptMaster* user_script_master() = 0; |
| 70 | 71 |
| 71 // The ExtensionProcessManager is created at startup. | 72 // The ExtensionProcessManager is created at startup. |
| 72 virtual ExtensionProcessManager* process_manager() = 0; | 73 virtual ExtensionProcessManager* process_manager() = 0; |
| 73 | 74 |
| 74 // The AlarmManager is created at startup. | 75 // The AlarmManager is created at startup. |
| 75 virtual extensions::AlarmManager* alarm_manager() = 0; | 76 virtual extensions::AlarmManager* alarm_manager() = 0; |
| 76 | 77 |
| 78 // The StateStore is created at startup. |
| 79 virtual extensions::StateStore* state_store() = 0; |
| 80 |
| 77 // Returns the IO-thread-accessible extension data. | 81 // Returns the IO-thread-accessible extension data. |
| 78 virtual ExtensionInfoMap* info_map() = 0; | 82 virtual ExtensionInfoMap* info_map() = 0; |
| 79 | 83 |
| 80 // The LazyBackgroundTaskQueue is created at startup. | 84 // The LazyBackgroundTaskQueue is created at startup. |
| 81 virtual extensions::LazyBackgroundTaskQueue* lazy_background_task_queue() = 0; | 85 virtual extensions::LazyBackgroundTaskQueue* lazy_background_task_queue() = 0; |
| 82 | 86 |
| 83 // The ExtensionMessageService is created at startup. | 87 // The ExtensionMessageService is created at startup. |
| 84 virtual ExtensionMessageService* message_service() = 0; | 88 virtual ExtensionMessageService* message_service() = 0; |
| 85 | 89 |
| 86 // The ExtensionEventRouter is created at startup. | 90 // The ExtensionEventRouter is created at startup. |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 virtual void Shutdown() OVERRIDE; | 123 virtual void Shutdown() OVERRIDE; |
| 120 | 124 |
| 121 virtual void Init(bool extensions_enabled) OVERRIDE; | 125 virtual void Init(bool extensions_enabled) OVERRIDE; |
| 122 | 126 |
| 123 virtual ExtensionService* extension_service() OVERRIDE; // shared | 127 virtual ExtensionService* extension_service() OVERRIDE; // shared |
| 124 virtual extensions::ManagementPolicy* management_policy() OVERRIDE; // shared | 128 virtual extensions::ManagementPolicy* management_policy() OVERRIDE; // shared |
| 125 virtual UserScriptMaster* user_script_master() OVERRIDE; // shared | 129 virtual UserScriptMaster* user_script_master() OVERRIDE; // shared |
| 126 virtual ExtensionDevToolsManager* devtools_manager() OVERRIDE; | 130 virtual ExtensionDevToolsManager* devtools_manager() OVERRIDE; |
| 127 virtual ExtensionProcessManager* process_manager() OVERRIDE; | 131 virtual ExtensionProcessManager* process_manager() OVERRIDE; |
| 128 virtual extensions::AlarmManager* alarm_manager() OVERRIDE; | 132 virtual extensions::AlarmManager* alarm_manager() OVERRIDE; |
| 133 virtual extensions::StateStore* state_store() OVERRIDE; |
| 129 virtual extensions::LazyBackgroundTaskQueue* lazy_background_task_queue() | 134 virtual extensions::LazyBackgroundTaskQueue* lazy_background_task_queue() |
| 130 OVERRIDE; // shared | 135 OVERRIDE; // shared |
| 131 virtual ExtensionInfoMap* info_map() OVERRIDE; // shared | 136 virtual ExtensionInfoMap* info_map() OVERRIDE; // shared |
| 132 virtual ExtensionMessageService* message_service() OVERRIDE; // shared | 137 virtual ExtensionMessageService* message_service() OVERRIDE; // shared |
| 133 virtual ExtensionEventRouter* event_router() OVERRIDE; // shared | 138 virtual ExtensionEventRouter* event_router() OVERRIDE; // shared |
| 134 // The RulesRegistryService is created at startup. | 139 // The RulesRegistryService is created at startup. |
| 135 virtual extensions::RulesRegistryService* rules_registry_service() | 140 virtual extensions::RulesRegistryService* rules_registry_service() |
| 136 OVERRIDE; // shared | 141 OVERRIDE; // shared |
| 137 | 142 |
| 138 virtual void RegisterExtensionWithRequestContexts( | 143 virtual void RegisterExtensionWithRequestContexts( |
| (...skipping 13 matching lines...) Expand all Loading... |
| 152 explicit Shared(Profile* profile); | 157 explicit Shared(Profile* profile); |
| 153 virtual ~Shared(); | 158 virtual ~Shared(); |
| 154 | 159 |
| 155 // Initialization takes place in phases. | 160 // Initialization takes place in phases. |
| 156 virtual void InitPrefs(); | 161 virtual void InitPrefs(); |
| 157 // This must not be called until all the providers have been created. | 162 // This must not be called until all the providers have been created. |
| 158 void RegisterManagementPolicyProviders(); | 163 void RegisterManagementPolicyProviders(); |
| 159 void InitInfoMap(); | 164 void InitInfoMap(); |
| 160 void Init(bool extensions_enabled); | 165 void Init(bool extensions_enabled); |
| 161 | 166 |
| 167 extensions::StateStore* state_store(); |
| 162 ExtensionService* extension_service(); | 168 ExtensionService* extension_service(); |
| 163 extensions::ManagementPolicy* management_policy(); | 169 extensions::ManagementPolicy* management_policy(); |
| 164 UserScriptMaster* user_script_master(); | 170 UserScriptMaster* user_script_master(); |
| 165 ExtensionInfoMap* info_map(); | 171 ExtensionInfoMap* info_map(); |
| 166 extensions::LazyBackgroundTaskQueue* lazy_background_task_queue(); | 172 extensions::LazyBackgroundTaskQueue* lazy_background_task_queue(); |
| 167 ExtensionMessageService* message_service(); | 173 ExtensionMessageService* message_service(); |
| 168 ExtensionEventRouter* event_router(); | 174 ExtensionEventRouter* event_router(); |
| 169 extensions::RulesRegistryService* rules_registry_service(); | 175 extensions::RulesRegistryService* rules_registry_service(); |
| 170 | 176 |
| 171 private: | 177 private: |
| 172 Profile* profile_; | 178 Profile* profile_; |
| 173 | 179 |
| 174 // The services that are shared between normal and incognito profiles. | 180 // The services that are shared between normal and incognito profiles. |
| 175 | 181 |
| 176 // Keep extension_prefs_ above extension_service_, because the latter | 182 scoped_ptr<extensions::StateStore> state_store_; |
| 177 // maintains a pointer to the former and must be destructed first. | |
| 178 scoped_ptr<ExtensionPrefs> extension_prefs_; | 183 scoped_ptr<ExtensionPrefs> extension_prefs_; |
| 184 // ExtensionService depends on the 2 above. |
| 179 scoped_ptr<ExtensionService> extension_service_; | 185 scoped_ptr<ExtensionService> extension_service_; |
| 180 scoped_ptr<extensions::ManagementPolicy> management_policy_; | 186 scoped_ptr<extensions::ManagementPolicy> management_policy_; |
| 181 scoped_refptr<UserScriptMaster> user_script_master_; | 187 scoped_refptr<UserScriptMaster> user_script_master_; |
| 182 // extension_info_map_ needs to outlive extension_process_manager_. | 188 // extension_info_map_ needs to outlive extension_process_manager_. |
| 183 scoped_refptr<ExtensionInfoMap> extension_info_map_; | 189 scoped_refptr<ExtensionInfoMap> extension_info_map_; |
| 184 // This is a dependency of ExtensionMessageService and ExtensionEventRouter. | 190 // This is a dependency of ExtensionMessageService and ExtensionEventRouter. |
| 185 scoped_ptr<extensions::LazyBackgroundTaskQueue> lazy_background_task_queue_; | 191 scoped_ptr<extensions::LazyBackgroundTaskQueue> lazy_background_task_queue_; |
| 186 scoped_ptr<ExtensionMessageService> extension_message_service_; | 192 scoped_ptr<ExtensionMessageService> extension_message_service_; |
| 187 scoped_ptr<ExtensionEventRouter> extension_event_router_; | 193 scoped_ptr<ExtensionEventRouter> extension_event_router_; |
| 188 scoped_ptr<ExtensionNavigationObserver> extension_navigation_observer_; | 194 scoped_ptr<ExtensionNavigationObserver> extension_navigation_observer_; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 199 // |io_data_|. While |extension_process_manager_| still lives, we handle | 205 // |io_data_|. While |extension_process_manager_| still lives, we handle |
| 200 // incoming resource requests from extension processes and those require | 206 // incoming resource requests from extension processes and those require |
| 201 // access to the ResourceContext owned by |io_data_|. | 207 // access to the ResourceContext owned by |io_data_|. |
| 202 scoped_ptr<ExtensionProcessManager> extension_process_manager_; | 208 scoped_ptr<ExtensionProcessManager> extension_process_manager_; |
| 203 scoped_ptr<extensions::AlarmManager> alarm_manager_; | 209 scoped_ptr<extensions::AlarmManager> alarm_manager_; |
| 204 | 210 |
| 205 DISALLOW_COPY_AND_ASSIGN(ExtensionSystemImpl); | 211 DISALLOW_COPY_AND_ASSIGN(ExtensionSystemImpl); |
| 206 }; | 212 }; |
| 207 | 213 |
| 208 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SYSTEM_H_ | 214 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SYSTEM_H_ |
| OLD | NEW |