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

Unified Diff: chrome/browser/prerender/prerender_unittest.cc

Issue 2538723003: Prerender: Hardcode the Silence experiment date (Closed)
Patch Set: allow ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR during PrerenderSilence 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/prerender/prerender_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/prerender/prerender_unittest.cc
diff --git a/chrome/browser/prerender/prerender_unittest.cc b/chrome/browser/prerender/prerender_unittest.cc
index 68d6c5bbddbb4f1c7dbcc19977ddbac1ab8352a3..5a197314b43c2902d3e6e071f5d51e3e1cc50937 100644
--- a/chrome/browser/prerender/prerender_unittest.cc
+++ b/chrome/browser/prerender/prerender_unittest.cc
@@ -97,6 +97,17 @@ const gfx::Size kSize(640, 480);
const uint32_t kDefaultRelTypes = PrerenderRelTypePrerender;
+const Origin g_prerender_silence_origins[] = {
+ ORIGIN_GWS_PRERENDER,
+ ORIGIN_OMNIBOX,
+ ORIGIN_NONE,
+ ORIGIN_LINK_REL_PRERENDER_SAMEDOMAIN,
+ ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN,
+ ORIGIN_EXTERNAL_REQUEST,
+ ORIGIN_INSTANT,
+ ORIGIN_LINK_REL_NEXT,
+};
+
base::SimpleTestTickClock* OverridePrerenderManagerTimeTicks(
PrerenderManager* prerender_manager) {
auto tick_clock = base::MakeUnique<base::SimpleTestTickClock>();
@@ -1134,29 +1145,59 @@ TEST_F(PrerenderTest, PrerenderSilenceAllowsOffline) {
EXPECT_EQ(ORIGIN_OFFLINE, prerender_handle->contents()->origin());
}
+// Checks that the "PrerenderSilence experiment does not disable forced-cellular
+// prerendering.
+TEST_F(PrerenderTest, PrerenderSilenceAllowsForcedCellular) {
+ // Set the time to 30 seconds before the experiment expires.
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial(
+ "PrerenderSilence", "ExperimentYes_expires_2016-12-20T00:01:00Z"));
+ ASSERT_TRUE(OverridePrerenderManagerTime("2016-12-20T00:00:30Z",
+ prerender_manager()));
+ GURL url("http://www.google.com/");
+ DummyPrerenderContents* prerender_contents =
+ prerender_manager()->CreateNextPrerenderContents(
+ url, ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR,
+ FINAL_STATUS_MANAGER_SHUTDOWN);
+ std::unique_ptr<PrerenderHandle> prerender_handle =
+ prerender_manager()->AddPrerenderOnCellularFromExternalRequest(
+ url, content::Referrer(), nullptr, gfx::Rect(kSize));
+ EXPECT_TRUE(prerender_handle);
+ EXPECT_TRUE(prerender_handle->IsPrerendering());
+ EXPECT_TRUE(prerender_contents->prerendering_has_started());
+ EXPECT_EQ(prerender_contents, prerender_handle->contents());
+ EXPECT_EQ(ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR,
+ prerender_handle->contents()->origin());
+}
+
// Checks that the "PrerenderSilence" experiment disables prerendering.
TEST_F(PrerenderTest, PrerenderSilenceDisallowsNonOffline) {
ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial(
"PrerenderSilence", "ExperimentYes_expires_2016-12-20T00:02:00Z"));
ASSERT_TRUE(OverridePrerenderManagerTime("2016-12-20T00:01:00Z",
prerender_manager()));
- const Origin origins[] = {
- ORIGIN_GWS_PRERENDER,
- ORIGIN_OMNIBOX,
- ORIGIN_NONE,
- ORIGIN_LINK_REL_PRERENDER_SAMEDOMAIN,
- ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN,
- ORIGIN_EXTERNAL_REQUEST,
- ORIGIN_INSTANT,
- ORIGIN_LINK_REL_NEXT,
- ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR,
- };
- for (const Origin& origin : origins) {
+ for (const Origin& origin : g_prerender_silence_origins) {
EXPECT_TRUE(
prerender_manager()->IsPrerenderSilenceExperimentForTesting(origin));
}
}
+// Checks that the "PrerenderSilence" experiment disables prerendering even
+// without the field trial, then expires.
+TEST_F(PrerenderTest, PrerenderSilenceWithoutFieldTrial) {
+ ASSERT_TRUE(OverridePrerenderManagerTime("2016-12-14T08:00:01Z",
+ prerender_manager()));
+ for (const Origin& origin : g_prerender_silence_origins) {
+ EXPECT_TRUE(
+ prerender_manager()->IsPrerenderSilenceExperimentForTesting(origin));
+ }
+ ASSERT_TRUE(OverridePrerenderManagerTime("2016-12-15T08:00:00Z",
+ prerender_manager()));
+ for (const Origin& origin : g_prerender_silence_origins) {
+ EXPECT_FALSE(
+ prerender_manager()->IsPrerenderSilenceExperimentForTesting(origin));
+ }
+}
+
// Checks that prerendering is enabled after expiration of the
// "PrerenderSilence" experiment.
TEST_F(PrerenderTest, PrerenderSilenceAllowsAfterExpiration) {
« no previous file with comments | « chrome/browser/prerender/prerender_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698