| 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 1323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1334 // forced-cellular prerendering. | 1334 // forced-cellular prerendering. |
| 1335 TEST_F(PrerenderTest, PrerenderSilenceAllowsForcedCellular) { | 1335 TEST_F(PrerenderTest, PrerenderSilenceAllowsForcedCellular) { |
| 1336 // Set the time to 30 seconds before the experiment expires. | 1336 // Set the time to 30 seconds before the experiment expires. |
| 1337 ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( | 1337 ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
| 1338 "PrerenderSilence", "ExperimentYes_expires_2016-12-20T00:01:00Z")); | 1338 "PrerenderSilence", "ExperimentYes_expires_2016-12-20T00:01:00Z")); |
| 1339 ASSERT_TRUE(OverridePrerenderManagerTime("2016-12-20T00:00:30Z", | 1339 ASSERT_TRUE(OverridePrerenderManagerTime("2016-12-20T00:00:30Z", |
| 1340 prerender_manager())); | 1340 prerender_manager())); |
| 1341 GURL url("http://www.google.com/"); | 1341 GURL url("http://www.google.com/"); |
| 1342 DummyPrerenderContents* prerender_contents = | 1342 DummyPrerenderContents* prerender_contents = |
| 1343 prerender_manager()->CreateNextPrerenderContents( | 1343 prerender_manager()->CreateNextPrerenderContents( |
| 1344 url, ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR, | 1344 url, ORIGIN_EXTERNAL_REQUEST_FORCED_PRERENDER, |
| 1345 FINAL_STATUS_MANAGER_SHUTDOWN); | 1345 FINAL_STATUS_MANAGER_SHUTDOWN); |
| 1346 std::unique_ptr<PrerenderHandle> prerender_handle = | 1346 std::unique_ptr<PrerenderHandle> prerender_handle = |
| 1347 prerender_manager()->AddPrerenderOnCellularFromExternalRequest( | 1347 prerender_manager()->AddForcedPrerenderFromExternalRequest( |
| 1348 url, content::Referrer(), nullptr, gfx::Rect(kSize)); | 1348 url, content::Referrer(), nullptr, gfx::Rect(kSize)); |
| 1349 EXPECT_TRUE(prerender_handle); | 1349 EXPECT_TRUE(prerender_handle); |
| 1350 EXPECT_TRUE(prerender_handle->IsPrerendering()); | 1350 EXPECT_TRUE(prerender_handle->IsPrerendering()); |
| 1351 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 1351 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 1352 EXPECT_EQ(prerender_contents, prerender_handle->contents()); | 1352 EXPECT_EQ(prerender_contents, prerender_handle->contents()); |
| 1353 EXPECT_EQ(ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR, | 1353 EXPECT_EQ(ORIGIN_EXTERNAL_REQUEST_FORCED_PRERENDER, |
| 1354 prerender_handle->contents()->origin()); | 1354 prerender_handle->contents()->origin()); |
| 1355 } | 1355 } |
| 1356 | 1356 |
| 1357 // Checks that the "PrerenderSilence" experiment disables prerendering and | 1357 // Checks that the "PrerenderSilence" experiment disables prerendering and |
| 1358 // re-enables it after expiration. | 1358 // re-enables it after expiration. |
| 1359 TEST_F(PrerenderTest, PrerenderSilenceDisallowsNonOffline) { | 1359 TEST_F(PrerenderTest, PrerenderSilenceDisallowsNonOffline) { |
| 1360 ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( | 1360 ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
| 1361 "PrerenderSilence", "ExperimentYes_expires_2016-12-20T00:02:00Z")); | 1361 "PrerenderSilence", "ExperimentYes_expires_2016-12-20T00:02:00Z")); |
| 1362 Origin prerender_silence_origins[] = { | 1362 Origin prerender_silence_origins[] = { |
| 1363 ORIGIN_GWS_PRERENDER, | 1363 ORIGIN_GWS_PRERENDER, |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1399 prerender_manager()->CreateNextPrerenderContents(url, FINAL_STATUS_USED); | 1399 prerender_manager()->CreateNextPrerenderContents(url, FINAL_STATUS_USED); |
| 1400 EXPECT_TRUE(AddSimplePrerender(url)); | 1400 EXPECT_TRUE(AddSimplePrerender(url)); |
| 1401 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 1401 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 1402 std::unique_ptr<PrerenderContents> entry = | 1402 std::unique_ptr<PrerenderContents> entry = |
| 1403 prerender_manager()->FindAndUseEntry(url); | 1403 prerender_manager()->FindAndUseEntry(url); |
| 1404 ASSERT_EQ(prerender_contents, entry.get()); | 1404 ASSERT_EQ(prerender_contents, entry.get()); |
| 1405 } | 1405 } |
| 1406 | 1406 |
| 1407 TEST_F(PrerenderTest, PrerenderAllowedForOfflineAndForcedCellular) { | 1407 TEST_F(PrerenderTest, PrerenderAllowedForOfflineAndForcedCellular) { |
| 1408 const Origin origins[] = { | 1408 const Origin origins[] = { |
| 1409 ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR, | 1409 ORIGIN_EXTERNAL_REQUEST_FORCED_PRERENDER, ORIGIN_OFFLINE, |
| 1410 ORIGIN_OFFLINE, | |
| 1411 }; | 1410 }; |
| 1412 | 1411 |
| 1413 EnablePrerender(); | 1412 EnablePrerender(); |
| 1414 std::unique_ptr<net::NetworkChangeNotifier> mock( | 1413 std::unique_ptr<net::NetworkChangeNotifier> mock( |
| 1415 new MockNetworkChangeNotifier4G); | 1414 new MockNetworkChangeNotifier4G); |
| 1416 EXPECT_TRUE(net::NetworkChangeNotifier::IsConnectionCellular( | 1415 EXPECT_TRUE(net::NetworkChangeNotifier::IsConnectionCellular( |
| 1417 net::NetworkChangeNotifier::GetConnectionType())); | 1416 net::NetworkChangeNotifier::GetConnectionType())); |
| 1418 GURL url("http://www.google.com/"); | 1417 GURL url("http://www.google.com/"); |
| 1419 for (const Origin& origin : origins) { | 1418 for (const Origin& origin : origins) { |
| 1420 DummyPrerenderContents* prerender_contents = nullptr; | 1419 DummyPrerenderContents* prerender_contents = nullptr; |
| 1421 std::unique_ptr<PrerenderHandle> prerender_handle; | 1420 std::unique_ptr<PrerenderHandle> prerender_handle; |
| 1422 if (origin == ORIGIN_OFFLINE) { | 1421 if (origin == ORIGIN_OFFLINE) { |
| 1423 prerender_contents = prerender_manager()->CreateNextPrerenderContents( | 1422 prerender_contents = prerender_manager()->CreateNextPrerenderContents( |
| 1424 url, origin, FINAL_STATUS_MANAGER_SHUTDOWN); | 1423 url, origin, FINAL_STATUS_MANAGER_SHUTDOWN); |
| 1425 prerender_handle = | 1424 prerender_handle = |
| 1426 prerender_manager()->AddPrerenderForOffline(url, nullptr, kSize); | 1425 prerender_manager()->AddPrerenderForOffline(url, nullptr, kSize); |
| 1427 } else { | 1426 } else { |
| 1428 prerender_contents = prerender_manager()->CreateNextPrerenderContents( | 1427 prerender_contents = prerender_manager()->CreateNextPrerenderContents( |
| 1429 url, origin, FINAL_STATUS_USED); | 1428 url, origin, FINAL_STATUS_USED); |
| 1430 prerender_handle = | 1429 prerender_handle = |
| 1431 prerender_manager()->AddPrerenderOnCellularFromExternalRequest( | 1430 prerender_manager()->AddForcedPrerenderFromExternalRequest( |
| 1432 url, content::Referrer(), nullptr, gfx::Rect(kSize)); | 1431 url, content::Referrer(), nullptr, gfx::Rect(kSize)); |
| 1433 } | 1432 } |
| 1434 EXPECT_TRUE(prerender_handle); | 1433 EXPECT_TRUE(prerender_handle); |
| 1435 EXPECT_TRUE(prerender_handle->IsPrerendering()); | 1434 EXPECT_TRUE(prerender_handle->IsPrerendering()); |
| 1436 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 1435 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 1437 EXPECT_EQ(prerender_contents, prerender_handle->contents()); | 1436 EXPECT_EQ(prerender_contents, prerender_handle->contents()); |
| 1438 EXPECT_EQ(origin, prerender_handle->contents()->origin()); | 1437 EXPECT_EQ(origin, prerender_handle->contents()->origin()); |
| 1439 if (origin != ORIGIN_OFFLINE) { | 1438 if (origin != ORIGIN_OFFLINE) { |
| 1440 std::unique_ptr<PrerenderContents> entry = | 1439 std::unique_ptr<PrerenderContents> entry = |
| 1441 prerender_manager()->FindAndUseEntry(url); | 1440 prerender_manager()->FindAndUseEntry(url); |
| (...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1994 prerender_contents->SetPrerenderMode(PREFETCH_ONLY); | 1993 prerender_contents->SetPrerenderMode(PREFETCH_ONLY); |
| 1995 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("GET")); | 1994 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("GET")); |
| 1996 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("HEAD")); | 1995 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("HEAD")); |
| 1997 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("OPTIONS")); | 1996 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("OPTIONS")); |
| 1998 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("POST")); | 1997 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("POST")); |
| 1999 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("TRACE")); | 1998 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("TRACE")); |
| 2000 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("WHATEVER")); | 1999 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("WHATEVER")); |
| 2001 } | 2000 } |
| 2002 | 2001 |
| 2003 } // namespace prerender | 2002 } // namespace prerender |
| OLD | NEW |