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

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

Issue 2701343002: Implement permission embargo suppression metrics. (Closed)
Patch Set: Rebase Created 3 years, 10 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_queue_controller.h" 5 #include "chrome/browser/permissions/permission_queue_controller.h"
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 #include "chrome/browser/chrome_notification_types.h" 8 #include "chrome/browser/chrome_notification_types.h"
9 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" 9 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
10 #include "chrome/browser/infobars/infobar_service.h" 10 #include "chrome/browser/infobars/infobar_service.h"
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 const GURL& embedder, 214 const GURL& embedder,
215 bool user_gesture, 215 bool user_gesture,
216 bool update_content_setting, 216 bool update_content_setting,
217 PermissionAction decision) { 217 PermissionAction decision) {
218 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 218 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
219 219
220 PermissionRequestType request_type = 220 PermissionRequestType request_type =
221 PermissionUtil::GetRequestType(content_settings_type_); 221 PermissionUtil::GetRequestType(content_settings_type_);
222 PermissionRequestGestureType gesture_type = 222 PermissionRequestGestureType gesture_type =
223 PermissionUtil::GetGestureType(user_gesture); 223 PermissionUtil::GetGestureType(user_gesture);
224 PermissionEmbargoStatus embargo_status =
225 PermissionEmbargoStatus::NOT_EMBARGOED;
226
224 switch (decision) { 227 switch (decision) {
225 case GRANTED: 228 case GRANTED:
226 PermissionUmaUtil::PermissionGranted(content_settings_type_, gesture_type, 229 PermissionUmaUtil::PermissionGranted(content_settings_type_, gesture_type,
227 requesting_frame, profile_); 230 requesting_frame, profile_);
228 PermissionUmaUtil::RecordPermissionPromptAccepted(request_type, 231 PermissionUmaUtil::RecordPermissionPromptAccepted(request_type,
229 gesture_type); 232 gesture_type);
230 PermissionUmaUtil::RecordPermissionEmbargoStatus(
231 PermissionEmbargoStatus::NOT_EMBARGOED);
232 break; 233 break;
233 case DENIED: 234 case DENIED:
234 PermissionUmaUtil::PermissionDenied(content_settings_type_, gesture_type, 235 PermissionUmaUtil::PermissionDenied(content_settings_type_, gesture_type,
235 requesting_frame, profile_); 236 requesting_frame, profile_);
236 PermissionUmaUtil::RecordPermissionPromptDenied(request_type, 237 PermissionUmaUtil::RecordPermissionPromptDenied(request_type,
237 gesture_type); 238 gesture_type);
238 PermissionUmaUtil::RecordPermissionEmbargoStatus(
239 PermissionEmbargoStatus::NOT_EMBARGOED);
240 break; 239 break;
241 case DISMISSED: 240 case DISMISSED:
242 PermissionUmaUtil::PermissionDismissed( 241 PermissionUmaUtil::PermissionDismissed(
243 content_settings_type_, gesture_type, requesting_frame, profile_); 242 content_settings_type_, gesture_type, requesting_frame, profile_);
244 if (PermissionDecisionAutoBlocker::GetForProfile(profile_) 243 if (PermissionDecisionAutoBlocker::GetForProfile(profile_)
245 ->RecordDismissAndEmbargo(requesting_frame, 244 ->RecordDismissAndEmbargo(requesting_frame,
246 content_settings_type_)) { 245 content_settings_type_)) {
247 PermissionUmaUtil::RecordPermissionEmbargoStatus( 246 embargo_status = PermissionEmbargoStatus::REPEATED_DISMISSALS;
248 PermissionEmbargoStatus::REPEATED_DISMISSALS);
249 } else {
250 PermissionUmaUtil::RecordPermissionEmbargoStatus(
251 PermissionEmbargoStatus::NOT_EMBARGOED);
252 } 247 }
253 break; 248 break;
254 default: 249 default:
255 NOTREACHED(); 250 NOTREACHED();
256 } 251 }
252 PermissionUmaUtil::RecordEmbargoStatus(embargo_status);
257 253
258 // TODO(miguelg): move the permission persistence to 254 // TODO(miguelg): move the permission persistence to
259 // PermissionContextBase once all the types are moved there. 255 // PermissionContextBase once all the types are moved there.
260 if (update_content_setting) 256 if (update_content_setting)
261 UpdateContentSetting(requesting_frame, embedder, decision); 257 UpdateContentSetting(requesting_frame, embedder, decision);
262 258
263 // Cancel this request first, then notify listeners. TODO(pkasting): Why 259 // Cancel this request first, then notify listeners. TODO(pkasting): Why
264 // is this order important? 260 // is this order important?
265 PendingInfobarRequests requests_to_notify; 261 PendingInfobarRequests requests_to_notify;
266 PendingInfobarRequests infobars_to_remove; 262 PendingInfobarRequests infobars_to_remove;
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 // TODO(timloh): Remove this logic when push and notification permissions 446 // TODO(timloh): Remove this logic when push and notification permissions
451 // are reconciled, see crbug.com/563297. 447 // are reconciled, see crbug.com/563297.
452 ContentSettingsType type_for_map = content_settings_type_; 448 ContentSettingsType type_for_map = content_settings_type_;
453 if (type_for_map == CONTENT_SETTINGS_TYPE_PUSH_MESSAGING) 449 if (type_for_map == CONTENT_SETTINGS_TYPE_PUSH_MESSAGING)
454 type_for_map = CONTENT_SETTINGS_TYPE_NOTIFICATIONS; 450 type_for_map = CONTENT_SETTINGS_TYPE_NOTIFICATIONS;
455 HostContentSettingsMapFactory::GetForProfile(profile_) 451 HostContentSettingsMapFactory::GetForProfile(profile_)
456 ->SetContentSettingDefaultScope( 452 ->SetContentSettingDefaultScope(
457 requesting_frame.GetOrigin(), embedder.GetOrigin(), 453 requesting_frame.GetOrigin(), embedder.GetOrigin(),
458 type_for_map, std::string(), content_setting); 454 type_for_map, std::string(), content_setting);
459 } 455 }
OLDNEW
« no previous file with comments | « chrome/browser/permissions/permission_infobar_delegate.cc ('k') | chrome/browser/permissions/permission_request_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698