Chromium Code Reviews| Index: chrome/browser/usb/usb_chooser_context.cc |
| diff --git a/chrome/browser/usb/usb_chooser_context.cc b/chrome/browser/usb/usb_chooser_context.cc |
| index 702c98adc162caa1287464026dd3efd3a40b3f37..fd1862c2fead199f85633bce1da9b01268c3c40c 100644 |
| --- a/chrome/browser/usb/usb_chooser_context.cc |
| +++ b/chrome/browser/usb/usb_chooser_context.cc |
| @@ -7,6 +7,7 @@ |
| #include <utility> |
| #include <vector> |
| +#include "base/metrics/histogram_macros.h" |
| #include "base/stl_util.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "base/values.h" |
| @@ -24,6 +25,15 @@ const char kProductIdKey[] = "product-id"; |
| const char kSerialNumberKey[] = "serial-number"; |
| const char kVendorIdKey[] = "vendor-id"; |
| +enum WebUsbPermissionRevoked { |
| + // Permission to access a USB device was revoked by the user. |
| + WEBUSB_PERMISSION_REVOKED = 0, |
| + // Permission to access an ephemeral USB device was revoked by the user. |
| + WEBUSB_PERMISSION_REVOKED_EPHEMERAL, |
| + // Maximum value for the enum. |
| + WEBUSB_PERMISSION_REVOKED_MAX |
| +}; |
| + |
| bool CanStorePersistentEntry(const scoped_refptr<const UsbDevice>& device) { |
| return !device->serial_number().empty(); |
| } |
| @@ -116,9 +126,15 @@ void UsbChooserContext::RevokeObjectPermission( |
| std::string guid; |
| if (object.GetString(kGuidKey, &guid)) { |
| RevokeDevicePermission(requesting_origin, embedding_origin, guid); |
| + UMA_HISTOGRAM_ENUMERATION("WebUsb.PermissionRevoked", |
| + WEBUSB_PERMISSION_REVOKED_EPHEMERAL, |
|
Alexei Svitkine (slow)
2016/01/18 20:05:13
Ditto.
Reilly Grant (use Gerrit)
2016/01/20 00:59:37
Done.
|
| + WEBUSB_PERMISSION_REVOKED_MAX); |
| } else { |
| ChooserContextBase::RevokeObjectPermission(requesting_origin, |
| embedding_origin, object); |
| + UMA_HISTOGRAM_ENUMERATION("WebUsb.PermissionRevoked", |
| + WEBUSB_PERMISSION_REVOKED, |
| + WEBUSB_PERMISSION_REVOKED_MAX); |
| } |
| } |