Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4003)

Unified Diff: chrome/browser/extensions/extension_system.h

Issue 10382149: Refactor the various ways to control what users can do to extensions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_system.h
===================================================================
--- chrome/browser/extensions/extension_system.h (revision 138227)
+++ chrome/browser/extensions/extension_system.h (working copy)
@@ -28,6 +28,7 @@
class AlarmManager;
class Extension;
class LazyBackgroundTaskQueue;
+class ManagementPolicy;
class RulesRegistryService;
}
@@ -56,6 +57,11 @@
// The ExtensionService is created at startup.
virtual ExtensionService* extension_service() = 0;
+ // The class controlling whether users are permitted to perform certain
+ // actions on extensions (install, uninstall, disable, etc.).
+ // The ManagementPolicy is created at startup.
+ virtual extensions::ManagementPolicy* management_policy() = 0;
+
// The ExtensionDevToolsManager is created at startup.
virtual ExtensionDevToolsManager* devtools_manager() = 0;
@@ -115,6 +121,7 @@
virtual void Init(bool extensions_enabled) OVERRIDE;
virtual ExtensionService* extension_service() OVERRIDE; // shared
+ virtual extensions::ManagementPolicy* management_policy() OVERRIDE; // shared
virtual UserScriptMaster* user_script_master() OVERRIDE; // shared
virtual ExtensionDevToolsManager* devtools_manager() OVERRIDE;
virtual ExtensionProcessManager* process_manager() OVERRIDE;
@@ -147,10 +154,13 @@
// Initialization takes place in phases.
virtual void InitPrefs();
+ // This must not be called until all the providers have been created.
+ void RegisterManagementPolicyProviders();
void InitInfoMap();
void Init(bool extensions_enabled);
ExtensionService* extension_service();
+ extensions::ManagementPolicy* management_policy();
UserScriptMaster* user_script_master();
ExtensionInfoMap* info_map();
extensions::LazyBackgroundTaskQueue* lazy_background_task_queue();
@@ -163,10 +173,11 @@
// The services that are shared between normal and incognito profiles.
- // Keep extension_prefs_ on top of extension_service_ because the latter
- // maintains a pointer to the first and shall be destructed first.
+ // Keep extension_prefs_ above extension_service_, because the latter
+ // maintains a pointer to the former and must be destructed first.
scoped_ptr<ExtensionPrefs> extension_prefs_;
scoped_ptr<ExtensionService> extension_service_;
+ scoped_ptr<extensions::ManagementPolicy> management_policy_;
scoped_refptr<UserScriptMaster> user_script_master_;
// extension_info_map_ needs to outlive extension_process_manager_.
scoped_refptr<ExtensionInfoMap> extension_info_map_;

Powered by Google App Engine
This is Rietveld 408576698