| Index: content/browser/notifications/notification_message_filter.cc | 
| diff --git a/content/browser/notifications/notification_message_filter.cc b/content/browser/notifications/notification_message_filter.cc | 
| index 56064347d26ab470e7c5aa4d74596e7273e25d19..9f28e1b237ae652c6e65602869fa91d16bc58417 100644 | 
| --- a/content/browser/notifications/notification_message_filter.cc | 
| +++ b/content/browser/notifications/notification_message_filter.cc | 
| @@ -10,6 +10,7 @@ | 
| #include "base/command_line.h" | 
| #include "base/feature_list.h" | 
| #include "content/browser/bad_message.h" | 
| +#include "content/browser/notifications/notification_event_dispatcher_impl.h" | 
| #include "content/browser/notifications/notification_id_generator.h" | 
| #include "content/browser/notifications/page_notification_delegate.h" | 
| #include "content/browser/notifications/platform_notification_context_impl.h" | 
| @@ -90,13 +91,14 @@ NotificationMessageFilter::NotificationMessageFilter( | 
| BrowserContext* browser_context) | 
| : BrowserMessageFilter(PlatformNotificationMsgStart), | 
| process_id_(process_id), | 
| +      non_persistent__notification_shown_(false), | 
| notification_context_(notification_context), | 
| resource_context_(resource_context), | 
| service_worker_context_(service_worker_context), | 
| browser_context_(browser_context), | 
| weak_factory_io_(this) {} | 
|  | 
| -NotificationMessageFilter::~NotificationMessageFilter() {} | 
| +NotificationMessageFilter::~NotificationMessageFilter() = default; | 
|  | 
| void NotificationMessageFilter::DidCloseNotification( | 
| const std::string& notification_id) { | 
| @@ -105,6 +107,12 @@ void NotificationMessageFilter::DidCloseNotification( | 
| } | 
|  | 
| void NotificationMessageFilter::OnDestruct() const { | 
| +  if (non_persistent__notification_shown_) { | 
| +    NotificationEventDispatcherImpl* event_dispatcher = | 
| +        content::NotificationEventDispatcherImpl::GetInstance(); | 
| +    DCHECK(event_dispatcher); | 
| +    event_dispatcher->RendererGone(process_id_); | 
| +  } | 
| BrowserThread::DeleteOnIOThread::Destruct(this); | 
| } | 
|  | 
| @@ -161,6 +169,12 @@ void NotificationMessageFilter::OnShowPlatformNotification( | 
| origin, notification_data.tag, non_persistent_notification_id, | 
| process_id_); | 
|  | 
| +  NotificationEventDispatcherImpl* event_dispatcher = | 
| +      content::NotificationEventDispatcherImpl::GetInstance(); | 
| +  non_persistent__notification_shown_ = true; | 
| +  event_dispatcher->RegisterNonPersistentNotification( | 
| +      notification_id, process_id_, non_persistent_notification_id); | 
| + | 
| std::unique_ptr<DesktopNotificationDelegate> delegate( | 
| new PageNotificationDelegate(process_id_, non_persistent_notification_id, | 
| notification_id)); | 
|  |