| 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..de3e9d1024c6bc6aeb92f3a089bfc0c228bc0ed8 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.
|
| @@ -117,16 +121,22 @@ class SiteEngagementService : public KeyedService,
|
| ~SiteEngagementService() override;
|
|
|
| // Returns a map of all stored origins and their engagement scores.
|
| - std::map<GURL, int> GetScoreMap();
|
| + std::map<GURL, double> GetScoreMap();
|
| +
|
| + // 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 user navigation.
|
| - void HandleNavigation(const GURL& url);
|
| + // 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.
|
|
|