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 |