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 <deque> | 5 #include <deque> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 1262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1273 return prerender_manager; | 1273 return prerender_manager; |
1274 } | 1274 } |
1275 | 1275 |
1276 const PrerenderLinkManager* GetPrerenderLinkManager() const { | 1276 const PrerenderLinkManager* GetPrerenderLinkManager() const { |
1277 PrerenderLinkManager* prerender_link_manager = | 1277 PrerenderLinkManager* prerender_link_manager = |
1278 PrerenderLinkManagerFactory::GetForProfile( | 1278 PrerenderLinkManagerFactory::GetForProfile( |
1279 current_browser()->profile()); | 1279 current_browser()->profile()); |
1280 return prerender_link_manager; | 1280 return prerender_link_manager; |
1281 } | 1281 } |
1282 | 1282 |
| 1283 int GetPrerenderEventCount(int index, const std::string& type) const { |
| 1284 int event_count; |
| 1285 std::string expression = base::StringPrintf( |
| 1286 "window.domAutomationController.send(" |
| 1287 " GetPrerenderEventCount(%d, '%s'))", index, type.c_str()); |
| 1288 |
| 1289 CHECK(content::ExecuteScriptAndExtractInt( |
| 1290 GetActiveWebContents(), expression, &event_count)); |
| 1291 return event_count; |
| 1292 } |
| 1293 |
1283 bool DidReceivePrerenderStartEventForLinkNumber(int index) const { | 1294 bool DidReceivePrerenderStartEventForLinkNumber(int index) const { |
1284 bool received_prerender_started; | 1295 return GetPrerenderEventCount(index, "webkitprerenderstart") > 0; |
1285 std::string expression = base::StringPrintf( | |
1286 "window.domAutomationController.send(Boolean(" | |
1287 "receivedPrerenderStartEvents[%d]))", index); | |
1288 | |
1289 CHECK(content::ExecuteScriptAndExtractBool( | |
1290 GetActiveWebContents(), | |
1291 expression, | |
1292 &received_prerender_started)); | |
1293 return received_prerender_started; | |
1294 } | 1296 } |
1295 | 1297 |
1296 int GetPrerenderLoadEventCountForLinkNumber(int index) const { | 1298 int GetPrerenderLoadEventCountForLinkNumber(int index) const { |
1297 int load_event_count; | 1299 return GetPrerenderEventCount(index, "webkitprerenderload"); |
1298 std::string expression = base::StringPrintf( | |
1299 "window.domAutomationController.send(" | |
1300 "receivedPrerenderLoadEvents[%d] || 0)", index); | |
1301 | |
1302 CHECK(content::ExecuteScriptAndExtractInt( | |
1303 GetActiveWebContents(), | |
1304 expression, | |
1305 &load_event_count)); | |
1306 return load_event_count; | |
1307 } | 1300 } |
1308 | 1301 |
1309 int GetPrerenderDomContentLoadedEventCountForLinkNumber(int index) const { | 1302 int GetPrerenderDomContentLoadedEventCountForLinkNumber(int index) const { |
1310 int dom_content_loaded_event_count; | 1303 return GetPrerenderEventCount(index, "webkitprerenderdomcontentloaded"); |
1311 std::string expression = base::StringPrintf( | |
1312 "window.domAutomationController.send(" | |
1313 "receivedPrerenderDomContentLoadedEvents[%d] || 0)", index); | |
1314 | |
1315 CHECK(content::ExecuteScriptAndExtractInt( | |
1316 GetActiveWebContents(), | |
1317 expression, | |
1318 &dom_content_loaded_event_count)); | |
1319 return dom_content_loaded_event_count; | |
1320 } | 1304 } |
1321 | 1305 |
1322 bool DidReceivePrerenderStopEventForLinkNumber(int index) const { | 1306 bool DidReceivePrerenderStopEventForLinkNumber(int index) const { |
1323 bool received_prerender_stopped; | 1307 return GetPrerenderEventCount(index, "webkitprerenderstop") > 0; |
| 1308 } |
| 1309 |
| 1310 void WaitForPrerenderEventCount(int index, |
| 1311 const std::string& type, |
| 1312 int count) const { |
| 1313 int dummy; |
1324 std::string expression = base::StringPrintf( | 1314 std::string expression = base::StringPrintf( |
1325 "window.domAutomationController.send(Boolean(" | 1315 "WaitForPrerenderEventCount(%d, '%s', %d," |
1326 "receivedPrerenderStopEvents[%d]))", index); | 1316 " window.domAutomationController.send.bind(" |
| 1317 " window.domAutomationController, 0))", |
| 1318 index, type.c_str(), count); |
1327 | 1319 |
1328 CHECK(content::ExecuteScriptAndExtractBool( | 1320 CHECK(content::ExecuteScriptAndExtractInt( |
1329 GetActiveWebContents(), | 1321 GetActiveWebContents(), expression, &dummy)); |
1330 expression, | 1322 CHECK_EQ(0, dummy); |
1331 &received_prerender_stopped)); | |
1332 return received_prerender_stopped; | |
1333 } | 1323 } |
1334 | 1324 |
1335 bool HadPrerenderEventErrors() const { | 1325 bool HadPrerenderEventErrors() const { |
1336 bool had_prerender_event_errors; | 1326 bool had_prerender_event_errors; |
1337 CHECK(content::ExecuteScriptAndExtractBool( | 1327 CHECK(content::ExecuteScriptAndExtractBool( |
1338 GetActiveWebContents(), | 1328 GetActiveWebContents(), |
1339 "window.domAutomationController.send(Boolean(" | 1329 "window.domAutomationController.send(Boolean(" |
1340 " hadPrerenderEventErrors))", | 1330 " hadPrerenderEventErrors))", |
1341 &had_prerender_event_errors)); | 1331 &had_prerender_event_errors)); |
1342 return had_prerender_event_errors; | 1332 return had_prerender_event_errors; |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1390 | 1380 |
1391 void SetLoaderHostOverride(const std::string& host) { | 1381 void SetLoaderHostOverride(const std::string& host) { |
1392 loader_host_override_ = host; | 1382 loader_host_override_ = host; |
1393 host_resolver()->AddRule(host, "127.0.0.1"); | 1383 host_resolver()->AddRule(host, "127.0.0.1"); |
1394 } | 1384 } |
1395 | 1385 |
1396 void set_loader_path(const std::string& path) { | 1386 void set_loader_path(const std::string& path) { |
1397 loader_path_ = path; | 1387 loader_path_ = path; |
1398 } | 1388 } |
1399 | 1389 |
1400 void set_loader_query_and_fragment(const std::string& query_and_fragment) { | 1390 void set_loader_query(const std::string& query) { |
1401 loader_query_and_fragment_ = query_and_fragment; | 1391 loader_query_ = query; |
1402 } | 1392 } |
1403 | 1393 |
1404 GURL GetCrossDomainTestUrl(const std::string& path) { | 1394 GURL GetCrossDomainTestUrl(const std::string& path) { |
1405 static const std::string secondary_domain = "www.foo.com"; | 1395 static const std::string secondary_domain = "www.foo.com"; |
1406 host_resolver()->AddRule(secondary_domain, "127.0.0.1"); | 1396 host_resolver()->AddRule(secondary_domain, "127.0.0.1"); |
1407 std::string url_str(base::StringPrintf( | 1397 std::string url_str(base::StringPrintf( |
1408 "http://%s:%d/%s", | 1398 "http://%s:%d/%s", |
1409 secondary_domain.c_str(), | 1399 secondary_domain.c_str(), |
1410 test_server()->host_port_pair().port(), | 1400 test_server()->host_port_pair().port(), |
1411 path.c_str())); | 1401 path.c_str())); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1487 make_pair("REPLACE_WITH_PRERENDER_URL", prerender_url.spec())); | 1477 make_pair("REPLACE_WITH_PRERENDER_URL", prerender_url.spec())); |
1488 std::string replacement_path; | 1478 std::string replacement_path; |
1489 CHECK(net::SpawnedTestServer::GetFilePathWithReplacements( | 1479 CHECK(net::SpawnedTestServer::GetFilePathWithReplacements( |
1490 loader_path_, | 1480 loader_path_, |
1491 replacement_text, | 1481 replacement_text, |
1492 &replacement_path)); | 1482 &replacement_path)); |
1493 | 1483 |
1494 const net::SpawnedTestServer* src_server = test_server(); | 1484 const net::SpawnedTestServer* src_server = test_server(); |
1495 if (https_src_server_) | 1485 if (https_src_server_) |
1496 src_server = https_src_server_.get(); | 1486 src_server = https_src_server_.get(); |
1497 GURL loader_url = src_server->GetURL(replacement_path + | 1487 GURL loader_url = src_server->GetURL( |
1498 loader_query_and_fragment_); | 1488 replacement_path + "&" + loader_query_); |
1499 | 1489 |
1500 GURL::Replacements loader_replacements; | 1490 GURL::Replacements loader_replacements; |
1501 if (!loader_host_override_.empty()) | 1491 if (!loader_host_override_.empty()) |
1502 loader_replacements.SetHostStr(loader_host_override_); | 1492 loader_replacements.SetHostStr(loader_host_override_); |
1503 loader_url = loader_url.ReplaceComponents(loader_replacements); | 1493 loader_url = loader_url.ReplaceComponents(loader_replacements); |
1504 | 1494 |
1505 VLOG(1) << "Running test with queue length " << | 1495 VLOG(1) << "Running test with queue length " << |
1506 expected_final_status_queue.size(); | 1496 expected_final_status_queue.size(); |
1507 CHECK(!expected_final_status_queue.empty()); | 1497 CHECK(!expected_final_status_queue.empty()); |
1508 ScopedVector<TestPrerender> prerenders; | 1498 ScopedVector<TestPrerender> prerenders; |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1610 #if defined(FULL_SAFE_BROWSING) | 1600 #if defined(FULL_SAFE_BROWSING) |
1611 scoped_ptr<TestSafeBrowsingServiceFactory> safe_browsing_factory_; | 1601 scoped_ptr<TestSafeBrowsingServiceFactory> safe_browsing_factory_; |
1612 #endif | 1602 #endif |
1613 NeverRunsExternalProtocolHandlerDelegate external_protocol_handler_delegate_; | 1603 NeverRunsExternalProtocolHandlerDelegate external_protocol_handler_delegate_; |
1614 GURL dest_url_; | 1604 GURL dest_url_; |
1615 scoped_ptr<net::SpawnedTestServer> https_src_server_; | 1605 scoped_ptr<net::SpawnedTestServer> https_src_server_; |
1616 bool call_javascript_; | 1606 bool call_javascript_; |
1617 bool check_load_events_; | 1607 bool check_load_events_; |
1618 std::string loader_host_override_; | 1608 std::string loader_host_override_; |
1619 std::string loader_path_; | 1609 std::string loader_path_; |
1620 std::string loader_query_and_fragment_; | 1610 std::string loader_query_; |
1621 Browser* explicitly_set_browser_; | 1611 Browser* explicitly_set_browser_; |
1622 }; | 1612 }; |
1623 | 1613 |
1624 // Checks that a page is correctly prerendered in the case of a | 1614 // Checks that a page is correctly prerendered in the case of a |
1625 // <link rel=prerender> tag and then loaded into a tab in response to a | 1615 // <link rel=prerender> tag and then loaded into a tab in response to a |
1626 // navigation. | 1616 // navigation. |
1627 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPage) { | 1617 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPage) { |
1628 UMAHistogramHelper histograms; | 1618 UMAHistogramHelper histograms; |
1629 | 1619 |
1630 PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1); | 1620 PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1); |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1717 | 1707 |
1718 EXPECT_FALSE(DidReceivePrerenderStartEventForLinkNumber(1)); | 1708 EXPECT_FALSE(DidReceivePrerenderStartEventForLinkNumber(1)); |
1719 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); | 1709 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); |
1720 EXPECT_FALSE(HadPrerenderEventErrors()); | 1710 EXPECT_FALSE(HadPrerenderEventErrors()); |
1721 // IsEmptyPrerenderLinkManager() is not racy because the earlier DidReceive* | 1711 // IsEmptyPrerenderLinkManager() is not racy because the earlier DidReceive* |
1722 // calls did a thread/process hop to the renderer which insured pending | 1712 // calls did a thread/process hop to the renderer which insured pending |
1723 // renderer events have arrived. | 1713 // renderer events have arrived. |
1724 ASSERT_TRUE(IsEmptyPrerenderLinkManager()); | 1714 ASSERT_TRUE(IsEmptyPrerenderLinkManager()); |
1725 } | 1715 } |
1726 | 1716 |
1727 // Flaky, http://crbug.com/167340. | 1717 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPageRemovingLink) { |
1728 IN_PROC_BROWSER_TEST_F( | 1718 scoped_ptr<TestPrerender> prerender = |
1729 PrerenderBrowserTest, DISABLED_PrerenderPageRemovingLink) { | 1719 PrerenderTestURL("files/prerender/prerender_page.html", |
1730 set_loader_path("files/prerender/prerender_loader_removing_links.html"); | 1720 FINAL_STATUS_CANCELLED, 1); |
1731 set_loader_query_and_fragment("?links_to_insert=1"); | |
1732 PrerenderTestURL("files/prerender/prerender_page.html", | |
1733 FINAL_STATUS_CANCELLED, 1); | |
1734 | 1721 |
1735 // No ChannelDestructionWatcher is needed here, since prerenders in the | 1722 // No ChannelDestructionWatcher is needed here, since prerenders in the |
1736 // PrerenderLinkManager should be deleted by removing the links, rather than | 1723 // PrerenderLinkManager should be deleted by removing the links, rather than |
1737 // shutting down the renderer process. | 1724 // shutting down the renderer process. |
1738 RemoveLinkElement(0); | 1725 RemoveLinkElement(0); |
| 1726 prerender->WaitForStop(); |
| 1727 |
1739 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); | 1728 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); |
1740 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0)); | 1729 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0)); |
1741 EXPECT_FALSE(HadPrerenderEventErrors()); | 1730 EXPECT_FALSE(HadPrerenderEventErrors()); |
1742 // IsEmptyPrerenderLinkManager() is not racy because the earlier DidReceive* | 1731 // IsEmptyPrerenderLinkManager() is not racy because the earlier DidReceive* |
1743 // calls did a thread/process hop to the renderer which insured pending | 1732 // calls did a thread/process hop to the renderer which insured pending |
1744 // renderer events have arrived. | 1733 // renderer events have arrived. |
1745 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); | 1734 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); |
1746 } | 1735 } |
1747 | 1736 |
1748 // Flaky, http://crbug.com/167340. | |
1749 IN_PROC_BROWSER_TEST_F( | 1737 IN_PROC_BROWSER_TEST_F( |
1750 PrerenderBrowserTest, DISABLED_PrerenderPageRemovingLinkWithTwoLinks) { | 1738 PrerenderBrowserTest, PrerenderPageRemovingLinkWithTwoLinks) { |
1751 GetPrerenderManager()->mutable_config().max_link_concurrency = 2; | 1739 GetPrerenderManager()->mutable_config().max_link_concurrency = 2; |
1752 GetPrerenderManager()->mutable_config().max_link_concurrency_per_launcher = 2; | 1740 GetPrerenderManager()->mutable_config().max_link_concurrency_per_launcher = 2; |
1753 | 1741 |
1754 set_loader_path("files/prerender/prerender_loader_removing_links.html"); | 1742 set_loader_query("links_to_insert=2"); |
1755 set_loader_query_and_fragment("?links_to_insert=2"); | 1743 scoped_ptr<TestPrerender> prerender = |
1756 PrerenderTestURL("files/prerender/prerender_page.html", | 1744 PrerenderTestURL("files/prerender/prerender_page.html", |
1757 FINAL_STATUS_CANCELLED, 1); | 1745 FINAL_STATUS_CANCELLED, 1); |
1758 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); | 1746 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); |
1759 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0)); | 1747 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0)); |
1760 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1)); | 1748 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1)); |
1761 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); | 1749 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); |
1762 | 1750 |
1763 RemoveLinkElement(0); | 1751 RemoveLinkElement(0); |
1764 RemoveLinkElement(1); | 1752 RemoveLinkElement(1); |
| 1753 prerender->WaitForStop(); |
| 1754 |
1765 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); | 1755 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); |
1766 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0)); | 1756 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0)); |
1767 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1)); | 1757 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1)); |
| 1758 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); |
| 1759 EXPECT_FALSE(HadPrerenderEventErrors()); |
| 1760 // IsEmptyPrerenderLinkManager() is not racy because the earlier DidReceive* |
| 1761 // calls did a thread/process hop to the renderer which insured pending |
| 1762 // renderer events have arrived. |
| 1763 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); |
| 1764 } |
| 1765 |
| 1766 IN_PROC_BROWSER_TEST_F( |
| 1767 PrerenderBrowserTest, PrerenderPageRemovingLinkWithTwoLinksOneLate) { |
| 1768 GetPrerenderManager()->mutable_config().max_link_concurrency = 2; |
| 1769 GetPrerenderManager()->mutable_config().max_link_concurrency_per_launcher = 2; |
| 1770 |
| 1771 GURL url = test_server()->GetURL("files/prerender/prerender_page.html"); |
| 1772 scoped_ptr<TestPrerender> prerender = |
| 1773 PrerenderTestURL(url, FINAL_STATUS_CANCELLED, 1); |
| 1774 |
| 1775 // Add a second prerender for the same link. It reuses the prerender, so only |
| 1776 // the start event fires here. |
| 1777 AddPrerender(url, 1); |
| 1778 WaitForPrerenderEventCount(1, "webkitprerenderstart", 1); |
| 1779 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1)); |
| 1780 EXPECT_EQ(0, GetPrerenderLoadEventCountForLinkNumber(1)); |
| 1781 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); |
| 1782 |
| 1783 RemoveLinkElement(0); |
| 1784 RemoveLinkElement(1); |
| 1785 prerender->WaitForStop(); |
| 1786 |
| 1787 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); |
| 1788 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0)); |
| 1789 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1)); |
1768 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); | 1790 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); |
1769 EXPECT_FALSE(HadPrerenderEventErrors()); | 1791 EXPECT_FALSE(HadPrerenderEventErrors()); |
1770 // IsEmptyPrerenderLinkManager() is not racy because the earlier DidReceive* | 1792 // IsEmptyPrerenderLinkManager() is not racy because the earlier DidReceive* |
1771 // calls did a thread/process hop to the renderer which insured pending | 1793 // calls did a thread/process hop to the renderer which insured pending |
1772 // renderer events have arrived. | 1794 // renderer events have arrived. |
1773 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); | 1795 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); |
1774 } | 1796 } |
1775 | 1797 |
1776 #if defined(OS_WIN) | |
1777 // TODO(gavinp): Fails on XP Rel - http://crbug.com/128841 | |
1778 #define MAYBE_PrerenderPageRemovingLinkWithTwoLinksRemovingOne \ | |
1779 DISABLED_PrerenderPageRemovingLinkWithTwoLinksRemovingOne | |
1780 #else | |
1781 #define MAYBE_PrerenderPageRemovingLinkWithTwoLinksRemovingOne \ | |
1782 PrerenderPageRemovingLinkWithTwoLinksRemovingOne | |
1783 #endif // defined(OS_WIN) | |
1784 IN_PROC_BROWSER_TEST_F( | 1798 IN_PROC_BROWSER_TEST_F( |
1785 PrerenderBrowserTest, | 1799 PrerenderBrowserTest, |
1786 MAYBE_PrerenderPageRemovingLinkWithTwoLinksRemovingOne) { | 1800 PrerenderPageRemovingLinkWithTwoLinksRemovingOne) { |
1787 GetPrerenderManager()->mutable_config().max_link_concurrency = 2; | 1801 GetPrerenderManager()->mutable_config().max_link_concurrency = 2; |
1788 GetPrerenderManager()->mutable_config().max_link_concurrency_per_launcher = 2; | 1802 GetPrerenderManager()->mutable_config().max_link_concurrency_per_launcher = 2; |
1789 set_loader_path("files/prerender/prerender_loader_removing_links.html"); | 1803 set_loader_query("links_to_insert=2"); |
1790 set_loader_query_and_fragment("?links_to_insert=2"); | |
1791 PrerenderTestURL("files/prerender/prerender_page.html", | 1804 PrerenderTestURL("files/prerender/prerender_page.html", |
1792 FINAL_STATUS_USED, 1); | 1805 FINAL_STATUS_USED, 1); |
1793 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); | 1806 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); |
1794 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0)); | 1807 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0)); |
1795 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1)); | 1808 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1)); |
1796 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); | 1809 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); |
1797 | 1810 |
1798 RemoveLinkElement(0); | 1811 RemoveLinkElement(0); |
1799 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); | 1812 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); |
1800 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0)); | 1813 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0)); |
(...skipping 2267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4068 } | 4081 } |
4069 }; | 4082 }; |
4070 | 4083 |
4071 // Checks that prerendering works in incognito mode. | 4084 // Checks that prerendering works in incognito mode. |
4072 IN_PROC_BROWSER_TEST_F(PrerenderIncognitoBrowserTest, PrerenderIncognito) { | 4085 IN_PROC_BROWSER_TEST_F(PrerenderIncognitoBrowserTest, PrerenderIncognito) { |
4073 PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1); | 4086 PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1); |
4074 NavigateToDestURL(); | 4087 NavigateToDestURL(); |
4075 } | 4088 } |
4076 | 4089 |
4077 } // namespace prerender | 4090 } // namespace prerender |
OLD | NEW |