| Index: chrome/browser/engagement/site_engagement_score.cc
|
| diff --git a/chrome/browser/engagement/site_engagement_score.cc b/chrome/browser/engagement/site_engagement_score.cc
|
| index 140cd01b1135e78e3b8eb5d14a60d6bff2f2cdfe..af456dc8410ded7a83e35e9aae6087fcdf077dd4 100644
|
| --- a/chrome/browser/engagement/site_engagement_score.cc
|
| +++ b/chrome/browser/engagement/site_engagement_score.cc
|
| @@ -15,6 +15,10 @@
|
|
|
| namespace {
|
|
|
| +// The smallest amount by which engagement is incremented. Updated if necessary
|
| +// in SiteEngagementScore::UpdateFromVariations.
|
| +double gMinimumEngagementIncrement = 0.01;
|
| +
|
| // Delta within which to consider scores equal.
|
| const double kScoreDelta = 0.001;
|
|
|
| @@ -119,6 +123,10 @@ double SiteEngagementScore::GetHighEngagementBoundary() {
|
| return param_values[HIGH_ENGAGEMENT_BOUNDARY];
|
| }
|
|
|
| +double SiteEngagementScore::GetMinimumEngagementIncrement() {
|
| + return gMinimumEngagementIncrement;
|
| +}
|
| +
|
| // static
|
| void SiteEngagementScore::UpdateFromVariations(const char* param_name) {
|
| double param_vals[MAX_VARIATION];
|
| @@ -137,9 +145,17 @@ void SiteEngagementScore::UpdateFromVariations(const char* param_name) {
|
| }
|
|
|
| // Once we're sure everything is valid, assign the variation to the param
|
| - // values array.
|
| - for (int i = 0; i < MAX_VARIATION; ++i)
|
| + // values array. Update the minimum engagement increment if it has changed.
|
| + for (int i = 0; i < MAX_VARIATION; ++i) {
|
| SiteEngagementScore::param_values[i] = param_vals[i];
|
| +
|
| + // If the value is one used to increment the site engagement score, update
|
| + // the minimum engagement increment if necessary.
|
| + if (i >= POINTS_INCREMENT_FIRST && i <= POINTS_INCREMENT_LAST &&
|
| + param_vals[i] < gMinimumEngagementIncrement) {
|
| + gMinimumEngagementIncrement = param_vals[i];
|
| + }
|
| + }
|
| }
|
|
|
| SiteEngagementScore::SiteEngagementScore(base::Clock* clock,
|
|
|