Index: chrome/browser/notifications/platform_notification_service_impl.h |
diff --git a/chrome/browser/notifications/platform_notification_service_impl.h b/chrome/browser/notifications/platform_notification_service_impl.h |
index 9a801cfc952811771a0d33af0c87dc4645f7cdaf..c19954787723fa4c5497b79268fa1a8d8b5d54f4 100644 |
--- a/chrome/browser/notifications/platform_notification_service_impl.h |
+++ b/chrome/browser/notifications/platform_notification_service_impl.h |
@@ -7,8 +7,11 @@ |
#include "base/gtest_prod_util.h" |
#include "base/memory/singleton.h" |
+#include "chrome/browser/notifications/notification.h" |
#include "content/public/browser/platform_notification_service.h" |
+#include "content/public/common/persistent_notification_status.h" |
+class NotificationDelegate; |
class NotificationUIManager; |
class Profile; |
@@ -21,6 +24,17 @@ class PlatformNotificationServiceImpl |
// be called from any thread. |
static PlatformNotificationServiceImpl* GetInstance(); |
+ // To be called when a persistent notification has been clicked on. The |
+ // Service Worker associated with the registration will be started if |
+ // needed, on which the event will be fired. Must be called on the UI thread. |
+ void OnPersistentNotificationClick( |
+ content::BrowserContext* browser_context, |
+ int64 service_worker_registration_id, |
+ const std::string& notification_id, |
+ const content::ShowDesktopNotificationHostMsgParams& params, |
+ const base::Callback<void(content::PersistentNotificationStatus)>& |
+ callback) const; |
+ |
// Returns the Notification UI Manager through which notifications can be |
// displayed to the user. Can be overridden for testing. |
NotificationUIManager* GetNotificationUIManager() const; |
@@ -47,6 +61,7 @@ class PlatformNotificationServiceImpl |
private: |
friend struct DefaultSingletonTraits<PlatformNotificationServiceImpl>; |
+ friend class PlatformNotificationServiceBrowserTest; |
friend class PlatformNotificationServiceTest; |
FRIEND_TEST_ALL_PREFIXES( |
PlatformNotificationServiceTest, DisplayNameForOrigin); |
@@ -54,6 +69,15 @@ class PlatformNotificationServiceImpl |
PlatformNotificationServiceImpl(); |
~PlatformNotificationServiceImpl() override; |
+ // Creates a new Web Notification-based Notification object. |
+ // TODO(peter): |delegate| can be a scoped_refptr, but properly passing this |
+ // through requires changing a whole lot of Notification constructor calls. |
+ Notification CreateNotificationFromData( |
+ Profile* profile, |
+ const content::ShowDesktopNotificationHostMsgParams& params, |
+ NotificationDelegate* delegate, |
+ int render_process_id) const; |
+ |
// Overrides the Notification UI Manager to use to |manager|. Only to be |
// used by tests. Tests are responsible for cleaning up after themselves. |
void SetNotificationUIManagerForTesting(NotificationUIManager* manager); |
@@ -63,7 +87,7 @@ class PlatformNotificationServiceImpl |
// from the origin itself when dealing with extensions. |
base::string16 DisplayNameForOriginInProcessId(Profile* profile, |
const GURL& origin, |
- int process_id); |
+ int process_id) const; |
// Weak reference. Ownership maintains with the test. |
NotificationUIManager* notification_ui_manager_for_tests_; |