Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(640)

Side by Side Diff: chrome/browser/devtools/device/android_device_manager.cc

Issue 287643002: DevTools: Partially redesigned DevToolsAndroidBridge and AndroidDeviceManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Used scoped_ptr. Fixed DeviceHandle destruction Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 211
212 // static 212 // static
213 scoped_refptr<AndroidDeviceManager> AndroidDeviceManager::Create() { 213 scoped_refptr<AndroidDeviceManager> AndroidDeviceManager::Create() {
214 return new AndroidDeviceManager(); 214 return new AndroidDeviceManager();
215 } 215 }
216 216
217 void AndroidDeviceManager::QueryDevices( 217 void AndroidDeviceManager::QueryDevices(
218 const DeviceProviders& providers, 218 const DeviceProviders& providers,
219 const QueryDevicesCallback& callback) { 219 const QueryDevicesCallback& callback) {
220 DCHECK(CalledOnValidThread()); 220 DCHECK(CalledOnValidThread());
221 stopped_ = false;
222 Devices empty; 221 Devices empty;
223 QueryNextProvider(callback, providers, empty, empty); 222 QueryNextProvider(callback, providers, empty, empty);
224 } 223 }
225 224
226 void AndroidDeviceManager::Stop() { 225 void AndroidDeviceManager::ReleaseDevice(const std::string& serial) {
pfeldman 2014/05/21 11:33:41 What if different clients query and release device
227 DCHECK(CalledOnValidThread()); 226 DCHECK(CalledOnValidThread());
228 stopped_ = true; 227 devices_.erase(serial);
229 devices_.clear();
230 } 228 }
231 229
232 bool AndroidDeviceManager::IsConnected(const std::string& serial) { 230 bool AndroidDeviceManager::IsConnected(const std::string& serial) {
233 DCHECK(CalledOnValidThread()); 231 DCHECK(CalledOnValidThread());
234 Device* device = FindDevice(serial); 232 Device* device = FindDevice(serial);
235 return device && device->is_connected(); 233 return device && device->is_connected();
236 } 234 }
237 235
238 void AndroidDeviceManager::QueryDeviceInfo(const std::string& serial, 236 void AndroidDeviceManager::QueryDeviceInfo(const std::string& serial,
239 const DeviceInfoCallback& callback) { 237 const DeviceInfoCallback& callback) {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 device->OpenSocket( 279 device->OpenSocket(
282 socket_name, 280 socket_name,
283 base::Bind(&HttpRequest::SocketRequest, 281 base::Bind(&HttpRequest::SocketRequest,
284 base::StringPrintf(kWebSocketUpgradeRequest, url.c_str()), 282 base::StringPrintf(kWebSocketUpgradeRequest, url.c_str()),
285 callback)); 283 callback));
286 } else { 284 } else {
287 callback.Run(net::ERR_CONNECTION_FAILED, NULL); 285 callback.Run(net::ERR_CONNECTION_FAILED, NULL);
288 } 286 }
289 } 287 }
290 288
291 AndroidDeviceManager::AndroidDeviceManager() 289 AndroidDeviceManager::AndroidDeviceManager() {
292 : stopped_(false) {
293 } 290 }
294 291
295 AndroidDeviceManager::~AndroidDeviceManager() { 292 AndroidDeviceManager::~AndroidDeviceManager() {
296 } 293 }
297 294
298 void AndroidDeviceManager::QueryNextProvider( 295 void AndroidDeviceManager::QueryNextProvider(
299 const QueryDevicesCallback& callback, 296 const QueryDevicesCallback& callback,
300 const DeviceProviders& providers, 297 const DeviceProviders& providers,
301 const Devices& total_devices, 298 const Devices& total_devices,
302 const Devices& new_devices) { 299 const Devices& new_devices) {
303 DCHECK(CalledOnValidThread()); 300 DCHECK(CalledOnValidThread());
304 301
305 if (stopped_)
306 return;
307
308 Devices more_devices(total_devices); 302 Devices more_devices(total_devices);
309 more_devices.insert( 303 more_devices.insert(
310 more_devices.end(), new_devices.begin(), new_devices.end()); 304 more_devices.end(), new_devices.begin(), new_devices.end());
311 305
312 if (providers.empty()) { 306 if (providers.empty()) {
313 std::vector<std::string> serials; 307 std::vector<std::string> serials;
314 devices_.clear(); 308 devices_.clear();
315 for (Devices::const_iterator it = more_devices.begin(); 309 for (Devices::const_iterator it = more_devices.begin();
316 it != more_devices.end(); ++it) { 310 it != more_devices.end(); ++it) {
317 devices_[(*it)->serial()] = *it; 311 devices_[(*it)->serial()] = *it;
(...skipping 12 matching lines...) Expand all
330 } 324 }
331 325
332 AndroidDeviceManager::Device* 326 AndroidDeviceManager::Device*
333 AndroidDeviceManager::FindDevice(const std::string& serial) { 327 AndroidDeviceManager::FindDevice(const std::string& serial) {
334 DCHECK(CalledOnValidThread()); 328 DCHECK(CalledOnValidThread());
335 DeviceMap::const_iterator it = devices_.find(serial); 329 DeviceMap::const_iterator it = devices_.find(serial);
336 if (it == devices_.end()) 330 if (it == devices_.end())
337 return NULL; 331 return NULL;
338 return (*it).second.get(); 332 return (*it).second.get();
339 } 333 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698