| Index: chrome/browser/extensions/extension_process_manager.cc
 | 
| diff --git a/chrome/browser/extensions/extension_process_manager.cc b/chrome/browser/extensions/extension_process_manager.cc
 | 
| index e9562e9370799eddb4c4e459c543e79675e6fba3..27ffc2186a1aebd6de07b17580539b9020a826dd 100644
 | 
| --- a/chrome/browser/extensions/extension_process_manager.cc
 | 
| +++ b/chrome/browser/extensions/extension_process_manager.cc
 | 
| @@ -10,6 +10,7 @@
 | 
|  #include "base/metrics/histogram.h"
 | 
|  #include "base/string_number_conversions.h"
 | 
|  #include "base/time.h"
 | 
| +#include "chrome/browser/extensions/api/runtime/runtime_api.h"
 | 
|  #include "chrome/browser/extensions/extension_process_manager.h"
 | 
|  #include "chrome/browser/extensions/extension_host.h"
 | 
|  #include "chrome/browser/extensions/extension_info_map.h"
 | 
| @@ -89,16 +90,20 @@ class IncognitoExtensionProcessManager : public ExtensionProcessManager {
 | 
|  
 | 
|  static void CreateBackgroundHostForExtensionLoad(
 | 
|      ExtensionProcessManager* manager, const Extension* extension) {
 | 
| -  if (extension->has_persistent_background_page()) {
 | 
| +  if (extension->has_persistent_background_page())
 | 
|      manager->CreateBackgroundHost(extension, extension->GetBackgroundURL());
 | 
| -  }
 | 
|  }
 | 
|  
 | 
|  static void CreateBackgroundHostsForProfileStartup(
 | 
| -    ExtensionProcessManager* manager, const ExtensionSet* extensions) {
 | 
| +    Profile* profile,
 | 
| +    ExtensionProcessManager* manager,
 | 
| +    const ExtensionSet* extensions) {
 | 
|    for (ExtensionSet::const_iterator extension = extensions->begin();
 | 
|         extension != extensions->end(); ++extension) {
 | 
|      CreateBackgroundHostForExtensionLoad(manager, *extension);
 | 
| +
 | 
| +    extensions::RuntimeEventRouter::DispatchOnStartupEvent(
 | 
| +        profile, (*extension)->id());
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -557,19 +562,19 @@ void ExtensionProcessManager::Observe(
 | 
|      const content::NotificationDetails& details) {
 | 
|    switch (type) {
 | 
|      case chrome::NOTIFICATION_EXTENSIONS_READY: {
 | 
| -      CreateBackgroundHostsForProfileStartup(this,
 | 
| -          content::Source<Profile>(source).ptr()->
 | 
| -              GetExtensionService()->extensions());
 | 
| +      Profile* profile = content::Source<Profile>(source).ptr();
 | 
| +      CreateBackgroundHostsForProfileStartup(profile, this,
 | 
| +          profile->GetExtensionService()->extensions());
 | 
|        break;
 | 
|      }
 | 
|  
 | 
|      case chrome::NOTIFICATION_EXTENSION_LOADED: {
 | 
| -      ExtensionService* service =
 | 
| -          content::Source<Profile>(source).ptr()->GetExtensionService();
 | 
| +      Profile* profile = content::Source<Profile>(source).ptr();
 | 
| +      ExtensionService* service = profile->GetExtensionService();
 | 
|        if (service->is_ready()) {
 | 
|          const Extension* extension =
 | 
|              content::Details<const Extension>(details).ptr();
 | 
| -        ::CreateBackgroundHostForExtensionLoad(this, extension);
 | 
| +        CreateBackgroundHostForExtensionLoad(this, extension);
 | 
|        }
 | 
|        break;
 | 
|      }
 | 
| @@ -805,7 +810,8 @@ void IncognitoExtensionProcessManager::Observe(
 | 
|          // service will be NULL.
 | 
|          ExtensionService* service = GetProfile()->GetExtensionService();
 | 
|          if (service && service->is_ready())
 | 
| -          CreateBackgroundHostsForProfileStartup(this, service->extensions());
 | 
| +          CreateBackgroundHostsForProfileStartup(GetProfile(),
 | 
| +                                                 this, service->extensions());
 | 
|        }
 | 
|        break;
 | 
|      }
 | 
| 
 |