Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(362)

Side by Side Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 7729006: Deflake and add more prerender_browsertests focused on back navigation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/test/data/prerender/prerender_loader.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
OLDNEW
« no previous file with comments | « no previous file | chrome/test/data/prerender/prerender_loader.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698