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 d6a0186ee40d35d8f7a58be38740a91b05993b2a..b4d5db4c0088aeb886cfc71c7c6116f3eb0c5da3 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) { |
+ 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()) |
@@ -236,3 +226,23 @@ std::map<GURL, int> SiteEngagementService::GetScoreMap() { |
} |
return score_map; |
} |
+ |
+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()); |
+ } |
+} |