| 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 "chrome/browser/devtools/device/usb/android_usb_device.h" | 5 #include "chrome/browser/devtools/device/usb/android_usb_device.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/barrier_closure.h" | 10 #include "base/barrier_closure.h" |
| (...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 is_connected_(false), | 353 is_connected_(false), |
| 354 signature_sent_(false), | 354 signature_sent_(false), |
| 355 last_socket_id_(256), | 355 last_socket_id_(256), |
| 356 weak_factory_(this) { | 356 weak_factory_(this) { |
| 357 } | 357 } |
| 358 | 358 |
| 359 void AndroidUsbDevice::InitOnCallerThread() { | 359 void AndroidUsbDevice::InitOnCallerThread() { |
| 360 if (task_runner_) | 360 if (task_runner_) |
| 361 return; | 361 return; |
| 362 task_runner_ = base::ThreadTaskRunnerHandle::Get(); | 362 task_runner_ = base::ThreadTaskRunnerHandle::Get(); |
| 363 Queue(base::WrapUnique(new AdbMessage(AdbMessage::kCommandCNXN, kVersion, | 363 Queue(base::MakeUnique<AdbMessage>(AdbMessage::kCommandCNXN, kVersion, |
| 364 kMaxPayload, kHostConnectMessage))); | 364 kMaxPayload, kHostConnectMessage)); |
| 365 ReadHeader(); | 365 ReadHeader(); |
| 366 } | 366 } |
| 367 | 367 |
| 368 net::StreamSocket* AndroidUsbDevice::CreateSocket(const std::string& command) { | 368 net::StreamSocket* AndroidUsbDevice::CreateSocket(const std::string& command) { |
| 369 if (!usb_handle_.get()) | 369 if (!usb_handle_.get()) |
| 370 return NULL; | 370 return NULL; |
| 371 | 371 |
| 372 uint32_t socket_id = ++last_socket_id_; | 372 uint32_t socket_id = ++last_socket_id_; |
| 373 sockets_[socket_id] = new AndroidUsbSocket(this, socket_id, command, | 373 sockets_[socket_id] = new AndroidUsbSocket(this, socket_id, command, |
| 374 base::Bind(&AndroidUsbDevice::SocketDeleted, this, socket_id)); | 374 base::Bind(&AndroidUsbDevice::SocketDeleted, this, socket_id)); |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 570 } | 570 } |
| 571 | 571 |
| 572 void AndroidUsbDevice::HandleIncoming(std::unique_ptr<AdbMessage> message) { | 572 void AndroidUsbDevice::HandleIncoming(std::unique_ptr<AdbMessage> message) { |
| 573 DCHECK(task_runner_->BelongsToCurrentThread()); | 573 DCHECK(task_runner_->BelongsToCurrentThread()); |
| 574 | 574 |
| 575 switch (message->command) { | 575 switch (message->command) { |
| 576 case AdbMessage::kCommandAUTH: | 576 case AdbMessage::kCommandAUTH: |
| 577 { | 577 { |
| 578 DCHECK_EQ(message->arg0, static_cast<uint32_t>(AdbMessage::kAuthToken)); | 578 DCHECK_EQ(message->arg0, static_cast<uint32_t>(AdbMessage::kAuthToken)); |
| 579 if (signature_sent_) { | 579 if (signature_sent_) { |
| 580 Queue(base::WrapUnique(new AdbMessage( | 580 Queue(base::MakeUnique<AdbMessage>( |
| 581 AdbMessage::kCommandAUTH, AdbMessage::kAuthRSAPublicKey, 0, | 581 AdbMessage::kCommandAUTH, AdbMessage::kAuthRSAPublicKey, 0, |
| 582 AndroidRSAPublicKey(rsa_key_.get())))); | 582 AndroidRSAPublicKey(rsa_key_.get()))); |
| 583 } else { | 583 } else { |
| 584 signature_sent_ = true; | 584 signature_sent_ = true; |
| 585 std::string signature = AndroidRSASign(rsa_key_.get(), message->body); | 585 std::string signature = AndroidRSASign(rsa_key_.get(), message->body); |
| 586 if (!signature.empty()) { | 586 if (!signature.empty()) { |
| 587 Queue(base::WrapUnique(new AdbMessage(AdbMessage::kCommandAUTH, | 587 Queue(base::MakeUnique<AdbMessage>(AdbMessage::kCommandAUTH, |
| 588 AdbMessage::kAuthSignature, 0, | 588 AdbMessage::kAuthSignature, 0, |
| 589 signature))); | 589 signature)); |
| 590 } else { | 590 } else { |
| 591 Queue(base::WrapUnique(new AdbMessage( | 591 Queue(base::MakeUnique<AdbMessage>( |
| 592 AdbMessage::kCommandAUTH, AdbMessage::kAuthRSAPublicKey, 0, | 592 AdbMessage::kCommandAUTH, AdbMessage::kAuthRSAPublicKey, 0, |
| 593 AndroidRSAPublicKey(rsa_key_.get())))); | 593 AndroidRSAPublicKey(rsa_key_.get()))); |
| 594 } | 594 } |
| 595 } | 595 } |
| 596 } | 596 } |
| 597 break; | 597 break; |
| 598 case AdbMessage::kCommandCNXN: | 598 case AdbMessage::kCommandCNXN: |
| 599 { | 599 { |
| 600 is_connected_ = true; | 600 is_connected_ = true; |
| 601 PendingMessages pending; | 601 PendingMessages pending; |
| 602 pending.swap(pending_messages_); | 602 pending.swap(pending_messages_); |
| 603 for (PendingMessages::iterator it = pending.begin(); | 603 for (PendingMessages::iterator it = pending.begin(); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 665 BrowserThread::PostTask( | 665 BrowserThread::PostTask( |
| 666 BrowserThread::UI, FROM_HERE, | 666 BrowserThread::UI, FROM_HERE, |
| 667 base::Bind(&ReleaseInterface, usb_handle, interface_id_)); | 667 base::Bind(&ReleaseInterface, usb_handle, interface_id_)); |
| 668 } | 668 } |
| 669 | 669 |
| 670 void AndroidUsbDevice::SocketDeleted(uint32_t socket_id) { | 670 void AndroidUsbDevice::SocketDeleted(uint32_t socket_id) { |
| 671 DCHECK(task_runner_->BelongsToCurrentThread()); | 671 DCHECK(task_runner_->BelongsToCurrentThread()); |
| 672 | 672 |
| 673 sockets_.erase(socket_id); | 673 sockets_.erase(socket_id); |
| 674 } | 674 } |
| OLD | NEW |