| Index: chrome/browser/devtools/device/android_device_manager.cc
|
| diff --git a/chrome/browser/devtools/device/android_device_manager.cc b/chrome/browser/devtools/device/android_device_manager.cc
|
| index df99de7ba9133b0c490a0e18b03ab166efa6b8c7..458bb9dff0865b15c343b2192598f339d90a7f86 100644
|
| --- a/chrome/browser/devtools/device/android_device_manager.cc
|
| +++ b/chrome/browser/devtools/device/android_device_manager.cc
|
| @@ -326,7 +326,7 @@ AndroidDeviceManager::DeviceProvider::~DeviceProvider() {
|
|
|
| void AndroidDeviceManager::Device::QueryDeviceInfo(
|
| const DeviceInfoCallback& callback) {
|
| - device_message_loop_->PostTask(
|
| + message_loop_proxy_->PostTask(
|
| FROM_HERE,
|
| base::Bind(&DeviceProvider::QueryDeviceInfo,
|
| provider_,
|
| @@ -338,7 +338,7 @@ void AndroidDeviceManager::Device::QueryDeviceInfo(
|
|
|
| void AndroidDeviceManager::Device::OpenSocket(const std::string& socket_name,
|
| const SocketCallback& callback) {
|
| - device_message_loop_->PostTask(
|
| + message_loop_proxy_->PostTask(
|
| FROM_HERE,
|
| base::Bind(&DeviceProvider::OpenSocket,
|
| provider_,
|
| @@ -351,7 +351,7 @@ void AndroidDeviceManager::Device::SendJsonRequest(
|
| const std::string& socket_name,
|
| const std::string& request,
|
| const CommandCallback& callback) {
|
| - device_message_loop_->PostTask(
|
| + message_loop_proxy_->PostTask(
|
| FROM_HERE,
|
| base::Bind(&DeviceProvider::SendJsonRequest,
|
| provider_,
|
| @@ -366,7 +366,7 @@ void AndroidDeviceManager::Device::SendJsonRequest(
|
| void AndroidDeviceManager::Device::HttpUpgrade(const std::string& socket_name,
|
| const std::string& url,
|
| const SocketCallback& callback) {
|
| - device_message_loop_->PostTask(
|
| + message_loop_proxy_->PostTask(
|
| FROM_HERE,
|
| base::Bind(&DeviceProvider::HttpUpgrade,
|
| provider_,
|
| @@ -382,17 +382,21 @@ AndroidDeviceManager::Device::Device(
|
| scoped_refptr<base::MessageLoopProxy> device_message_loop,
|
| scoped_refptr<DeviceProvider> provider,
|
| const std::string& serial)
|
| - : device_message_loop_(device_message_loop),
|
| + : message_loop_proxy_(device_message_loop),
|
| provider_(provider),
|
| serial_(serial),
|
| weak_factory_(this) {
|
| }
|
|
|
| AndroidDeviceManager::Device::~Device() {
|
| + std::set<AndroidWebSocket*> sockets_copy(sockets_);
|
| + for (AndroidWebSocket* socket : sockets_copy)
|
| + socket->OnSocketClosed();
|
| +
|
| provider_->AddRef();
|
| DeviceProvider* raw_ptr = provider_.get();
|
| provider_ = NULL;
|
| - device_message_loop_->PostTask(
|
| + message_loop_proxy_->PostTask(
|
| FROM_HERE,
|
| base::Bind(&ReleaseDeviceAndProvider,
|
| base::Unretained(raw_ptr),
|
|
|