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 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
483 url, ORIGIN_OFFLINE, FINAL_STATUS_MANAGER_SHUTDOWN); | 483 url, ORIGIN_OFFLINE, FINAL_STATUS_MANAGER_SHUTDOWN); |
484 std::unique_ptr<PrerenderHandle> prerender_handle( | 484 std::unique_ptr<PrerenderHandle> prerender_handle( |
485 prerender_manager()->AddPrerenderForOffline(url, nullptr, kSize)); | 485 prerender_manager()->AddPrerenderForOffline(url, nullptr, kSize)); |
486 EXPECT_TRUE(prerender_handle); | 486 EXPECT_TRUE(prerender_handle); |
487 EXPECT_TRUE(prerender_handle->IsPrerendering()); | 487 EXPECT_TRUE(prerender_handle->IsPrerendering()); |
488 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 488 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
489 EXPECT_EQ(prerender_contents, prerender_handle->contents()); | 489 EXPECT_EQ(prerender_contents, prerender_handle->contents()); |
490 EXPECT_EQ(ORIGIN_OFFLINE, prerender_handle->contents()->origin()); | 490 EXPECT_EQ(ORIGIN_OFFLINE, prerender_handle->contents()->origin()); |
491 } | 491 } |
492 | 492 |
| 493 // Checks that the prerender mode affects "normal" origins such as omnibox, but |
| 494 // not offline origin. |
| 495 TEST_F(PrerenderTest, PrerenderModePerOrigin) { |
| 496 RestorePrerenderMode restore_prerender_mode; |
| 497 |
| 498 prerender_manager()->SetMode( |
| 499 PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| 500 EXPECT_TRUE(PrerenderManager::IsPrerenderingPossible()); |
| 501 EXPECT_FALSE(PrerenderManager::IsNoStatePrefetch(ORIGIN_OFFLINE)); |
| 502 EXPECT_TRUE(PrerenderManager::IsNoStatePrefetch(ORIGIN_OMNIBOX)); |
| 503 EXPECT_FALSE(PrerenderManager::IsSimpleLoadExperiment(ORIGIN_OFFLINE)); |
| 504 EXPECT_FALSE(PrerenderManager::IsSimpleLoadExperiment(ORIGIN_OMNIBOX)); |
| 505 |
| 506 prerender_manager()->SetMode(PrerenderManager::PRERENDER_MODE_ENABLED); |
| 507 EXPECT_TRUE(PrerenderManager::IsPrerenderingPossible()); |
| 508 EXPECT_FALSE(PrerenderManager::IsNoStatePrefetch(ORIGIN_OFFLINE)); |
| 509 EXPECT_FALSE(PrerenderManager::IsNoStatePrefetch(ORIGIN_OMNIBOX)); |
| 510 EXPECT_FALSE(PrerenderManager::IsSimpleLoadExperiment(ORIGIN_OFFLINE)); |
| 511 EXPECT_FALSE(PrerenderManager::IsSimpleLoadExperiment(ORIGIN_OMNIBOX)); |
| 512 |
| 513 prerender_manager()->SetMode(PrerenderManager::PRERENDER_MODE_DISABLED); |
| 514 EXPECT_FALSE(PrerenderManager::IsPrerenderingPossible()); |
| 515 |
| 516 prerender_manager()->SetMode( |
| 517 PrerenderManager::PRERENDER_MODE_SIMPLE_LOAD_EXPERIMENT); |
| 518 EXPECT_TRUE(PrerenderManager::IsPrerenderingPossible()); |
| 519 EXPECT_FALSE(PrerenderManager::IsNoStatePrefetch(ORIGIN_OFFLINE)); |
| 520 EXPECT_FALSE(PrerenderManager::IsNoStatePrefetch(ORIGIN_OMNIBOX)); |
| 521 EXPECT_FALSE(PrerenderManager::IsSimpleLoadExperiment(ORIGIN_OFFLINE)); |
| 522 EXPECT_TRUE(PrerenderManager::IsSimpleLoadExperiment(ORIGIN_OMNIBOX)); |
| 523 } |
| 524 |
| 525 TEST_F(PrerenderTest, PrerenderRespectsPrerenderModeNoStatePrefetch) { |
| 526 GURL url("http://www.google.com/"); |
| 527 RestorePrerenderMode restore_prerender_mode; |
| 528 |
| 529 prerender_manager()->SetMode( |
| 530 PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| 531 |
| 532 DummyPrerenderContents* prerender_contents = |
| 533 prerender_manager()->CreateNextPrerenderContents( |
| 534 url, FINAL_STATUS_MANAGER_SHUTDOWN); |
| 535 EXPECT_TRUE(AddSimplePrerender(url)); |
| 536 EXPECT_EQ(PREFETCH_ONLY, prerender_contents->prerender_mode()); |
| 537 } |
| 538 |
| 539 TEST_F(PrerenderTest, PrerenderRespectsPrerenderModeSimpleLoad) { |
| 540 GURL url("http://www.google.com/"); |
| 541 RestorePrerenderMode restore_prerender_mode; |
| 542 |
| 543 prerender_manager()->SetMode( |
| 544 PrerenderManager::PRERENDER_MODE_SIMPLE_LOAD_EXPERIMENT); |
| 545 EXPECT_FALSE(AddSimplePrerender(url)); |
| 546 } |
| 547 |
| 548 // Checks that a full prerender happens in offline mode, even if no-state |
| 549 // prefetch is enabled. |
| 550 TEST_F(PrerenderTest, OfflinePrerenderIgnoresPrerenderMode) { |
| 551 GURL url("http://www.google.com/"); |
| 552 RestorePrerenderMode restore_prerender_mode; |
| 553 |
| 554 prerender_manager()->SetMode( |
| 555 PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| 556 |
| 557 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible()); |
| 558 |
| 559 DummyPrerenderContents* prerender_contents = |
| 560 prerender_manager()->CreateNextPrerenderContents( |
| 561 url, ORIGIN_OFFLINE, FINAL_STATUS_MANAGER_SHUTDOWN); |
| 562 std::unique_ptr<PrerenderHandle> prerender_handle( |
| 563 prerender_manager()->AddPrerenderForOffline(url, nullptr, kSize)); |
| 564 EXPECT_EQ(FULL_PRERENDER, prerender_contents->prerender_mode()); |
| 565 } |
| 566 |
493 TEST_F(PrerenderTest, PrerenderDisabledOnLowEndDevice) { | 567 TEST_F(PrerenderTest, PrerenderDisabledOnLowEndDevice) { |
494 GURL url("http://www.google.com/"); | 568 GURL url("http://www.google.com/"); |
495 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible()); | 569 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible()); |
496 prerender_manager()->SetIsLowEndDevice(true); | 570 prerender_manager()->SetIsLowEndDevice(true); |
497 EXPECT_FALSE(AddSimplePrerender(url)); | 571 EXPECT_FALSE(AddSimplePrerender(url)); |
498 } | 572 } |
499 | 573 |
500 TEST_F(PrerenderTest, OfflinePrerenderPossibleOnLowEndDevice) { | 574 TEST_F(PrerenderTest, OfflinePrerenderPossibleOnLowEndDevice) { |
501 GURL url("http://www.google.com/"); | 575 GURL url("http://www.google.com/"); |
502 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible()); | 576 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible()); |
(...skipping 1305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1808 prerender_contents->SetPrerenderMode(PREFETCH_ONLY); | 1882 prerender_contents->SetPrerenderMode(PREFETCH_ONLY); |
1809 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("GET")); | 1883 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("GET")); |
1810 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("HEAD")); | 1884 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("HEAD")); |
1811 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("OPTIONS")); | 1885 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("OPTIONS")); |
1812 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("POST")); | 1886 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("POST")); |
1813 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("TRACE")); | 1887 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("TRACE")); |
1814 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("WHATEVER")); | 1888 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("WHATEVER")); |
1815 } | 1889 } |
1816 | 1890 |
1817 } // namespace prerender | 1891 } // namespace prerender |
OLD | NEW |