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

Side by Side Diff: chrome/test/chromedriver/chrome_launcher.cc

Issue 127143003: [chromedriver] Reuse forwarded adb ports. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed nits Created 6 years, 11 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/test/chromedriver/chrome_launcher.h" 5 #include "chrome/test/chromedriver/chrome_launcher.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/base64.h" 10 #include "base/base64.h"
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 DeviceManager* device_manager, 346 DeviceManager* device_manager,
347 scoped_ptr<Chrome>* chrome) { 347 scoped_ptr<Chrome>* chrome) {
348 Status status(kOk); 348 Status status(kOk);
349 scoped_ptr<Device> device; 349 scoped_ptr<Device> device;
350 if (capabilities.android_device_serial.empty()) { 350 if (capabilities.android_device_serial.empty()) {
351 status = device_manager->AcquireDevice(&device); 351 status = device_manager->AcquireDevice(&device);
352 } else { 352 } else {
353 status = device_manager->AcquireSpecificDevice( 353 status = device_manager->AcquireSpecificDevice(
354 capabilities.android_device_serial, &device); 354 capabilities.android_device_serial, &device);
355 } 355 }
356 if (!status.IsOk()) 356 if (status.IsError())
357 return status; 357 return status;
358 358
359 Switches switches(capabilities.switches); 359 Switches switches(capabilities.switches);
360 for (size_t i = 0; i < arraysize(kCommonSwitches); ++i) 360 for (size_t i = 0; i < arraysize(kCommonSwitches); ++i)
361 switches.SetSwitch(kCommonSwitches[i]); 361 switches.SetSwitch(kCommonSwitches[i]);
362 switches.SetSwitch("disable-fre"); 362 switches.SetSwitch("disable-fre");
363 switches.SetSwitch("enable-remote-debugging"); 363 switches.SetSwitch("enable-remote-debugging");
364 status = device->SetUp(capabilities.android_package, 364 status = device->SetUp(capabilities.android_package,
365 capabilities.android_activity, 365 capabilities.android_activity,
366 capabilities.android_process, 366 capabilities.android_process,
367 switches.ToString(), 367 switches.ToString(),
368 capabilities.android_use_running_app, 368 capabilities.android_use_running_app,
369 port); 369 port);
370 if (!status.IsOk()) { 370 if (status.IsError()) {
371 device->TearDown(); 371 device->TearDown();
372 return status; 372 return status;
373 } 373 }
374 374
375 scoped_ptr<DevToolsHttpClient> devtools_client; 375 scoped_ptr<DevToolsHttpClient> devtools_client;
376 status = WaitForDevToolsAndCheckVersion(NetAddress(port), 376 status = WaitForDevToolsAndCheckVersion(NetAddress(port),
377 context_getter, 377 context_getter,
378 socket_factory, 378 socket_factory,
379 &devtools_client); 379 &devtools_client);
380 if (status.IsError()) 380 if (status.IsError()) {
381 device->TearDown();
381 return status; 382 return status;
383 }
382 384
383 chrome->reset(new ChromeAndroidImpl(devtools_client.Pass(), 385 chrome->reset(new ChromeAndroidImpl(devtools_client.Pass(),
384 devtools_event_listeners, 386 devtools_event_listeners,
385 port_reservation.Pass(), 387 port_reservation.Pass(),
386 device.Pass())); 388 device.Pass()));
387 return Status(kOk); 389 return Status(kOk);
388 } 390 }
389 391
390 } // namespace 392 } // namespace
391 393
392 Status LaunchChrome( 394 Status LaunchChrome(
393 URLRequestContextGetter* context_getter, 395 URLRequestContextGetter* context_getter,
394 const SyncWebSocketFactory& socket_factory, 396 const SyncWebSocketFactory& socket_factory,
395 DeviceManager* device_manager, 397 DeviceManager* device_manager,
396 PortServer* port_server, 398 PortServer* port_server,
397 PortManager* port_manager, 399 PortManager* port_manager,
398 const Capabilities& capabilities, 400 const Capabilities& capabilities,
399 ScopedVector<DevToolsEventListener>& devtools_event_listeners, 401 ScopedVector<DevToolsEventListener>& devtools_event_listeners,
400 scoped_ptr<Chrome>* chrome) { 402 scoped_ptr<Chrome>* chrome) {
401 if (capabilities.IsExistingBrowser()) { 403 if (capabilities.IsExistingBrowser()) {
402 return LaunchExistingChromeSession( 404 return LaunchExistingChromeSession(
403 context_getter, socket_factory, 405 context_getter, socket_factory,
404 capabilities, devtools_event_listeners, chrome); 406 capabilities, devtools_event_listeners, chrome);
405 } 407 }
406 408
407 int port = 0; 409 int port = 0;
408 scoped_ptr<PortReservation> port_reservation; 410 scoped_ptr<PortReservation> port_reservation;
409 Status port_status(kOk); 411 Status port_status(kOk);
410 if (port_server)
411 port_status = port_server->ReservePort(&port, &port_reservation);
412 else
413 port_status = port_manager->ReservePort(&port, &port_reservation);
414 if (port_status.IsError())
415 return Status(kUnknownError, "cannot reserve port for Chrome", port_status);
416 412
417 if (capabilities.IsAndroid()) { 413 if (capabilities.IsAndroid()) {
414 port_status = port_manager->ReservePortFromPool(&port, &port_reservation);
415 if (port_status.IsError())
416 return Status(kUnknownError, "cannot reserve port for Chrome",
417 port_status);
418 return LaunchAndroidChrome(context_getter, 418 return LaunchAndroidChrome(context_getter,
419 port, 419 port,
420 port_reservation.Pass(), 420 port_reservation.Pass(),
421 socket_factory, 421 socket_factory,
422 capabilities, 422 capabilities,
423 devtools_event_listeners, 423 devtools_event_listeners,
424 device_manager, 424 device_manager,
425 chrome); 425 chrome);
426 } else { 426 } else {
427 if (port_server)
428 port_status = port_server->ReservePort(&port, &port_reservation);
429 else
430 port_status = port_manager->ReservePort(&port, &port_reservation);
431 if (port_status.IsError())
432 return Status(kUnknownError, "cannot reserve port for Chrome",
433 port_status);
427 return LaunchDesktopChrome(context_getter, 434 return LaunchDesktopChrome(context_getter,
428 port, 435 port,
429 port_reservation.Pass(), 436 port_reservation.Pass(),
430 socket_factory, 437 socket_factory,
431 capabilities, 438 capabilities,
432 devtools_event_listeners, 439 devtools_event_listeners,
433 chrome); 440 chrome);
434 } 441 }
435 } 442 }
436 443
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 // Write empty "First Run" file, otherwise Chrome will wipe the default 684 // Write empty "First Run" file, otherwise Chrome will wipe the default
678 // profile that was written. 685 // profile that was written.
679 if (file_util::WriteFile( 686 if (file_util::WriteFile(
680 user_data_dir.AppendASCII("First Run"), "", 0) != 0) { 687 user_data_dir.AppendASCII("First Run"), "", 0) != 0) {
681 return Status(kUnknownError, "failed to write first run file"); 688 return Status(kUnknownError, "failed to write first run file");
682 } 689 }
683 return Status(kOk); 690 return Status(kOk);
684 } 691 }
685 692
686 } // namespace internal 693 } // namespace internal
OLDNEW
« no previous file with comments | « no previous file | chrome/test/chromedriver/net/port_server.h » ('j') | chrome/test/chromedriver/net/port_server.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698