Commit 81b219a4 authored by Alexandr Ilin's avatar Alexandr Ilin Committed by Commit Bot

predictors: Pause navigations in LoadingPredictorBrowserTests

This CL fixes flaky
LoadingPredictorBrowserTest.PrepareForPageLoadWithPrediction test.

If a navigation finishes earlier than the PreconnectManager completes all
its preresolve jobs, remaining jobs will be cancelled and the test will fail by
timeout. This CL uses TestNavigationManager that pauses navigations to avoid
this race.

Bug: 902963
Change-Id: I6aea05b3518627f7bbef0af18bb89bb1b1463f81
Reviewed-on: https://chromium-review.googlesource.com/c/1325984Reviewed-by: default avatarBenoit L <lizeb@chromium.org>
Commit-Queue: Alexandr Ilin <alexilin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606419}
parent e04f3055
......@@ -545,11 +545,8 @@ IN_PROC_BROWSER_TEST_F(LoadingPredictorBrowserTest,
ResetNetworkState();
ResetPredictorState();
// Open in a new foreground tab to avoid being classified as a reload since
// reload requests are always revalidated.
ui_test_utils::NavigateToURLWithDisposition(
browser(), url, WindowOpenDisposition::NEW_FOREGROUND_TAB,
ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
auto observer = NavigateToURLAsync(url);
EXPECT_TRUE(observer->WaitForRequestStart());
preconnect_manager_observer()->WaitUntilHostLookedUp(url.host());
EXPECT_TRUE(preconnect_manager_observer()->HostFound(url.host()));
// We should preconnect only 2 sockets for the main frame host.
......@@ -629,11 +626,8 @@ IN_PROC_BROWSER_TEST_F(LoadingPredictorBrowserTest,
ui_test_utils::NavigateToURL(browser(), url);
ResetNetworkState();
// Open in a new foreground tab to avoid being classified as a reload since
// reload requests are always revalidated.
ui_test_utils::NavigateToURLWithDisposition(
browser(), url, WindowOpenDisposition::NEW_FOREGROUND_TAB,
ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
auto observer = NavigateToURLAsync(url);
EXPECT_TRUE(observer->WaitForRequestStart());
for (const auto& host : kHtmlSubresourcesHosts) {
GURL url(base::StringPrintf("http://%s", host.c_str()));
preconnect_manager_observer()->WaitUntilHostLookedUp(url.host());
......@@ -813,11 +807,8 @@ IN_PROC_BROWSER_TEST_F(LoadingPredictorBrowserTestWithProxy,
ResetNetworkState();
ResetPredictorState();
// Open in a new foreground tab to avoid being classified as a reload since
// reload requests are always revalidated.
ui_test_utils::NavigateToURLWithDisposition(
browser(), url, WindowOpenDisposition::NEW_FOREGROUND_TAB,
ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
auto observer = NavigateToURLAsync(url);
EXPECT_TRUE(observer->WaitForRequestStart());
preconnect_manager_observer()->WaitUntilProxyLookedUp(url);
EXPECT_TRUE(preconnect_manager_observer()->ProxyFound(url));
// We should preconnect only 2 sockets for the main frame host.
......@@ -839,11 +830,8 @@ IN_PROC_BROWSER_TEST_F(LoadingPredictorBrowserTestWithProxy,
ui_test_utils::NavigateToURL(browser(), url);
ResetNetworkState();
// Open in a new foreground tab to avoid being classified as a reload since
// reload requests are always revalidated.
ui_test_utils::NavigateToURLWithDisposition(
browser(), url, WindowOpenDisposition::NEW_FOREGROUND_TAB,
ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
auto observer = NavigateToURLAsync(url);
EXPECT_TRUE(observer->WaitForRequestStart());
for (const auto& host : kHtmlSubresourcesHosts) {
GURL url = embedded_test_server()->GetURL(host, "/");
preconnect_manager_observer()->WaitUntilProxyLookedUp(url);
......
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