| Index: chrome/browser/ui/webui/ntp/app_launcher_handler.cc
|
| diff --git a/chrome/browser/ui/webui/ntp/app_launcher_handler.cc b/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
|
| index 0355ee7e2ad6279726f037212487ea77ff267862..9be4b23bbe3604c12885a9f07deade217267d2f9 100644
|
| --- a/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
|
| +++ b/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
|
| @@ -259,6 +259,10 @@ void AppLauncherHandler::Observe(int type,
|
|
|
| switch (type) {
|
| case chrome::NOTIFICATION_APP_NOTIFICATION_STATE_CHANGED: {
|
| + Profile* profile = Source<Profile>(source).ptr();
|
| + if (!Profile::FromWebUI(web_ui_)->IsSameProfile(profile))
|
| + return;
|
| +
|
| const std::string& id = *Details<const std::string>(details).ptr();
|
| const AppNotification* notification =
|
| extension_service_->app_notification_manager()->GetLast(id);
|
| @@ -441,7 +445,8 @@ void AppLauncherHandler::HandleGetApps(const ListValue* args) {
|
| // b) Conceptually, it doesn't really make sense to count a
|
| // prefchange-triggered refresh as a promo 'view'.
|
| AppsPromo* apps_promo = extension_service_->apps_promo();
|
| - PrefService* prefs = Profile::FromWebUI(web_ui_)->GetPrefs();
|
| + Profile* profile = Profile::FromWebUI(web_ui_);
|
| + PrefService* prefs = profile->GetPrefs();
|
| bool apps_promo_just_expired = false;
|
| if (apps_promo->ShouldShowPromo(extension_service_->GetAppIds(),
|
| &apps_promo_just_expired)) {
|
| @@ -472,15 +477,15 @@ void AppLauncherHandler::HandleGetApps(const ListValue* args) {
|
| registrar_.Add(this, chrome::NOTIFICATION_APP_NOTIFICATION_STATE_CHANGED,
|
| NotificationService::AllSources());
|
| registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED,
|
| - NotificationService::AllSources());
|
| + Source<Profile>(profile));
|
| registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED,
|
| - NotificationService::AllSources());
|
| + Source<Profile>(profile));
|
| registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LAUNCHER_REORDERED,
|
| - NotificationService::AllSources());
|
| + Source<ExtensionPrefs>(extension_service_->extension_prefs()));
|
| registrar_.Add(this, chrome::NOTIFICATION_WEB_STORE_PROMO_LOADED,
|
| - NotificationService::AllSources());
|
| + Source<Profile>(profile));
|
| registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_INSTALL_ERROR,
|
| - NotificationService::AllSources());
|
| + Source<Profile>(profile));
|
| }
|
| if (pref_change_registrar_.IsEmpty()) {
|
| pref_change_registrar_.Init(
|
|
|