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

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

Issue 2788413003: Add SiteEngagementService::GetAllDetails(), to return detailed scores. (Closed)
Patch Set: Tweak names, add std::move() in Mojo get path Created 3 years, 8 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 43b83532572753245b9cc3450ba3c21d540158c9..ad29101abe30ea2f97f20ee838242ea4ffedaf0d 100644
--- a/chrome/browser/engagement/site_engagement_service.cc
+++ b/chrome/browser/engagement/site_engagement_service.cc
@@ -104,8 +104,7 @@ double SiteEngagementService::GetScoreFromSettings(
HostContentSettingsMap* settings,
const GURL& origin) {
auto clock = base::MakeUnique<base::DefaultClock>();
- return SiteEngagementScore(clock.get(), origin, settings)
- .GetScore();
+ return SiteEngagementScore(clock.get(), origin, settings).GetTotal();
}
SiteEngagementService::SiteEngagementService(Profile* profile)
@@ -139,19 +138,31 @@ SiteEngagementService::GetEngagementLevel(const GURL& url) const {
return CreateEngagementScore(url).GetEngagementLevel();
}
-std::map<GURL, double> SiteEngagementService::GetScoreMap() const {
+std::vector<mojom::SiteEngagementDetails> SiteEngagementService::GetAllDetails()
+ const {
HostContentSettingsMap* settings_map =
HostContentSettingsMapFactory::GetForProfile(profile_);
std::unique_ptr<ContentSettingsForOneType> engagement_settings =
GetEngagementContentSettings(settings_map);
- std::map<GURL, double> score_map;
+ std::vector<mojom::SiteEngagementDetails> scores;
+ scores.reserve(engagement_settings->size());
for (const auto& site : *engagement_settings) {
GURL origin(site.primary_pattern.ToString());
if (!origin.is_valid())
continue;
+ scores.push_back(GetDetails(origin));
+ }
+
+ return scores;
+}
- score_map[origin] = GetScore(origin);
+std::map<GURL, double> SiteEngagementService::GetScoreMap() const {
+ std::vector<mojom::SiteEngagementDetails> scores = GetAllDetails();
dominickn 2017/04/10 00:58:11 Nit: you could probably just do for (const auto& i
Wez 2017/04/10 03:45:28 Updated this to use the std::set<GURL> helper.
+
+ std::map<GURL, double> score_map;
+ for (const auto& info : scores) {
+ score_map[info.origin] = info.total_score;
}
return score_map;
@@ -244,12 +255,17 @@ void SiteEngagementService::HelperDeleted(
}
double SiteEngagementService::GetScore(const GURL& url) const {
+ return GetDetails(url).total_score;
+}
+
+mojom::SiteEngagementDetails SiteEngagementService::GetDetails(
+ const GURL& url) const {
// Ensure that if engagement is stale, we clean things up before fetching the
// score.
if (IsLastEngagementStale())
CleanupEngagementScores(true);
- return CreateEngagementScore(url).GetScore();
+ return CreateEngagementScore(url).GetDetails();
}
double SiteEngagementService::GetTotalEngagementPoints() const {
@@ -376,7 +392,7 @@ void SiteEngagementService::CleanupEngagementScores(
score.Commit();
}
- if (score.GetScore() > SiteEngagementScore::GetScoreCleanupThreshold())
+ if (score.GetTotal() > SiteEngagementScore::GetScoreCleanupThreshold())
continue;
}
@@ -655,7 +671,7 @@ void SiteEngagementService::GetCountsAndLastVisitForOriginsComplete(
// when it is next accessed.
SiteEngagementScore engagement_score = CreateEngagementScore(origin);
- double new_score = proportion_remaining * engagement_score.GetScore();
+ double new_score = proportion_remaining * engagement_score.GetTotal();
int hours_since_engagement = (now - last_visit).InHours();
int periods =
hours_since_engagement / SiteEngagementScore::GetDecayPeriodInHours();

Powered by Google App Engine
This is Rietveld 408576698