Commit 0158eac1 authored by Tricia Crichton's avatar Tricia Crichton Committed by Commit Bot

[ChromeDriver] Refactor SwitchToWindow page refresh

Refactor to remove duplicate code that connects to a page for several
session types.

Bug: chromedriver:2126
Change-Id: I37713cce11082fd28761018c71c69f3b400b1071
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1776798
Commit-Queue: Tricia Crichton <triciac@chromium.org>
Reviewed-by: default avatarJohn Chen <johnchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#691853}
parent 14466364
...@@ -731,7 +731,11 @@ Status ExecuteSwitchToWindow(Session* session, ...@@ -731,7 +731,11 @@ Status ExecuteSwitchToWindow(Session* session,
if (!found) if (!found)
return Status(kNoSuchWindow); return Status(kNoSuchWindow);
if (session->overridden_geoposition) { if (session->overridden_geoposition ||
session->overridden_network_conditions ||
session->headless_download_directory ||
session->chrome->IsMobileEmulationEnabled()) {
// Connect to new window to apply session configuration
WebView* web_view; WebView* web_view;
Status status = session->chrome->GetWebViewById(web_view_id, &web_view); Status status = session->chrome->GetWebViewById(web_view_id, &web_view);
if (status.IsError()) if (status.IsError())
...@@ -739,46 +743,25 @@ Status ExecuteSwitchToWindow(Session* session, ...@@ -739,46 +743,25 @@ Status ExecuteSwitchToWindow(Session* session,
status = web_view->ConnectIfNecessary(); status = web_view->ConnectIfNecessary();
if (status.IsError()) if (status.IsError())
return status; return status;
// apply type specific configurations:
if (session->overridden_geoposition) {
status = web_view->OverrideGeolocation(*session->overridden_geoposition); status = web_view->OverrideGeolocation(*session->overridden_geoposition);
if (status.IsError()) if (status.IsError())
return status; return status;
} }
if (session->overridden_network_conditions) { if (session->overridden_network_conditions) {
WebView* web_view;
Status status = session->chrome->GetWebViewById(web_view_id, &web_view);
if (status.IsError())
return status;
status = web_view->ConnectIfNecessary();
if (status.IsError())
return status;
status = web_view->OverrideNetworkConditions( status = web_view->OverrideNetworkConditions(
*session->overridden_network_conditions); *session->overridden_network_conditions);
if (status.IsError()) if (status.IsError())
return status; return status;
} }
if (session->headless_download_directory) { if (session->headless_download_directory) {
WebView* web_view;
Status status = session->chrome->GetWebViewById(web_view_id, &web_view);
if (status.IsError())
return status;
status = web_view->ConnectIfNecessary();
if (status.IsError())
return status;
status = web_view->OverrideDownloadDirectoryIfNeeded( status = web_view->OverrideDownloadDirectoryIfNeeded(
*session->headless_download_directory); *session->headless_download_directory);
if (status.IsError()) if (status.IsError())
return status; return status;
} }
if (session->chrome->IsMobileEmulationEnabled()) {
WebView* web_view;
Status status = session->chrome->GetWebViewById(web_view_id, &web_view);
if (status.IsError())
return status;
status = web_view->ConnectIfNecessary();
if (status.IsError())
return status;
} }
status = session->chrome->ActivateWebView(web_view_id); status = session->chrome->ActivateWebView(web_view_id);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment