Chromium Code Reviews| 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()); |
|
Yoyo Zhou
2012/08/09 00:49:17
Can you use manager->GetProfile() and not have to
Matt Perry
2012/08/15 20:35:45
GetProfile is private, and I didn't like the other
Yoyo Zhou
2012/08/15 20:39:55
Weird, for some reason I thought GetProfile would
|
| } |
| } |
| @@ -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; |
| } |