OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <deque> | 5 #include <deque> |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
10 #include "base/test/test_timeouts.h" | 10 #include "base/test/test_timeouts.h" |
11 #include "base/utf_string_conversions.h" | 11 #include "base/utf_string_conversions.h" |
12 #include "base/values.h" | 12 #include "base/values.h" |
13 #include "chrome/browser/browsing_data_remover.h" | 13 #include "chrome/browser/browsing_data_remover.h" |
14 #include "chrome/browser/content_settings/host_content_settings_map.h" | 14 #include "chrome/browser/content_settings/host_content_settings_map.h" |
15 #include "chrome/browser/favicon/favicon_tab_helper.h" | 15 #include "chrome/browser/favicon/favicon_tab_helper.h" |
16 #include "chrome/browser/prefs/pref_service.h" | 16 #include "chrome/browser/prefs/pref_service.h" |
17 #include "chrome/browser/prerender/prerender_contents.h" | 17 #include "chrome/browser/prerender/prerender_contents.h" |
18 #include "chrome/browser/prerender/prerender_manager.h" | 18 #include "chrome/browser/prerender/prerender_manager.h" |
19 #include "chrome/browser/profiles/profile.h" | 19 #include "chrome/browser/profiles/profile.h" |
20 #include "chrome/browser/safe_browsing/safe_browsing_service.h" | 20 #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
21 #include "chrome/browser/task_manager/task_manager.h" | 21 #include "chrome/browser/task_manager/task_manager.h" |
22 #include "chrome/browser/task_manager/task_manager_browsertest_util.h" | 22 #include "chrome/browser/task_manager/task_manager_browsertest_util.h" |
23 #include "chrome/browser/ui/browser.h" | 23 #include "chrome/browser/ui/browser.h" |
| 24 #include "chrome/browser/ui/browser_list.h" |
24 #include "chrome/browser/ui/browser_window.h" | 25 #include "chrome/browser/ui/browser_window.h" |
25 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 26 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
26 #include "chrome/common/chrome_notification_types.h" | 27 #include "chrome/common/chrome_notification_types.h" |
27 #include "chrome/common/chrome_paths.h" | 28 #include "chrome/common/chrome_paths.h" |
28 #include "chrome/common/chrome_switches.h" | 29 #include "chrome/common/chrome_switches.h" |
29 #include "chrome/common/pref_names.h" | 30 #include "chrome/common/pref_names.h" |
30 #include "chrome/test/base/in_process_browser_test.h" | 31 #include "chrome/test/base/in_process_browser_test.h" |
31 #include "chrome/test/base/ui_test_utils.h" | 32 #include "chrome/test/base/ui_test_utils.h" |
32 #include "content/browser/renderer_host/render_view_host.h" | 33 #include "content/browser/renderer_host/render_view_host.h" |
33 #include "content/browser/tab_contents/tab_contents.h" | 34 #include "content/browser/tab_contents/tab_contents.h" |
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
431 void NavigateToDestURL() const { | 432 void NavigateToDestURL() const { |
432 NavigateToDestURLWithDisposition(CURRENT_TAB); | 433 NavigateToDestURLWithDisposition(CURRENT_TAB); |
433 } | 434 } |
434 | 435 |
435 // Opens the url in a new tab, with no opener. | 436 // Opens the url in a new tab, with no opener. |
436 void NavigateToDestURLWithDisposition( | 437 void NavigateToDestURLWithDisposition( |
437 WindowOpenDisposition disposition) const { | 438 WindowOpenDisposition disposition) const { |
438 NavigateToURLImpl(dest_url_, disposition); | 439 NavigateToURLImpl(dest_url_, disposition); |
439 } | 440 } |
440 | 441 |
441 void OpenDestUrlInNewWindowViaJs() const { | 442 void OpenDestURLViaClick() const { |
442 // Make sure in navigating we have a URL to use in the PrerenderManager. | 443 OpenDestURLWithJSImpl("Click()", true); |
443 TestPrerenderContents* prerender_contents = GetPrerenderContents(); | |
444 ASSERT_TRUE(prerender_contents != NULL); | |
445 prerender_contents->set_quit_message_loop_on_destruction(false); | |
446 | |
447 bool open_window_result = false; | |
448 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | |
449 browser()->GetSelectedTabContents()->render_view_host(), L"", | |
450 L"window.domAutomationController.send(JsOpenLinkInNewWindow())", | |
451 &open_window_result)); | |
452 EXPECT_TRUE(open_window_result); | |
453 | |
454 // If the prerender contents has not been destroyed, run message loop. | |
455 if (GetPrerenderContents() != NULL) { | |
456 prerender_contents->set_quit_message_loop_on_destruction(true); | |
457 ui_test_utils::RunMessageLoop(); | |
458 } | |
459 } | 444 } |
460 | 445 |
461 void OpenDestUrlInNewWindowViaClick() const { | 446 void OpenDestURLViaClickTarget() const { |
462 // Make sure in navigating we have a URL to use in the PrerenderManager. | 447 OpenDestURLWithJSImpl("ClickTarget()", false); |
463 TestPrerenderContents* prerender_contents = GetPrerenderContents(); | |
464 ASSERT_TRUE(prerender_contents != NULL); | |
465 prerender_contents->set_quit_message_loop_on_destruction(false); | |
466 | |
467 bool click_prerendered_link_result = false; | |
468 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | |
469 browser()->GetSelectedTabContents()->render_view_host(), L"", | |
470 L"window.domAutomationController.send(ClickOpenLinkInNewWindow())", | |
471 &click_prerendered_link_result)); | |
472 EXPECT_TRUE(click_prerendered_link_result); | |
473 | |
474 // If the prerender contents has not been destroyed, run message loop. | |
475 if (GetPrerenderContents() != NULL) { | |
476 prerender_contents->set_quit_message_loop_on_destruction(true); | |
477 ui_test_utils::RunMessageLoop(); | |
478 } | |
479 } | 448 } |
480 | 449 |
481 void OpenDestUrlViaClick() const { | 450 void OpenDestURLViaClickNewWindow() const { |
482 // Make sure in navigating we have a URL to use in the PrerenderManager. | 451 OpenDestURLWithJSImpl("ShiftClick()", true); |
483 TestPrerenderContents* prerender_contents = GetPrerenderContents(); | 452 } |
484 ASSERT_TRUE(prerender_contents != NULL); | |
485 prerender_contents->set_quit_message_loop_on_destruction(false); | |
486 | 453 |
487 bool click_prerendered_link_result = false; | 454 void OpenDestURLViaClickNewForegroundTab() const { |
| 455 #if defined(OS_MACOSX) |
| 456 OpenDestURLWithJSImpl("MetaShiftClick()", true); |
| 457 #else |
| 458 OpenDestURLWithJSImpl("CtrlShiftClick()", true); |
| 459 #endif |
| 460 } |
| 461 |
| 462 void OpenDestURLViaClickNewBackgroundTab() const { |
| 463 #if defined(OS_MACOSX) |
| 464 OpenDestURLWithJSImpl("MetaClick()", false); |
| 465 #else |
| 466 OpenDestURLWithJSImpl("CtrlClick()", false); |
| 467 #endif |
| 468 } |
| 469 |
| 470 void OpenDestURLViaWindowOpen() const { |
| 471 OpenDestURLWithJSImpl("WindowOpen()", false); |
| 472 } |
| 473 |
| 474 void ClickToNextPageAfterPrerender(Browser* browser) { |
| 475 ui_test_utils::WindowedNotificationObserver new_page_observer( |
| 476 content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
| 477 NotificationService::AllSources()); |
| 478 RenderViewHost* render_view_host = |
| 479 browser->GetSelectedTabContents()->render_view_host(); |
| 480 render_view_host->ExecuteJavascriptInWebFrame( |
| 481 string16(), |
| 482 ASCIIToUTF16("ClickOpenLink()")); |
| 483 new_page_observer.Wait(); |
| 484 } |
| 485 |
| 486 void NavigateToNextPageAfterPrerender(Browser* browser) { |
| 487 ui_test_utils::NavigateToURL( |
| 488 browser, |
| 489 test_server()->GetURL("files/prerender/prerender_page.html")); |
| 490 } |
| 491 |
| 492 // Called after the prerendered page has been navigated to and then away from. |
| 493 // Navigates back through the history to the prerendered page. |
| 494 void GoBackToPrerender(Browser* browser) { |
| 495 ui_test_utils::WindowedNotificationObserver back_nav_observer( |
| 496 content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
| 497 NotificationService::AllSources()); |
| 498 browser->GoBack(CURRENT_TAB); |
| 499 back_nav_observer.Wait(); |
| 500 bool original_prerender_page = false; |
488 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 501 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
489 browser()->GetSelectedTabContents()->render_view_host(), L"", | 502 browser->GetSelectedTabContents()->render_view_host(), L"", |
490 L"window.domAutomationController.send(ClickOpenLink())", | 503 L"window.domAutomationController.send(IsOriginalPrerenderPage())", |
491 &click_prerendered_link_result)); | 504 &original_prerender_page)); |
492 EXPECT_TRUE(click_prerendered_link_result); | 505 EXPECT_TRUE(original_prerender_page); |
493 | |
494 // If the prerender contents has not been destroyed, run message loop. | |
495 if (GetPrerenderContents() != NULL) { | |
496 prerender_contents->set_quit_message_loop_on_destruction(true); | |
497 ui_test_utils::RunMessageLoop(); | |
498 } | |
499 } | 506 } |
500 | 507 |
501 // Should be const but test_server()->GetURL(...) is not const. | 508 // Should be const but test_server()->GetURL(...) is not const. |
502 void NavigateToURL(const std::string& dest_html_file) { | 509 void NavigateToURL(const std::string& dest_html_file) { |
503 GURL dest_url = test_server()->GetURL(dest_html_file); | 510 GURL dest_url = test_server()->GetURL(dest_html_file); |
504 NavigateToURLImpl(dest_url, CURRENT_TAB); | 511 NavigateToURLImpl(dest_url, CURRENT_TAB); |
505 } | 512 } |
506 | 513 |
507 bool UrlIsInPrerenderManager(const std::string& html_file) { | 514 bool UrlIsInPrerenderManager(const std::string& html_file) { |
508 GURL dest_url = test_server()->GetURL(html_file); | 515 GURL dest_url = test_server()->GetURL(html_file); |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
677 | 684 |
678 bool display_test_result = false; | 685 bool display_test_result = false; |
679 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 686 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
680 tab_contents->render_view_host(), L"", | 687 tab_contents->render_view_host(), L"", |
681 L"window.domAutomationController.send(DidDisplayPass())", | 688 L"window.domAutomationController.send(DidDisplayPass())", |
682 &display_test_result)); | 689 &display_test_result)); |
683 EXPECT_TRUE(display_test_result); | 690 EXPECT_TRUE(display_test_result); |
684 } | 691 } |
685 } | 692 } |
686 | 693 |
| 694 // Opens the prerendered page using javascript functions in the |
| 695 // loader page. |javascript_function_name| should be a 0 argument function |
| 696 // which is invoked. |contents_should_be_shown| indicates whether the |
| 697 // prerendered page expects to become visible or stay hidden. |
| 698 void OpenDestURLWithJSImpl(const std::string& javascript_function_name, |
| 699 bool contents_should_be_shown) const { |
| 700 TestPrerenderContents* prerender_contents = GetPrerenderContents(); |
| 701 ASSERT_TRUE(prerender_contents != NULL); |
| 702 prerender_contents->set_should_be_shown(contents_should_be_shown); |
| 703 |
| 704 RenderViewHost* render_view_host = |
| 705 browser()->GetSelectedTabContents()->render_view_host(); |
| 706 render_view_host->ExecuteJavascriptInWebFrame( |
| 707 string16(), |
| 708 ASCIIToUTF16(javascript_function_name)); |
| 709 |
| 710 // Run message loop until the prerender contents is destroyed. |
| 711 ui_test_utils::RunMessageLoop(); |
| 712 } |
| 713 |
687 WaitForLoadPrerenderContentsFactory* prerender_contents_factory_; | 714 WaitForLoadPrerenderContentsFactory* prerender_contents_factory_; |
688 #if defined(ENABLE_SAFE_BROWSING) | 715 #if defined(ENABLE_SAFE_BROWSING) |
689 scoped_ptr<TestSafeBrowsingServiceFactory> safe_browsing_factory_; | 716 scoped_ptr<TestSafeBrowsingServiceFactory> safe_browsing_factory_; |
690 #endif | 717 #endif |
691 GURL dest_url_; | 718 GURL dest_url_; |
692 bool use_https_src_server_; | 719 bool use_https_src_server_; |
693 bool call_javascript_; | 720 bool call_javascript_; |
694 std::string loader_path_; | 721 std::string loader_path_; |
695 }; | 722 }; |
696 | 723 |
(...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1386 | 1413 |
1387 // Checks that we cancel correctly when window.print() is called. | 1414 // Checks that we cancel correctly when window.print() is called. |
1388 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPrint) { | 1415 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPrint) { |
1389 PrerenderTestURL("files/prerender/prerender_print.html", | 1416 PrerenderTestURL("files/prerender/prerender_print.html", |
1390 FINAL_STATUS_WINDOW_PRINT, | 1417 FINAL_STATUS_WINDOW_PRINT, |
1391 1); | 1418 1); |
1392 } | 1419 } |
1393 | 1420 |
1394 // Checks that if a page is opened in a new window by javascript the | 1421 // Checks that if a page is opened in a new window by javascript the |
1395 // prerendered page is not used. | 1422 // prerendered page is not used. |
1396 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1423 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderWindowOpenerWindowOpen) { |
1397 PrerenderWindowOpenerJsOpenInNewPageTest) { | |
1398 PrerenderTestURL("files/prerender/prerender_page.html", | 1424 PrerenderTestURL("files/prerender/prerender_page.html", |
1399 FINAL_STATUS_WINDOW_OPENER, | 1425 FINAL_STATUS_WINDOW_OPENER, |
1400 1); | 1426 1); |
1401 OpenDestUrlInNewWindowViaJs(); | 1427 OpenDestURLViaWindowOpen(); |
1402 } | 1428 } |
1403 | 1429 |
1404 // Checks that if a page is opened due to click on a href with target="_blank" | 1430 // Checks that if a page is opened due to click on a href with target="_blank" |
1405 // the prerendered page is not used. | 1431 // the prerendered page is not used. |
1406 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1432 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderWindowOpenerClickTarget) { |
1407 PrerenderWindowOpenerClickOpenInNewPageTest) { | |
1408 PrerenderTestURL("files/prerender/prerender_page.html", | 1433 PrerenderTestURL("files/prerender/prerender_page.html", |
1409 FINAL_STATUS_WINDOW_OPENER, | 1434 FINAL_STATUS_WINDOW_OPENER, |
1410 1); | 1435 1); |
1411 OpenDestUrlInNewWindowViaClick(); | 1436 OpenDestURLViaClickTarget(); |
1412 } | 1437 } |
1413 | 1438 |
1414 // TODO(shishir): Add a test for the case when the page having the | 1439 // TODO(shishir): Add a test for the case when the page having the |
1415 // prerendering link already has an opener set. | 1440 // prerendering link already has an opener set. |
1416 | 1441 |
1417 // Checks that a top-level page which would normally request an SSL client | 1442 // Checks that a top-level page which would normally request an SSL client |
1418 // certificate will never be seen since it's an https top-level resource. | 1443 // certificate will never be seen since it's an https top-level resource. |
1419 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertTopLevel) { | 1444 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertTopLevel) { |
1420 net::TestServer::HTTPSOptions https_options; | 1445 net::TestServer::HTTPSOptions https_options; |
1421 https_options.request_client_certificate = true; | 1446 https_options.request_client_certificate = true; |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1630 FINAL_STATUS_CANCELLED, | 1655 FINAL_STATUS_CANCELLED, |
1631 1); | 1656 1); |
1632 // Post a task to cancel all the prerenders. | 1657 // Post a task to cancel all the prerenders. |
1633 MessageLoop::current()->PostTask(FROM_HERE, | 1658 MessageLoop::current()->PostTask(FROM_HERE, |
1634 NewRunnableFunction(CancelAllPrerenders, | 1659 NewRunnableFunction(CancelAllPrerenders, |
1635 prerender_manager())); | 1660 prerender_manager())); |
1636 ui_test_utils::RunMessageLoop(); | 1661 ui_test_utils::RunMessageLoop(); |
1637 EXPECT_TRUE(GetPrerenderContents() == NULL); | 1662 EXPECT_TRUE(GetPrerenderContents() == NULL); |
1638 } | 1663 } |
1639 | 1664 |
1640 // Flaky on windows: http://crbug.com/92478 | 1665 // Prerendering and history tests. |
1641 #if defined(OS_WIN) | 1666 // The prerendered page is navigated to in several ways [navigate via |
1642 #define MAYBE_BackToPrerenderedPage DISABLED_BackToPrerenderedPage | 1667 // omnibox, click on link, key-modified click to open in background tab, etc], |
1643 #else | 1668 // followed by a navigation to another page from the prerendered page, followed |
1644 #define MAYBE_BackToPrerenderedPage BackToPrerenderedPage | 1669 // by a back navigation. |
1645 #endif | |
1646 | 1670 |
1647 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, MAYBE_BackToPrerenderedPage) { | 1671 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderNavigateClickGoBack) { |
1648 PrerenderTestURL("files/prerender/prerender_page_with_link.html", | 1672 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
1649 FINAL_STATUS_USED, | 1673 FINAL_STATUS_USED, |
1650 1); | 1674 1); |
| 1675 NavigateToDestURL(); |
| 1676 ClickToNextPageAfterPrerender(browser()); |
| 1677 GoBackToPrerender(browser()); |
| 1678 } |
1651 | 1679 |
1652 OpenDestUrlViaClick(); | 1680 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 1681 PrerenderNavigateNavigateGoBack) { |
| 1682 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
| 1683 FINAL_STATUS_USED, |
| 1684 1); |
| 1685 NavigateToDestURL(); |
| 1686 NavigateToNextPageAfterPrerender(browser()); |
| 1687 GoBackToPrerender(browser()); |
| 1688 } |
1653 | 1689 |
1654 // Click on the link in the page and wait for it to commit | 1690 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickClickGoBack) { |
1655 { | 1691 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
1656 ui_test_utils::WindowedNotificationObserver new_page_observer( | 1692 FINAL_STATUS_USED, |
1657 content::NOTIFICATION_NAV_ENTRY_COMMITTED, | 1693 1); |
1658 NotificationService::AllSources()); | 1694 OpenDestURLViaClick(); |
1659 bool click_link_result = false; | 1695 ClickToNextPageAfterPrerender(browser()); |
1660 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 1696 GoBackToPrerender(browser()); |
1661 browser()->GetSelectedTabContents()->render_view_host(), L"", | 1697 } |
1662 L"window.domAutomationController.send(ClickOpenLink())", | |
1663 &click_link_result)); | |
1664 EXPECT_TRUE(click_link_result); | |
1665 new_page_observer.Wait(); | |
1666 } | |
1667 | 1698 |
1668 // Now, go back to the prerendered page. | 1699 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickNavigateGoBack) { |
1669 { | 1700 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
1670 ui_test_utils::WindowedNotificationObserver back_nav_observer( | 1701 FINAL_STATUS_USED, |
1671 content::NOTIFICATION_NAV_ENTRY_COMMITTED, | 1702 1); |
1672 NotificationService::AllSources()); | 1703 OpenDestURLViaClick(); |
1673 browser()->GoBack(CURRENT_TAB); | 1704 NavigateToNextPageAfterPrerender(browser()); |
1674 back_nav_observer.Wait(); | 1705 GoBackToPrerender(browser()); |
1675 bool original_prerender_page = false; | 1706 } |
1676 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 1707 |
1677 browser()->GetSelectedTabContents()->render_view_host(), L"", | 1708 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
1678 L"window.domAutomationController.send(IsOriginalPrerenderPage())", | 1709 PrerenderClickNewWindowClickGoBack) { |
1679 &original_prerender_page)); | 1710 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
1680 EXPECT_TRUE(original_prerender_page); | 1711 FINAL_STATUS_USED, |
1681 } | 1712 1); |
| 1713 OpenDestURLViaClickNewWindow(); |
| 1714 Browser* new_browser = BrowserList::GetLastActive(); |
| 1715 NavigateToNextPageAfterPrerender(new_browser); |
| 1716 GoBackToPrerender(new_browser); |
| 1717 } |
| 1718 |
| 1719 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 1720 PrerenderClickNewWindowNavigateGoBack) { |
| 1721 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
| 1722 FINAL_STATUS_USED, |
| 1723 1); |
| 1724 OpenDestURLViaClickNewWindow(); |
| 1725 Browser* new_browser = BrowserList::GetLastActive(); |
| 1726 ClickToNextPageAfterPrerender(new_browser); |
| 1727 GoBackToPrerender(new_browser); |
| 1728 } |
| 1729 |
| 1730 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 1731 PrerenderClickNewForegroundTabClickGoBack) { |
| 1732 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
| 1733 FINAL_STATUS_USED, |
| 1734 1); |
| 1735 OpenDestURLViaClickNewForegroundTab(); |
| 1736 NavigateToNextPageAfterPrerender(browser()); |
| 1737 GoBackToPrerender(browser()); |
| 1738 } |
| 1739 |
| 1740 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 1741 PrerenderClickNewForegroundTabNavigateGoBack) { |
| 1742 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
| 1743 FINAL_STATUS_USED, |
| 1744 1); |
| 1745 OpenDestURLViaClickNewForegroundTab(); |
| 1746 ClickToNextPageAfterPrerender(browser()); |
| 1747 GoBackToPrerender(browser()); |
| 1748 } |
| 1749 |
| 1750 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 1751 PrerenderClickNewBackgroundTabClickGoBack) { |
| 1752 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
| 1753 FINAL_STATUS_USED, |
| 1754 1); |
| 1755 OpenDestURLViaClickNewBackgroundTab(); |
| 1756 // SelectNextTab completes synchronously, in terms of |
| 1757 // updating the active index. |
| 1758 browser()->SelectNextTab(); |
| 1759 NavigateToNextPageAfterPrerender(browser()); |
| 1760 GoBackToPrerender(browser()); |
| 1761 } |
| 1762 |
| 1763 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 1764 PrerenderClickNewBackgroundTabNavigateGoBack) { |
| 1765 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
| 1766 FINAL_STATUS_USED, |
| 1767 1); |
| 1768 OpenDestURLViaClickNewBackgroundTab(); |
| 1769 // SelectNextTab completes synchronously, in terms of |
| 1770 // updating the active index. |
| 1771 browser()->SelectNextTab(); |
| 1772 ClickToNextPageAfterPrerender(browser()); |
| 1773 GoBackToPrerender(browser()); |
1682 } | 1774 } |
1683 | 1775 |
1684 } // namespace prerender | 1776 } // namespace prerender |
OLD | NEW |