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

Unified 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: Addressed comments by mmenke@ 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/prerender/prerender_unittest.cc
diff --git a/chrome/browser/prerender/prerender_unittest.cc b/chrome/browser/prerender/prerender_unittest.cc
index 9eed34f007b685d0d6451ad717db9b6ce2b6ae40..71bd3c70b24df89af49ab905c29c3a4161ea3e27 100644
--- a/chrome/browser/prerender/prerender_unittest.cc
+++ b/chrome/browser/prerender/prerender_unittest.cc
@@ -216,7 +216,13 @@ class UnitTestPrerenderManager : public PrerenderManager {
prerender_contents_map_.erase(std::make_pair(child_id, route_id));
}
+ void SetIsLowEndDevice(bool is_low_end_device) {
+ is_low_end_device_ = is_low_end_device;
+ }
+
private:
+ bool IsLowEndDevice() const override { return is_low_end_device_; }
+
DummyPrerenderContents* SetNextPrerenderContents(
std::unique_ptr<DummyPrerenderContents> prerender_contents) {
CHECK(!next_prerender_contents_);
@@ -244,6 +250,7 @@ class UnitTestPrerenderManager : public PrerenderManager {
Time time_;
TimeTicks time_ticks_;
std::unique_ptr<PrerenderContents> next_prerender_contents_;
+ bool is_low_end_device_;
};
class RestorePrerenderMode {
@@ -310,6 +317,8 @@ class PrerenderTest : public testing::Test {
new PrerenderLinkManager(prerender_manager_.get())),
last_prerender_id_(0),
field_trial_list_(nullptr) {
+ prerender_manager()->SetIsLowEndDevice(false);
+
// Enable omnibox prerendering.
base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
switches::kPrerenderFromOmnibox,
@@ -437,6 +446,29 @@ TEST_F(PrerenderTest, OfflinePrerenderIgnoresThirdPartyCookiesPref) {
EXPECT_EQ(ORIGIN_OFFLINE, prerender_handle->contents()->origin());
}
+TEST_F(PrerenderTest, PrerenderDisabledOnLowEndDevice) {
+ GURL url("http://www.google.com/");
+ ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible());
+ prerender_manager()->SetIsLowEndDevice(true);
+ EXPECT_FALSE(AddSimplePrerender(url));
+}
+
+TEST_F(PrerenderTest, OfflinePrerenderPossibleOnLowEndDevice) {
+ GURL url("http://www.google.com/");
+ ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible());
+
+ prerender_manager()->SetIsLowEndDevice(true);
+
+ DummyPrerenderContents* prerender_contents =
+ prerender_manager()->CreateNextPrerenderContents(
+ url, ORIGIN_OFFLINE, FINAL_STATUS_MANAGER_SHUTDOWN);
+ std::unique_ptr<PrerenderHandle> prerender_handle(
+ prerender_manager()->AddPrerenderForOffline(url, nullptr, kSize));
+ EXPECT_TRUE(prerender_handle);
+ EXPECT_TRUE(prerender_handle->IsPrerendering());
+ EXPECT_TRUE(prerender_contents->prerendering_has_started());
+}
+
TEST_F(PrerenderTest, FoundTest) {
GURL url("http://www.google.com/");
DummyPrerenderContents* prerender_contents =

Powered by Google App Engine
This is Rietveld 408576698