summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_processes_api.h
diff options
context:
space:
mode:
authoryoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-27 21:07:11 +0000
committeryoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-27 21:07:11 +0000
commit7da9a823b8f64e7502e83ca0fc2c1cb68e63cdc4 (patch)
tree7c3586db16e97868451cd245849972f22fd14188 /chrome/browser/extensions/extension_processes_api.h
parent6bb26a170b75285b9256ab8987fd26a8b57a6a6e (diff)
downloadchromium_src-7da9a823b8f64e7502e83ca0fc2c1cb68e63cdc4.zip
chromium_src-7da9a823b8f64e7502e83ca0fc2c1cb68e63cdc4.tar.gz
chromium_src-7da9a823b8f64e7502e83ca0fc2c1cb68e63cdc4.tar.bz2
Revert "Change event routers from singletons to being owned by the ExtensionService."
This breaks, among other things, multi-profile and the first run dialog. Reverting at least for M13. This reverts commit 45758c29485736d7164085e6b7f8bf0999df1c4f. BUG=81745 TEST=none Review URL: http://codereview.chromium.org/7084006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87083 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_processes_api.h')
-rw-r--r--chrome/browser/extensions/extension_processes_api.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/chrome/browser/extensions/extension_processes_api.h b/chrome/browser/extensions/extension_processes_api.h
index 18e871f..fe0a2f9 100644
--- a/chrome/browser/extensions/extension_processes_api.h
+++ b/chrome/browser/extensions/extension_processes_api.h
@@ -13,16 +13,15 @@
#include "chrome/browser/task_manager/task_manager.h"
#include "content/common/notification_registrar.h"
-class Profile;
-
// Observes the Task Manager and routes the notifications as events to the
// extension system.
class ExtensionProcessesEventRouter : public TaskManagerModelObserver {
public:
- explicit ExtensionProcessesEventRouter(Profile* profile);
- virtual ~ExtensionProcessesEventRouter();
+ // Single instance of the event router.
+ static ExtensionProcessesEventRouter* GetInstance();
- void Init();
+ // Safe to call multiple times.
+ void ObserveProfile(Profile* profile);
// Called when an extension process wants to listen to process events.
void ListenerAdded();
@@ -31,6 +30,10 @@ class ExtensionProcessesEventRouter : public TaskManagerModelObserver {
void ListenerRemoved();
private:
+ friend struct DefaultSingletonTraits<ExtensionProcessesEventRouter>;
+
+ ExtensionProcessesEventRouter();
+ virtual ~ExtensionProcessesEventRouter();
// TaskManagerModelObserver methods.
virtual void OnModelChanged() {}
@@ -45,8 +48,9 @@ class ExtensionProcessesEventRouter : public TaskManagerModelObserver {
// Used for tracking registrations to process related notifications.
NotificationRegistrar registrar_;
- // The associated Profile owns us transitively via ExtensionService.
- Profile* profile_;
+ // Registered profiles.
+ typedef std::set<Profile*> ProfileSet;
+ ProfileSet profiles_;
// TaskManager to observe for updates.
TaskManagerModel* model_;