OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "extensions/browser/api/device_permissions_prompt.h" | 5 #include "extensions/browser/api/device_permissions_prompt.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/i18n/message_formatter.h" |
8 #include "base/scoped_observer.h" | 9 #include "base/scoped_observer.h" |
9 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
10 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
11 #include "device/core/device_client.h" | 12 #include "device/core/device_client.h" |
12 #include "device/hid/hid_device_filter.h" | 13 #include "device/hid/hid_device_filter.h" |
13 #include "device/hid/hid_device_info.h" | 14 #include "device/hid/hid_device_info.h" |
14 #include "device/hid/hid_service.h" | 15 #include "device/hid/hid_service.h" |
15 #include "device/usb/usb_device.h" | 16 #include "device/usb/usb_device.h" |
16 #include "device/usb/usb_device_filter.h" | 17 #include "device/usb/usb_device_filter.h" |
17 #include "device/usb/usb_ids.h" | 18 #include "device/usb/usb_ids.h" |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 UsbService* service = device::DeviceClient::Get()->GetUsbService(); | 85 UsbService* service = device::DeviceClient::Get()->GetUsbService(); |
85 if (service && !service_observer_.IsObserving(service)) { | 86 if (service && !service_observer_.IsObserving(service)) { |
86 service->GetDevices( | 87 service->GetDevices( |
87 base::Bind(&UsbDevicePermissionsPrompt::OnDevicesEnumerated, this)); | 88 base::Bind(&UsbDevicePermissionsPrompt::OnDevicesEnumerated, this)); |
88 service_observer_.Add(service); | 89 service_observer_.Add(service); |
89 } | 90 } |
90 } | 91 } |
91 } | 92 } |
92 | 93 |
93 base::string16 GetHeading() const override { | 94 base::string16 GetHeading() const override { |
94 return l10n_util::GetStringUTF16( | 95 return l10n_util::GetSingleOrMultipleStringUTF16( |
95 multiple() ? IDS_USB_DEVICE_PERMISSIONS_PROMPT_TITLE_MULTIPLE | 96 IDS_USB_DEVICE_PERMISSIONS_PROMPT_TITLE, multiple()); |
96 : IDS_USB_DEVICE_PERMISSIONS_PROMPT_TITLE_SINGLE); | |
97 } | 97 } |
98 | 98 |
99 void Dismissed() override { | 99 void Dismissed() override { |
100 DevicePermissionsManager* permissions_manager = | 100 DevicePermissionsManager* permissions_manager = |
101 DevicePermissionsManager::Get(browser_context()); | 101 DevicePermissionsManager::Get(browser_context()); |
102 std::vector<scoped_refptr<UsbDevice>> devices; | 102 std::vector<scoped_refptr<UsbDevice>> devices; |
103 for (const DeviceInfo* device : devices_) { | 103 for (const DeviceInfo* device : devices_) { |
104 if (device->granted()) { | 104 if (device->granted()) { |
105 const UsbDeviceInfo* usb_device = | 105 const UsbDeviceInfo* usb_device = |
106 static_cast<const UsbDeviceInfo*>(device); | 106 static_cast<const UsbDeviceInfo*>(device); |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 HidService* service = device::DeviceClient::Get()->GetHidService(); | 199 HidService* service = device::DeviceClient::Get()->GetHidService(); |
200 if (service && !service_observer_.IsObserving(service)) { | 200 if (service && !service_observer_.IsObserving(service)) { |
201 service->GetDevices( | 201 service->GetDevices( |
202 base::Bind(&HidDevicePermissionsPrompt::OnDevicesEnumerated, this)); | 202 base::Bind(&HidDevicePermissionsPrompt::OnDevicesEnumerated, this)); |
203 service_observer_.Add(service); | 203 service_observer_.Add(service); |
204 } | 204 } |
205 } | 205 } |
206 } | 206 } |
207 | 207 |
208 base::string16 GetHeading() const override { | 208 base::string16 GetHeading() const override { |
209 return l10n_util::GetStringUTF16( | 209 return l10n_util::GetSingleOrMultipleStringUTF16( |
210 multiple() ? IDS_HID_DEVICE_PERMISSIONS_PROMPT_TITLE_MULTIPLE | 210 IDS_HID_DEVICE_PERMISSIONS_PROMPT_TITLE, multiple()); |
211 : IDS_HID_DEVICE_PERMISSIONS_PROMPT_TITLE_SINGLE); | |
212 } | 211 } |
213 | 212 |
214 void Dismissed() override { | 213 void Dismissed() override { |
215 DevicePermissionsManager* permissions_manager = | 214 DevicePermissionsManager* permissions_manager = |
216 DevicePermissionsManager::Get(browser_context()); | 215 DevicePermissionsManager::Get(browser_context()); |
217 std::vector<scoped_refptr<device::HidDeviceInfo>> devices; | 216 std::vector<scoped_refptr<device::HidDeviceInfo>> devices; |
218 for (const DeviceInfo* device : devices_) { | 217 for (const DeviceInfo* device : devices_) { |
219 if (device->granted()) { | 218 if (device->granted()) { |
220 const HidDeviceInfo* hid_device = | 219 const HidDeviceInfo* hid_device = |
221 static_cast<const HidDeviceInfo*>(device); | 220 static_cast<const HidDeviceInfo*>(device); |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 content::BrowserContext* context, | 300 content::BrowserContext* context, |
302 bool multiple) | 301 bool multiple) |
303 : extension_(extension), browser_context_(context), multiple_(multiple) { | 302 : extension_(extension), browser_context_(context), multiple_(multiple) { |
304 } | 303 } |
305 | 304 |
306 void DevicePermissionsPrompt::Prompt::SetObserver(Observer* observer) { | 305 void DevicePermissionsPrompt::Prompt::SetObserver(Observer* observer) { |
307 observer_ = observer; | 306 observer_ = observer; |
308 } | 307 } |
309 | 308 |
310 base::string16 DevicePermissionsPrompt::Prompt::GetPromptMessage() const { | 309 base::string16 DevicePermissionsPrompt::Prompt::GetPromptMessage() const { |
311 return l10n_util::GetStringFUTF16(multiple_ | 310 return base::i18n::MessageFormatter::FormatWithNumberedArgs( |
312 ? IDS_DEVICE_PERMISSIONS_PROMPT_MULTIPLE | 311 l10n_util::GetStringUTF16(IDS_DEVICE_PERMISSIONS_PROMPT), |
313 : IDS_DEVICE_PERMISSIONS_PROMPT_SINGLE, | 312 multiple_ ? "multiple" : "single", extension_->name()); |
314 base::UTF8ToUTF16(extension_->name())); | |
315 } | 313 } |
316 | 314 |
317 base::string16 DevicePermissionsPrompt::Prompt::GetDeviceName( | 315 base::string16 DevicePermissionsPrompt::Prompt::GetDeviceName( |
318 size_t index) const { | 316 size_t index) const { |
319 DCHECK_LT(index, devices_.size()); | 317 DCHECK_LT(index, devices_.size()); |
320 return devices_[index]->name(); | 318 return devices_[index]->name(); |
321 } | 319 } |
322 | 320 |
323 base::string16 DevicePermissionsPrompt::Prompt::GetDeviceSerialNumber( | 321 base::string16 DevicePermissionsPrompt::Prompt::GetDeviceSerialNumber( |
324 size_t index) const { | 322 size_t index) const { |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
369 content::BrowserContext* context, | 367 content::BrowserContext* context, |
370 bool multiple, | 368 bool multiple, |
371 const std::vector<HidDeviceFilter>& filters, | 369 const std::vector<HidDeviceFilter>& filters, |
372 const HidDevicesCallback& callback) { | 370 const HidDevicesCallback& callback) { |
373 prompt_ = new HidDevicePermissionsPrompt(extension, context, multiple, | 371 prompt_ = new HidDevicePermissionsPrompt(extension, context, multiple, |
374 filters, callback); | 372 filters, callback); |
375 ShowDialog(); | 373 ShowDialog(); |
376 } | 374 } |
377 | 375 |
378 } // namespace extensions | 376 } // namespace extensions |
OLD | NEW |