| Index: extensions/browser/process_manager.cc
 | 
| diff --git a/extensions/browser/process_manager.cc b/extensions/browser/process_manager.cc
 | 
| index 38c476e016dcb3bdc5d988b5c4f8b879f8e38de0..c3bcd50ae425ff35c102616c72f73461c18ace31 100644
 | 
| --- a/extensions/browser/process_manager.cc
 | 
| +++ b/extensions/browser/process_manager.cc
 | 
| @@ -247,9 +247,14 @@
 | 
|        weak_ptr_factory_(this) {
 | 
|    // ExtensionRegistry is shared between incognito and regular contexts.
 | 
|    DCHECK_EQ(original_context, extension_registry_->browser_context());
 | 
| -  extension_registry_->AddObserver(this);
 | 
|    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,
 | 
| @@ -286,7 +291,6 @@
 | 
|  }
 | 
|  
 | 
|  ProcessManager::~ProcessManager() {
 | 
| -  extension_registry_->RemoveObserver(this);
 | 
|    CloseBackgroundHosts();
 | 
|    DCHECK(background_hosts_.empty());
 | 
|    content::DevToolsAgentHost::RemoveAgentStateCallback(devtools_callback_);
 | 
| @@ -684,6 +688,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)) {
 | 
| @@ -747,31 +778,6 @@
 | 
|      default:
 | 
|        NOTREACHED();
 | 
|    }
 | 
| -}
 | 
| -
 | 
| -void ProcessManager::OnExtensionLoaded(content::BrowserContext* browser_context,
 | 
| -                                       const extensions::Extension* extension) {
 | 
| -  ExtensionSystem* system = ExtensionSystem::Get(browser_context);
 | 
| -  if (system->ready().is_signaled()) {
 | 
| -    // The extension system is ready, so create the background host.
 | 
| -    CreateBackgroundHostForExtensionLoad(this, extension);
 | 
| -  }
 | 
| -}
 | 
| -
 | 
| -void ProcessManager::OnExtensionUnloaded(
 | 
| -    content::BrowserContext* browser_context,
 | 
| -    const extensions::Extension* extension,
 | 
| -    extensions::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(
 | 
| 
 |