Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2501)

Unified Diff: chrome/browser/engagement/site_engagement_service.cc

Issue 1986033002: Implement an observer interface for the site engagement service. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@site-engagement-refactor
Patch Set: Address comments Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(

Powered by Google App Engine
This is Rietveld 408576698