Index: chrome/browser/engagement/site_engagement_service.cc |
diff --git a/chrome/browser/engagement/site_engagement_service.cc b/chrome/browser/engagement/site_engagement_service.cc |
index fa8f699fa73d44699dceb25ff8fd40be2f399503..4e8b233bb3d9c0588080555460797d3478ed7105 100644 |
--- a/chrome/browser/engagement/site_engagement_service.cc |
+++ b/chrome/browser/engagement/site_engagement_service.cc |
@@ -209,6 +209,14 @@ bool SiteEngagementService::IsEngagementAtLeast( |
return false; |
} |
+void SiteEngagementService::AddObserver(SiteEngagementObserver* observer) { |
+ observer_list_.AddObserver(observer); |
+} |
+ |
+void SiteEngagementService::RemoveObserver(SiteEngagementObserver* observer) { |
+ observer_list_.RemoveObserver(observer); |
+} |
+ |
void SiteEngagementService::ResetScoreForURL(const GURL& url, double score) { |
ResetScoreAndAccessTimesForURL(url, score, nullptr); |
} |
@@ -282,6 +290,8 @@ void SiteEngagementService::AddPoints(const GURL& url, double points) { |
url, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), |
score_dict.release()); |
} |
+ FOR_EACH_OBSERVER(SiteEngagementObserver, observer_list_, |
+ OnEngagementIncreased(this, url, score.GetScore())); |
} |
void SiteEngagementService::AfterStartupTask() { |
@@ -365,6 +375,25 @@ double SiteEngagementService::GetMedianEngagement( |
return (scores[mid - 1] + scores[mid]) / 2; |
} |
+double SiteEngagementService::GetScoreForEngagementLevel( |
+ EngagementLevel level) const { |
+ switch (level) { |
+ case ENGAGEMENT_LEVEL_NONE: |
+ return 0; |
+ case ENGAGEMENT_LEVEL_LOW: |
+ return SiteEngagementScore::GetMinimumEngagementIncrement(); |
+ case ENGAGEMENT_LEVEL_MEDIUM: |
+ return SiteEngagementScore::GetMediumEngagementBoundary(); |
+ case ENGAGEMENT_LEVEL_HIGH: |
+ return SiteEngagementScore::GetHighEngagementBoundary(); |
+ case ENGAGEMENT_LEVEL_MAX: |
+ return SiteEngagementScore::kMaxPoints; |
+ default: |
+ NOTREACHED(); |
+ return 0; |
+ } |
+} |
+ |
void SiteEngagementService::HandleMediaPlaying(const GURL& url, |
bool is_hidden) { |
SiteEngagementMetrics::RecordEngagement( |