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

Unified Diff: chrome/browser/engagement/site_engagement_score.cc

Issue 2737533003: Grant bonus engagement to origins with notification permission. (Closed)
Patch Set: Address comments Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
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 d9cae365b7f3a54a93f55aeec95321fef01a458d..a9493061cb627949e173049aacbfb36e85223116 100644
--- a/chrome/browser/engagement/site_engagement_score.cc
+++ b/chrome/browser/engagement/site_engagement_score.cc
@@ -15,6 +15,8 @@
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/engagement/site_engagement_metrics.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
+#include "components/content_settings/core/common/content_settings.h"
+#include "components/content_settings/core/common/content_settings_types.h"
#include "components/variations/variations_associated_data.h"
namespace {
@@ -88,6 +90,8 @@ SiteEngagementScore::ParamValues SiteEngagementScore::BuildParamValues() {
param_values[MAX_DECAYS_PER_SCORE] = {"max_decays_per_score", 4};
param_values[LAST_ENGAGEMENT_GRACE_PERIOD_IN_HOURS] = {
"last_engagement_grace_period_in_hours", 1};
+ param_values[NOTIFICATION_PERMISSION_POINTS] = {
+ "notification_permission_points", 5};
return param_values;
}
@@ -155,6 +159,10 @@ double SiteEngagementScore::GetLastEngagementGracePeriodInHours() {
return GetParamValues()[LAST_ENGAGEMENT_GRACE_PERIOD_IN_HOURS].second;
}
+double SiteEngagementScore::GetNotificationPermissionPoints() {
+ return GetParamValues()[NOTIFICATION_PERMISSION_POINTS].second;
+}
+
// static
void SiteEngagementScore::UpdateFromVariations(const char* param_name) {
double param_vals[MAX_VARIATION];
@@ -333,7 +341,8 @@ SiteEngagementScore::SiteEngagementScore(
last_engagement_time_(),
last_shortcut_launch_time_(),
score_dict_(score_dict.release()),
- origin_(origin) {
+ origin_(origin),
+ settings_map_(nullptr) {
if (!score_dict_)
return;
@@ -363,12 +372,21 @@ double SiteEngagementScore::DecayedScore() const {
}
double SiteEngagementScore::BonusScore() const {
+ double bonus = 0;
int days_since_shortcut_launch =
(clock_->Now() - last_shortcut_launch_time_).InDays();
if (days_since_shortcut_launch <= kMaxDaysSinceShortcutLaunch)
- return GetWebAppInstalledPoints();
+ bonus += GetWebAppInstalledPoints();
+
+ // TODO(dominickn, raymes): call PermissionManager::GetPermissionStatus when
+ // the PermissionManager is thread-safe.
+ if (settings_map_ && settings_map_->GetContentSetting(
+ origin_, GURL(), CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
+ std::string()) == CONTENT_SETTING_ALLOW) {
+ bonus += GetNotificationPermissionPoints();
+ }
- return 0;
+ return bonus;
}
void SiteEngagementScore::SetParamValuesForTesting() {
@@ -385,6 +403,7 @@ void SiteEngagementScore::SetParamValuesForTesting() {
GetParamValues()[HIGH_ENGAGEMENT_BOUNDARY].second = 50;
GetParamValues()[MAX_DECAYS_PER_SCORE].second = 1;
GetParamValues()[LAST_ENGAGEMENT_GRACE_PERIOD_IN_HOURS].second = 72;
+ GetParamValues()[NOTIFICATION_PERMISSION_POINTS].second = 5;
// This is set to values that avoid interference with tests and are set when
// testing these features.
« 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