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

Side by Side Diff: chrome/browser/permissions/permission_decision_auto_blocker.cc

Issue 2250893002: Permission Action Reporting: Add num_prior_* fields. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@par-new-fields-proto
Patch Set: make methods static Created 4 years, 4 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/permissions/permission_decision_auto_blocker.h" 5 #include "chrome/browser/permissions/permission_decision_auto_blocker.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/feature_list.h" 9 #include "base/feature_list.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 GURL origin(site.primary_pattern.ToString()); 80 GURL origin(site.primary_pattern.ToString());
81 81
82 if (origin.is_valid() && filter.Run(origin)) { 82 if (origin.is_valid() && filter.Run(origin)) {
83 map->SetWebsiteSettingDefaultScope( 83 map->SetWebsiteSettingDefaultScope(
84 origin, GURL(), CONTENT_SETTINGS_TYPE_PROMPT_NO_DECISION_COUNT, 84 origin, GURL(), CONTENT_SETTINGS_TYPE_PROMPT_NO_DECISION_COUNT,
85 std::string(), nullptr); 85 std::string(), nullptr);
86 } 86 }
87 } 87 }
88 } 88 }
89 89
90 // static
91 int PermissionDecisionAutoBlocker::GetDismissCount(const GURL& url,
92 content::PermissionType permission, Profile* profile) {
93 return GetActionCount(url, permission, kPromptDismissCountKey, profile);
94 }
95
96 // static
97 int PermissionDecisionAutoBlocker::GetIgnoreCount(const GURL& url,
98 content::PermissionType permission, Profile* profile) {
99 return GetActionCount(url, permission, kPromptIgnoreCountKey, profile);
100 }
101
102 // static
103 int PermissionDecisionAutoBlocker::GetActionCount(
raymes 2016/08/17 07:10:53 nit: I guess we might as well move this into the a
kcarattini 2016/08/17 07:25:47 I believe Dom has this covered in a followup cl.
104 const GURL& url,
105 content::PermissionType permission,
106 const char* key,
107 Profile* profile) {
108 HostContentSettingsMap* map =
109 HostContentSettingsMapFactory::GetForProfile(profile);
110 std::unique_ptr<base::DictionaryValue> dict = GetOriginDict(map, url);
111
112 base::DictionaryValue* permission_dict = GetOrCreatePermissionDict(
113 dict.get(), PermissionUtil::GetPermissionString(permission));
114
115 int current_count = 0;
116 permission_dict->GetInteger(key, &current_count);
117 return current_count;
118 }
119
90 PermissionDecisionAutoBlocker::PermissionDecisionAutoBlocker(Profile* profile) 120 PermissionDecisionAutoBlocker::PermissionDecisionAutoBlocker(Profile* profile)
91 : profile_(profile), 121 : profile_(profile),
92 prompt_dismissals_before_block_(kPromptDismissalsBeforeBlock) { 122 prompt_dismissals_before_block_(kPromptDismissalsBeforeBlock) {
93 UpdateFromVariations(); 123 UpdateFromVariations();
94 } 124 }
95 125
96 int PermissionDecisionAutoBlocker::RecordIgnore( 126 int PermissionDecisionAutoBlocker::RecordIgnore(
97 const GURL& url, 127 const GURL& url,
98 content::PermissionType permission) { 128 content::PermissionType permission) {
99 int current_ignore_count = 129 int current_ignore_count =
(...skipping 12 matching lines...) Expand all
112 142
113 PermissionUmaUtil::PermissionPromptDismissed(permission, 143 PermissionUmaUtil::PermissionPromptDismissed(permission,
114 current_dismissal_count); 144 current_dismissal_count);
115 145
116 if (!base::FeatureList::IsEnabled(features::kBlockPromptsIfDismissedOften)) 146 if (!base::FeatureList::IsEnabled(features::kBlockPromptsIfDismissedOften))
117 return false; 147 return false;
118 148
119 return current_dismissal_count >= prompt_dismissals_before_block_; 149 return current_dismissal_count >= prompt_dismissals_before_block_;
120 } 150 }
121 151
122 int PermissionDecisionAutoBlocker::GetActionCountForTest(
123 const GURL& url,
124 content::PermissionType permission,
125 const char* key) {
126 HostContentSettingsMap* map =
127 HostContentSettingsMapFactory::GetForProfile(profile_);
128 std::unique_ptr<base::DictionaryValue> dict = GetOriginDict(map, url);
129
130 base::DictionaryValue* permission_dict = GetOrCreatePermissionDict(
131 dict.get(), PermissionUtil::GetPermissionString(permission));
132
133 int current_count = 0;
134 permission_dict->GetInteger(key, &current_count);
135 return current_count;
136 }
137
138 int PermissionDecisionAutoBlocker::RecordActionInWebsiteSettings( 152 int PermissionDecisionAutoBlocker::RecordActionInWebsiteSettings(
139 const GURL& url, 153 const GURL& url,
140 content::PermissionType permission, 154 content::PermissionType permission,
141 const char* key) { 155 const char* key) {
142 HostContentSettingsMap* map = 156 HostContentSettingsMap* map =
143 HostContentSettingsMapFactory::GetForProfile(profile_); 157 HostContentSettingsMapFactory::GetForProfile(profile_);
144 std::unique_ptr<base::DictionaryValue> dict = GetOriginDict(map, url); 158 std::unique_ptr<base::DictionaryValue> dict = GetOriginDict(map, url);
145 159
146 base::DictionaryValue* permission_dict = GetOrCreatePermissionDict( 160 base::DictionaryValue* permission_dict = GetOrCreatePermissionDict(
147 dict.get(), PermissionUtil::GetPermissionString(permission)); 161 dict.get(), PermissionUtil::GetPermissionString(permission));
(...skipping 11 matching lines...) Expand all
159 173
160 void PermissionDecisionAutoBlocker::UpdateFromVariations() { 174 void PermissionDecisionAutoBlocker::UpdateFromVariations() {
161 int prompt_dismissals = -1; 175 int prompt_dismissals = -1;
162 std::string value = variations::GetVariationParamValueByFeature( 176 std::string value = variations::GetVariationParamValueByFeature(
163 features::kBlockPromptsIfDismissedOften, kPromptDismissCountKey); 177 features::kBlockPromptsIfDismissedOften, kPromptDismissCountKey);
164 178
165 // If converting the value fails, stick with the default value. 179 // If converting the value fails, stick with the default value.
166 if (base::StringToInt(value, &prompt_dismissals) && prompt_dismissals > 0) 180 if (base::StringToInt(value, &prompt_dismissals) && prompt_dismissals > 0)
167 prompt_dismissals_before_block_ = prompt_dismissals; 181 prompt_dismissals_before_block_ = prompt_dismissals;
168 } 182 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698