Chromium Code Reviews| 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(); |