Index: extensions/browser/process_manager.h |
diff --git a/extensions/browser/process_manager.h b/extensions/browser/process_manager.h |
index a5422bc756942ca27028a8795e9d9c0533851d10..c37a1d99e0e2e4cdbc295b09aca1079966406e1e 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; |
@@ -40,7 +42,8 @@ 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; |
@@ -173,6 +176,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; |
+ |
content::NotificationRegistrar registrar_; |
// The set of ExtensionHosts running viewless background extensions. |
@@ -279,6 +290,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); |
}; |