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

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

Issue 2651123002: Migrate content setting PROMPT_NO_DECISION_COUNT to PERMISSION_AUTOBLOCKER_DATA (Closed)
Patch Set: . Created 3 years, 11 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 23 matching lines...) Expand all
34 34
35 // The number of days that an origin will stay under embargo for a requested 35 // The number of days that an origin will stay under embargo for a requested
36 // permission due to repeated dismissals. 36 // permission due to repeated dismissals.
37 int g_dismissal_embargo_days = 7; 37 int g_dismissal_embargo_days = 7;
38 38
39 std::unique_ptr<base::DictionaryValue> GetOriginDict( 39 std::unique_ptr<base::DictionaryValue> GetOriginDict(
40 HostContentSettingsMap* settings, 40 HostContentSettingsMap* settings,
41 const GURL& origin_url) { 41 const GURL& origin_url) {
42 std::unique_ptr<base::DictionaryValue> dict = 42 std::unique_ptr<base::DictionaryValue> dict =
43 base::DictionaryValue::From(settings->GetWebsiteSetting( 43 base::DictionaryValue::From(settings->GetWebsiteSetting(
44 origin_url, GURL(), CONTENT_SETTINGS_TYPE_PROMPT_NO_DECISION_COUNT, 44 origin_url, GURL(), CONTENT_SETTINGS_TYPE_PERMISSION_AUTOBLOCKER_DATA,
45 std::string(), nullptr)); 45 std::string(), nullptr));
46 if (!dict) 46 if (!dict)
47 return base::MakeUnique<base::DictionaryValue>(); 47 return base::MakeUnique<base::DictionaryValue>();
48 48
49 return dict; 49 return dict;
50 } 50 }
51 51
52 base::DictionaryValue* GetOrCreatePermissionDict( 52 base::DictionaryValue* GetOrCreatePermissionDict(
53 base::DictionaryValue* origin_dict, 53 base::DictionaryValue* origin_dict,
54 const std::string& permission) { 54 const std::string& permission) {
(...skipping 17 matching lines...) Expand all
72 std::unique_ptr<base::DictionaryValue> dict = GetOriginDict(map, url); 72 std::unique_ptr<base::DictionaryValue> dict = GetOriginDict(map, url);
73 73
74 base::DictionaryValue* permission_dict = GetOrCreatePermissionDict( 74 base::DictionaryValue* permission_dict = GetOrCreatePermissionDict(
75 dict.get(), PermissionUtil::GetPermissionString(permission)); 75 dict.get(), PermissionUtil::GetPermissionString(permission));
76 76
77 int current_count = 0; 77 int current_count = 0;
78 permission_dict->GetInteger(key, &current_count); 78 permission_dict->GetInteger(key, &current_count);
79 permission_dict->SetInteger(key, ++current_count); 79 permission_dict->SetInteger(key, ++current_count);
80 80
81 map->SetWebsiteSettingDefaultScope( 81 map->SetWebsiteSettingDefaultScope(
82 url, GURL(), CONTENT_SETTINGS_TYPE_PROMPT_NO_DECISION_COUNT, 82 url, GURL(), CONTENT_SETTINGS_TYPE_PERMISSION_AUTOBLOCKER_DATA,
83 std::string(), std::move(dict)); 83 std::string(), std::move(dict));
84 84
85 return current_count; 85 return current_count;
86 } 86 }
87 87
88 int GetActionCount(const GURL& url, 88 int GetActionCount(const GURL& url,
89 content::PermissionType permission, 89 content::PermissionType permission,
90 const char* key, 90 const char* key,
91 Profile* profile) { 91 Profile* profile) {
92 HostContentSettingsMap* map = 92 HostContentSettingsMap* map =
(...skipping 27 matching lines...) Expand all
120 120
121 // static 121 // static
122 void PermissionDecisionAutoBlocker::RemoveCountsByUrl( 122 void PermissionDecisionAutoBlocker::RemoveCountsByUrl(
123 Profile* profile, 123 Profile* profile,
124 base::Callback<bool(const GURL& url)> filter) { 124 base::Callback<bool(const GURL& url)> filter) {
125 HostContentSettingsMap* map = 125 HostContentSettingsMap* map =
126 HostContentSettingsMapFactory::GetForProfile(profile); 126 HostContentSettingsMapFactory::GetForProfile(profile);
127 127
128 std::unique_ptr<ContentSettingsForOneType> settings( 128 std::unique_ptr<ContentSettingsForOneType> settings(
129 new ContentSettingsForOneType); 129 new ContentSettingsForOneType);
130 map->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_PROMPT_NO_DECISION_COUNT, 130 map->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_PERMISSION_AUTOBLOCKER_DATA,
131 std::string(), settings.get()); 131 std::string(), settings.get());
132 132
133 for (const auto& site : *settings) { 133 for (const auto& site : *settings) {
134 GURL origin(site.primary_pattern.ToString()); 134 GURL origin(site.primary_pattern.ToString());
135 135
136 if (origin.is_valid() && filter.Run(origin)) { 136 if (origin.is_valid() && filter.Run(origin)) {
137 map->SetWebsiteSettingDefaultScope( 137 map->SetWebsiteSettingDefaultScope(
138 origin, GURL(), CONTENT_SETTINGS_TYPE_PROMPT_NO_DECISION_COUNT, 138 origin, GURL(), CONTENT_SETTINGS_TYPE_PERMISSION_AUTOBLOCKER_DATA,
139 std::string(), nullptr); 139 std::string(), nullptr);
140 } 140 }
141 } 141 }
142 } 142 }
143 143
144 // static 144 // static
145 int PermissionDecisionAutoBlocker::GetDismissCount( 145 int PermissionDecisionAutoBlocker::GetDismissCount(
146 const GURL& url, 146 const GURL& url,
147 content::PermissionType permission, 147 content::PermissionType permission,
148 Profile* profile) { 148 Profile* profile) {
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 const GURL& request_origin, 302 const GURL& request_origin,
303 HostContentSettingsMap* map, 303 HostContentSettingsMap* map,
304 base::Time current_time, 304 base::Time current_time,
305 const char* key) { 305 const char* key) {
306 std::unique_ptr<base::DictionaryValue> dict = 306 std::unique_ptr<base::DictionaryValue> dict =
307 GetOriginDict(map, request_origin); 307 GetOriginDict(map, request_origin);
308 base::DictionaryValue* permission_dict = GetOrCreatePermissionDict( 308 base::DictionaryValue* permission_dict = GetOrCreatePermissionDict(
309 dict.get(), PermissionUtil::GetPermissionString(permission)); 309 dict.get(), PermissionUtil::GetPermissionString(permission));
310 permission_dict->SetDouble(key, current_time.ToInternalValue()); 310 permission_dict->SetDouble(key, current_time.ToInternalValue());
311 map->SetWebsiteSettingDefaultScope( 311 map->SetWebsiteSettingDefaultScope(
312 request_origin, GURL(), CONTENT_SETTINGS_TYPE_PROMPT_NO_DECISION_COUNT, 312 request_origin, GURL(), CONTENT_SETTINGS_TYPE_PERMISSION_AUTOBLOCKER_DATA,
313 std::string(), std::move(dict)); 313 std::string(), std::move(dict));
314 } 314 }
315 315
316 // static 316 // static
317 void PermissionDecisionAutoBlocker::CheckSafeBrowsingResult( 317 void PermissionDecisionAutoBlocker::CheckSafeBrowsingResult(
318 content::PermissionType permission, 318 content::PermissionType permission,
319 Profile* profile, 319 Profile* profile,
320 const GURL& request_origin, 320 const GURL& request_origin,
321 base::Time current_time, 321 base::Time current_time,
322 base::Callback<void(bool)> callback, 322 base::Callback<void(bool)> callback,
323 bool should_be_embargoed) { 323 bool should_be_embargoed) {
324 if (should_be_embargoed) { 324 if (should_be_embargoed) {
325 // Requesting site is blacklisted for this permission, update the content 325 // Requesting site is blacklisted for this permission, update the content
326 // setting to place it under embargo. 326 // setting to place it under embargo.
327 PlaceUnderEmbargo(permission, request_origin, 327 PlaceUnderEmbargo(permission, request_origin,
328 HostContentSettingsMapFactory::GetForProfile(profile), 328 HostContentSettingsMapFactory::GetForProfile(profile),
329 current_time, kPermissionBlacklistEmbargoKey); 329 current_time, kPermissionBlacklistEmbargoKey);
330 } 330 }
331 callback.Run(should_be_embargoed /* permission blocked */); 331 callback.Run(should_be_embargoed /* permission blocked */);
332 } 332 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698