| OLD | NEW |
| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 310 return Status(kOk); | 310 return Status(kOk); |
| 311 } | 311 } |
| 312 | 312 |
| 313 Status LaunchDesktopChrome( | 313 Status LaunchDesktopChrome( |
| 314 URLRequestContextGetter* context_getter, | 314 URLRequestContextGetter* context_getter, |
| 315 uint16_t port, | 315 uint16_t port, |
| 316 std::unique_ptr<PortReservation> port_reservation, | 316 std::unique_ptr<PortReservation> port_reservation, |
| 317 const SyncWebSocketFactory& socket_factory, | 317 const SyncWebSocketFactory& socket_factory, |
| 318 const Capabilities& capabilities, | 318 const Capabilities& capabilities, |
| 319 ScopedVector<DevToolsEventListener>* devtools_event_listeners, | 319 ScopedVector<DevToolsEventListener>* devtools_event_listeners, |
| 320 std::unique_ptr<Chrome>* chrome) { | 320 std::unique_ptr<Chrome>* chrome, |
| 321 bool w3c_compliant) { |
| 321 base::CommandLine command(base::CommandLine::NO_PROGRAM); | 322 base::CommandLine command(base::CommandLine::NO_PROGRAM); |
| 322 base::ScopedTempDir user_data_dir; | 323 base::ScopedTempDir user_data_dir; |
| 323 base::ScopedTempDir extension_dir; | 324 base::ScopedTempDir extension_dir; |
| 324 std::vector<std::string> extension_bg_pages; | 325 std::vector<std::string> extension_bg_pages; |
| 325 Status status = PrepareCommandLine(port, | 326 Status status = PrepareCommandLine(port, |
| 326 capabilities, | 327 capabilities, |
| 327 &command, | 328 &command, |
| 328 &user_data_dir, | 329 &user_data_dir, |
| 329 &extension_dir, | 330 &extension_dir, |
| 330 &extension_bg_pages); | 331 &extension_bg_pages); |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 capabilities.page_load_strategy, | 449 capabilities.page_load_strategy, |
| 449 std::move(process), | 450 std::move(process), |
| 450 command, | 451 command, |
| 451 &user_data_dir, | 452 &user_data_dir, |
| 452 &extension_dir, | 453 &extension_dir, |
| 453 capabilities.network_emulation_enabled)); | 454 capabilities.network_emulation_enabled)); |
| 454 for (size_t i = 0; i < extension_bg_pages.size(); ++i) { | 455 for (size_t i = 0; i < extension_bg_pages.size(); ++i) { |
| 455 VLOG(0) << "Waiting for extension bg page load: " << extension_bg_pages[i]; | 456 VLOG(0) << "Waiting for extension bg page load: " << extension_bg_pages[i]; |
| 456 std::unique_ptr<WebView> web_view; | 457 std::unique_ptr<WebView> web_view; |
| 457 Status status = chrome_desktop->WaitForPageToLoad( | 458 Status status = chrome_desktop->WaitForPageToLoad( |
| 458 extension_bg_pages[i], base::TimeDelta::FromSeconds(10), &web_view); | 459 extension_bg_pages[i], base::TimeDelta::FromSeconds(10), |
| 460 &web_view, w3c_compliant); |
| 459 if (status.IsError()) { | 461 if (status.IsError()) { |
| 460 return Status(kUnknownError, | 462 return Status(kUnknownError, |
| 461 "failed to wait for extension background page to load: " + | 463 "failed to wait for extension background page to load: " + |
| 462 extension_bg_pages[i], | 464 extension_bg_pages[i], |
| 463 status); | 465 status); |
| 464 } | 466 } |
| 465 } | 467 } |
| 466 *chrome = std::move(chrome_desktop); | 468 *chrome = std::move(chrome_desktop); |
| 467 return Status(kOk); | 469 return Status(kOk); |
| 468 } | 470 } |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 537 } // namespace | 539 } // namespace |
| 538 | 540 |
| 539 Status LaunchChrome( | 541 Status LaunchChrome( |
| 540 URLRequestContextGetter* context_getter, | 542 URLRequestContextGetter* context_getter, |
| 541 const SyncWebSocketFactory& socket_factory, | 543 const SyncWebSocketFactory& socket_factory, |
| 542 DeviceManager* device_manager, | 544 DeviceManager* device_manager, |
| 543 PortServer* port_server, | 545 PortServer* port_server, |
| 544 PortManager* port_manager, | 546 PortManager* port_manager, |
| 545 const Capabilities& capabilities, | 547 const Capabilities& capabilities, |
| 546 ScopedVector<DevToolsEventListener>* devtools_event_listeners, | 548 ScopedVector<DevToolsEventListener>* devtools_event_listeners, |
| 547 std::unique_ptr<Chrome>* chrome) { | 549 std::unique_ptr<Chrome>* chrome, |
| 550 bool w3c_compliant) { |
| 548 if (capabilities.IsRemoteBrowser()) { | 551 if (capabilities.IsRemoteBrowser()) { |
| 549 return LaunchRemoteChromeSession( | 552 return LaunchRemoteChromeSession( |
| 550 context_getter, socket_factory, | 553 context_getter, socket_factory, |
| 551 capabilities, devtools_event_listeners, chrome); | 554 capabilities, devtools_event_listeners, chrome); |
| 552 } | 555 } |
| 553 | 556 |
| 554 uint16_t port = 0; | 557 uint16_t port = 0; |
| 555 std::unique_ptr<PortReservation> port_reservation; | 558 std::unique_ptr<PortReservation> port_reservation; |
| 556 Status port_status(kOk); | 559 Status port_status(kOk); |
| 557 | 560 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 569 } else { | 572 } else { |
| 570 if (port_server) | 573 if (port_server) |
| 571 port_status = port_server->ReservePort(&port, &port_reservation); | 574 port_status = port_server->ReservePort(&port, &port_reservation); |
| 572 else | 575 else |
| 573 port_status = port_manager->ReservePort(&port, &port_reservation); | 576 port_status = port_manager->ReservePort(&port, &port_reservation); |
| 574 if (port_status.IsError()) | 577 if (port_status.IsError()) |
| 575 return Status(kUnknownError, "cannot reserve port for Chrome", | 578 return Status(kUnknownError, "cannot reserve port for Chrome", |
| 576 port_status); | 579 port_status); |
| 577 return LaunchDesktopChrome(context_getter, port, | 580 return LaunchDesktopChrome(context_getter, port, |
| 578 std::move(port_reservation), socket_factory, | 581 std::move(port_reservation), socket_factory, |
| 579 capabilities, devtools_event_listeners, chrome); | 582 capabilities, devtools_event_listeners, chrome, |
| 583 w3c_compliant); |
| 580 } | 584 } |
| 581 } | 585 } |
| 582 | 586 |
| 583 namespace internal { | 587 namespace internal { |
| 584 | 588 |
| 585 void ConvertHexadecimalToIDAlphabet(std::string* id) { | 589 void ConvertHexadecimalToIDAlphabet(std::string* id) { |
| 586 for (size_t i = 0; i < id->size(); ++i) { | 590 for (size_t i = 0; i < id->size(); ++i) { |
| 587 int val; | 591 int val; |
| 588 if (base::HexStringToInt(base::StringPiece(id->begin() + i, | 592 if (base::HexStringToInt(base::StringPiece(id->begin() + i, |
| 589 id->begin() + i + 1), | 593 id->begin() + i + 1), |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 875 // Write empty "First Run" file, otherwise Chrome will wipe the default | 879 // Write empty "First Run" file, otherwise Chrome will wipe the default |
| 876 // profile that was written. | 880 // profile that was written. |
| 877 if (base::WriteFile( | 881 if (base::WriteFile( |
| 878 user_data_dir.Append(chrome::kFirstRunSentinel), "", 0) != 0) { | 882 user_data_dir.Append(chrome::kFirstRunSentinel), "", 0) != 0) { |
| 879 return Status(kUnknownError, "failed to write first run file"); | 883 return Status(kUnknownError, "failed to write first run file"); |
| 880 } | 884 } |
| 881 return Status(kOk); | 885 return Status(kOk); |
| 882 } | 886 } |
| 883 | 887 |
| 884 } // namespace internal | 888 } // namespace internal |
| OLD | NEW |