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

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

Issue 2197663002: Prerender: Allow on low end devices for ORIGIN_OFFLINE (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 months 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
« no previous file with comments | « chrome/browser/prerender/prerender_manager_factory.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/format_macros.h" 12 #include "base/format_macros.h"
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "base/memory/ptr_util.h" 14 #include "base/memory/ptr_util.h"
15 #include "base/message_loop/message_loop.h" 15 #include "base/message_loop/message_loop.h"
16 #include "base/metrics/field_trial.h" 16 #include "base/metrics/field_trial.h"
17 #include "base/strings/stringprintf.h" 17 #include "base/strings/stringprintf.h"
18 #include "base/sys_info.h"
19 #include "base/test/mock_entropy_provider.h"
18 #include "base/time/time.h" 20 #include "base/time/time.h"
19 #include "chrome/browser/net/prediction_options.h" 21 #include "chrome/browser/net/prediction_options.h"
20 #include "chrome/browser/prerender/prerender_contents.h" 22 #include "chrome/browser/prerender/prerender_contents.h"
21 #include "chrome/browser/prerender/prerender_field_trial.h" 23 #include "chrome/browser/prerender/prerender_field_trial.h"
22 #include "chrome/browser/prerender/prerender_handle.h" 24 #include "chrome/browser/prerender/prerender_handle.h"
23 #include "chrome/browser/prerender/prerender_link_manager.h" 25 #include "chrome/browser/prerender/prerender_link_manager.h"
24 #include "chrome/browser/prerender/prerender_manager.h" 26 #include "chrome/browser/prerender/prerender_manager.h"
25 #include "chrome/browser/prerender/prerender_origin.h" 27 #include "chrome/browser/prerender/prerender_origin.h"
26 #include "chrome/common/chrome_switches.h" 28 #include "chrome/common/chrome_switches.h"
27 #include "chrome/common/pref_names.h" 29 #include "chrome/common/pref_names.h"
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 url, ORIGIN_OFFLINE, FINAL_STATUS_MANAGER_SHUTDOWN); 432 url, ORIGIN_OFFLINE, FINAL_STATUS_MANAGER_SHUTDOWN);
431 std::unique_ptr<PrerenderHandle> prerender_handle( 433 std::unique_ptr<PrerenderHandle> prerender_handle(
432 prerender_manager()->AddPrerenderForOffline(url, nullptr, kSize)); 434 prerender_manager()->AddPrerenderForOffline(url, nullptr, kSize));
433 EXPECT_TRUE(prerender_handle); 435 EXPECT_TRUE(prerender_handle);
434 EXPECT_TRUE(prerender_handle->IsPrerendering()); 436 EXPECT_TRUE(prerender_handle->IsPrerendering());
435 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 437 EXPECT_TRUE(prerender_contents->prerendering_has_started());
436 EXPECT_EQ(prerender_contents, prerender_handle->contents()); 438 EXPECT_EQ(prerender_contents, prerender_handle->contents());
437 EXPECT_EQ(ORIGIN_OFFLINE, prerender_handle->contents()->origin()); 439 EXPECT_EQ(ORIGIN_OFFLINE, prerender_handle->contents()->origin());
438 } 440 }
439 441
442 TEST_F(PrerenderTest, PrerenderDisabledOnLowEndDevice) {
443 GURL url("http://www.google.com/");
444 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible());
445
446 // Instantiate the low end device trial.
447 base::FieldTrialList::CreateFieldTrial("MemoryReduction", "Enabled");
448 ASSERT_TRUE(base::SysInfo::IsLowEndDevice());
449
450 EXPECT_FALSE(AddSimplePrerender(url));
mmenke 2016/07/29 15:57:09 I assume most of the other tests now fail on low e
pasko 2016/07/29 16:10:00 This test "fakes" running on low end (i.e. svelte)
mmenke 2016/07/29 16:12:27 Just because none of the bots run on svelte device
pasko 2016/07/29 17:25:03 I disagree. Chrome is a large project such that w
451 }
452
453 TEST_F(PrerenderTest, OfflinePrerenderPossibleOnLowEndDevice) {
454 GURL url("http://www.google.com/");
455 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible());
456
457 // Instantiate the low end device trial.
458 base::FieldTrialList::CreateFieldTrial("MemoryReduction", "Enabled");
459 ASSERT_TRUE(base::SysInfo::IsLowEndDevice());
460
461 DummyPrerenderContents* prerender_contents =
462 prerender_manager()->CreateNextPrerenderContents(
463 url, ORIGIN_OFFLINE, FINAL_STATUS_MANAGER_SHUTDOWN);
464 std::unique_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 }
470
440 TEST_F(PrerenderTest, FoundTest) { 471 TEST_F(PrerenderTest, FoundTest) {
441 GURL url("http://www.google.com/"); 472 GURL url("http://www.google.com/");
442 DummyPrerenderContents* prerender_contents = 473 DummyPrerenderContents* prerender_contents =
443 prerender_manager()->CreateNextPrerenderContents( 474 prerender_manager()->CreateNextPrerenderContents(
444 url, 475 url,
445 FINAL_STATUS_USED); 476 FINAL_STATUS_USED);
446 EXPECT_TRUE(AddSimplePrerender(url)); 477 EXPECT_TRUE(AddSimplePrerender(url));
447 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 478 EXPECT_TRUE(prerender_contents->prerendering_has_started());
448 std::unique_ptr<PrerenderContents> entry = 479 std::unique_ptr<PrerenderContents> entry =
449 prerender_manager()->FindAndUseEntry(url); 480 prerender_manager()->FindAndUseEntry(url);
(...skipping 1178 matching lines...) Expand 10 before | Expand all | Expand 10 after
1628 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 1659 EXPECT_TRUE(prerender_contents->prerendering_has_started());
1629 EXPECT_EQ(prerender_contents, prerender_handle->contents()); 1660 EXPECT_EQ(prerender_contents, prerender_handle->contents());
1630 EXPECT_EQ(ORIGIN_INSTANT, prerender_handle->contents()->origin()); 1661 EXPECT_EQ(ORIGIN_INSTANT, prerender_handle->contents()->origin());
1631 std::unique_ptr<PrerenderContents> entry = 1662 std::unique_ptr<PrerenderContents> entry =
1632 prerender_manager()->FindAndUseEntry(url); 1663 prerender_manager()->FindAndUseEntry(url);
1633 ASSERT_EQ(prerender_contents, entry.get()); 1664 ASSERT_EQ(prerender_contents, entry.get());
1634 EXPECT_FALSE(prerender_handle->IsPrerendering()); 1665 EXPECT_FALSE(prerender_handle->IsPrerendering());
1635 } 1666 }
1636 1667
1637 } // namespace prerender 1668 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_manager_factory.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698