| 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 "device/usb/usb_service_impl.h" | 5 #include "device/usb/usb_service_impl.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 |
| 8 #include <list> | 9 #include <list> |
| 10 #include <memory> |
| 9 #include <set> | 11 #include <set> |
| 10 #include <utility> | 12 #include <utility> |
| 11 | 13 |
| 12 #include "base/barrier_closure.h" | 14 #include "base/barrier_closure.h" |
| 13 #include "base/bind.h" | 15 #include "base/bind.h" |
| 14 #include "base/location.h" | 16 #include "base/location.h" |
| 15 #include "base/memory/weak_ptr.h" | 17 #include "base/memory/weak_ptr.h" |
| 16 #include "base/single_thread_task_runner.h" | 18 #include "base/single_thread_task_runner.h" |
| 17 #include "base/stl_util.h" | 19 #include "base/stl_util.h" |
| 18 #include "base/strings/string_number_conversions.h" | 20 #include "base/strings/string_number_conversions.h" |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 device_handle->Close(); | 119 device_handle->Close(); |
| 118 continuation.Run(); | 120 continuation.Run(); |
| 119 } | 121 } |
| 120 | 122 |
| 121 void SaveStringsAndRunContinuation( | 123 void SaveStringsAndRunContinuation( |
| 122 scoped_refptr<UsbDeviceImpl> device, | 124 scoped_refptr<UsbDeviceImpl> device, |
| 123 uint8_t manufacturer, | 125 uint8_t manufacturer, |
| 124 uint8_t product, | 126 uint8_t product, |
| 125 uint8_t serial_number, | 127 uint8_t serial_number, |
| 126 const base::Closure& continuation, | 128 const base::Closure& continuation, |
| 127 scoped_ptr<std::map<uint8_t, base::string16>> string_map) { | 129 std::unique_ptr<std::map<uint8_t, base::string16>> string_map) { |
| 128 if (manufacturer != 0) | 130 if (manufacturer != 0) |
| 129 device->set_manufacturer_string((*string_map)[manufacturer]); | 131 device->set_manufacturer_string((*string_map)[manufacturer]); |
| 130 if (product != 0) | 132 if (product != 0) |
| 131 device->set_product_string((*string_map)[product]); | 133 device->set_product_string((*string_map)[product]); |
| 132 if (serial_number != 0) | 134 if (serial_number != 0) |
| 133 device->set_serial_number((*string_map)[serial_number]); | 135 device->set_serial_number((*string_map)[serial_number]); |
| 134 continuation.Run(); | 136 continuation.Run(); |
| 135 } | 137 } |
| 136 | 138 |
| 137 void OnReadBosDescriptor(scoped_refptr<UsbDeviceHandle> device_handle, | 139 void OnReadBosDescriptor(scoped_refptr<UsbDeviceHandle> device_handle, |
| 138 const base::Closure& barrier, | 140 const base::Closure& barrier, |
| 139 scoped_ptr<WebUsbAllowedOrigins> allowed_origins, | 141 std::unique_ptr<WebUsbAllowedOrigins> allowed_origins, |
| 140 const GURL& landing_page) { | 142 const GURL& landing_page) { |
| 141 scoped_refptr<UsbDeviceImpl> device = | 143 scoped_refptr<UsbDeviceImpl> device = |
| 142 static_cast<UsbDeviceImpl*>(device_handle->GetDevice().get()); | 144 static_cast<UsbDeviceImpl*>(device_handle->GetDevice().get()); |
| 143 | 145 |
| 144 if (allowed_origins) | 146 if (allowed_origins) |
| 145 device->set_webusb_allowed_origins(std::move(allowed_origins)); | 147 device->set_webusb_allowed_origins(std::move(allowed_origins)); |
| 146 if (landing_page.is_valid()) | 148 if (landing_page.is_valid()) |
| 147 device->set_webusb_landing_page(landing_page); | 149 device->set_webusb_landing_page(landing_page); |
| 148 | 150 |
| 149 barrier.Run(); | 151 barrier.Run(); |
| 150 } | 152 } |
| 151 | 153 |
| 152 void OnDeviceOpenedReadDescriptors( | 154 void OnDeviceOpenedReadDescriptors( |
| 153 uint8_t manufacturer, | 155 uint8_t manufacturer, |
| 154 uint8_t product, | 156 uint8_t product, |
| 155 uint8_t serial_number, | 157 uint8_t serial_number, |
| 156 bool read_bos_descriptors, | 158 bool read_bos_descriptors, |
| 157 const base::Closure& success_closure, | 159 const base::Closure& success_closure, |
| 158 const base::Closure& failure_closure, | 160 const base::Closure& failure_closure, |
| 159 scoped_refptr<UsbDeviceHandle> device_handle) { | 161 scoped_refptr<UsbDeviceHandle> device_handle) { |
| 160 if (device_handle) { | 162 if (device_handle) { |
| 161 scoped_ptr<std::map<uint8_t, base::string16>> string_map( | 163 std::unique_ptr<std::map<uint8_t, base::string16>> string_map( |
| 162 new std::map<uint8_t, base::string16>()); | 164 new std::map<uint8_t, base::string16>()); |
| 163 if (manufacturer != 0) | 165 if (manufacturer != 0) |
| 164 (*string_map)[manufacturer] = base::string16(); | 166 (*string_map)[manufacturer] = base::string16(); |
| 165 if (product != 0) | 167 if (product != 0) |
| 166 (*string_map)[product] = base::string16(); | 168 (*string_map)[product] = base::string16(); |
| 167 if (serial_number != 0) | 169 if (serial_number != 0) |
| 168 (*string_map)[serial_number] = base::string16(); | 170 (*string_map)[serial_number] = base::string16(); |
| 169 | 171 |
| 170 int count = 0; | 172 int count = 0; |
| 171 if (!string_map->empty()) | 173 if (!string_map->empty()) |
| (...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 608 PlatformDeviceMap::iterator it = platform_devices_.find(platform_device); | 610 PlatformDeviceMap::iterator it = platform_devices_.find(platform_device); |
| 609 if (it != platform_devices_.end()) { | 611 if (it != platform_devices_.end()) { |
| 610 RemoveDevice(it->second); | 612 RemoveDevice(it->second); |
| 611 } else { | 613 } else { |
| 612 devices_being_enumerated_.erase(platform_device); | 614 devices_being_enumerated_.erase(platform_device); |
| 613 } | 615 } |
| 614 libusb_unref_device(platform_device); | 616 libusb_unref_device(platform_device); |
| 615 } | 617 } |
| 616 | 618 |
| 617 } // namespace device | 619 } // namespace device |
| OLD | NEW |