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(); |