| Index: chrome/browser/notifications/platform_notification_service_impl.cc
|
| diff --git a/chrome/browser/notifications/platform_notification_service_impl.cc b/chrome/browser/notifications/platform_notification_service_impl.cc
|
| index 6c70a2ced43d75a2728f84068b6f68685dfc4d7c..293d3a541929b9e96fd6d34bdd7ef83d4b9036f2 100644
|
| --- a/chrome/browser/notifications/platform_notification_service_impl.cc
|
| +++ b/chrome/browser/notifications/platform_notification_service_impl.cc
|
| @@ -13,6 +13,7 @@
|
| #include "build/build_config.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
|
| +#include "chrome/browser/engagement/site_engagement_service.h"
|
| #include "chrome/browser/notifications/notification_display_service_factory.h"
|
| #include "chrome/browser/notifications/notification_object_proxy.h"
|
| #include "chrome/browser/notifications/persistent_notification_delegate.h"
|
| @@ -155,6 +156,7 @@ void PlatformNotificationServiceImpl::OnPersistentNotificationClick(
|
| }
|
| #endif
|
|
|
| + RecordSiteEngagement(browser_context, origin);
|
| content::NotificationEventDispatcher::GetInstance()
|
| ->DispatchNotificationClickEvent(
|
| browser_context, notification_id, origin, action_index, reply,
|
| @@ -529,3 +531,13 @@ void PlatformNotificationServiceImpl::SetNotificationDisplayServiceForTesting(
|
| NotificationDisplayService* display_service) {
|
| test_display_service_ = display_service;
|
| }
|
| +
|
| +void PlatformNotificationServiceImpl::RecordSiteEngagement(
|
| + BrowserContext* browser_context,
|
| + const GURL& origin) {
|
| + // TODO(dominickn, peter): This would be better if the site engagement service
|
| + // could directly observe each notification.
|
| + SiteEngagementService* engagement_service =
|
| + SiteEngagementService::Get(Profile::FromBrowserContext(browser_context));
|
| + engagement_service->HandleNotificationInteraction(origin);
|
| +}
|
|
|