Index: chrome/browser/engagement/site_engagement_score.cc |
diff --git a/chrome/browser/engagement/site_engagement_score.cc b/chrome/browser/engagement/site_engagement_score.cc |
index 10fe452045ed6ec5b34dee916337b8735971a19e..fd89a301812b7584a99416893fdab25e097edad1 100644 |
--- a/chrome/browser/engagement/site_engagement_score.cc |
+++ b/chrome/browser/engagement/site_engagement_score.cc |
@@ -271,7 +271,20 @@ void SiteEngagementScore::AddPoints(double points) { |
} |
double SiteEngagementScore::GetScore() const { |
- return std::min(DecayedScore() + BonusScore(), kMaxPoints); |
+ return GetDetails().score; |
+} |
+ |
+mojom::SiteEngagementDetails SiteEngagementScore::GetDetails() const { |
+ mojom::SiteEngagementDetails engagement; |
+ engagement.origin = origin_; |
+ engagement.base_score = DecayedScore(); |
+ engagement.installed_bonus = BonusIfShortcutLaunched(); |
+ engagement.notifications_bonus = BonusIfHasNotifications(); |
+ engagement.score = |
+ std::min(engagement.base_score + engagement.installed_bonus + |
+ engagement.notifications_bonus, |
+ kMaxPoints); |
+ return engagement; |
} |
void SiteEngagementScore::Commit() { |
@@ -400,20 +413,22 @@ double SiteEngagementScore::DecayedScore() const { |
periods * GetDecayPoints()); |
} |
-double SiteEngagementScore::BonusScore() const { |
- double bonus = 0; |
+double SiteEngagementScore::BonusIfShortcutLaunched() const { |
int days_since_shortcut_launch = |
(clock_->Now() - last_shortcut_launch_time_).InDays(); |
if (days_since_shortcut_launch <= kMaxDaysSinceShortcutLaunch) |
- bonus += GetWebAppInstalledPoints(); |
+ return GetWebAppInstalledPoints(); |
+ return 0; |
+} |
+double SiteEngagementScore::BonusIfHasNotifications() const { |
// TODO(dominickn, raymes): call PermissionManager::GetPermissionStatus when |
// the PermissionManager is thread-safe. |
if (settings_map_ && settings_map_->GetContentSetting( |
origin_, GURL(), CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
std::string()) == CONTENT_SETTING_ALLOW) { |
- bonus += GetNotificationPermissionPoints(); |
+ return GetNotificationPermissionPoints(); |
} |
- return bonus; |
+ return 0; |
} |