Index: chrome/browser/engagement/site_engagement_service.h |
diff --git a/chrome/browser/engagement/site_engagement_service.h b/chrome/browser/engagement/site_engagement_service.h |
index 2ab67a749a1cfe4fa1129eb7cc1aa233cac16b54..3de4548c9e7c2304edd3d2d6e35be023082d0ab1 100644 |
--- a/chrome/browser/engagement/site_engagement_service.h |
+++ b/chrome/browser/engagement/site_engagement_service.h |
@@ -12,6 +12,7 @@ |
#include "base/time/default_clock.h" |
#include "base/time/time.h" |
#include "components/keyed_service/core/keyed_service.h" |
+#include "ui/base/page_transition_types.h" |
namespace base { |
class DictionaryValue; |
@@ -33,9 +34,12 @@ class SiteEngagementScore { |
// The maximum number of points that can be accrued in one day. |
static const double kMaxPointsPerDay; |
- // The number of points given for a navigation. |
+ // The number of points given for navigations. |
static const double kNavigationPoints; |
+ // The number of points given for user input (indicating time-on-site). |
+ static const double kUserInputPoints; |
+ |
// Decaying works by removing a portion of the score periodically. This |
// constant determines how often that happens. |
static const int kDecayPeriodInDays; |
@@ -89,10 +93,10 @@ class SiteEngagementScoreProvider { |
public: |
// Returns a non-negative integer representing the engagement score of the |
// origin for this URL. |
- virtual int GetScore(const GURL& url) = 0; |
+ virtual double GetScore(const GURL& url) = 0; |
// Returns the sum of engagement points awarded to all sites. |
- virtual int GetTotalEngagementPoints() = 0; |
+ virtual double GetTotalEngagementPoints() = 0; |
}; |
// Stores and retrieves the engagement score of an origin. |
@@ -119,14 +123,20 @@ class SiteEngagementService : public KeyedService, |
// Returns a map of all stored origins and their engagement scores. |
std::map<GURL, int> GetScoreMap(); |
- // Update the karma score of the origin matching |url| for user navigation. |
- void HandleNavigation(const GURL& url); |
+ // Update the karma score of the origin matching |url| for navigation. |
+ void HandleNavigation(const GURL& url, ui::PageTransition transition); |
+ |
+ // Update the karma score of the origin matching |url| for time-on-site, based |
+ // on user input. |
+ void HandleUserInput(const GURL& url); |
// Overridden from SiteEngagementScoreProvider: |
- int GetScore(const GURL& url) override; |
- int GetTotalEngagementPoints() override; |
+ double GetScore(const GURL& url) override; |
+ double GetTotalEngagementPoints() override; |
private: |
+ void AddPoints(const GURL& url, double points); |
+ |
Profile* profile_; |
// The clock used to vend times. |