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

Side by Side Diff: chrome/browser/prerender/prerender_unittest.cc

Issue 2580753005: Disable No-State prefetch for offline origins. (Closed)
Patch Set: Created 4 years 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
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698