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

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: 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,
400 PortManager* port_manager_android,
398 const Capabilities& capabilities, 401 const Capabilities& capabilities,
399 ScopedVector<DevToolsEventListener>& devtools_event_listeners, 402 ScopedVector<DevToolsEventListener>& devtools_event_listeners,
400 scoped_ptr<Chrome>* chrome) { 403 scoped_ptr<Chrome>* chrome) {
401 if (capabilities.IsExistingBrowser()) { 404 if (capabilities.IsExistingBrowser()) {
402 return LaunchExistingChromeSession( 405 return LaunchExistingChromeSession(
403 context_getter, socket_factory, 406 context_getter, socket_factory,
404 capabilities, devtools_event_listeners, chrome); 407 capabilities, devtools_event_listeners, chrome);
405 } 408 }
406 409
407 int port = 0; 410 int port = 0;
408 scoped_ptr<PortReservation> port_reservation; 411 scoped_ptr<PortReservation> port_reservation;
409 Status port_status(kOk); 412 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 413
417 if (capabilities.IsAndroid()) { 414 if (capabilities.IsAndroid()) {
415 port_status = port_manager_android->ReservePort(&port, &port_reservation);
craigdh 2014/01/08 20:56:33 then just call the port_manager->ReservePortFromPo
frankf 2014/01/08 21:57:25 Done.
416 if (port_status.IsError())
417 return Status(kUnknownError, "cannot reserve port for Chrome",
418 port_status);
418 return LaunchAndroidChrome(context_getter, 419 return LaunchAndroidChrome(context_getter,
419 port, 420 port,
420 port_reservation.Pass(), 421 port_reservation.Pass(),
421 socket_factory, 422 socket_factory,
422 capabilities, 423 capabilities,
423 devtools_event_listeners, 424 devtools_event_listeners,
424 device_manager, 425 device_manager,
425 chrome); 426 chrome);
426 } else { 427 } else {
428 if (port_server)
429 port_status = port_server->ReservePort(&port, &port_reservation);
430 else
431 port_status = port_manager->ReservePort(&port, &port_reservation);
432 if (port_status.IsError())
433 return Status(kUnknownError, "cannot reserve port for Chrome",
434 port_status);
427 return LaunchDesktopChrome(context_getter, 435 return LaunchDesktopChrome(context_getter,
428 port, 436 port,
429 port_reservation.Pass(), 437 port_reservation.Pass(),
430 socket_factory, 438 socket_factory,
431 capabilities, 439 capabilities,
432 devtools_event_listeners, 440 devtools_event_listeners,
433 chrome); 441 chrome);
434 } 442 }
435 } 443 }
436 444
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 // Write empty "First Run" file, otherwise Chrome will wipe the default 685 // Write empty "First Run" file, otherwise Chrome will wipe the default
678 // profile that was written. 686 // profile that was written.
679 if (file_util::WriteFile( 687 if (file_util::WriteFile(
680 user_data_dir.AppendASCII("First Run"), "", 0) != 0) { 688 user_data_dir.AppendASCII("First Run"), "", 0) != 0) {
681 return Status(kUnknownError, "failed to write first run file"); 689 return Status(kUnknownError, "failed to write first run file");
682 } 690 }
683 return Status(kOk); 691 return Status(kOk);
684 } 692 }
685 693
686 } // namespace internal 694 } // namespace internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698