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) { |