Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Side by Side Diff: chrome/browser/engagement/site_engagement_score.cc

Issue 2082953002: Prevent site engagement scores from decaying when Chrome isn't in use. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/engagement/site_engagement_score.h" 5 #include "chrome/browser/engagement/site_engagement_score.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 24 matching lines...) Expand all
35 "decay_period_in_days", 35 "decay_period_in_days",
36 "decay_points", 36 "decay_points",
37 "navigation_points", 37 "navigation_points",
38 "user_input_points", 38 "user_input_points",
39 "visible_media_playing_points", 39 "visible_media_playing_points",
40 "hidden_media_playing_points", 40 "hidden_media_playing_points",
41 "web_app_installed_points", 41 "web_app_installed_points",
42 "first_daily_engagement_points", 42 "first_daily_engagement_points",
43 "medium_engagement_boundary", 43 "medium_engagement_boundary",
44 "high_engagement_boundary", 44 "high_engagement_boundary",
45 "max_decays_per_score",
46 "last_engagement_grace_period_in_hours",
45 }; 47 };
46 48
47 bool DoublesConsideredDifferent(double value1, double value2, double delta) { 49 bool DoublesConsideredDifferent(double value1, double value2, double delta) {
48 double abs_difference = fabs(value1 - value2); 50 double abs_difference = fabs(value1 - value2);
49 return abs_difference > delta; 51 return abs_difference > delta;
50 } 52 }
51 53
52 std::unique_ptr<base::DictionaryValue> GetScoreDictForOrigin( 54 std::unique_ptr<base::DictionaryValue> GetScoreDictForOrigin(
53 HostContentSettingsMap* settings, 55 HostContentSettingsMap* settings,
54 const GURL& origin_url) { 56 const GURL& origin_url) {
(...skipping 21 matching lines...) Expand all
76 5, // DECAY_POINTS 78 5, // DECAY_POINTS
77 0.5, // NAVIGATION_POINTS 79 0.5, // NAVIGATION_POINTS
78 0.2, // USER_INPUT_POINTS 80 0.2, // USER_INPUT_POINTS
79 0.02, // VISIBLE_MEDIA_POINTS 81 0.02, // VISIBLE_MEDIA_POINTS
80 0.01, // HIDDEN_MEDIA_POINTS 82 0.01, // HIDDEN_MEDIA_POINTS
81 5, // WEB_APP_INSTALLED_POINTS 83 5, // WEB_APP_INSTALLED_POINTS
82 0.5, // FIRST_DAILY_ENGAGEMENT 84 0.5, // FIRST_DAILY_ENGAGEMENT
83 8, // BOOTSTRAP_POINTS 85 8, // BOOTSTRAP_POINTS
84 5, // MEDIUM_ENGAGEMENT_BOUNDARY 86 5, // MEDIUM_ENGAGEMENT_BOUNDARY
85 50, // HIGH_ENGAGEMENT_BOUNDARY 87 50, // HIGH_ENGAGEMENT_BOUNDARY
88 1, // MAX_DECAYS_PER_SCORE
89 72, // LAST_ENGAGEMENT_GRACE_PERIOD_IN_HOURS
86 }; 90 };
87 91
88 const char* SiteEngagementScore::kRawScoreKey = "rawScore"; 92 const char* SiteEngagementScore::kRawScoreKey = "rawScore";
89 const char* SiteEngagementScore::kPointsAddedTodayKey = "pointsAddedToday"; 93 const char* SiteEngagementScore::kPointsAddedTodayKey = "pointsAddedToday";
90 const char* SiteEngagementScore::kLastEngagementTimeKey = "lastEngagementTime"; 94 const char* SiteEngagementScore::kLastEngagementTimeKey = "lastEngagementTime";
91 const char* SiteEngagementScore::kLastShortcutLaunchTimeKey = 95 const char* SiteEngagementScore::kLastShortcutLaunchTimeKey =
92 "lastShortcutLaunchTime"; 96 "lastShortcutLaunchTime";
93 97
94 double SiteEngagementScore::GetMaxPointsPerDay() { 98 double SiteEngagementScore::GetMaxPointsPerDay() {
95 return param_values[MAX_POINTS_PER_DAY]; 99 return param_values[MAX_POINTS_PER_DAY];
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 } 136 }
133 137
134 double SiteEngagementScore::GetMediumEngagementBoundary() { 138 double SiteEngagementScore::GetMediumEngagementBoundary() {
135 return param_values[MEDIUM_ENGAGEMENT_BOUNDARY]; 139 return param_values[MEDIUM_ENGAGEMENT_BOUNDARY];
136 } 140 }
137 141
138 double SiteEngagementScore::GetHighEngagementBoundary() { 142 double SiteEngagementScore::GetHighEngagementBoundary() {
139 return param_values[HIGH_ENGAGEMENT_BOUNDARY]; 143 return param_values[HIGH_ENGAGEMENT_BOUNDARY];
140 } 144 }
141 145
146 double SiteEngagementScore::GetMaxDecaysPerScore() {
147 return param_values[MAX_DECAYS_PER_SCORE];
148 }
149
150 double SiteEngagementScore::GetLastEngagementGracePeriodInHours() {
151 return param_values[LAST_ENGAGEMENT_GRACE_PERIOD_IN_HOURS];
152 }
153
142 // static 154 // static
143 void SiteEngagementScore::UpdateFromVariations(const char* param_name) { 155 void SiteEngagementScore::UpdateFromVariations(const char* param_name) {
144 double param_vals[MAX_VARIATION]; 156 double param_vals[MAX_VARIATION];
145 157
146 for (int i = 0; i < MAX_VARIATION; ++i) { 158 for (int i = 0; i < MAX_VARIATION; ++i) {
147 std::string param_string = 159 std::string param_string =
148 variations::GetVariationParamValue(param_name, kVariationNames[i]); 160 variations::GetVariationParamValue(param_name, kVariationNames[i]);
149 161
150 // Bail out if we didn't get a param string for the key, or if we couldn't 162 // Bail out if we didn't get a param string for the key, or if we couldn't
151 // convert the param string to a double, or if we get a negative value. 163 // convert the param string to a double, or if we get a negative value.
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 param_values[DECAY_PERIOD_IN_DAYS] = 7; 342 param_values[DECAY_PERIOD_IN_DAYS] = 7;
331 param_values[DECAY_POINTS] = 5; 343 param_values[DECAY_POINTS] = 5;
332 param_values[NAVIGATION_POINTS] = 0.5; 344 param_values[NAVIGATION_POINTS] = 0.5;
333 param_values[USER_INPUT_POINTS] = 0.05; 345 param_values[USER_INPUT_POINTS] = 0.05;
334 param_values[VISIBLE_MEDIA_POINTS] = 0.02; 346 param_values[VISIBLE_MEDIA_POINTS] = 0.02;
335 param_values[HIDDEN_MEDIA_POINTS] = 0.01; 347 param_values[HIDDEN_MEDIA_POINTS] = 0.01;
336 param_values[WEB_APP_INSTALLED_POINTS] = 5; 348 param_values[WEB_APP_INSTALLED_POINTS] = 5;
337 param_values[BOOTSTRAP_POINTS] = 8; 349 param_values[BOOTSTRAP_POINTS] = 8;
338 param_values[MEDIUM_ENGAGEMENT_BOUNDARY] = 5; 350 param_values[MEDIUM_ENGAGEMENT_BOUNDARY] = 5;
339 param_values[HIGH_ENGAGEMENT_BOUNDARY] = 50; 351 param_values[HIGH_ENGAGEMENT_BOUNDARY] = 50;
352 param_values[MAX_DECAYS_PER_SCORE] = 1;
353 param_values[LAST_ENGAGEMENT_GRACE_PERIOD_IN_HOURS] = 72;
340 354
341 // This is set to zero to avoid interference with tests and is set when 355 // This is set to zero to avoid interference with tests and is set when
342 // testing this functionality. 356 // testing this functionality.
343 param_values[FIRST_DAILY_ENGAGEMENT] = 0; 357 param_values[FIRST_DAILY_ENGAGEMENT] = 0;
344 } 358 }
OLDNEW
« no previous file with comments | « chrome/browser/engagement/site_engagement_score.h ('k') | chrome/browser/engagement/site_engagement_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698