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

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: Add comment 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("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
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
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
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
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