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

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

Issue 2790493002: Implement permissions embargo for prompts which are repeatedly ignored. (Closed)
Patch Set: Not for plugins Created 3 years, 8 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
« no previous file with comments | « chrome/browser/permissions/permission_uma_util.h ('k') | chrome/common/chrome_features.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_uma_util.h" 5 #include "chrome/browser/permissions/permission_uma_util.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/metrics/histogram_macros.h" 10 #include "base/metrics/histogram_macros.h"
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 PermissionDecisionAutoBlocker::GetForProfile(profile); 295 PermissionDecisionAutoBlocker::GetForProfile(profile);
296 RecordPermissionAction(permission, PermissionAction::IGNORED, 296 RecordPermissionAction(permission, PermissionAction::IGNORED,
297 PermissionSourceUI::PROMPT, gesture_type, 297 PermissionSourceUI::PROMPT, gesture_type,
298 requesting_origin, profile); 298 requesting_origin, profile);
299 RecordPermissionPromptPriorCount( 299 RecordPermissionPromptPriorCount(
300 permission, kPermissionsPromptIgnoredPriorDismissCountPrefix, 300 permission, kPermissionsPromptIgnoredPriorDismissCountPrefix,
301 autoblocker->GetDismissCount(requesting_origin, permission)); 301 autoblocker->GetDismissCount(requesting_origin, permission));
302 RecordPermissionPromptPriorCount( 302 RecordPermissionPromptPriorCount(
303 permission, kPermissionsPromptIgnoredPriorIgnoreCountPrefix, 303 permission, kPermissionsPromptIgnoredPriorIgnoreCountPrefix,
304 autoblocker->GetIgnoreCount(requesting_origin, permission)); 304 autoblocker->GetIgnoreCount(requesting_origin, permission));
305
306 // RecordPermission* methods need to be called before RecordIgnore in the
307 // blocker because they record the number of prior ignore and dismiss values,
308 // and we don't want to include the current ignore.
309 autoblocker->RecordIgnore(requesting_origin, permission);
310 } 305 }
311 306
312 void PermissionUmaUtil::PermissionRevoked(ContentSettingsType permission, 307 void PermissionUmaUtil::PermissionRevoked(ContentSettingsType permission,
313 PermissionSourceUI source_ui, 308 PermissionSourceUI source_ui,
314 const GURL& revoked_origin, 309 const GURL& revoked_origin,
315 Profile* profile) { 310 Profile* profile) {
316 // TODO(tsergeant): Expand metrics definitions for revocation to include all 311 // TODO(tsergeant): Expand metrics definitions for revocation to include all
317 // permissions. 312 // permissions.
318 if (permission == CONTENT_SETTINGS_TYPE_NOTIFICATIONS || 313 if (permission == CONTENT_SETTINGS_TYPE_NOTIFICATIONS ||
319 permission == CONTENT_SETTINGS_TYPE_GEOLOCATION || 314 permission == CONTENT_SETTINGS_TYPE_GEOLOCATION ||
(...skipping 16 matching lines...) Expand all
336 331
337 void PermissionUmaUtil::RecordEmbargoPromptSuppressionFromSource( 332 void PermissionUmaUtil::RecordEmbargoPromptSuppressionFromSource(
338 PermissionStatusSource source) { 333 PermissionStatusSource source) {
339 // Explicitly switch to ensure that any new PermissionStatusSource values are 334 // Explicitly switch to ensure that any new PermissionStatusSource values are
340 // dealt with appropriately. 335 // dealt with appropriately.
341 switch (source) { 336 switch (source) {
342 case PermissionStatusSource::MULTIPLE_DISMISSALS: 337 case PermissionStatusSource::MULTIPLE_DISMISSALS:
343 PermissionUmaUtil::RecordEmbargoPromptSuppression( 338 PermissionUmaUtil::RecordEmbargoPromptSuppression(
344 PermissionEmbargoStatus::REPEATED_DISMISSALS); 339 PermissionEmbargoStatus::REPEATED_DISMISSALS);
345 break; 340 break;
341 case PermissionStatusSource::MULTIPLE_IGNORES:
342 PermissionUmaUtil::RecordEmbargoPromptSuppression(
343 PermissionEmbargoStatus::REPEATED_IGNORES);
344 break;
346 case PermissionStatusSource::SAFE_BROWSING_BLACKLIST: 345 case PermissionStatusSource::SAFE_BROWSING_BLACKLIST:
347 PermissionUmaUtil::RecordEmbargoPromptSuppression( 346 PermissionUmaUtil::RecordEmbargoPromptSuppression(
348 PermissionEmbargoStatus::PERMISSIONS_BLACKLISTING); 347 PermissionEmbargoStatus::PERMISSIONS_BLACKLISTING);
349 break; 348 break;
350 case PermissionStatusSource::UNSPECIFIED: 349 case PermissionStatusSource::UNSPECIFIED:
351 case PermissionStatusSource::KILL_SWITCH: 350 case PermissionStatusSource::KILL_SWITCH:
352 // The permission wasn't under embargo, so don't record anything. We may 351 // The permission wasn't under embargo, so don't record anything. We may
353 // embargo it later. 352 // embargo it later.
354 break; 353 break;
355 } 354 }
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
712 711
713 const std::string rappor_metric = GetRapporMetric(permission, action); 712 const std::string rappor_metric = GetRapporMetric(permission, action);
714 rappor::RapporServiceImpl* rappor_service = 713 rappor::RapporServiceImpl* rappor_service =
715 g_browser_process->rappor_service(); 714 g_browser_process->rappor_service();
716 if (!rappor_metric.empty() && rappor_service) { 715 if (!rappor_metric.empty() && rappor_service) {
717 rappor_service->RecordSampleString( 716 rappor_service->RecordSampleString(
718 rappor_metric, rappor::LOW_FREQUENCY_ETLD_PLUS_ONE_RAPPOR_TYPE, 717 rappor_metric, rappor::LOW_FREQUENCY_ETLD_PLUS_ONE_RAPPOR_TYPE,
719 rappor::GetDomainAndRegistrySampleFromGURL(requesting_origin)); 718 rappor::GetDomainAndRegistrySampleFromGURL(requesting_origin));
720 } 719 }
721 } 720 }
OLDNEW
« no previous file with comments | « chrome/browser/permissions/permission_uma_util.h ('k') | chrome/common/chrome_features.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698