Index: chrome/browser/devtools/device/android_web_socket.cc |
diff --git a/chrome/browser/devtools/device/android_web_socket.cc b/chrome/browser/devtools/device/android_web_socket.cc |
index 98bae3d31d826ac98ea2d08966f81791aee37cc2..fba70b2f8c44ffe17dd743488fd3ade9e97a68f1 100644 |
--- a/chrome/browser/devtools/device/android_web_socket.cc |
+++ b/chrome/browser/devtools/device/android_web_socket.cc |
@@ -2,9 +2,11 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "base/location.h" |
#include "base/memory/weak_ptr.h" |
-#include "base/message_loop/message_loop.h" |
#include "base/rand_util.h" |
+#include "base/single_thread_task_runner.h" |
+#include "base/thread_task_runner_handle.h" |
#include "chrome/browser/devtools/device/android_device_manager.h" |
#include "content/public/browser/browser_thread.h" |
#include "net/base/io_buffer.h" |
@@ -23,16 +25,17 @@ const int kBufferSize = 16 * 1024; |
class AndroidDeviceManager::AndroidWebSocket::WebSocketImpl { |
public: |
- WebSocketImpl(scoped_refptr<base::MessageLoopProxy> response_message_loop, |
- base::WeakPtr<AndroidWebSocket> weak_socket, |
- const std::string& extensions, |
- const std::string& body_head, |
- scoped_ptr<net::StreamSocket> socket) |
- : response_message_loop_(response_message_loop), |
- weak_socket_(weak_socket), |
- socket_(socket.Pass()), |
- encoder_(net::WebSocketEncoder::CreateClient(extensions)), |
- response_buffer_(body_head) { |
+ WebSocketImpl( |
+ scoped_refptr<base::SingleThreadTaskRunner> response_task_runner, |
+ base::WeakPtr<AndroidWebSocket> weak_socket, |
+ const std::string& extensions, |
+ const std::string& body_head, |
+ scoped_ptr<net::StreamSocket> socket) |
+ : response_task_runner_(response_task_runner), |
+ weak_socket_(weak_socket), |
+ socket_(socket.Pass()), |
+ encoder_(net::WebSocketEncoder::CreateClient(extensions)), |
+ response_buffer_(body_head) { |
thread_checker_.DetachFromThread(); |
} |
@@ -90,7 +93,7 @@ class AndroidDeviceManager::AndroidWebSocket::WebSocketImpl { |
while (parse_result == WebSocket::FRAME_OK) { |
response_buffer_ = response_buffer_.substr(bytes_consumed); |
- response_message_loop_->PostTask( |
+ response_task_runner_->PostTask( |
FROM_HERE, |
base::Bind(&AndroidWebSocket::OnFrameRead, weak_socket_, output)); |
parse_result = encoder_->DecodeFrame( |
@@ -127,12 +130,11 @@ class AndroidDeviceManager::AndroidWebSocket::WebSocketImpl { |
void Disconnect() { |
DCHECK(thread_checker_.CalledOnValidThread()); |
socket_.reset(); |
- response_message_loop_->PostTask( |
- FROM_HERE, |
- base::Bind(&AndroidWebSocket::OnSocketClosed, weak_socket_)); |
+ response_task_runner_->PostTask( |
+ FROM_HERE, base::Bind(&AndroidWebSocket::OnSocketClosed, weak_socket_)); |
} |
- scoped_refptr<base::MessageLoopProxy> response_message_loop_; |
+ scoped_refptr<base::SingleThreadTaskRunner> response_task_runner_; |
base::WeakPtr<AndroidWebSocket> weak_socket_; |
scoped_ptr<net::StreamSocket> socket_; |
scoped_ptr<net::WebSocketEncoder> encoder_; |
@@ -170,10 +172,9 @@ void AndroidDeviceManager::AndroidWebSocket::SendFrame( |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
DCHECK(socket_impl_); |
DCHECK(device_); |
- device_->message_loop_proxy_->PostTask( |
- FROM_HERE, |
- base::Bind(&WebSocketImpl::SendFrame, |
- base::Unretained(socket_impl_), message)); |
+ device_->task_runner_->PostTask( |
+ FROM_HERE, base::Bind(&WebSocketImpl::SendFrame, |
+ base::Unretained(socket_impl_), message)); |
} |
void AndroidDeviceManager::AndroidWebSocket::Connected( |
@@ -186,15 +187,12 @@ void AndroidDeviceManager::AndroidWebSocket::Connected( |
OnSocketClosed(); |
return; |
} |
- socket_impl_ = new WebSocketImpl(base::MessageLoopProxy::current(), |
- weak_factory_.GetWeakPtr(), |
- extensions, |
- body_head, |
- socket.Pass()); |
- device_->message_loop_proxy_->PostTask( |
- FROM_HERE, |
- base::Bind(&WebSocketImpl::StartListening, |
- base::Unretained(socket_impl_))); |
+ socket_impl_ = new WebSocketImpl(base::ThreadTaskRunnerHandle::Get(), |
+ weak_factory_.GetWeakPtr(), extensions, |
+ body_head, socket.Pass()); |
+ device_->task_runner_->PostTask(FROM_HERE, |
+ base::Bind(&WebSocketImpl::StartListening, |
+ base::Unretained(socket_impl_))); |
delegate_->OnSocketOpened(); |
} |
@@ -214,7 +212,7 @@ void AndroidDeviceManager::AndroidWebSocket::Terminate() { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
if (socket_impl_) { |
DCHECK(device_); |
- device_->message_loop_proxy_->DeleteSoon(FROM_HERE, socket_impl_); |
+ device_->task_runner_->DeleteSoon(FROM_HERE, socket_impl_); |
socket_impl_ = nullptr; |
} |
if (device_) { |