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

Unified Diff: extensions/common/permissions/usb_device_permission.cc

Issue 795543002: Added PermissionIDSet to APIPermissions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@permissions_patch_1_static_initializer_fix
Patch Set: Removed unnecessary constructor and added tests for API permissions Created 6 years 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698