Chromium Code Reviews| Index: apps/saved_devices_service.cc |
| diff --git a/apps/saved_devices_service.cc b/apps/saved_devices_service.cc |
| index df7db1de511f038501e66c6c2d5149c9b1008b18..45519b3cf59c8edb71e2972ac773dacbb9d65db5 100644 |
| --- a/apps/saved_devices_service.cc |
| +++ b/apps/saved_devices_service.cc |
| @@ -9,6 +9,8 @@ |
| #include "apps/saved_devices_service_factory.h" |
| #include "base/basictypes.h" |
| +#include "base/strings/stringprintf.h" |
| +#include "base/strings/utf_string_conversions.h" |
| #include "base/values.h" |
| #include "chrome/browser/chrome_notification_types.h" |
| #include "chrome/browser/profiles/profile.h" |
| @@ -16,6 +18,7 @@ |
| #include "content/public/browser/notification_service.h" |
| #include "device/usb/usb_device.h" |
| #include "device/usb/usb_device_handle.h" |
| +#include "device/usb/usb_ids.h" |
| #include "extensions/browser/extension_host.h" |
| #include "extensions/browser/extension_prefs.h" |
| #include "extensions/browser/extension_system.h" |
| @@ -24,6 +27,8 @@ |
| #include "extensions/common/permissions/api_permission.h" |
| #include "extensions/common/permissions/permission_set.h" |
| #include "extensions/common/permissions/permissions_data.h" |
| +#include "extensions/strings/grit/extensions_strings.h" |
| +#include "ui/base/l10n/l10n_util.h" |
| namespace apps { |
| @@ -270,10 +275,42 @@ SavedDevicesService::SavedDevices* SavedDevicesService::GetOrInsert( |
| return saved_devices; |
| } |
| -std::vector<SavedDeviceEntry> SavedDevicesService::GetAllDevices( |
| +std::vector<base::string16> SavedDevicesService::GetPermissionMessageStrings( |
| const std::string& extension_id) const { |
| ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_); |
| - return GetSavedDeviceEntries(prefs, extension_id); |
| + std::vector<apps::SavedDeviceEntry> device_entries = |
| + GetSavedDeviceEntries(prefs, extension_id); |
| + std::vector<base::string16> messages; |
| + for (std::vector<apps::SavedDeviceEntry>::const_iterator it = |
| + device_entries.begin(); |
| + it != device_entries.end(); |
| + ++it) { |
| + const char* vendorName = device::UsbIds::GetVendorName(it->vendor_id); |
| + const char* productName = |
| + device::UsbIds::GetProductName(it->vendor_id, it->product_id); |
| + if (vendorName) { |
| + if (productName) { |
| + messages.push_back(l10n_util::GetStringFUTF16( |
| + IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_SERIAL, |
| + base::UTF8ToUTF16(vendorName), |
| + base::UTF8ToUTF16(productName), |
| + it->serial_number)); |
| + } else { |
| + messages.push_back(l10n_util::GetStringFUTF16( |
| + IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_PID_SERIAL, |
| + base::UTF8ToUTF16(vendorName), |
| + base::ASCIIToUTF16(base::StringPrintf("0x%04X", it->product_id)), |
| + it->serial_number)); |
| + } |
| + } else { |
| + messages.push_back(l10n_util::GetStringFUTF16( |
| + IDS_EXTENSION_PROMPT_WARNING_USB_DEVICE_VID_PID_SERIAL, |
| + base::ASCIIToUTF16(base::StringPrintf("0x%04X", it->vendor_id)), |
| + base::ASCIIToUTF16(base::StringPrintf("0x%04X", it->product_id)), |
|
Avi (use Gerrit)
2014/09/19 03:54:46
For this and all the other cases, string_number_co
Reilly Grant (use Gerrit)
2014/09/19 19:30:09
HexEncode is great for printing uint8_t arrays but
|
| + it->serial_number)); |
| + } |
| + } |
| + return messages; |
| } |
| void SavedDevicesService::Clear(const std::string& extension_id) { |