Index: chrome/browser/notifications/native_notification_display_service.cc |
diff --git a/chrome/browser/notifications/native_notification_display_service.cc b/chrome/browser/notifications/native_notification_display_service.cc |
index 2ffcd75fd3929c32998c54c28a73145fdbef9796..2781af6c926d89d4c9998f73e3801164025585fb 100644 |
--- a/chrome/browser/notifications/native_notification_display_service.cc |
+++ b/chrome/browser/notifications/native_notification_display_service.cc |
@@ -21,6 +21,7 @@ |
#include "chrome/browser/notifications/persistent_notification_handler.h" |
#include "chrome/browser/profiles/profile.h" |
#include "content/public/browser/browser_thread.h" |
+#include "content/public/browser/notification_event_dispatcher.h" |
#include "extensions/features/features.h" |
#if BUILDFLAG(ENABLE_EXTENSIONS) |
@@ -93,9 +94,13 @@ void NativeNotificationDisplayService::Display( |
notification_bridge_->Display(notification_type, notification_id, |
GetProfileId(profile_), |
profile_->IsOffTheRecord(), notification); |
- notification.delegate()->Display(); |
- NotificationHandler* handler = GetNotificationHandler(notification_type); |
- handler->RegisterNotification(notification_id, notification.delegate()); |
+ // Unlike all other notifications non persistent notifications require |
+ // an event after the notification has been displayed. |
+ // TODO(miguelg) create an OnShow notification handler instead. |
+ if (notification_type == NotificationCommon::NON_PERSISTENT) { |
+ content::NotificationEventDispatcher::GetInstance() |
+ ->DispatchNonPersistentShowEvent(notification_id); |
+ } |
} else if (message_center_display_service_) { |
message_center_display_service_->Display(notification_type, notification_id, |
notification); |