| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 420 | 420 |
| 421 TEST_F(PrerenderTest, PrerenderRespectsThirdPartyCookiesPref) { | 421 TEST_F(PrerenderTest, PrerenderRespectsThirdPartyCookiesPref) { |
| 422 GURL url("http://www.google.com/"); | 422 GURL url("http://www.google.com/"); |
| 423 RestorePrerenderMode restore_prerender_mode; | 423 RestorePrerenderMode restore_prerender_mode; |
| 424 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible()); | 424 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible()); |
| 425 | 425 |
| 426 profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true); | 426 profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true); |
| 427 EXPECT_FALSE(AddSimplePrerender(url)); | 427 EXPECT_FALSE(AddSimplePrerender(url)); |
| 428 } | 428 } |
| 429 | 429 |
| 430 TEST_F(PrerenderTest, OfflinePrerenderIgnoresThirdPartyCookiesPref) { |
| 431 GURL url("http://www.google.com/"); |
| 432 RestorePrerenderMode restore_prerender_mode; |
| 433 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible()); |
| 434 |
| 435 profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true); |
| 436 DummyPrerenderContents* prerender_contents = |
| 437 prerender_manager()->CreateNextPrerenderContents( |
| 438 url, ORIGIN_OFFLINE, FINAL_STATUS_MANAGER_SHUTDOWN); |
| 439 scoped_ptr<PrerenderHandle> prerender_handle( |
| 440 prerender_manager()->AddPrerenderForOffline(url, nullptr, kSize)); |
| 441 EXPECT_TRUE(prerender_handle); |
| 442 EXPECT_TRUE(prerender_handle->IsPrerendering()); |
| 443 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 444 EXPECT_EQ(prerender_contents, prerender_handle->contents()); |
| 445 EXPECT_EQ(ORIGIN_OFFLINE, prerender_handle->contents()->origin()); |
| 446 } |
| 447 |
| 430 TEST_F(PrerenderTest, FoundTest) { | 448 TEST_F(PrerenderTest, FoundTest) { |
| 431 GURL url("http://www.google.com/"); | 449 GURL url("http://www.google.com/"); |
| 432 DummyPrerenderContents* prerender_contents = | 450 DummyPrerenderContents* prerender_contents = |
| 433 prerender_manager()->CreateNextPrerenderContents( | 451 prerender_manager()->CreateNextPrerenderContents( |
| 434 url, | 452 url, |
| 435 FINAL_STATUS_USED); | 453 FINAL_STATUS_USED); |
| 436 EXPECT_TRUE(AddSimplePrerender(url)); | 454 EXPECT_TRUE(AddSimplePrerender(url)); |
| 437 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 455 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 438 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); | 456 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); |
| 439 } | 457 } |
| 440 | 458 |
| 459 TEST_F(PrerenderTest, UnfindableOfflinePrerenderTest) { |
| 460 GURL url("http://www.google.com/"); |
| 461 DummyPrerenderContents* prerender_contents = |
| 462 prerender_manager()->CreateNextPrerenderContents( |
| 463 url, ORIGIN_OFFLINE, FINAL_STATUS_MANAGER_SHUTDOWN); |
| 464 scoped_ptr<PrerenderHandle> prerender_handle( |
| 465 prerender_manager()->AddPrerenderForOffline(url, nullptr, kSize)); |
| 466 EXPECT_TRUE(prerender_handle); |
| 467 EXPECT_TRUE(prerender_handle->IsPrerendering()); |
| 468 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 469 ASSERT_EQ(nullptr, prerender_manager()->FindAndUseEntry(url)); |
| 470 } |
| 471 |
| 441 // Make sure that if queue a request, and a second prerender request for the | 472 // Make sure that if queue a request, and a second prerender request for the |
| 442 // same URL comes in, that the second request attaches to the first prerender, | 473 // same URL comes in, that the second request attaches to the first prerender, |
| 443 // and we don't use the second prerender contents. | 474 // and we don't use the second prerender contents. |
| 444 TEST_F(PrerenderTest, DuplicateTest) { | 475 TEST_F(PrerenderTest, DuplicateTest) { |
| 445 SetConcurrency(2); | 476 SetConcurrency(2); |
| 446 GURL url("http://www.google.com/"); | 477 GURL url("http://www.google.com/"); |
| 447 DummyPrerenderContents* prerender_contents = | 478 DummyPrerenderContents* prerender_contents = |
| 448 prerender_manager()->CreateNextPrerenderContents( | 479 prerender_manager()->CreateNextPrerenderContents( |
| 449 url, | 480 url, |
| 450 FINAL_STATUS_USED); | 481 FINAL_STATUS_USED); |
| (...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1104 url, | 1135 url, |
| 1105 ORIGIN_EXTERNAL_REQUEST, | 1136 ORIGIN_EXTERNAL_REQUEST, |
| 1106 FINAL_STATUS_MANAGER_SHUTDOWN); | 1137 FINAL_STATUS_MANAGER_SHUTDOWN); |
| 1107 std::unique_ptr<PrerenderHandle> prerender_handle( | 1138 std::unique_ptr<PrerenderHandle> prerender_handle( |
| 1108 prerender_manager()->AddPrerenderFromExternalRequest( | 1139 prerender_manager()->AddPrerenderFromExternalRequest( |
| 1109 url, content::Referrer(), nullptr, kSize)); | 1140 url, content::Referrer(), nullptr, kSize)); |
| 1110 EXPECT_FALSE(prerender_handle); | 1141 EXPECT_FALSE(prerender_handle); |
| 1111 EXPECT_FALSE(prerender_contents->prerendering_has_started()); | 1142 EXPECT_FALSE(prerender_contents->prerendering_has_started()); |
| 1112 } | 1143 } |
| 1113 | 1144 |
| 1114 TEST_F(PrerenderTest,PrerenderAllowedOnCellularWithForcedOrigin) { | 1145 TEST_F(PrerenderTest, PrerenderAllowedForOfflineAndForcedCellular) { |
| 1146 const Origin origins[] = { |
| 1147 ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR, |
| 1148 ORIGIN_OFFLINE, |
| 1149 }; |
| 1150 |
| 1115 EnablePrerender(); | 1151 EnablePrerender(); |
| 1116 std::unique_ptr<net::NetworkChangeNotifier> mock( | 1152 std::unique_ptr<net::NetworkChangeNotifier> mock( |
| 1117 new MockNetworkChangeNotifier4G); | 1153 new MockNetworkChangeNotifier4G); |
| 1118 EXPECT_TRUE(net::NetworkChangeNotifier::IsConnectionCellular( | 1154 EXPECT_TRUE(net::NetworkChangeNotifier::IsConnectionCellular( |
| 1119 net::NetworkChangeNotifier::GetConnectionType())); | 1155 net::NetworkChangeNotifier::GetConnectionType())); |
| 1120 GURL url("http://www.google.com/"); | 1156 GURL url("http://www.google.com/"); |
| 1121 DummyPrerenderContents* prerender_contents = | 1157 for (Origin origin: origins) { |
| 1122 prerender_manager()->CreateNextPrerenderContents( | 1158 DummyPrerenderContents* prerender_contents = |
| 1123 url, | 1159 prerender_manager()->CreateNextPrerenderContents( |
| 1124 ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR, | 1160 url, origin, FINAL_STATUS_USED); |
| 1125 FINAL_STATUS_USED); | 1161 scoped_ptr<PrerenderHandle> prerender_handle; |
| 1126 std::unique_ptr<PrerenderHandle> prerender_handle( | 1162 if (origin == ORIGIN_OFFLINE) {( |
| 1127 prerender_manager()->AddPrerenderOnCellularFromExternalRequest( | 1163 prerender_handle.reset(prerender_manager()->AddPrerenderForOffline( |
| 1128 url, content::Referrer(), nullptr, kSize)); | 1164 url, nullptr, kSize))); |
| 1129 EXPECT_TRUE(prerender_handle); | 1165 } else {( |
| 1130 EXPECT_TRUE(prerender_handle->IsPrerendering()); | 1166 prerender_handle.reset( |
| 1131 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 1167 prerender_manager()->AddPrerenderOnCellularFromExternalRequest( |
| 1132 EXPECT_EQ(prerender_contents, prerender_handle->contents()); | 1168 url, content::Referrer(), nullptr, kSize))); |
| 1133 EXPECT_EQ(ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR, | 1169 } |
| 1134 prerender_handle->contents()->origin()); | 1170 EXPECT_TRUE(prerender_handle); |
| 1135 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); | 1171 EXPECT_TRUE(prerender_handle->IsPrerendering()); |
| 1172 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 1173 EXPECT_EQ(prerender_contents, prerender_handle->contents()); |
| 1174 EXPECT_EQ(origin, prerender_handle->contents()->origin()); |
| 1175 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); |
| 1176 } |
| 1136 } | 1177 } |
| 1137 | 1178 |
| 1138 TEST_F(PrerenderTest, LinkManagerCancel) { | 1179 TEST_F(PrerenderTest, LinkManagerCancel) { |
| 1139 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); | 1180 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); |
| 1140 GURL url("http://www.myexample.com"); | 1181 GURL url("http://www.myexample.com"); |
| 1141 DummyPrerenderContents* prerender_contents = | 1182 DummyPrerenderContents* prerender_contents = |
| 1142 prerender_manager()->CreateNextPrerenderContents( | 1183 prerender_manager()->CreateNextPrerenderContents( |
| 1143 url, FINAL_STATUS_CANCELLED); | 1184 url, FINAL_STATUS_CANCELLED); |
| 1144 | 1185 |
| 1145 EXPECT_TRUE(AddSimplePrerender(url)); | 1186 EXPECT_TRUE(AddSimplePrerender(url)); |
| (...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1656 CHECK(prerender_handle.get()); | 1697 CHECK(prerender_handle.get()); |
| 1657 EXPECT_TRUE(prerender_handle->IsPrerendering()); | 1698 EXPECT_TRUE(prerender_handle->IsPrerendering()); |
| 1658 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 1699 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 1659 EXPECT_EQ(prerender_contents, prerender_handle->contents()); | 1700 EXPECT_EQ(prerender_contents, prerender_handle->contents()); |
| 1660 EXPECT_EQ(ORIGIN_INSTANT, prerender_handle->contents()->origin()); | 1701 EXPECT_EQ(ORIGIN_INSTANT, prerender_handle->contents()->origin()); |
| 1661 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); | 1702 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); |
| 1662 EXPECT_FALSE(prerender_handle->IsPrerendering()); | 1703 EXPECT_FALSE(prerender_handle->IsPrerendering()); |
| 1663 } | 1704 } |
| 1664 | 1705 |
| 1665 } // namespace prerender | 1706 } // namespace prerender |
| OLD | NEW |