Index: extensions/browser/process_manager.cc |
diff --git a/extensions/browser/process_manager.cc b/extensions/browser/process_manager.cc |
index d379cf76cf4e32f914ea386d17abf81cf1a7f5fe..5ba8c13eadf7a7db18e2efcd88c2adaa300c43c7 100644 |
--- a/extensions/browser/process_manager.cc |
+++ b/extensions/browser/process_manager.cc |
@@ -245,12 +245,17 @@ |
devtools_callback_(base::Bind(&ProcessManager::OnDevToolsStateChanged, |
base::Unretained(this))), |
last_background_close_sequence_id_(0), |
- weak_ptr_factory_(this), |
- extension_registry_observer_(this) { |
+ weak_ptr_factory_(this) { |
// ExtensionRegistry is shared between incognito and regular contexts. |
DCHECK_EQ(original_context, extension_registry_->browser_context()); |
registrar_.Add(this, |
extensions::NOTIFICATION_EXTENSIONS_READY_DEPRECATED, |
+ content::Source<BrowserContext>(original_context)); |
+ registrar_.Add(this, |
+ extensions::NOTIFICATION_EXTENSION_LOADED_DEPRECATED, |
+ content::Source<BrowserContext>(original_context)); |
+ registrar_.Add(this, |
+ extensions::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED, |
content::Source<BrowserContext>(original_context)); |
registrar_.Add(this, |
extensions::NOTIFICATION_EXTENSION_HOST_DESTROYED, |
@@ -262,7 +267,6 @@ |
content::NotificationService::AllSources()); |
registrar_.Add(this, content::NOTIFICATION_WEB_CONTENTS_CONNECTED, |
content::NotificationService::AllSources()); |
- extension_registry_observer_.Add(extension_registry_); |
// Note: event_page_idle_time_ must be sufficiently larger (e.g. 2x) than |
// kKeepaliveThrottleIntervalInSeconds in ppapi/proxy/plugin_globals. |
@@ -660,6 +664,33 @@ |
break; |
} |
+ case extensions::NOTIFICATION_EXTENSION_LOADED_DEPRECATED: { |
+ BrowserContext* context = content::Source<BrowserContext>(source).ptr(); |
+ ExtensionSystem* system = ExtensionSystem::Get(context); |
+ if (system->ready().is_signaled()) { |
+ // The extension system is ready, so create the background host. |
+ const Extension* extension = |
+ content::Details<const Extension>(details).ptr(); |
+ CreateBackgroundHostForExtensionLoad(this, extension); |
+ } |
+ break; |
+ } |
+ |
+ case extensions::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED: { |
+ const Extension* extension = |
+ content::Details<UnloadedExtensionInfo>(details)->extension; |
+ for (ExtensionHostSet::iterator iter = background_hosts_.begin(); |
+ iter != background_hosts_.end(); ++iter) { |
+ ExtensionHost* host = *iter; |
+ if (host->extension_id() == extension->id()) { |
+ CloseBackgroundHost(host); |
+ break; |
+ } |
+ } |
+ UnregisterExtension(extension->id()); |
+ break; |
+ } |
+ |
case extensions::NOTIFICATION_EXTENSION_HOST_DESTROYED: { |
ExtensionHost* host = content::Details<ExtensionHost>(details).ptr(); |
if (background_hosts_.erase(host)) { |
@@ -723,30 +754,6 @@ |
default: |
NOTREACHED(); |
} |
-} |
- |
-void ProcessManager::OnExtensionLoaded(content::BrowserContext* browser_context, |
- const Extension* extension) { |
- if (ExtensionSystem::Get(browser_context)->ready().is_signaled()) { |
- // The extension system is ready, so create the background host. |
- CreateBackgroundHostForExtensionLoad(this, extension); |
- } |
-} |
- |
-void ProcessManager::OnExtensionUnloaded( |
- content::BrowserContext* browser_context, |
- const Extension* extension, |
- UnloadedExtensionInfo::Reason reason) { |
- for (ExtensionHostSet::iterator iter = background_hosts_.begin(); |
- iter != background_hosts_.end(); |
- ++iter) { |
- ExtensionHost* host = *iter; |
- if (host->extension_id() == extension->id()) { |
- CloseBackgroundHost(host); |
- break; |
- } |
- } |
- UnregisterExtension(extension->id()); |
} |
void ProcessManager::OnDevToolsStateChanged( |