Index: content/browser/notifications/notification_message_filter.h |
diff --git a/content/browser/notifications/notification_message_filter.h b/content/browser/notifications/notification_message_filter.h |
index bc28879cf71664cf40a307a967ef79fc569d0e23..25d69c64f9325e62f6999205448dbb3c566d8316 100644 |
--- a/content/browser/notifications/notification_message_filter.h |
+++ b/content/browser/notifications/notification_message_filter.h |
@@ -23,6 +23,7 @@ class GURL; |
namespace content { |
class BrowserContext; |
+class NotificationIdGenerator; |
struct NotificationResources; |
class PlatformNotificationContextImpl; |
struct PlatformNotificationData; |
@@ -40,9 +41,9 @@ class NotificationMessageFilter : public BrowserMessageFilter { |
const scoped_refptr<ServiceWorkerContextWrapper>& service_worker_context, |
BrowserContext* browser_context); |
- // To be called by the notification's delegate when it has closed, so that |
- // the close closure associated with that notification can be removed. |
- void DidCloseNotification(int notification_id); |
+ // To be called by non-persistent notification delegates when they are closed, |
+ // so that the close closure associated with that notification can be removed. |
+ void DidCloseNotification(const std::string& notification_id); |
// BrowserMessageFilter implementation. Called on the UI thread. |
void OnDestruct() const override; |
@@ -58,7 +59,7 @@ class NotificationMessageFilter : public BrowserMessageFilter { |
friend class BrowserThread; |
void OnShowPlatformNotification( |
- int notification_id, |
+ int non_persistent_notification_id, |
const GURL& origin, |
const PlatformNotificationData& notification_data, |
const NotificationResources& notification_resources); |
@@ -72,9 +73,12 @@ class NotificationMessageFilter : public BrowserMessageFilter { |
int64_t service_worker_registration_id, |
const GURL& origin, |
const std::string& filter_tag); |
- void OnClosePlatformNotification(int notification_id); |
+ void OnClosePlatformNotification(const GURL& origin, |
+ const std::string& tag, |
+ int non_persistent_notification_id); |
void OnClosePersistentNotification(const GURL& origin, |
- int64_t persistent_notification_id); |
+ const std::string& tag, |
+ const std::string& notification_id); |
// Callback to be invoked by the notification context when the notification |
// data for the persistent notification may have been written, as indicated by |
@@ -86,7 +90,7 @@ class NotificationMessageFilter : public BrowserMessageFilter { |
const PlatformNotificationData& notification_data, |
const NotificationResources& notification_resources, |
bool success, |
- int64_t persistent_notification_id); |
+ const std::string& notification_id); |
// Callback to be invoked by the service worker context when the service |
// worker registration was retrieved. Will present the notification to the |
@@ -96,7 +100,7 @@ class NotificationMessageFilter : public BrowserMessageFilter { |
const GURL& origin, |
const PlatformNotificationData& notification_data, |
const NotificationResources& notification_resources, |
- int64_t persistent_notification_id, |
+ const std::string& notification_id, |
content::ServiceWorkerStatusCode service_worker_status, |
scoped_refptr<ServiceWorkerRegistration> registration); |
@@ -128,14 +132,18 @@ class NotificationMessageFilter : public BrowserMessageFilter { |
bool VerifyNotificationPermissionGranted(PlatformNotificationService* service, |
const GURL& origin); |
+ // Returns the NotificationIdGenerator instance owned by the context. |
+ NotificationIdGenerator* GetNotificationIdGenerator() const; |
+ |
int process_id_; |
scoped_refptr<PlatformNotificationContextImpl> notification_context_; |
ResourceContext* resource_context_; |
scoped_refptr<ServiceWorkerContextWrapper> service_worker_context_; |
BrowserContext* browser_context_; |
- // Map mapping notification ids to their associated close closures. |
- std::map<int, base::Closure> close_closures_; |
+ // Map mapping notification IDs associated with non-persistent notifications |
+ // to the closures that may be used for programmatically closing them. |
+ std::unordered_map<std::string, base::Closure> close_closures_; |
base::WeakPtrFactory<NotificationMessageFilter> weak_factory_io_; |