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 b4e29444b6ea627e489b907bd8ed6e6d735afd37..c1514d99fc1fb3089e220e3b628b46343a8142df 100644 |
| --- a/chrome/browser/engagement/site_engagement_service.cc |
| +++ b/chrome/browser/engagement/site_engagement_service.cc |
| @@ -58,7 +58,8 @@ const char* SiteEngagementScore::kLastEngagementTimeKey = "lastEngagementTime"; |
| const double SiteEngagementScore::kMaxPoints = 100; |
| const double SiteEngagementScore::kMaxPointsPerDay = 5; |
| -const double SiteEngagementScore::kNavigationPoints = 1; |
| +const double SiteEngagementScore::kNavigationPoints = 0.5; |
| +const double SiteEngagementScore::kUserInputPoints = 0.05; |
| const int SiteEngagementScore::kDecayPeriodInDays = 7; |
| const double SiteEngagementScore::kDecayPoints = 5; |
| @@ -167,27 +168,16 @@ SiteEngagementService::SiteEngagementService(Profile* profile) |
| SiteEngagementService::~SiteEngagementService() { |
| } |
| -void SiteEngagementService::HandleNavigation(const GURL& url) { |
| - HostContentSettingsMap* settings_map = |
| - HostContentSettingsMapFactory::GetForProfile(profile_); |
| - scoped_ptr<base::DictionaryValue> score_dict = |
| - GetScoreDictForOrigin(settings_map, url); |
| - SiteEngagementScore score(&clock_, *score_dict); |
| - |
| - score.AddPoints(SiteEngagementScore::kNavigationPoints); |
| - if (score.UpdateScoreDict(score_dict.get())) { |
| - ContentSettingsPattern pattern( |
| - ContentSettingsPattern::FromURLNoWildcard(url)); |
| - if (!pattern.IsValid()) |
| - return; |
| +void SiteEngagementService::HandleNavigation(const GURL& url, |
| + ui::PageTransition transition) { |
|
calamity
2015/09/22 02:57:21
Why is |transition| here?
dominickn
2015/09/23 00:06:44
It's for when/if we want to count different naviga
calamity
2015/09/24 03:50:53
Acknowledged.
|
| + AddPoints(url, SiteEngagementScore::kNavigationPoints); |
| +} |
| - settings_map->SetWebsiteSetting(pattern, ContentSettingsPattern::Wildcard(), |
| - CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, |
| - std::string(), score_dict.release()); |
| - } |
| +void SiteEngagementService::HandleUserInput(const GURL& url) { |
| + AddPoints(url, SiteEngagementScore::kUserInputPoints); |
| } |
| -int SiteEngagementService::GetScore(const GURL& url) { |
| +double SiteEngagementService::GetScore(const GURL& url) { |
| HostContentSettingsMap* settings_map = |
| HostContentSettingsMapFactory::GetForProfile(profile_); |
| scoped_ptr<base::DictionaryValue> score_dict = |
| @@ -197,13 +187,13 @@ int SiteEngagementService::GetScore(const GURL& url) { |
| return score.Score(); |
| } |
| -int SiteEngagementService::GetTotalEngagementPoints() { |
| +double SiteEngagementService::GetTotalEngagementPoints() { |
| HostContentSettingsMap* settings_map = |
| HostContentSettingsMapFactory::GetForProfile(profile_); |
| ContentSettingsForOneType engagement_settings; |
| settings_map->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, |
| std::string(), &engagement_settings); |
| - int total_score = 0; |
| + double total_score = 0; |
| for (const auto& site : engagement_settings) { |
| GURL origin(site.primary_pattern.ToString()); |
| if (!origin.is_valid()) |
| @@ -216,3 +206,23 @@ int SiteEngagementService::GetTotalEngagementPoints() { |
| } |
| return total_score; |
| } |
| + |
| +void SiteEngagementService::AddPoints(const GURL& url, double points) { |
| + HostContentSettingsMap* settings_map = |
| + HostContentSettingsMapFactory::GetForProfile(profile_); |
| + scoped_ptr<base::DictionaryValue> score_dict = |
| + GetScoreDictForOrigin(settings_map, url); |
| + SiteEngagementScore score(&clock_, *score_dict); |
| + |
| + score.AddPoints(points); |
| + if (score.UpdateScoreDict(score_dict.get())) { |
| + ContentSettingsPattern pattern( |
| + ContentSettingsPattern::FromURLNoWildcard(url)); |
| + if (!pattern.IsValid()) |
| + return; |
| + |
| + settings_map->SetWebsiteSetting(pattern, ContentSettingsPattern::Wildcard(), |
| + CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, |
| + std::string(), score_dict.release()); |
| + } |
| +} |