| 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 <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/i18n/message_formatter.h" | 10 #include "base/i18n/message_formatter.h" |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 | 40 |
| 41 namespace { | 41 namespace { |
| 42 | 42 |
| 43 void NoopHidCallback(const std::vector<scoped_refptr<device::HidDeviceInfo>>&) { | 43 void NoopHidCallback(const std::vector<scoped_refptr<device::HidDeviceInfo>>&) { |
| 44 } | 44 } |
| 45 | 45 |
| 46 void NoopUsbCallback(const std::vector<scoped_refptr<device::UsbDevice>>&) {} | 46 void NoopUsbCallback(const std::vector<scoped_refptr<device::UsbDevice>>&) {} |
| 47 | 47 |
| 48 class UsbDeviceInfo : public DevicePermissionsPrompt::Prompt::DeviceInfo { | 48 class UsbDeviceInfo : public DevicePermissionsPrompt::Prompt::DeviceInfo { |
| 49 public: | 49 public: |
| 50 UsbDeviceInfo(scoped_refptr<UsbDevice> device) : device_(device) { | 50 explicit UsbDeviceInfo(scoped_refptr<UsbDevice> device) : device_(device) { |
| 51 name_ = DevicePermissionsManager::GetPermissionMessage( | 51 name_ = DevicePermissionsManager::GetPermissionMessage( |
| 52 device->vendor_id(), device->product_id(), | 52 device->vendor_id(), device->product_id(), |
| 53 device->manufacturer_string(), device->product_string(), | 53 device->manufacturer_string(), device->product_string(), |
| 54 base::string16(), // Serial number is displayed separately. | 54 base::string16(), // Serial number is displayed separately. |
| 55 true); | 55 true); |
| 56 serial_number_ = device->serial_number(); | 56 serial_number_ = device->serial_number(); |
| 57 } | 57 } |
| 58 | 58 |
| 59 ~UsbDeviceInfo() override {} | 59 ~UsbDeviceInfo() override {} |
| 60 | 60 |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 } | 113 } |
| 114 } | 114 } |
| 115 } | 115 } |
| 116 DCHECK(multiple() || devices.size() <= 1); | 116 DCHECK(multiple() || devices.size() <= 1); |
| 117 callback_.Run(devices); | 117 callback_.Run(devices); |
| 118 callback_.Reset(); | 118 callback_.Reset(); |
| 119 } | 119 } |
| 120 | 120 |
| 121 // device::UsbService::Observer implementation: | 121 // device::UsbService::Observer implementation: |
| 122 void OnDeviceAdded(scoped_refptr<UsbDevice> device) override { | 122 void OnDeviceAdded(scoped_refptr<UsbDevice> device) override { |
| 123 if (!UsbDeviceFilter::MatchesAny(device, filters_)) | 123 if (!UsbDeviceFilter::MatchesAny(*device, filters_)) |
| 124 return; | 124 return; |
| 125 | 125 |
| 126 std::unique_ptr<DeviceInfo> device_info(new UsbDeviceInfo(device)); | 126 std::unique_ptr<DeviceInfo> device_info(new UsbDeviceInfo(device)); |
| 127 device->CheckUsbAccess( | 127 device->CheckUsbAccess( |
| 128 base::Bind(&UsbDevicePermissionsPrompt::AddCheckedDevice, this, | 128 base::Bind(&UsbDevicePermissionsPrompt::AddCheckedDevice, this, |
| 129 base::Passed(&device_info))); | 129 base::Passed(&device_info))); |
| 130 } | 130 } |
| 131 | 131 |
| 132 void OnDeviceRemoved(scoped_refptr<UsbDevice> device) override { | 132 void OnDeviceRemoved(scoped_refptr<UsbDevice> device) override { |
| 133 for (auto it = devices_.begin(); it != devices_.end(); ++it) { | 133 for (auto it = devices_.begin(); it != devices_.end(); ++it) { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 151 } | 151 } |
| 152 } | 152 } |
| 153 | 153 |
| 154 std::vector<UsbDeviceFilter> filters_; | 154 std::vector<UsbDeviceFilter> filters_; |
| 155 DevicePermissionsPrompt::UsbDevicesCallback callback_; | 155 DevicePermissionsPrompt::UsbDevicesCallback callback_; |
| 156 ScopedObserver<UsbService, UsbService::Observer> service_observer_; | 156 ScopedObserver<UsbService, UsbService::Observer> service_observer_; |
| 157 }; | 157 }; |
| 158 | 158 |
| 159 class HidDeviceInfo : public DevicePermissionsPrompt::Prompt::DeviceInfo { | 159 class HidDeviceInfo : public DevicePermissionsPrompt::Prompt::DeviceInfo { |
| 160 public: | 160 public: |
| 161 HidDeviceInfo(scoped_refptr<device::HidDeviceInfo> device) : device_(device) { | 161 explicit HidDeviceInfo(scoped_refptr<device::HidDeviceInfo> device) |
| 162 : device_(device) { |
| 162 name_ = DevicePermissionsManager::GetPermissionMessage( | 163 name_ = DevicePermissionsManager::GetPermissionMessage( |
| 163 device->vendor_id(), device->product_id(), | 164 device->vendor_id(), device->product_id(), |
| 164 base::string16(), // HID devices include manufacturer in product name. | 165 base::string16(), // HID devices include manufacturer in product name. |
| 165 base::UTF8ToUTF16(device->product_name()), | 166 base::UTF8ToUTF16(device->product_name()), |
| 166 base::string16(), // Serial number is displayed separately. | 167 base::string16(), // Serial number is displayed separately. |
| 167 false); | 168 false); |
| 168 serial_number_ = base::UTF8ToUTF16(device->serial_number()); | 169 serial_number_ = base::UTF8ToUTF16(device->serial_number()); |
| 169 } | 170 } |
| 170 | 171 |
| 171 ~HidDeviceInfo() override {} | 172 ~HidDeviceInfo() override {} |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 379 // static | 380 // static |
| 380 scoped_refptr<DevicePermissionsPrompt::Prompt> | 381 scoped_refptr<DevicePermissionsPrompt::Prompt> |
| 381 DevicePermissionsPrompt::CreateUsbPromptForTest(const Extension* extension, | 382 DevicePermissionsPrompt::CreateUsbPromptForTest(const Extension* extension, |
| 382 bool multiple) { | 383 bool multiple) { |
| 383 return make_scoped_refptr(new UsbDevicePermissionsPrompt( | 384 return make_scoped_refptr(new UsbDevicePermissionsPrompt( |
| 384 extension, nullptr, multiple, std::vector<UsbDeviceFilter>(), | 385 extension, nullptr, multiple, std::vector<UsbDeviceFilter>(), |
| 385 base::Bind(&NoopUsbCallback))); | 386 base::Bind(&NoopUsbCallback))); |
| 386 } | 387 } |
| 387 | 388 |
| 388 } // namespace extensions | 389 } // namespace extensions |
| OLD | NEW |