| 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 <algorithm> | 5 #include <algorithm> |
| 6 | 6 |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "chrome/browser/devtools/device/devtools_android_bridge.h" | 8 #include "chrome/browser/devtools/device/devtools_android_bridge.h" |
| 9 #include "chrome/browser/devtools/device/usb/android_usb_device.h" | 9 #include "chrome/browser/devtools/device/usb/android_usb_device.h" |
| 10 #include "chrome/browser/devtools/device/usb/usb_device_provider.h" | 10 #include "chrome/browser/devtools/device/usb/usb_device_provider.h" |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 : device_(device), | 113 : device_(device), |
| 114 remaining_body_length_(0), | 114 remaining_body_length_(0), |
| 115 next_local_socket_(0) {} | 115 next_local_socket_(0) {} |
| 116 | 116 |
| 117 virtual scoped_refptr<UsbDevice> GetDevice() const OVERRIDE { | 117 virtual scoped_refptr<UsbDevice> GetDevice() const OVERRIDE { |
| 118 return device_; | 118 return device_; |
| 119 } | 119 } |
| 120 | 120 |
| 121 virtual void Close() OVERRIDE { device_ = NULL; } | 121 virtual void Close() OVERRIDE { device_ = NULL; } |
| 122 | 122 |
| 123 bool ClaimInterface(const int interface_number) { | 123 bool ClaimInterface(int interface_number) { |
| 124 if (device_->claimed_interfaces_.find(interface_number) != | 124 if (device_->claimed_interfaces_.find(interface_number) != |
| 125 device_->claimed_interfaces_.end()) | 125 device_->claimed_interfaces_.end()) |
| 126 return false; | 126 return false; |
| 127 | 127 |
| 128 device_->claimed_interfaces_.insert(interface_number); | 128 device_->claimed_interfaces_.insert(interface_number); |
| 129 return true; | 129 return true; |
| 130 } | 130 } |
| 131 | 131 |
| 132 bool ReleaseInterface(const int interface_number) { | 132 bool ReleaseInterface(int interface_number) { |
| 133 if (device_->claimed_interfaces_.find(interface_number) == | 133 if (device_->claimed_interfaces_.find(interface_number) == |
| 134 device_->claimed_interfaces_.end()) | 134 device_->claimed_interfaces_.end()) |
| 135 return false; | 135 return false; |
| 136 | 136 |
| 137 device_->claimed_interfaces_.erase(interface_number); | 137 device_->claimed_interfaces_.erase(interface_number); |
| 138 return true; | 138 return true; |
| 139 } | 139 } |
| 140 | 140 |
| 141 virtual bool SetInterfaceAlternateSetting( | 141 virtual bool SetInterfaceAlternateSetting(int interface_number, |
| 142 const int interface_number, | 142 int alternate_setting) OVERRIDE { |
| 143 const int alternate_setting) OVERRIDE { | |
| 144 return true; | 143 return true; |
| 145 } | 144 } |
| 146 | 145 |
| 147 virtual bool ResetDevice() OVERRIDE { return true; } | 146 virtual bool ResetDevice() OVERRIDE { return true; } |
| 148 | 147 |
| 149 virtual bool GetManufacturer(base::string16* manufacturer) OVERRIDE { | 148 virtual bool GetManufacturer(base::string16* manufacturer) OVERRIDE { |
| 150 *manufacturer = base::UTF8ToUTF16(kDeviceManufacturer); | 149 *manufacturer = base::UTF8ToUTF16(kDeviceManufacturer); |
| 151 return true; | 150 return true; |
| 152 } | 151 } |
| 153 | 152 |
| 154 virtual bool GetProduct(base::string16* product) OVERRIDE { | 153 virtual bool GetProduct(base::string16* product) OVERRIDE { |
| 155 *product = base::UTF8ToUTF16(kDeviceModel); | 154 *product = base::UTF8ToUTF16(kDeviceModel); |
| 156 return true; | 155 return true; |
| 157 } | 156 } |
| 158 | 157 |
| 159 virtual bool GetSerial(base::string16* serial) OVERRIDE { | 158 virtual bool GetSerial(base::string16* serial) OVERRIDE { |
| 160 *serial = base::UTF8ToUTF16(kDeviceSerial); | 159 *serial = base::UTF8ToUTF16(kDeviceSerial); |
| 161 return true; | 160 return true; |
| 162 } | 161 } |
| 163 | 162 |
| 164 // Async IO. Can be called on any thread. | 163 // Async IO. Can be called on any thread. |
| 165 virtual void ControlTransfer(const UsbEndpointDirection direction, | 164 virtual void ControlTransfer(UsbEndpointDirection direction, |
| 166 const TransferRequestType request_type, | 165 TransferRequestType request_type, |
| 167 const TransferRecipient recipient, | 166 TransferRecipient recipient, |
| 168 const uint8 request, | 167 uint8 request, |
| 169 const uint16 value, | 168 uint16 value, |
| 170 const uint16 index, | 169 uint16 index, |
| 171 net::IOBuffer* buffer, | 170 net::IOBuffer* buffer, |
| 172 const size_t length, | 171 size_t length, |
| 173 const unsigned int timeout, | 172 unsigned int timeout, |
| 174 const UsbTransferCallback& callback) OVERRIDE {} | 173 const UsbTransferCallback& callback) OVERRIDE {} |
| 175 | 174 |
| 176 virtual void BulkTransfer(const UsbEndpointDirection direction, | 175 virtual void BulkTransfer(UsbEndpointDirection direction, |
| 177 const uint8 endpoint, | 176 uint8 endpoint, |
| 178 net::IOBuffer* buffer, | 177 net::IOBuffer* buffer, |
| 179 const size_t length, | 178 size_t length, |
| 180 const unsigned int timeout, | 179 unsigned int timeout, |
| 181 const UsbTransferCallback& callback) OVERRIDE { | 180 const UsbTransferCallback& callback) OVERRIDE { |
| 182 if (direction == device::USB_DIRECTION_OUTBOUND) { | 181 if (direction == device::USB_DIRECTION_OUTBOUND) { |
| 183 if (remaining_body_length_ == 0) { | 182 if (remaining_body_length_ == 0) { |
| 184 std::vector<uint32> header(6); | 183 std::vector<uint32> header(6); |
| 185 memcpy(&header[0], buffer->data(), length); | 184 memcpy(&header[0], buffer->data(), length); |
| 186 current_message_ = new AdbMessage(header[0], header[1], header[2], ""); | 185 current_message_ = new AdbMessage(header[0], header[1], header[2], ""); |
| 187 remaining_body_length_ = header[3]; | 186 remaining_body_length_ = header[3]; |
| 188 uint32 magic = header[5]; | 187 uint32 magic = header[5]; |
| 189 if ((current_message_->command ^ 0xffffffff) != magic) { | 188 if ((current_message_->command ^ 0xffffffff) != magic) { |
| 190 DCHECK(false) << "Header checksum error"; | 189 DCHECK(false) << "Header checksum error"; |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 297 output_buffer_.erase(output_buffer_.begin(), | 296 output_buffer_.erase(output_buffer_.begin(), |
| 298 output_buffer_.begin() + query.size); | 297 output_buffer_.begin() + query.size); |
| 299 base::MessageLoop::current()->PostTask( | 298 base::MessageLoop::current()->PostTask( |
| 300 FROM_HERE, | 299 FROM_HERE, |
| 301 base::Bind(query.callback, | 300 base::Bind(query.callback, |
| 302 device::USB_TRANSFER_COMPLETED, | 301 device::USB_TRANSFER_COMPLETED, |
| 303 query.buffer, | 302 query.buffer, |
| 304 query.size)); | 303 query.size)); |
| 305 } | 304 } |
| 306 | 305 |
| 307 virtual void InterruptTransfer(const UsbEndpointDirection direction, | 306 virtual void InterruptTransfer(UsbEndpointDirection direction, |
| 308 const uint8 endpoint, | 307 uint8 endpoint, |
| 309 net::IOBuffer* buffer, | 308 net::IOBuffer* buffer, |
| 310 const size_t length, | 309 size_t length, |
| 311 const unsigned int timeout, | 310 unsigned int timeout, |
| 312 const UsbTransferCallback& callback) OVERRIDE { | 311 const UsbTransferCallback& callback) OVERRIDE { |
| 313 } | 312 } |
| 314 | 313 |
| 315 virtual void IsochronousTransfer( | 314 virtual void IsochronousTransfer( |
| 316 const UsbEndpointDirection direction, | 315 UsbEndpointDirection direction, |
| 317 const uint8 endpoint, | 316 uint8 endpoint, |
| 318 net::IOBuffer* buffer, | 317 net::IOBuffer* buffer, |
| 319 const size_t length, | 318 size_t length, |
| 320 const unsigned int packets, | 319 unsigned int packets, |
| 321 const unsigned int packet_length, | 320 unsigned int packet_length, |
| 322 const unsigned int timeout, | 321 unsigned int timeout, |
| 323 const UsbTransferCallback& callback) OVERRIDE {} | 322 const UsbTransferCallback& callback) OVERRIDE {} |
| 324 | 323 |
| 325 protected: | 324 protected: |
| 326 virtual ~MockUsbDeviceHandle() {} | 325 virtual ~MockUsbDeviceHandle() {} |
| 327 | 326 |
| 328 struct Query { | 327 struct Query { |
| 329 UsbTransferCallback callback; | 328 UsbTransferCallback callback; |
| 330 scoped_refptr<net::IOBuffer> buffer; | 329 scoped_refptr<net::IOBuffer> buffer; |
| 331 size_t size; | 330 size_t size; |
| 332 | 331 |
| (...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 762 runner_->Run(); | 761 runner_->Run(); |
| 763 EXPECT_EQ(2, listener.invoked_); | 762 EXPECT_EQ(2, listener.invoked_); |
| 764 EXPECT_EQ(listener.invoked_ - 1, scheduler_invoked_); | 763 EXPECT_EQ(listener.invoked_ - 1, scheduler_invoked_); |
| 765 } | 764 } |
| 766 | 765 |
| 767 IN_PROC_BROWSER_TEST_F(AndroidUsbTraitsTest, TestDeviceCounting) { | 766 IN_PROC_BROWSER_TEST_F(AndroidUsbTraitsTest, TestDeviceCounting) { |
| 768 MockCountListenerForCheckingTraits listener(adb_bridge_); | 767 MockCountListenerForCheckingTraits listener(adb_bridge_); |
| 769 adb_bridge_->AddDeviceCountListener(&listener); | 768 adb_bridge_->AddDeviceCountListener(&listener); |
| 770 runner_->Run(); | 769 runner_->Run(); |
| 771 } | 770 } |
| OLD | NEW |