Index: extensions/browser/process_manager.h |
diff --git a/extensions/browser/process_manager.h b/extensions/browser/process_manager.h |
index e580bbd9335205b8b22ec164c25930d9e9853802..c45d13aaf39ed8ffa5b191df9e0aacf4074b5abc 100644 |
--- a/extensions/browser/process_manager.h |
+++ b/extensions/browser/process_manager.h |
@@ -14,9 +14,11 @@ |
#include "base/memory/ref_counted.h" |
#include "base/memory/weak_ptr.h" |
#include "base/observer_list.h" |
+#include "base/scoped_observer.h" |
#include "base/time/time.h" |
#include "content/public/browser/notification_observer.h" |
#include "content/public/browser/notification_registrar.h" |
+#include "extensions/browser/extension_registry_observer.h" |
#include "extensions/common/view_type.h" |
class GURL; |
@@ -33,12 +35,14 @@ namespace extensions { |
class Extension; |
class ExtensionHost; |
+class ExtensionRegistry; |
class ProcessManagerObserver; |
// Manages dynamic state of running Chromium extensions. There is one instance |
// of this class per Profile. OTR Profiles have a separate instance that keeps |
// track of split-mode extensions only. |
-class ProcessManager : public content::NotificationObserver { |
+class ProcessManager : public content::NotificationObserver, |
+ public ExtensionRegistryObserver { |
public: |
typedef std::set<extensions::ExtensionHost*> ExtensionHostSet; |
typedef ExtensionHostSet::const_iterator const_iterator; |
@@ -158,6 +162,14 @@ class ProcessManager : public content::NotificationObserver { |
const content::NotificationSource& source, |
const content::NotificationDetails& details) OVERRIDE; |
+ // ExtensionRegistryObserver: |
+ virtual void OnExtensionLoaded(content::BrowserContext* browser_context, |
+ const Extension* extension) OVERRIDE; |
+ virtual void OnExtensionUnloaded( |
+ content::BrowserContext* browser_context, |
+ const Extension* extension, |
+ UnloadedExtensionInfo::Reason reason) OVERRIDE; |
+ |
// Load all background pages once the profile data is ready and the pages |
// should be loaded. |
void CreateBackgroundHostsForProfileStartup(); |
@@ -264,6 +276,9 @@ class ProcessManager : public content::NotificationObserver { |
// Must be last member, see doc on WeakPtrFactory. |
base::WeakPtrFactory<ProcessManager> weak_ptr_factory_; |
+ ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver> |
+ extension_registry_observer_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ProcessManager); |
}; |