| Index: extensions/common/permissions/usb_device_permission.cc
|
| diff --git a/extensions/common/permissions/usb_device_permission.cc b/extensions/common/permissions/usb_device_permission.cc
|
| index 851fbd32599a3ff92507f87ed61bbefd70051d0c..67ac28b8784bd2d405e6c2ee0b75475cb7c374db 100644
|
| --- a/extensions/common/permissions/usb_device_permission.cc
|
| +++ b/extensions/common/permissions/usb_device_permission.cc
|
| @@ -28,10 +28,27 @@ UsbDevicePermission::UsbDevicePermission(
|
| UsbDevicePermission::~UsbDevicePermission() {
|
| }
|
|
|
| +PermissionIDSet UsbDevicePermission::GetPermissions() const {
|
| + PermissionMessages messages;
|
| + PermissionIDSet ids;
|
| + AddPermissionsToLists(ids, messages);
|
| + return ids;
|
| +}
|
| +
|
| PermissionMessages UsbDevicePermission::GetMessages() const {
|
| DCHECK(HasMessages());
|
| - PermissionMessages result;
|
| + PermissionMessages messages;
|
| + PermissionIDSet ids;
|
| + AddPermissionsToLists(ids, messages);
|
| + return messages;
|
| +}
|
|
|
| +void UsbDevicePermission::AddPermissionsToLists(
|
| + PermissionIDSet& ids,
|
| + PermissionMessages& messages) const {
|
| + // TODO(sashab, reillyg): Once the |messages| argument is removed, rework
|
| + // the permission message logic for USB devices to generate more meaningful
|
| + // messages and better fit the current rules system.
|
| if (data_set_.size() == 1) {
|
| const UsbDevicePermissionData& data = *data_set_.begin();
|
|
|
| @@ -40,23 +57,30 @@ PermissionMessages UsbDevicePermission::GetMessages() const {
|
| const char* product =
|
| device::UsbIds::GetProductName(data.vendor_id(), data.product_id());
|
| if (product) {
|
| - result.push_back(PermissionMessage(
|
| + base::string16 product_name_and_vendor = l10n_util::GetStringFUTF16(
|
| + IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_PRODUCT_NAME_AND_VENDOR,
|
| + base::UTF8ToUTF16(product), base::UTF8ToUTF16(vendor));
|
| +
|
| + messages.push_back(PermissionMessage(
|
| PermissionMessage::kUsbDevice,
|
| l10n_util::GetStringFUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE,
|
| - base::UTF8ToUTF16(product),
|
| - base::UTF8ToUTF16(vendor))));
|
| + product_name_and_vendor)));
|
| + ids.insert(APIPermission::kUsbDevice, product_name_and_vendor);
|
| } else {
|
| - result.push_back(PermissionMessage(
|
| + messages.push_back(PermissionMessage(
|
| PermissionMessage::kUsbDevice,
|
| l10n_util::GetStringFUTF16(
|
| IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_UNKNOWN_PRODUCT,
|
| base::UTF8ToUTF16(vendor))));
|
| + ids.insert(APIPermission::kUsbDeviceUnknownProduct,
|
| + base::UTF8ToUTF16(vendor));
|
| }
|
| } else {
|
| - result.push_back(PermissionMessage(
|
| + messages.push_back(PermissionMessage(
|
| PermissionMessage::kUsbDevice,
|
| l10n_util::GetStringUTF16(
|
| IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_UNKNOWN_VENDOR)));
|
| + ids.insert(APIPermission::kUsbDeviceUnknownVendor);
|
| }
|
| } else if (data_set_.size() > 1) {
|
| std::vector<base::string16> details;
|
| @@ -95,13 +119,13 @@ PermissionMessages UsbDevicePermission::GetMessages() const {
|
| IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_LIST_ITEM_UNKNOWN_VENDOR));
|
| }
|
|
|
| - result.push_back(PermissionMessage(
|
| + messages.push_back(PermissionMessage(
|
| PermissionMessage::kUsbDevice,
|
| l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_LIST),
|
| JoinString(details, base::char16('\n'))));
|
| + for (const auto& detail : details)
|
| + ids.insert(APIPermission::kUsbDeviceList, detail);
|
| }
|
| -
|
| - return result;
|
| }
|
|
|
| } // namespace extensions
|
|
|