Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "base/metrics/histogram_macros.h" | 5 #include "base/metrics/histogram_macros.h" |
| 6 #include "base/strings/stringprintf.h" | 6 #include "base/strings/stringprintf.h" |
| 7 #include "chrome/browser/browser_process.h" | 7 #include "chrome/browser/browser_process.h" |
| 8 #include "chrome/browser/content_settings/permission_context_uma_util.h" | 8 #include "chrome/browser/content_settings/permission_context_uma_util.h" |
| 9 #include "components/rappor/rappor_utils.h" | 9 #include "components/rappor/rappor_utils.h" |
| 10 #include "content/public/browser/permission_type.h" | 10 #include "content/public/browser/permission_type.h" |
| 11 #include "content/public/common/origin_util.h" | |
| 11 #include "url/gurl.h" | 12 #include "url/gurl.h" |
| 12 | 13 |
| 13 // UMA keys need to be statically initialized so plain function would not | 14 // UMA keys need to be statically initialized so plain function would not |
| 14 // work. Use a Macro instead. | 15 // work. Use a Macro instead. |
| 15 #define PERMISSION_ACTION_UMA(secure_origin, permission, permission_secure, \ | 16 #define PERMISSION_ACTION_UMA(secure_origin, permission, permission_secure, \ |
| 16 permission_insecure, action) \ | 17 permission_insecure, action) \ |
| 17 UMA_HISTOGRAM_ENUMERATION(permission, action, PERMISSION_ACTION_NUM); \ | 18 UMA_HISTOGRAM_ENUMERATION(permission, action, PERMISSION_ACTION_NUM); \ |
| 18 if (secure_origin) { \ | 19 if (secure_origin) { \ |
| 19 UMA_HISTOGRAM_ENUMERATION(permission_secure, action, \ | 20 UMA_HISTOGRAM_ENUMERATION(permission_secure, action, \ |
| 20 PERMISSION_ACTION_NUM); \ | 21 PERMISSION_ACTION_NUM); \ |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 73 | 74 |
| 74 if (permission_str.empty()) | 75 if (permission_str.empty()) |
| 75 return ""; | 76 return ""; |
| 76 return base::StringPrintf("ContentSettings.PermissionActions_%s.%s.Url", | 77 return base::StringPrintf("ContentSettings.PermissionActions_%s.%s.Url", |
| 77 permission_str.c_str(), action_str.c_str()); | 78 permission_str.c_str(), action_str.c_str()); |
| 78 } | 79 } |
| 79 | 80 |
| 80 void RecordPermissionAction(ContentSettingsType permission, | 81 void RecordPermissionAction(ContentSettingsType permission, |
| 81 PermissionAction action, | 82 PermissionAction action, |
| 82 const GURL& requesting_origin) { | 83 const GURL& requesting_origin) { |
| 83 bool secure_origin = requesting_origin.SchemeIsSecure(); | 84 bool secure_origin = IsOriginSecure(requesting_origin); |
|
Bernhard Bauer
2015/05/11 07:47:12
+Miguel
I think this makes sense, but at the very
| |
| 84 | 85 |
| 85 switch (permission) { | 86 switch (permission) { |
| 86 case CONTENT_SETTINGS_TYPE_GEOLOCATION: | 87 case CONTENT_SETTINGS_TYPE_GEOLOCATION: |
| 87 PERMISSION_ACTION_UMA( | 88 PERMISSION_ACTION_UMA( |
| 88 secure_origin, | 89 secure_origin, |
| 89 "ContentSettings.PermissionActions_Geolocation", | 90 "ContentSettings.PermissionActions_Geolocation", |
| 90 "ContentSettings.PermissionActionsSecureOrigin_Geolocation", | 91 "ContentSettings.PermissionActionsSecureOrigin_Geolocation", |
| 91 "ContentSettings.PermissionActionsInsecureOrigin_Geolocation", | 92 "ContentSettings.PermissionActionsInsecureOrigin_Geolocation", |
| 92 action); | 93 action); |
| 93 break; | 94 break; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 131 | 132 |
| 132 const std::string& rappor_metric = GetRapporMetric(permission, action); | 133 const std::string& rappor_metric = GetRapporMetric(permission, action); |
| 133 if (!rappor_metric.empty()) | 134 if (!rappor_metric.empty()) |
| 134 rappor::SampleDomainAndRegistryFromGURL( | 135 rappor::SampleDomainAndRegistryFromGURL( |
| 135 g_browser_process->rappor_service(), rappor_metric, | 136 g_browser_process->rappor_service(), rappor_metric, |
| 136 requesting_origin); | 137 requesting_origin); |
| 137 } | 138 } |
| 138 | 139 |
| 139 void RecordPermissionRequest(ContentSettingsType permission, | 140 void RecordPermissionRequest(ContentSettingsType permission, |
| 140 const GURL& requesting_origin) { | 141 const GURL& requesting_origin) { |
| 141 bool secure_origin = requesting_origin.SchemeIsSecure(); | 142 bool secure_origin = IsOriginSecure(requesting_origin); |
| 142 content::PermissionType type; | 143 content::PermissionType type; |
| 143 switch (permission) { | 144 switch (permission) { |
| 144 case CONTENT_SETTINGS_TYPE_GEOLOCATION: | 145 case CONTENT_SETTINGS_TYPE_GEOLOCATION: |
| 145 type = content::PermissionType::GEOLOCATION; | 146 type = content::PermissionType::GEOLOCATION; |
| 146 rappor::SampleDomainAndRegistryFromGURL( | 147 rappor::SampleDomainAndRegistryFromGURL( |
| 147 g_browser_process->rappor_service(), | 148 g_browser_process->rappor_service(), |
| 148 "ContentSettings.PermissionRequested.Geolocation.Url", | 149 "ContentSettings.PermissionRequested.Geolocation.Url", |
| 149 requesting_origin); | 150 requesting_origin); |
| 150 break; | 151 break; |
| 151 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: | 152 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 208 | 209 |
| 209 void PermissionContextUmaUtil::PermissionDismissed( | 210 void PermissionContextUmaUtil::PermissionDismissed( |
| 210 ContentSettingsType permission, const GURL& requesting_origin) { | 211 ContentSettingsType permission, const GURL& requesting_origin) { |
| 211 RecordPermissionAction(permission, DISMISSED, requesting_origin); | 212 RecordPermissionAction(permission, DISMISSED, requesting_origin); |
| 212 } | 213 } |
| 213 | 214 |
| 214 void PermissionContextUmaUtil::PermissionIgnored( | 215 void PermissionContextUmaUtil::PermissionIgnored( |
| 215 ContentSettingsType permission, const GURL& requesting_origin) { | 216 ContentSettingsType permission, const GURL& requesting_origin) { |
| 216 RecordPermissionAction(permission, IGNORED, requesting_origin); | 217 RecordPermissionAction(permission, IGNORED, requesting_origin); |
| 217 } | 218 } |
| OLD | NEW |