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..33ac63de28bf557f18667e38b59c404eaf88ba48 100644 |
| --- a/chrome/browser/engagement/site_engagement_service.cc |
| +++ b/chrome/browser/engagement/site_engagement_service.cc |
| @@ -139,19 +139,31 @@ SiteEngagementService::GetEngagementLevel(const GURL& url) const { |
| return CreateEngagementScore(url).GetEngagementLevel(); |
| } |
| -std::map<GURL, double> SiteEngagementService::GetScoreMap() const { |
| +std::vector<mojom::SiteEngagementDetails> |
| +SiteEngagementService::GetScoreDetails() 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) { |
|
dominickn
2017/04/06 01:47:16
A nuance here is that sites with only a notificati
Wez
2017/04/08 01:52:53
IIUC correctly what you're saying is basically:
s
dominickn
2017/04/10 00:58:11
This is what I had in mind (slight difference to y
Wez
2017/04/10 03:45:28
That makes sense; what I've actually done in the l
dominickn
2017/04/10 04:41:26
It's done using content::PostAfterStartupTask, so
Wez
2017/04/10 21:18:09
Acknowledged.
|
| GURL origin(site.primary_pattern.ToString()); |
| if (!origin.is_valid()) |
| continue; |
| + scores.push_back(GetScoreDetails(origin)); |
| + } |
| + |
| + return scores; |
| +} |
| - score_map[origin] = GetScore(origin); |
| +std::map<GURL, double> SiteEngagementService::GetScoreMap() const { |
| + std::vector<mojom::SiteEngagementDetails> scores = GetScoreDetails(); |
| + |
| + std::map<GURL, double> score_map; |
| + for (const auto& info : scores) { |
| + score_map[info.origin] = info.score; |
|
Wez
2017/04/08 01:52:53
Note to self; this also leads to loads of memory c
dominickn
2017/04/10 00:58:11
Even better: we should be able to remove this meth
Wez
2017/04/10 03:45:28
Acknowledged.
|
| } |
| return score_map; |
| @@ -244,12 +256,17 @@ void SiteEngagementService::HelperDeleted( |
| } |
| double SiteEngagementService::GetScore(const GURL& url) const { |
| + return GetScoreDetails(url).score; |
| +} |
| + |
| +mojom::SiteEngagementDetails SiteEngagementService::GetScoreDetails( |
|
Wez
2017/04/08 01:52:53
Note to self: This clashes with GetScoreDetails()
Wez
2017/04/10 03:45:28
Renamed the two in the latest patch.
|
| + 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 { |