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(L"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(L"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(L"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) | |
cbentzel
2011/08/30 13:44:54
Oops!
| |
456 OpenDestURLWithJSImpl(L"MetaShiftClick", true); | |
457 #else | |
458 OpenDestURLWithJSImpl(L"CtrlShiftClick", true); | |
459 #endif | |
460 } | |
461 | |
462 void OpenDestURLViaClickNewBackgroundTab() const { | |
463 #if defined(OS_MACOSX) | |
464 OpenDestURLWithJSImpl(L"MetaClick", false); | |
465 #else | |
466 OpenDestURLWithJSImpl(L"CtrlClick", false); | |
467 #endif | |
468 } | |
469 | |
470 void OpenDestURLViaWindowOpen() const { | |
471 OpenDestURLWithJSImpl(L"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 bool click_link_result = false; | |
488 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 479 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
489 browser()->GetSelectedTabContents()->render_view_host(), L"", | 480 browser->GetSelectedTabContents()->render_view_host(), L"", |
490 L"window.domAutomationController.send(ClickOpenLink())", | 481 L"window.domAutomationController.send(ClickOpenLink())", |
491 &click_prerendered_link_result)); | 482 &click_link_result)); |
492 EXPECT_TRUE(click_prerendered_link_result); | 483 EXPECT_TRUE(click_link_result); |
484 new_page_observer.Wait(); | |
485 } | |
493 | 486 |
494 // If the prerender contents has not been destroyed, run message loop. | 487 void NavigateToNextPageAfterPrerender(Browser* browser) { |
495 if (GetPrerenderContents() != NULL) { | 488 ui_test_utils::NavigateToURL( |
496 prerender_contents->set_quit_message_loop_on_destruction(true); | 489 browser, |
497 ui_test_utils::RunMessageLoop(); | 490 test_server()->GetURL("files/prerender/prerender_page.html")); |
498 } | 491 } |
492 | |
493 void GoBackToPrerender(Browser* browser) { | |
494 ui_test_utils::WindowedNotificationObserver back_nav_observer( | |
495 content::NOTIFICATION_NAV_ENTRY_COMMITTED, | |
496 NotificationService::AllSources()); | |
497 browser->GoBack(CURRENT_TAB); | |
498 back_nav_observer.Wait(); | |
499 bool original_prerender_page = false; | |
500 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | |
501 browser->GetSelectedTabContents()->render_view_host(), L"", | |
502 L"window.domAutomationController.send(IsOriginalPrerenderPage())", | |
503 &original_prerender_page)); | |
504 EXPECT_TRUE(original_prerender_page); | |
499 } | 505 } |
500 | 506 |
501 // Should be const but test_server()->GetURL(...) is not const. | 507 // Should be const but test_server()->GetURL(...) is not const. |
502 void NavigateToURL(const std::string& dest_html_file) { | 508 void NavigateToURL(const std::string& dest_html_file) { |
503 GURL dest_url = test_server()->GetURL(dest_html_file); | 509 GURL dest_url = test_server()->GetURL(dest_html_file); |
504 NavigateToURLImpl(dest_url, CURRENT_TAB); | 510 NavigateToURLImpl(dest_url, CURRENT_TAB); |
505 } | 511 } |
506 | 512 |
507 bool UrlIsInPrerenderManager(const std::string& html_file) { | 513 bool UrlIsInPrerenderManager(const std::string& html_file) { |
508 GURL dest_url = test_server()->GetURL(html_file); | 514 GURL dest_url = test_server()->GetURL(html_file); |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
677 | 683 |
678 bool display_test_result = false; | 684 bool display_test_result = false; |
679 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 685 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
680 tab_contents->render_view_host(), L"", | 686 tab_contents->render_view_host(), L"", |
681 L"window.domAutomationController.send(DidDisplayPass())", | 687 L"window.domAutomationController.send(DidDisplayPass())", |
682 &display_test_result)); | 688 &display_test_result)); |
683 EXPECT_TRUE(display_test_result); | 689 EXPECT_TRUE(display_test_result); |
684 } | 690 } |
685 } | 691 } |
686 | 692 |
693 // Opens the prerendered page using javascript functions in the | |
694 // loader page. |javascript_function_name| should be a 0 argument function | |
695 // which is invoked. |contents_should_be_shown| indicates whether the | |
696 // prerendered page expects to become visible or stay hidden. | |
697 void OpenDestURLWithJSImpl(const std::wstring& javascript_function_name, | |
698 bool contents_should_be_shown) const { | |
699 TestPrerenderContents* prerender_contents = GetPrerenderContents(); | |
700 ASSERT_TRUE(prerender_contents != NULL); | |
701 prerender_contents->set_quit_message_loop_on_destruction(false); | |
702 prerender_contents->set_should_be_shown(contents_should_be_shown); | |
703 | |
704 bool javascript_function_result = false; | |
705 std::wstring javascript_to_execute = | |
706 L"window.domAutomationController.send(" + | |
707 javascript_function_name + | |
708 L"())"; | |
709 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | |
710 browser()->GetSelectedTabContents()->render_view_host(), L"", | |
711 javascript_to_execute, &javascript_function_result)); | |
712 EXPECT_TRUE(javascript_function_result); | |
713 | |
714 // If the prerender contents has not been destroyed, run message loop. | |
715 if (GetPrerenderContents() != NULL) { | |
716 prerender_contents->set_quit_message_loop_on_destruction(true); | |
717 ui_test_utils::RunMessageLoop(); | |
718 } | |
719 } | |
720 | |
687 WaitForLoadPrerenderContentsFactory* prerender_contents_factory_; | 721 WaitForLoadPrerenderContentsFactory* prerender_contents_factory_; |
688 #if defined(ENABLE_SAFE_BROWSING) | 722 #if defined(ENABLE_SAFE_BROWSING) |
689 scoped_ptr<TestSafeBrowsingServiceFactory> safe_browsing_factory_; | 723 scoped_ptr<TestSafeBrowsingServiceFactory> safe_browsing_factory_; |
690 #endif | 724 #endif |
691 GURL dest_url_; | 725 GURL dest_url_; |
692 bool use_https_src_server_; | 726 bool use_https_src_server_; |
693 bool call_javascript_; | 727 bool call_javascript_; |
694 std::string loader_path_; | 728 std::string loader_path_; |
695 }; | 729 }; |
696 | 730 |
(...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1386 | 1420 |
1387 // Checks that we cancel correctly when window.print() is called. | 1421 // Checks that we cancel correctly when window.print() is called. |
1388 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPrint) { | 1422 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPrint) { |
1389 PrerenderTestURL("files/prerender/prerender_print.html", | 1423 PrerenderTestURL("files/prerender/prerender_print.html", |
1390 FINAL_STATUS_WINDOW_PRINT, | 1424 FINAL_STATUS_WINDOW_PRINT, |
1391 1); | 1425 1); |
1392 } | 1426 } |
1393 | 1427 |
1394 // Checks that if a page is opened in a new window by javascript the | 1428 // Checks that if a page is opened in a new window by javascript the |
1395 // prerendered page is not used. | 1429 // prerendered page is not used. |
1396 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1430 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderWindowOpenerWindowOpen) { |
1397 PrerenderWindowOpenerJsOpenInNewPageTest) { | |
1398 PrerenderTestURL("files/prerender/prerender_page.html", | 1431 PrerenderTestURL("files/prerender/prerender_page.html", |
1399 FINAL_STATUS_WINDOW_OPENER, | 1432 FINAL_STATUS_WINDOW_OPENER, |
1400 1); | 1433 1); |
1401 OpenDestUrlInNewWindowViaJs(); | 1434 OpenDestURLViaWindowOpen(); |
1402 } | 1435 } |
1403 | 1436 |
1404 // Checks that if a page is opened due to click on a href with target="_blank" | 1437 // Checks that if a page is opened due to click on a href with target="_blank" |
1405 // the prerendered page is not used. | 1438 // the prerendered page is not used. |
1406 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1439 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderWindowOpenerClickTarget) { |
1407 PrerenderWindowOpenerClickOpenInNewPageTest) { | |
1408 PrerenderTestURL("files/prerender/prerender_page.html", | 1440 PrerenderTestURL("files/prerender/prerender_page.html", |
1409 FINAL_STATUS_WINDOW_OPENER, | 1441 FINAL_STATUS_WINDOW_OPENER, |
1410 1); | 1442 1); |
1411 OpenDestUrlInNewWindowViaClick(); | 1443 OpenDestURLViaClickTarget(); |
1412 } | 1444 } |
1413 | 1445 |
1414 // TODO(shishir): Add a test for the case when the page having the | 1446 // TODO(shishir): Add a test for the case when the page having the |
1415 // prerendering link already has an opener set. | 1447 // prerendering link already has an opener set. |
1416 | 1448 |
1417 // Checks that a top-level page which would normally request an SSL client | 1449 // 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. | 1450 // certificate will never be seen since it's an https top-level resource. |
1419 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertTopLevel) { | 1451 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertTopLevel) { |
1420 net::TestServer::HTTPSOptions https_options; | 1452 net::TestServer::HTTPSOptions https_options; |
1421 https_options.request_client_certificate = true; | 1453 https_options.request_client_certificate = true; |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1630 FINAL_STATUS_CANCELLED, | 1662 FINAL_STATUS_CANCELLED, |
1631 1); | 1663 1); |
1632 // Post a task to cancel all the prerenders. | 1664 // Post a task to cancel all the prerenders. |
1633 MessageLoop::current()->PostTask(FROM_HERE, | 1665 MessageLoop::current()->PostTask(FROM_HERE, |
1634 NewRunnableFunction(CancelAllPrerenders, | 1666 NewRunnableFunction(CancelAllPrerenders, |
1635 prerender_manager())); | 1667 prerender_manager())); |
1636 ui_test_utils::RunMessageLoop(); | 1668 ui_test_utils::RunMessageLoop(); |
1637 EXPECT_TRUE(GetPrerenderContents() == NULL); | 1669 EXPECT_TRUE(GetPrerenderContents() == NULL); |
1638 } | 1670 } |
1639 | 1671 |
1640 // Flaky on windows: http://crbug.com/92478 | 1672 // Prerendering and history tests. |
1641 #if defined(OS_WIN) | 1673 // The prerendered page is navigated to in several ways [navigate via |
1642 #define MAYBE_BackToPrerenderedPage DISABLED_BackToPrerenderedPage | 1674 // omnibox, click on link, key-modified click to open in background tab, etc], |
1643 #else | 1675 // followed by a navigation to another page from the prerendered page, followed |
1644 #define MAYBE_BackToPrerenderedPage BackToPrerenderedPage | 1676 // by a back navigation. |
1645 #endif | |
1646 | 1677 |
1647 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, MAYBE_BackToPrerenderedPage) { | 1678 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderNavigateClickGoBack) { |
1648 PrerenderTestURL("files/prerender/prerender_page_with_link.html", | 1679 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
1649 FINAL_STATUS_USED, | 1680 FINAL_STATUS_USED, |
1650 1); | 1681 1); |
1682 NavigateToDestURL(); | |
1683 ClickToNextPageAfterPrerender(browser()); | |
1684 GoBackToPrerender(browser()); | |
1685 } | |
1651 | 1686 |
1652 OpenDestUrlViaClick(); | 1687 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
1688 PrerenderNavigateNavigateGoBack) { | |
1689 PrerenderTestURL("files/prerender/prerender_page_with_link.html", | |
1690 FINAL_STATUS_USED, | |
1691 1); | |
1692 NavigateToDestURL(); | |
1693 NavigateToNextPageAfterPrerender(browser()); | |
1694 GoBackToPrerender(browser()); | |
1695 } | |
1653 | 1696 |
1654 // Click on the link in the page and wait for it to commit | 1697 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickClickGoBack) { |
1655 { | 1698 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
1656 ui_test_utils::WindowedNotificationObserver new_page_observer( | 1699 FINAL_STATUS_USED, |
1657 content::NOTIFICATION_NAV_ENTRY_COMMITTED, | 1700 1); |
1658 NotificationService::AllSources()); | 1701 OpenDestURLViaClick(); |
1659 bool click_link_result = false; | 1702 ClickToNextPageAfterPrerender(browser()); |
1660 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 1703 GoBackToPrerender(browser()); |
1661 browser()->GetSelectedTabContents()->render_view_host(), L"", | 1704 } |
1662 L"window.domAutomationController.send(ClickOpenLink())", | |
1663 &click_link_result)); | |
1664 EXPECT_TRUE(click_link_result); | |
1665 new_page_observer.Wait(); | |
1666 } | |
1667 | 1705 |
1668 // Now, go back to the prerendered page. | 1706 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickNavigateGoBack) { |
1669 { | 1707 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
1670 ui_test_utils::WindowedNotificationObserver back_nav_observer( | 1708 FINAL_STATUS_USED, |
1671 content::NOTIFICATION_NAV_ENTRY_COMMITTED, | 1709 1); |
1672 NotificationService::AllSources()); | 1710 OpenDestURLViaClick(); |
1673 browser()->GoBack(CURRENT_TAB); | 1711 NavigateToNextPageAfterPrerender(browser()); |
1674 back_nav_observer.Wait(); | 1712 GoBackToPrerender(browser()); |
1675 bool original_prerender_page = false; | 1713 } |
1676 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 1714 |
1677 browser()->GetSelectedTabContents()->render_view_host(), L"", | 1715 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
1678 L"window.domAutomationController.send(IsOriginalPrerenderPage())", | 1716 PrerenderClickNewWindowClickGoBack) { |
1679 &original_prerender_page)); | 1717 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
1680 EXPECT_TRUE(original_prerender_page); | 1718 FINAL_STATUS_USED, |
1681 } | 1719 1); |
1720 OpenDestURLViaClickNewWindow(); | |
1721 Browser* new_browser = BrowserList::GetLastActive(); | |
1722 NavigateToNextPageAfterPrerender(new_browser); | |
1723 GoBackToPrerender(new_browser); | |
1724 } | |
1725 | |
1726 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | |
1727 PrerenderClickNewWindowNavigateGoBack) { | |
1728 PrerenderTestURL("files/prerender/prerender_page_with_link.html", | |
1729 FINAL_STATUS_USED, | |
1730 1); | |
1731 OpenDestURLViaClickNewWindow(); | |
1732 Browser* new_browser = BrowserList::GetLastActive(); | |
1733 ClickToNextPageAfterPrerender(new_browser); | |
1734 GoBackToPrerender(new_browser); | |
1735 } | |
1736 | |
1737 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | |
1738 PrerenderClickNewForegroundTabClickGoBack) { | |
1739 PrerenderTestURL("files/prerender/prerender_page_with_link.html", | |
1740 FINAL_STATUS_USED, | |
1741 1); | |
1742 OpenDestURLViaClickNewForegroundTab(); | |
1743 NavigateToNextPageAfterPrerender(browser()); | |
1744 GoBackToPrerender(browser()); | |
1745 } | |
1746 | |
1747 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | |
1748 PrerenderClickNewForegroundTabNavigateGoBack) { | |
1749 PrerenderTestURL("files/prerender/prerender_page_with_link.html", | |
1750 FINAL_STATUS_USED, | |
1751 1); | |
1752 OpenDestURLViaClickNewForegroundTab(); | |
1753 ClickToNextPageAfterPrerender(browser()); | |
1754 GoBackToPrerender(browser()); | |
1755 } | |
1756 | |
1757 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | |
1758 PrerenderClickNewBackgroundTabClickGoBack) { | |
1759 PrerenderTestURL("files/prerender/prerender_page_with_link.html", | |
1760 FINAL_STATUS_USED, | |
1761 1); | |
1762 OpenDestURLViaClickNewBackgroundTab(); | |
1763 // SelectNextTab completes synchronously, in terms of | |
1764 // updating the active index. | |
1765 browser()->SelectNextTab(); | |
1766 NavigateToNextPageAfterPrerender(browser()); | |
1767 GoBackToPrerender(browser()); | |
1768 } | |
1769 | |
1770 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | |
1771 PrerenderClickNewBackgroundTabNavigateGoBack) { | |
1772 PrerenderTestURL("files/prerender/prerender_page_with_link.html", | |
1773 FINAL_STATUS_USED, | |
1774 1); | |
1775 OpenDestURLViaClickNewBackgroundTab(); | |
1776 // SelectNextTab completes synchronously, in terms of | |
1777 // updating the active index. | |
1778 browser()->SelectNextTab(); | |
1779 ClickToNextPageAfterPrerender(browser()); | |
1780 GoBackToPrerender(browser()); | |
1682 } | 1781 } |
1683 | 1782 |
1684 } // namespace prerender | 1783 } // namespace prerender |
OLD | NEW |