Chromium Code Reviews| 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/android_device_manager.h" | 5 #include "chrome/browser/devtools/device/android_device_manager.h" |
| 6 | 6 |
| 7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
| 8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
| 9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
| 10 #include "net/base/io_buffer.h" | 10 #include "net/base/io_buffer.h" |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 193 | 193 |
| 194 // static | 194 // static |
| 195 scoped_refptr<AndroidDeviceManager> AndroidDeviceManager::Create() { | 195 scoped_refptr<AndroidDeviceManager> AndroidDeviceManager::Create() { |
| 196 return new AndroidDeviceManager(); | 196 return new AndroidDeviceManager(); |
| 197 } | 197 } |
| 198 | 198 |
| 199 void AndroidDeviceManager::QueryDevices( | 199 void AndroidDeviceManager::QueryDevices( |
| 200 const DeviceProviders& providers, | 200 const DeviceProviders& providers, |
| 201 const QueryDevicesCallback& callback) { | 201 const QueryDevicesCallback& callback) { |
| 202 DCHECK(CalledOnValidThread()); | 202 DCHECK(CalledOnValidThread()); |
| 203 stopped_ = false; | |
| 204 Devices empty; | 203 Devices empty; |
| 205 QueryNextProvider(callback, providers, empty, empty); | 204 QueryNextProvider(callback, providers, empty, empty); |
| 206 } | 205 } |
| 207 | 206 |
| 208 void AndroidDeviceManager::Stop() { | 207 void AndroidDeviceManager::ReleaseDevice(const std::string& serial) { |
| 209 DCHECK(CalledOnValidThread()); | 208 DCHECK(CalledOnValidThread()); |
| 210 stopped_ = true; | 209 devices_.erase(serial); |
| 211 devices_.clear(); | |
| 212 } | 210 } |
| 213 | 211 |
| 214 bool AndroidDeviceManager::IsConnected(const std::string& serial) { | 212 bool AndroidDeviceManager::IsConnected(const std::string& serial) { |
| 215 DCHECK(CalledOnValidThread()); | 213 DCHECK(CalledOnValidThread()); |
| 216 Device* device = FindDevice(serial); | 214 Device* device = FindDevice(serial); |
| 217 return device && device->is_connected(); | 215 return device && device->is_connected(); |
| 218 } | 216 } |
| 219 | 217 |
| 220 void AndroidDeviceManager::RunCommand( | 218 void AndroidDeviceManager::RunCommand( |
| 221 const std::string& serial, | 219 const std::string& serial, |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 266 device->OpenSocket( | 264 device->OpenSocket( |
| 267 socket_name, | 265 socket_name, |
| 268 base::Bind(&HttpRequest::SocketRequest, | 266 base::Bind(&HttpRequest::SocketRequest, |
| 269 base::StringPrintf(kWebSocketUpgradeRequest, url.c_str()), | 267 base::StringPrintf(kWebSocketUpgradeRequest, url.c_str()), |
| 270 callback)); | 268 callback)); |
| 271 } else { | 269 } else { |
| 272 callback.Run(net::ERR_CONNECTION_FAILED, NULL); | 270 callback.Run(net::ERR_CONNECTION_FAILED, NULL); |
| 273 } | 271 } |
| 274 } | 272 } |
| 275 | 273 |
| 276 AndroidDeviceManager::AndroidDeviceManager() | 274 AndroidDeviceManager::AndroidDeviceManager() { |
| 277 : stopped_(false) { | |
| 278 } | 275 } |
| 279 | 276 |
| 280 AndroidDeviceManager::~AndroidDeviceManager() { | 277 AndroidDeviceManager::~AndroidDeviceManager() { |
| 281 } | 278 } |
| 282 | 279 |
| 283 void AndroidDeviceManager::QueryNextProvider( | 280 void AndroidDeviceManager::QueryNextProvider( |
| 284 const QueryDevicesCallback& callback, | 281 const QueryDevicesCallback& callback, |
| 285 const DeviceProviders& providers, | 282 const DeviceProviders& providers, |
| 286 const Devices& total_devices, | 283 const Devices& total_devices, |
| 287 const Devices& new_devices) { | 284 const Devices& new_devices) { |
| 288 DCHECK(CalledOnValidThread()); | 285 DCHECK(CalledOnValidThread()); |
| 289 | 286 |
| 290 if (stopped_) | |
|
Vladislav Kaznacheev
2014/05/19 10:32:11
I doubt that you could just remove this. This chec
vkuzkokov
2014/05/20 12:34:29
Devices are freed because DeviceHandle will be des
| |
| 291 return; | |
| 292 | |
| 293 Devices more_devices(total_devices); | 287 Devices more_devices(total_devices); |
| 294 more_devices.insert( | 288 more_devices.insert( |
| 295 more_devices.end(), new_devices.begin(), new_devices.end()); | 289 more_devices.end(), new_devices.begin(), new_devices.end()); |
| 296 | 290 |
| 297 if (providers.empty()) { | 291 if (providers.empty()) { |
| 298 std::vector<std::string> serials; | 292 std::vector<std::string> serials; |
| 299 devices_.clear(); | 293 devices_.clear(); |
| 300 for (Devices::const_iterator it = more_devices.begin(); | 294 for (Devices::const_iterator it = more_devices.begin(); |
| 301 it != more_devices.end(); ++it) { | 295 it != more_devices.end(); ++it) { |
| 302 devices_[(*it)->serial()] = *it; | 296 devices_[(*it)->serial()] = *it; |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 315 } | 309 } |
| 316 | 310 |
| 317 AndroidDeviceManager::Device* | 311 AndroidDeviceManager::Device* |
| 318 AndroidDeviceManager::FindDevice(const std::string& serial) { | 312 AndroidDeviceManager::FindDevice(const std::string& serial) { |
| 319 DCHECK(CalledOnValidThread()); | 313 DCHECK(CalledOnValidThread()); |
| 320 DeviceMap::const_iterator it = devices_.find(serial); | 314 DeviceMap::const_iterator it = devices_.find(serial); |
| 321 if (it == devices_.end()) | 315 if (it == devices_.end()) |
| 322 return NULL; | 316 return NULL; |
| 323 return (*it).second.get(); | 317 return (*it).second.get(); |
| 324 } | 318 } |
| OLD | NEW |