OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <stddef.h> | 5 #include <stddef.h> |
6 #include <deque> | 6 #include <deque> |
7 #include <set> | 7 #include <set> |
8 #include <string> | 8 #include <string> |
9 #include <unordered_map> | 9 #include <unordered_map> |
10 #include <utility> | 10 #include <utility> |
(...skipping 1164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1175 1, expected_final_status); | 1175 1, expected_final_status); |
1176 std::vector<TestPrerender*> prerenders; | 1176 std::vector<TestPrerender*> prerenders; |
1177 PrerenderTestURLImpl(url, | 1177 PrerenderTestURLImpl(url, |
1178 expected_final_status_queue, | 1178 expected_final_status_queue, |
1179 expected_number_of_loads).release(&prerenders); | 1179 expected_number_of_loads).release(&prerenders); |
1180 CHECK_EQ(1u, prerenders.size()); | 1180 CHECK_EQ(1u, prerenders.size()); |
1181 return std::unique_ptr<TestPrerender>(prerenders[0]); | 1181 return std::unique_ptr<TestPrerender>(prerenders[0]); |
1182 } | 1182 } |
1183 | 1183 |
1184 void NavigateToDestURL() const { | 1184 void NavigateToDestURL() const { |
1185 NavigateToDestURLWithDisposition(CURRENT_TAB, true); | 1185 NavigateToDestURLWithDisposition(WindowOpenDisposition::CURRENT_TAB, true); |
1186 } | 1186 } |
1187 | 1187 |
1188 // Opens the url in a new tab, with no opener. | 1188 // Opens the url in a new tab, with no opener. |
1189 void NavigateToDestURLWithDisposition( | 1189 void NavigateToDestURLWithDisposition( |
1190 WindowOpenDisposition disposition, | 1190 WindowOpenDisposition disposition, |
1191 bool expect_swap_to_succeed) const { | 1191 bool expect_swap_to_succeed) const { |
1192 NavigateToURLWithParams( | 1192 NavigateToURLWithParams( |
1193 content::OpenURLParams(dest_url_, Referrer(), disposition, | 1193 content::OpenURLParams(dest_url_, Referrer(), disposition, |
1194 ui::PAGE_TRANSITION_TYPED, false), | 1194 ui::PAGE_TRANSITION_TYPED, false), |
1195 expect_swap_to_succeed); | 1195 expect_swap_to_succeed); |
1196 } | 1196 } |
1197 | 1197 |
1198 void NavigateToURL(const std::string& dest_html_file) const { | 1198 void NavigateToURL(const std::string& dest_html_file) const { |
1199 NavigateToURLWithDisposition(dest_html_file, CURRENT_TAB, true); | 1199 NavigateToURLWithDisposition(dest_html_file, |
| 1200 WindowOpenDisposition::CURRENT_TAB, true); |
1200 } | 1201 } |
1201 | 1202 |
1202 void NavigateToURLWithDisposition(const std::string& dest_html_file, | 1203 void NavigateToURLWithDisposition(const std::string& dest_html_file, |
1203 WindowOpenDisposition disposition, | 1204 WindowOpenDisposition disposition, |
1204 bool expect_swap_to_succeed) const { | 1205 bool expect_swap_to_succeed) const { |
1205 GURL dest_url = embedded_test_server()->GetURL(dest_html_file); | 1206 GURL dest_url = embedded_test_server()->GetURL(dest_html_file); |
1206 NavigateToURLWithDisposition(dest_url, disposition, expect_swap_to_succeed); | 1207 NavigateToURLWithDisposition(dest_url, disposition, expect_swap_to_succeed); |
1207 } | 1208 } |
1208 | 1209 |
1209 void NavigateToURLWithDisposition(const GURL& dest_url, | 1210 void NavigateToURLWithDisposition(const GURL& dest_url, |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1272 void NavigateToNextPageAfterPrerender() const { | 1273 void NavigateToNextPageAfterPrerender() const { |
1273 ui_test_utils::NavigateToURL( | 1274 ui_test_utils::NavigateToURL( |
1274 current_browser(), | 1275 current_browser(), |
1275 embedded_test_server()->GetURL("/prerender/prerender_page.html")); | 1276 embedded_test_server()->GetURL("/prerender/prerender_page.html")); |
1276 } | 1277 } |
1277 | 1278 |
1278 // Called after the prerendered page has been navigated to and then away from. | 1279 // Called after the prerendered page has been navigated to and then away from. |
1279 // Navigates back through the history to the prerendered page. | 1280 // Navigates back through the history to the prerendered page. |
1280 void GoBackToPrerender() { | 1281 void GoBackToPrerender() { |
1281 TestNavigationObserver back_nav_observer(GetActiveWebContents()); | 1282 TestNavigationObserver back_nav_observer(GetActiveWebContents()); |
1282 chrome::GoBack(current_browser(), CURRENT_TAB); | 1283 chrome::GoBack(current_browser(), WindowOpenDisposition::CURRENT_TAB); |
1283 back_nav_observer.Wait(); | 1284 back_nav_observer.Wait(); |
1284 bool original_prerender_page = false; | 1285 bool original_prerender_page = false; |
1285 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( | 1286 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( |
1286 GetActiveWebContents(), | 1287 GetActiveWebContents(), |
1287 "window.domAutomationController.send(IsOriginalPrerenderPage())", | 1288 "window.domAutomationController.send(IsOriginalPrerenderPage())", |
1288 &original_prerender_page)); | 1289 &original_prerender_page)); |
1289 EXPECT_TRUE(original_prerender_page); | 1290 EXPECT_TRUE(original_prerender_page); |
1290 } | 1291 } |
1291 | 1292 |
1292 // Goes back to the page that was active before the prerender was swapped | 1293 // Goes back to the page that was active before the prerender was swapped |
1293 // in. This must be called when the prerendered page is the current page | 1294 // in. This must be called when the prerendered page is the current page |
1294 // in the active tab. | 1295 // in the active tab. |
1295 void GoBackToPageBeforePrerender() { | 1296 void GoBackToPageBeforePrerender() { |
1296 WebContents* tab = GetActiveWebContents(); | 1297 WebContents* tab = GetActiveWebContents(); |
1297 ASSERT_TRUE(tab); | 1298 ASSERT_TRUE(tab); |
1298 EXPECT_FALSE(tab->IsLoading()); | 1299 EXPECT_FALSE(tab->IsLoading()); |
1299 TestNavigationObserver back_nav_observer(tab); | 1300 TestNavigationObserver back_nav_observer(tab); |
1300 chrome::GoBack(current_browser(), CURRENT_TAB); | 1301 chrome::GoBack(current_browser(), WindowOpenDisposition::CURRENT_TAB); |
1301 back_nav_observer.Wait(); | 1302 back_nav_observer.Wait(); |
1302 bool js_result; | 1303 bool js_result; |
1303 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( | 1304 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( |
1304 tab, | 1305 tab, |
1305 "window.domAutomationController.send(DidBackToOriginalPagePass())", | 1306 "window.domAutomationController.send(DidBackToOriginalPagePass())", |
1306 &js_result)); | 1307 &js_result)); |
1307 EXPECT_TRUE(js_result); | 1308 EXPECT_TRUE(js_result); |
1308 } | 1309 } |
1309 | 1310 |
1310 bool UrlIsInPrerenderManager(const std::string& html_file) const { | 1311 bool UrlIsInPrerenderManager(const std::string& html_file) const { |
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1620 ASSERT_TRUE(GetPrerenderManager()); | 1621 ASSERT_TRUE(GetPrerenderManager()); |
1621 // Make sure in navigating we have a URL to use in the PrerenderManager. | 1622 // Make sure in navigating we have a URL to use in the PrerenderManager. |
1622 ASSERT_TRUE(GetPrerenderContents()); | 1623 ASSERT_TRUE(GetPrerenderContents()); |
1623 | 1624 |
1624 WebContents* web_contents = GetPrerenderContents()->prerender_contents(); | 1625 WebContents* web_contents = GetPrerenderContents()->prerender_contents(); |
1625 | 1626 |
1626 // Navigate and wait for either the load to finish normally or for a swap to | 1627 // Navigate and wait for either the load to finish normally or for a swap to |
1627 // occur. | 1628 // occur. |
1628 // TODO(davidben): The only handles CURRENT_TAB navigations, which is the | 1629 // TODO(davidben): The only handles CURRENT_TAB navigations, which is the |
1629 // only case tested or prerendered right now. | 1630 // only case tested or prerendered right now. |
1630 CHECK_EQ(CURRENT_TAB, params.disposition); | 1631 CHECK_EQ(WindowOpenDisposition::CURRENT_TAB, params.disposition); |
1631 NavigationOrSwapObserver swap_observer(current_browser()->tab_strip_model(), | 1632 NavigationOrSwapObserver swap_observer(current_browser()->tab_strip_model(), |
1632 GetActiveWebContents()); | 1633 GetActiveWebContents()); |
1633 WebContents* target_web_contents = current_browser()->OpenURL(params); | 1634 WebContents* target_web_contents = current_browser()->OpenURL(params); |
1634 swap_observer.Wait(); | 1635 swap_observer.Wait(); |
1635 | 1636 |
1636 if (web_contents && expect_swap_to_succeed) { | 1637 if (web_contents && expect_swap_to_succeed) { |
1637 EXPECT_EQ(web_contents, target_web_contents); | 1638 EXPECT_EQ(web_contents, target_web_contents); |
1638 if (call_javascript_) | 1639 if (call_javascript_) |
1639 EXPECT_TRUE(DidDisplayPass(web_contents)); | 1640 EXPECT_TRUE(DidDisplayPass(web_contents)); |
1640 } | 1641 } |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1748 | 1749 |
1749 const GURL prerender_page_url = | 1750 const GURL prerender_page_url = |
1750 embedded_test_server()->GetURL("/prerender/prerender_page.html"); | 1751 embedded_test_server()->GetURL("/prerender/prerender_page.html"); |
1751 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); | 1752 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); |
1752 EXPECT_TRUE(GetPrerenderContentsFor(prerender_page_url)); | 1753 EXPECT_TRUE(GetPrerenderContentsFor(prerender_page_url)); |
1753 | 1754 |
1754 // Now navigate to our target page. | 1755 // Now navigate to our target page. |
1755 NavigationOrSwapObserver swap_observer(current_browser()->tab_strip_model(), | 1756 NavigationOrSwapObserver swap_observer(current_browser()->tab_strip_model(), |
1756 GetActiveWebContents()); | 1757 GetActiveWebContents()); |
1757 ui_test_utils::NavigateToURLWithDisposition( | 1758 ui_test_utils::NavigateToURLWithDisposition( |
1758 current_browser(), prerender_page_url, CURRENT_TAB, | 1759 current_browser(), prerender_page_url, WindowOpenDisposition::CURRENT_TAB, |
1759 ui_test_utils::BROWSER_TEST_NONE); | 1760 ui_test_utils::BROWSER_TEST_NONE); |
1760 swap_observer.Wait(); | 1761 swap_observer.Wait(); |
1761 | 1762 |
1762 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); | 1763 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); |
1763 } | 1764 } |
1764 | 1765 |
1765 // Checks that pending prerenders which are canceled before they are launched | 1766 // Checks that pending prerenders which are canceled before they are launched |
1766 // never get started. | 1767 // never get started. |
1767 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPageRemovesPending) { | 1768 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPageRemovesPending) { |
1768 PrerenderTestURL("/prerender/prerender_page_removes_pending.html", | 1769 PrerenderTestURL("/prerender/prerender_page_removes_pending.html", |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1914 base::Bind(&CreateHangingFirstRequestInterceptorOnIO, kNoCommitUrl, file, | 1915 base::Bind(&CreateHangingFirstRequestInterceptorOnIO, kNoCommitUrl, file, |
1915 prerender_start_loop.QuitClosure())); | 1916 prerender_start_loop.QuitClosure())); |
1916 DisableJavascriptCalls(); | 1917 DisableJavascriptCalls(); |
1917 PrerenderTestURL(kNoCommitUrl, | 1918 PrerenderTestURL(kNoCommitUrl, |
1918 FINAL_STATUS_NAVIGATION_UNCOMMITTED, | 1919 FINAL_STATUS_NAVIGATION_UNCOMMITTED, |
1919 0); | 1920 0); |
1920 // Wait for the hanging request to be scheduled. | 1921 // Wait for the hanging request to be scheduled. |
1921 prerender_start_loop.Run(); | 1922 prerender_start_loop.Run(); |
1922 | 1923 |
1923 // Navigate to the URL, but assume the contents won't be swapped in. | 1924 // Navigate to the URL, but assume the contents won't be swapped in. |
1924 NavigateToDestURLWithDisposition(CURRENT_TAB, false); | 1925 NavigateToDestURLWithDisposition(WindowOpenDisposition::CURRENT_TAB, false); |
1925 } | 1926 } |
1926 | 1927 |
1927 // Checks that client redirects don't add alias URLs until after they commit. | 1928 // Checks that client redirects don't add alias URLs until after they commit. |
1928 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderNoCommitNoSwap2) { | 1929 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderNoCommitNoSwap2) { |
1929 // Navigate to a page that then navigates to a URL that never commits. | 1930 // Navigate to a page that then navigates to a URL that never commits. |
1930 const GURL kNoCommitUrl("http://never-respond.example.com"); | 1931 const GURL kNoCommitUrl("http://never-respond.example.com"); |
1931 base::FilePath file(GetTestPath("prerender_page.html")); | 1932 base::FilePath file(GetTestPath("prerender_page.html")); |
1932 | 1933 |
1933 base::RunLoop prerender_start_loop; | 1934 base::RunLoop prerender_start_loop; |
1934 BrowserThread::PostTask( | 1935 BrowserThread::PostTask( |
1935 BrowserThread::IO, FROM_HERE, | 1936 BrowserThread::IO, FROM_HERE, |
1936 base::Bind(&CreateHangingFirstRequestInterceptorOnIO, kNoCommitUrl, file, | 1937 base::Bind(&CreateHangingFirstRequestInterceptorOnIO, kNoCommitUrl, file, |
1937 prerender_start_loop.QuitClosure())); | 1938 prerender_start_loop.QuitClosure())); |
1938 DisableJavascriptCalls(); | 1939 DisableJavascriptCalls(); |
1939 PrerenderTestURL(CreateClientRedirect(kNoCommitUrl.spec()), | 1940 PrerenderTestURL(CreateClientRedirect(kNoCommitUrl.spec()), |
1940 FINAL_STATUS_APP_TERMINATING, 1); | 1941 FINAL_STATUS_APP_TERMINATING, 1); |
1941 // Wait for the hanging request to be scheduled. | 1942 // Wait for the hanging request to be scheduled. |
1942 prerender_start_loop.Run(); | 1943 prerender_start_loop.Run(); |
1943 | 1944 |
1944 // Navigating to the second URL should not swap. | 1945 // Navigating to the second URL should not swap. |
1945 NavigateToURLWithDisposition(kNoCommitUrl, CURRENT_TAB, false); | 1946 NavigateToURLWithDisposition(kNoCommitUrl, WindowOpenDisposition::CURRENT_TAB, |
| 1947 false); |
1946 } | 1948 } |
1947 | 1949 |
1948 // Checks that the prerendering of a page is canceled correctly when a | 1950 // Checks that the prerendering of a page is canceled correctly when a |
1949 // Javascript alert is called. | 1951 // Javascript alert is called. |
1950 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderAlertBeforeOnload) { | 1952 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderAlertBeforeOnload) { |
1951 PrerenderTestURL("/prerender/prerender_alert_before_onload.html", | 1953 PrerenderTestURL("/prerender/prerender_alert_before_onload.html", |
1952 FINAL_STATUS_JAVASCRIPT_ALERT, 0); | 1954 FINAL_STATUS_JAVASCRIPT_ALERT, 0); |
1953 } | 1955 } |
1954 | 1956 |
1955 // Checks that the prerendering of a page is canceled correctly when a | 1957 // Checks that the prerendering of a page is canceled correctly when a |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2128 0); | 2130 0); |
2129 | 2131 |
2130 GURL navigate_url = embedded_test_server()->GetURL( | 2132 GURL navigate_url = embedded_test_server()->GetURL( |
2131 "/prerender/prerender_location_replace.html?" + | 2133 "/prerender/prerender_location_replace.html?" + |
2132 net::EscapeQueryParamValue(dest_url.spec(), false) + "#navigate"); | 2134 net::EscapeQueryParamValue(dest_url.spec(), false) + "#navigate"); |
2133 navigate_url = navigate_url.ReplaceComponents(replacements); | 2135 navigate_url = navigate_url.ReplaceComponents(replacements); |
2134 | 2136 |
2135 NavigationOrSwapObserver swap_observer( | 2137 NavigationOrSwapObserver swap_observer( |
2136 current_browser()->tab_strip_model(), | 2138 current_browser()->tab_strip_model(), |
2137 GetActiveWebContents(), 2); | 2139 GetActiveWebContents(), 2); |
2138 current_browser()->OpenURL(OpenURLParams( | 2140 current_browser()->OpenURL(OpenURLParams(navigate_url, Referrer(), |
2139 navigate_url, Referrer(), CURRENT_TAB, | 2141 WindowOpenDisposition::CURRENT_TAB, |
2140 ui::PAGE_TRANSITION_TYPED, false)); | 2142 ui::PAGE_TRANSITION_TYPED, false)); |
2141 swap_observer.Wait(); | 2143 swap_observer.Wait(); |
2142 | 2144 |
2143 EXPECT_TRUE(DidDisplayPass(GetActiveWebContents())); | 2145 EXPECT_TRUE(DidDisplayPass(GetActiveWebContents())); |
2144 | 2146 |
2145 histogram_tester().ExpectTotalCount("Prerender.gws_PrerenderNotSwappedInPLT", | 2147 histogram_tester().ExpectTotalCount("Prerender.gws_PrerenderNotSwappedInPLT", |
2146 0); | 2148 0); |
2147 histogram_tester().ExpectTotalCount("Prerender.gws_PerceivedPLT", 1); | 2149 histogram_tester().ExpectTotalCount("Prerender.gws_PerceivedPLT", 1); |
2148 histogram_tester().ExpectTotalCount("Prerender.gws_PerceivedPLTMatched", 1); | 2150 histogram_tester().ExpectTotalCount("Prerender.gws_PerceivedPLTMatched", 1); |
2149 histogram_tester().ExpectTotalCount( | 2151 histogram_tester().ExpectTotalCount( |
2150 "Prerender.gws_PerceivedPLTMatchedComplete", 1); | 2152 "Prerender.gws_PerceivedPLTMatchedComplete", 1); |
(...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2641 ASSERT_TRUE(IsEmptyPrerenderLinkManager()); | 2643 ASSERT_TRUE(IsEmptyPrerenderLinkManager()); |
2642 } | 2644 } |
2643 | 2645 |
2644 // Checks that we do not use a prerendered page when navigating from | 2646 // Checks that we do not use a prerendered page when navigating from |
2645 // the main page to a fragment. | 2647 // the main page to a fragment. |
2646 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 2648 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
2647 PrerenderPageNavigateFragment) { | 2649 PrerenderPageNavigateFragment) { |
2648 PrerenderTestURL("/prerender/no_prerender_page.html", | 2650 PrerenderTestURL("/prerender/no_prerender_page.html", |
2649 FINAL_STATUS_APP_TERMINATING, 1); | 2651 FINAL_STATUS_APP_TERMINATING, 1); |
2650 NavigateToURLWithDisposition("/prerender/no_prerender_page.html#fragment", | 2652 NavigateToURLWithDisposition("/prerender/no_prerender_page.html#fragment", |
2651 CURRENT_TAB, false); | 2653 WindowOpenDisposition::CURRENT_TAB, false); |
2652 } | 2654 } |
2653 | 2655 |
2654 // Checks that we do not use a prerendered page when we prerender a fragment | 2656 // Checks that we do not use a prerendered page when we prerender a fragment |
2655 // but navigate to the main page. | 2657 // but navigate to the main page. |
2656 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 2658 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
2657 PrerenderFragmentNavigatePage) { | 2659 PrerenderFragmentNavigatePage) { |
2658 PrerenderTestURL("/prerender/no_prerender_page.html#fragment", | 2660 PrerenderTestURL("/prerender/no_prerender_page.html#fragment", |
2659 FINAL_STATUS_APP_TERMINATING, 1); | 2661 FINAL_STATUS_APP_TERMINATING, 1); |
2660 NavigateToURLWithDisposition("/prerender/no_prerender_page.html", CURRENT_TAB, | 2662 NavigateToURLWithDisposition("/prerender/no_prerender_page.html", |
2661 false); | 2663 WindowOpenDisposition::CURRENT_TAB, false); |
2662 } | 2664 } |
2663 | 2665 |
2664 // Checks that we do not use a prerendered page when we prerender a fragment | 2666 // Checks that we do not use a prerendered page when we prerender a fragment |
2665 // but navigate to a different fragment on the same page. | 2667 // but navigate to a different fragment on the same page. |
2666 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 2668 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
2667 PrerenderFragmentNavigateFragment) { | 2669 PrerenderFragmentNavigateFragment) { |
2668 PrerenderTestURL("/prerender/no_prerender_page.html#other_fragment", | 2670 PrerenderTestURL("/prerender/no_prerender_page.html#other_fragment", |
2669 FINAL_STATUS_APP_TERMINATING, 1); | 2671 FINAL_STATUS_APP_TERMINATING, 1); |
2670 NavigateToURLWithDisposition("/prerender/no_prerender_page.html#fragment", | 2672 NavigateToURLWithDisposition("/prerender/no_prerender_page.html#fragment", |
2671 CURRENT_TAB, false); | 2673 WindowOpenDisposition::CURRENT_TAB, false); |
2672 } | 2674 } |
2673 | 2675 |
2674 // Checks that we do not use a prerendered page when the page uses a client | 2676 // Checks that we do not use a prerendered page when the page uses a client |
2675 // redirect to refresh from a fragment on the same page. | 2677 // redirect to refresh from a fragment on the same page. |
2676 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 2678 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
2677 PrerenderClientRedirectFromFragment) { | 2679 PrerenderClientRedirectFromFragment) { |
2678 PrerenderTestURL( | 2680 PrerenderTestURL( |
2679 CreateClientRedirect("/prerender/no_prerender_page.html#fragment"), | 2681 CreateClientRedirect("/prerender/no_prerender_page.html#fragment"), |
2680 FINAL_STATUS_APP_TERMINATING, 2); | 2682 FINAL_STATUS_APP_TERMINATING, 2); |
2681 NavigateToURLWithDisposition("/prerender/no_prerender_page.html", CURRENT_TAB, | 2683 NavigateToURLWithDisposition("/prerender/no_prerender_page.html", |
2682 false); | 2684 WindowOpenDisposition::CURRENT_TAB, false); |
2683 } | 2685 } |
2684 | 2686 |
2685 // Checks that we do not use a prerendered page when the page uses a client | 2687 // Checks that we do not use a prerendered page when the page uses a client |
2686 // redirect to refresh to a fragment on the same page. | 2688 // redirect to refresh to a fragment on the same page. |
2687 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 2689 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
2688 PrerenderClientRedirectToFragment) { | 2690 PrerenderClientRedirectToFragment) { |
2689 PrerenderTestURL(CreateClientRedirect("/prerender/no_prerender_page.html"), | 2691 PrerenderTestURL(CreateClientRedirect("/prerender/no_prerender_page.html"), |
2690 FINAL_STATUS_APP_TERMINATING, 2); | 2692 FINAL_STATUS_APP_TERMINATING, 2); |
2691 NavigateToURLWithDisposition("/prerender/no_prerender_page.html#fragment", | 2693 NavigateToURLWithDisposition("/prerender/no_prerender_page.html#fragment", |
2692 CURRENT_TAB, false); | 2694 WindowOpenDisposition::CURRENT_TAB, false); |
2693 } | 2695 } |
2694 | 2696 |
2695 // Checks that we correctly use a prerendered page when the page uses JS to set | 2697 // Checks that we correctly use a prerendered page when the page uses JS to set |
2696 // the window.location.hash to a fragment on the same page. | 2698 // the window.location.hash to a fragment on the same page. |
2697 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 2699 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
2698 PrerenderPageChangeFragmentLocationHash) { | 2700 PrerenderPageChangeFragmentLocationHash) { |
2699 PrerenderTestURL("/prerender/prerender_fragment_location_hash.html", | 2701 PrerenderTestURL("/prerender/prerender_fragment_location_hash.html", |
2700 FINAL_STATUS_USED, 1); | 2702 FINAL_STATUS_USED, 1); |
2701 NavigateToURL("/prerender/prerender_fragment_location_hash.html"); | 2703 NavigateToURL("/prerender/prerender_fragment_location_hash.html"); |
2702 } | 2704 } |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2826 | 2828 |
2827 // Checks that prerenders do not get swapped into target pages that have opened | 2829 // Checks that prerenders do not get swapped into target pages that have opened |
2828 // popups; the BrowsingInstance is not empty. | 2830 // popups; the BrowsingInstance is not empty. |
2829 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderTargetHasPopup) { | 2831 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderTargetHasPopup) { |
2830 PrerenderTestURL("/prerender/prerender_page.html", | 2832 PrerenderTestURL("/prerender/prerender_page.html", |
2831 FINAL_STATUS_NON_EMPTY_BROWSING_INSTANCE, 1); | 2833 FINAL_STATUS_NON_EMPTY_BROWSING_INSTANCE, 1); |
2832 OpenURLViaWindowOpen(GURL(url::kAboutBlankURL)); | 2834 OpenURLViaWindowOpen(GURL(url::kAboutBlankURL)); |
2833 | 2835 |
2834 // Switch back to the current tab and attempt to swap it in. | 2836 // Switch back to the current tab and attempt to swap it in. |
2835 current_browser()->tab_strip_model()->ActivateTabAt(0, true); | 2837 current_browser()->tab_strip_model()->ActivateTabAt(0, true); |
2836 NavigateToDestURLWithDisposition(CURRENT_TAB, false); | 2838 NavigateToDestURLWithDisposition(WindowOpenDisposition::CURRENT_TAB, false); |
2837 } | 2839 } |
2838 | 2840 |
2839 class TestClientCertStore : public net::ClientCertStore { | 2841 class TestClientCertStore : public net::ClientCertStore { |
2840 public: | 2842 public: |
2841 explicit TestClientCertStore(const net::CertificateList& certs) | 2843 explicit TestClientCertStore(const net::CertificateList& certs) |
2842 : certs_(certs) {} | 2844 : certs_(certs) {} |
2843 ~TestClientCertStore() override {} | 2845 ~TestClientCertStore() override {} |
2844 | 2846 |
2845 // net::ClientCertStore: | 2847 // net::ClientCertStore: |
2846 void GetClientCerts(const net::SSLCertRequestInfo& cert_request_info, | 2848 void GetClientCerts(const net::SSLCertRequestInfo& cert_request_info, |
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3224 NavigateToPrerenderedPageWhenDevToolsAttached) { | 3226 NavigateToPrerenderedPageWhenDevToolsAttached) { |
3225 DisableJavascriptCalls(); | 3227 DisableJavascriptCalls(); |
3226 WebContents* web_contents = | 3228 WebContents* web_contents = |
3227 current_browser()->tab_strip_model()->GetActiveWebContents(); | 3229 current_browser()->tab_strip_model()->GetActiveWebContents(); |
3228 scoped_refptr<DevToolsAgentHost> agent( | 3230 scoped_refptr<DevToolsAgentHost> agent( |
3229 DevToolsAgentHost::GetOrCreateFor(web_contents)); | 3231 DevToolsAgentHost::GetOrCreateFor(web_contents)); |
3230 FakeDevToolsClient client; | 3232 FakeDevToolsClient client; |
3231 agent->AttachClient(&client); | 3233 agent->AttachClient(&client); |
3232 const char* url = "/prerender/prerender_page.html"; | 3234 const char* url = "/prerender/prerender_page.html"; |
3233 PrerenderTestURL(url, FINAL_STATUS_DEVTOOLS_ATTACHED, 1); | 3235 PrerenderTestURL(url, FINAL_STATUS_DEVTOOLS_ATTACHED, 1); |
3234 NavigateToURLWithDisposition(url, CURRENT_TAB, false); | 3236 NavigateToURLWithDisposition(url, WindowOpenDisposition::CURRENT_TAB, false); |
3235 agent->DetachClient(&client); | 3237 agent->DetachClient(&client); |
3236 } | 3238 } |
3237 | 3239 |
3238 // Validate that the sessionStorage namespace remains the same when swapping | 3240 // Validate that the sessionStorage namespace remains the same when swapping |
3239 // in a prerendered page. | 3241 // in a prerendered page. |
3240 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSessionStorage) { | 3242 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSessionStorage) { |
3241 set_loader_path("/prerender/prerender_loader_with_session_storage.html"); | 3243 set_loader_path("/prerender/prerender_loader_with_session_storage.html"); |
3242 PrerenderTestURL(GetCrossDomainTestUrl("prerender/prerender_page.html"), | 3244 PrerenderTestURL(GetCrossDomainTestUrl("prerender/prerender_page.html"), |
3243 FINAL_STATUS_USED, 1); | 3245 FINAL_STATUS_USED, 1); |
3244 NavigateToDestURL(); | 3246 NavigateToDestURL(); |
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3519 PrerenderTestURL("/prerender/prerender_web_audio_device.html", | 3521 PrerenderTestURL("/prerender/prerender_web_audio_device.html", |
3520 FINAL_STATUS_CREATING_AUDIO_STREAM, 0); | 3522 FINAL_STATUS_CREATING_AUDIO_STREAM, 0); |
3521 } | 3523 } |
3522 | 3524 |
3523 // Checks that prerenders do not swap in to WebContents being captured. | 3525 // Checks that prerenders do not swap in to WebContents being captured. |
3524 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderCapturedWebContents) { | 3526 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderCapturedWebContents) { |
3525 PrerenderTestURL("/prerender/prerender_page.html", | 3527 PrerenderTestURL("/prerender/prerender_page.html", |
3526 FINAL_STATUS_PAGE_BEING_CAPTURED, 1); | 3528 FINAL_STATUS_PAGE_BEING_CAPTURED, 1); |
3527 WebContents* web_contents = GetActiveWebContents(); | 3529 WebContents* web_contents = GetActiveWebContents(); |
3528 web_contents->IncrementCapturerCount(gfx::Size()); | 3530 web_contents->IncrementCapturerCount(gfx::Size()); |
3529 NavigateToDestURLWithDisposition(CURRENT_TAB, false); | 3531 NavigateToDestURLWithDisposition(WindowOpenDisposition::CURRENT_TAB, false); |
3530 web_contents->DecrementCapturerCount(); | 3532 web_contents->DecrementCapturerCount(); |
3531 } | 3533 } |
3532 | 3534 |
3533 // Checks that prerenders are aborted on cross-process navigation from | 3535 // Checks that prerenders are aborted on cross-process navigation from |
3534 // a server redirect. | 3536 // a server redirect. |
3535 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 3537 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
3536 PrerenderCrossProcessServerRedirect) { | 3538 PrerenderCrossProcessServerRedirect) { |
3537 // Force everything to be a process swap. | 3539 // Force everything to be a process swap. |
3538 SwapProcessesContentBrowserClient test_browser_client; | 3540 SwapProcessesContentBrowserClient test_browser_client; |
3539 content::ContentBrowserClient* original_browser_client = | 3541 content::ContentBrowserClient* original_browser_client = |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3602 histogram_tester().ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0); | 3604 histogram_tester().ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0); |
3603 histogram_tester().ExpectTotalCount( | 3605 histogram_tester().ExpectTotalCount( |
3604 "Prerender.none_PerceivedPLTMatchedComplete", 0); | 3606 "Prerender.none_PerceivedPLTMatchedComplete", 0); |
3605 histogram_tester().ExpectTotalCount( | 3607 histogram_tester().ExpectTotalCount( |
3606 "Prerender.websame_PrerenderNotSwappedInPLT", 0); | 3608 "Prerender.websame_PrerenderNotSwappedInPLT", 0); |
3607 | 3609 |
3608 // Swap. | 3610 // Swap. |
3609 NavigationOrSwapObserver swap_observer(current_browser()->tab_strip_model(), | 3611 NavigationOrSwapObserver swap_observer(current_browser()->tab_strip_model(), |
3610 GetActiveWebContents()); | 3612 GetActiveWebContents()); |
3611 ui_test_utils::NavigateToURLWithDisposition( | 3613 ui_test_utils::NavigateToURLWithDisposition( |
3612 current_browser(), dest_url(), CURRENT_TAB, | 3614 current_browser(), dest_url(), WindowOpenDisposition::CURRENT_TAB, |
3613 ui_test_utils::BROWSER_TEST_NONE); | 3615 ui_test_utils::BROWSER_TEST_NONE); |
3614 swap_observer.Wait(); | 3616 swap_observer.Wait(); |
3615 | 3617 |
3616 // The prerender never observes the final load. | 3618 // The prerender never observes the final load. |
3617 EXPECT_EQ(0, prerender->number_of_loads()); | 3619 EXPECT_EQ(0, prerender->number_of_loads()); |
3618 | 3620 |
3619 // Now check DidDisplayPass. | 3621 // Now check DidDisplayPass. |
3620 EXPECT_TRUE(DidDisplayPass(GetActiveWebContents())); | 3622 EXPECT_TRUE(DidDisplayPass(GetActiveWebContents())); |
3621 | 3623 |
3622 histogram_tester().ExpectTotalCount( | 3624 histogram_tester().ExpectTotalCount( |
(...skipping 16 matching lines...) Expand all Loading... |
3639 std::unique_ptr<TestPrerender> prerender = PrerenderTestURL( | 3641 std::unique_ptr<TestPrerender> prerender = PrerenderTestURL( |
3640 "/prerender/prerender_deferred_image.html", FINAL_STATUS_USED, 0); | 3642 "/prerender/prerender_deferred_image.html", FINAL_STATUS_USED, 0); |
3641 WaitForASCIITitle(prerender->contents()->prerender_contents(), kReadyTitle); | 3643 WaitForASCIITitle(prerender->contents()->prerender_contents(), kReadyTitle); |
3642 EXPECT_TRUE(DidPrerenderPass(prerender->contents()->prerender_contents())); | 3644 EXPECT_TRUE(DidPrerenderPass(prerender->contents()->prerender_contents())); |
3643 EXPECT_EQ(0, prerender->number_of_loads()); | 3645 EXPECT_EQ(0, prerender->number_of_loads()); |
3644 | 3646 |
3645 // Swap. | 3647 // Swap. |
3646 NavigationOrSwapObserver swap_observer(current_browser()->tab_strip_model(), | 3648 NavigationOrSwapObserver swap_observer(current_browser()->tab_strip_model(), |
3647 GetActiveWebContents()); | 3649 GetActiveWebContents()); |
3648 ui_test_utils::NavigateToURLWithDisposition( | 3650 ui_test_utils::NavigateToURLWithDisposition( |
3649 current_browser(), dest_url(), CURRENT_TAB, | 3651 current_browser(), dest_url(), WindowOpenDisposition::CURRENT_TAB, |
3650 ui_test_utils::BROWSER_TEST_NONE); | 3652 ui_test_utils::BROWSER_TEST_NONE); |
3651 swap_observer.Wait(); | 3653 swap_observer.Wait(); |
3652 | 3654 |
3653 // The prerender never observes the final load. | 3655 // The prerender never observes the final load. |
3654 EXPECT_EQ(0, prerender->number_of_loads()); | 3656 EXPECT_EQ(0, prerender->number_of_loads()); |
3655 | 3657 |
3656 // Now check DidDisplayPass. | 3658 // Now check DidDisplayPass. |
3657 EXPECT_TRUE(DidDisplayPass(GetActiveWebContents())); | 3659 EXPECT_TRUE(DidDisplayPass(GetActiveWebContents())); |
3658 } | 3660 } |
3659 | 3661 |
(...skipping 19 matching lines...) Expand all Loading... |
3679 PrerenderTestURL("/prerender/prerender_deferred_sync_xhr.html", | 3681 PrerenderTestURL("/prerender/prerender_deferred_sync_xhr.html", |
3680 FINAL_STATUS_BAD_DEFERRED_REDIRECT, 0); | 3682 FINAL_STATUS_BAD_DEFERRED_REDIRECT, 0); |
3681 ui_test_utils::NavigateToURL(current_browser(), dest_url()); | 3683 ui_test_utils::NavigateToURL(current_browser(), dest_url()); |
3682 } | 3684 } |
3683 | 3685 |
3684 // Checks that prerenders are not swapped for navigations with extra headers. | 3686 // Checks that prerenders are not swapped for navigations with extra headers. |
3685 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderExtraHeadersNoSwap) { | 3687 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderExtraHeadersNoSwap) { |
3686 PrerenderTestURL("/prerender/prerender_page.html", | 3688 PrerenderTestURL("/prerender/prerender_page.html", |
3687 FINAL_STATUS_APP_TERMINATING, 1); | 3689 FINAL_STATUS_APP_TERMINATING, 1); |
3688 | 3690 |
3689 content::OpenURLParams params(dest_url(), Referrer(), CURRENT_TAB, | 3691 content::OpenURLParams params(dest_url(), Referrer(), |
| 3692 WindowOpenDisposition::CURRENT_TAB, |
3690 ui::PAGE_TRANSITION_TYPED, false); | 3693 ui::PAGE_TRANSITION_TYPED, false); |
3691 params.extra_headers = "X-Custom-Header: 42\r\n"; | 3694 params.extra_headers = "X-Custom-Header: 42\r\n"; |
3692 NavigateToURLWithParams(params, false); | 3695 NavigateToURLWithParams(params, false); |
3693 } | 3696 } |
3694 | 3697 |
3695 // Checks that prerenders are not swapped for navigations with browser-initiated | 3698 // Checks that prerenders are not swapped for navigations with browser-initiated |
3696 // POST data. | 3699 // POST data. |
3697 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 3700 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
3698 PrerenderBrowserInitiatedPostNoSwap) { | 3701 PrerenderBrowserInitiatedPostNoSwap) { |
3699 PrerenderTestURL("/prerender/prerender_page.html", | 3702 PrerenderTestURL("/prerender/prerender_page.html", |
3700 FINAL_STATUS_APP_TERMINATING, 1); | 3703 FINAL_STATUS_APP_TERMINATING, 1); |
3701 | 3704 |
3702 std::string post_data = "DATA"; | 3705 std::string post_data = "DATA"; |
3703 content::OpenURLParams params(dest_url(), Referrer(), CURRENT_TAB, | 3706 content::OpenURLParams params(dest_url(), Referrer(), |
| 3707 WindowOpenDisposition::CURRENT_TAB, |
3704 ui::PAGE_TRANSITION_TYPED, false); | 3708 ui::PAGE_TRANSITION_TYPED, false); |
3705 params.uses_post = true; | 3709 params.uses_post = true; |
3706 params.post_data = content::ResourceRequestBody::CreateFromBytes( | 3710 params.post_data = content::ResourceRequestBody::CreateFromBytes( |
3707 post_data.data(), post_data.size()); | 3711 post_data.data(), post_data.size()); |
3708 NavigateToURLWithParams(params, false); | 3712 NavigateToURLWithParams(params, false); |
3709 } | 3713 } |
3710 | 3714 |
3711 // Checks that the prerendering of a page is canceled correctly when the | 3715 // Checks that the prerendering of a page is canceled correctly when the |
3712 // prerendered page tries to make a second navigation entry. | 3716 // prerendered page tries to make a second navigation entry. |
3713 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderNewNavigationEntry) { | 3717 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderNewNavigationEntry) { |
3714 PrerenderTestURL("/prerender/prerender_new_entry.html", | 3718 PrerenderTestURL("/prerender/prerender_new_entry.html", |
3715 FINAL_STATUS_NEW_NAVIGATION_ENTRY, 1); | 3719 FINAL_STATUS_NEW_NAVIGATION_ENTRY, 1); |
3716 } | 3720 } |
3717 | 3721 |
3718 // Attempt a swap-in in a new tab. The session storage doesn't match, so it | 3722 // Attempt a swap-in in a new tab. The session storage doesn't match, so it |
3719 // should not swap. | 3723 // should not swap. |
3720 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPageNewTab) { | 3724 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPageNewTab) { |
3721 PrerenderTestURL("/prerender/prerender_page.html", | 3725 PrerenderTestURL("/prerender/prerender_page.html", |
3722 FINAL_STATUS_APP_TERMINATING, 1); | 3726 FINAL_STATUS_APP_TERMINATING, 1); |
3723 | 3727 |
3724 // Open a new tab to navigate in. | 3728 // Open a new tab to navigate in. |
3725 ui_test_utils::NavigateToURLWithDisposition( | 3729 ui_test_utils::NavigateToURLWithDisposition( |
3726 current_browser(), GURL(url::kAboutBlankURL), NEW_FOREGROUND_TAB, | 3730 current_browser(), GURL(url::kAboutBlankURL), |
| 3731 WindowOpenDisposition::NEW_FOREGROUND_TAB, |
3727 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 3732 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
3728 | 3733 |
3729 // Now navigate in the new tab. | 3734 // Now navigate in the new tab. |
3730 NavigateToDestURLWithDisposition(CURRENT_TAB, false); | 3735 NavigateToDestURLWithDisposition(WindowOpenDisposition::CURRENT_TAB, false); |
3731 } | 3736 } |
3732 | 3737 |
3733 // Checks that prerenders honor |should_replace_current_entry|. | 3738 // Checks that prerenders honor |should_replace_current_entry|. |
3734 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderReplaceCurrentEntry) { | 3739 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderReplaceCurrentEntry) { |
3735 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); | 3740 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); |
3736 | 3741 |
3737 content::OpenURLParams params(dest_url(), Referrer(), CURRENT_TAB, | 3742 content::OpenURLParams params(dest_url(), Referrer(), |
| 3743 WindowOpenDisposition::CURRENT_TAB, |
3738 ui::PAGE_TRANSITION_TYPED, false); | 3744 ui::PAGE_TRANSITION_TYPED, false); |
3739 params.should_replace_current_entry = true; | 3745 params.should_replace_current_entry = true; |
3740 NavigateToURLWithParams(params, false); | 3746 NavigateToURLWithParams(params, false); |
3741 | 3747 |
3742 const NavigationController& controller = | 3748 const NavigationController& controller = |
3743 GetActiveWebContents()->GetController(); | 3749 GetActiveWebContents()->GetController(); |
3744 // First entry is about:blank, second is prerender_page.html. | 3750 // First entry is about:blank, second is prerender_page.html. |
3745 EXPECT_FALSE(controller.GetPendingEntry()); | 3751 EXPECT_FALSE(controller.GetPendingEntry()); |
3746 ASSERT_EQ(2, controller.GetEntryCount()); | 3752 ASSERT_EQ(2, controller.GetEntryCount()); |
3747 EXPECT_EQ(GURL(url::kAboutBlankURL), controller.GetEntryAtIndex(0)->GetURL()); | 3753 EXPECT_EQ(GURL(url::kAboutBlankURL), controller.GetEntryAtIndex(0)->GetURL()); |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3927 StartOmniboxPrerender(embedded_test_server()->GetURL("/empty.html?2"), | 3933 StartOmniboxPrerender(embedded_test_server()->GetURL("/empty.html?2"), |
3928 FINAL_STATUS_APP_TERMINATING); | 3934 FINAL_STATUS_APP_TERMINATING); |
3929 | 3935 |
3930 // The final status may be either FINAL_STATUS_APP_TERMINATING or | 3936 // The final status may be either FINAL_STATUS_APP_TERMINATING or |
3931 // FINAL_STATUS_CANCELLED. Although closing the omnibox will not cancel an | 3937 // FINAL_STATUS_CANCELLED. Although closing the omnibox will not cancel an |
3932 // abandoned prerender, the AutocompleteActionPredictor will cancel the | 3938 // abandoned prerender, the AutocompleteActionPredictor will cancel the |
3933 // predictor on destruction. | 3939 // predictor on destruction. |
3934 prerender->contents()->set_skip_final_checks(true); | 3940 prerender->contents()->set_skip_final_checks(true); |
3935 | 3941 |
3936 // Navigate to the URL entered. | 3942 // Navigate to the URL entered. |
3937 omnibox_view->model()->AcceptInput(CURRENT_TAB, false); | 3943 omnibox_view->model()->AcceptInput(WindowOpenDisposition::CURRENT_TAB, false); |
3938 | 3944 |
3939 // Prerender should be running, but abandoned. | 3945 // Prerender should be running, but abandoned. |
3940 EXPECT_TRUE( | 3946 EXPECT_TRUE( |
3941 GetAutocompleteActionPredictor()->IsPrerenderAbandonedForTesting()); | 3947 GetAutocompleteActionPredictor()->IsPrerenderAbandonedForTesting()); |
3942 } | 3948 } |
3943 | 3949 |
3944 // Can't run tests with NaCl plugins if built with DISABLE_NACL. | 3950 // Can't run tests with NaCl plugins if built with DISABLE_NACL. |
3945 #if !defined(DISABLE_NACL) | 3951 #if !defined(DISABLE_NACL) |
3946 class PrerenderBrowserTestWithNaCl : public PrerenderBrowserTest { | 3952 class PrerenderBrowserTestWithNaCl : public PrerenderBrowserTest { |
3947 public: | 3953 public: |
(...skipping 26 matching lines...) Expand all Loading... |
3974 browser()->tab_strip_model()->GetActiveWebContents(); | 3980 browser()->tab_strip_model()->GetActiveWebContents(); |
3975 bool display_test_result = false; | 3981 bool display_test_result = false; |
3976 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, | 3982 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, |
3977 "DidDisplayReallyPass()", | 3983 "DidDisplayReallyPass()", |
3978 &display_test_result)); | 3984 &display_test_result)); |
3979 ASSERT_TRUE(display_test_result); | 3985 ASSERT_TRUE(display_test_result); |
3980 } | 3986 } |
3981 #endif // !defined(DISABLE_NACL) | 3987 #endif // !defined(DISABLE_NACL) |
3982 | 3988 |
3983 } // namespace prerender | 3989 } // namespace prerender |
OLD | NEW |