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

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

Issue 2275933002: Experiment to disable Prerendering with fast wind-down (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added comments describing the new tests 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_manager.cc
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc
index f97d9cef68fe32ccad83161c5424530b0f6eaf48..48a3c20c132b4aa3ba834929126ca6caa61738ab 100644
--- a/chrome/browser/prerender/prerender_manager.cc
+++ b/chrome/browser/prerender/prerender_manager.cc
@@ -18,6 +18,7 @@
#include "base/logging.h"
#include "base/macros.h"
#include "base/memory/ptr_util.h"
+#include "base/metrics/field_trial.h"
#include "base/metrics/histogram.h"
#include "base/single_thread_task_runner.h"
#include "base/sys_info.h"
@@ -611,6 +612,30 @@ bool PrerenderManager::IsNoStatePrefetch() {
return GetMode() == PRERENDER_MODE_NOSTATE_PREFETCH;
}
+bool PrerenderManager::IsPrerenderSilenceExperiment() {
+ // The group name should contain expiration time formatted as:
+ // "ExperimentYes_expires_YYYY-MM-DDTHH:MM:SSZ".
+ std::string group_name =
+ base::FieldTrialList::FindFullName("PrerenderSilence");
+ const char kExperimentPrefix[] = "ExperimentYes";
+ if (!base::StartsWith(group_name, kExperimentPrefix,
+ base::CompareCase::INSENSITIVE_ASCII)) {
+ return false;
+ }
+ const char kExperimentPrefixWithExpiration[] = "ExperimentYes_expires_";
+ if (!base::StartsWith(group_name, kExperimentPrefixWithExpiration,
+ base::CompareCase::INSENSITIVE_ASCII)) {
+ return true;
mattcary 2016/08/25 13:51:18 Do we really want a malformed experiment option to
droger 2016/08/25 13:56:24 Probably same for line 634 below.
pasko 2016/08/25 14:55:18 I wanted a mere "ExperimentYes" (without a date) t
+ }
+ base::Time expiration_time;
+ if (!base::Time::FromString(
+ group_name.c_str() + (arraysize(kExperimentPrefixWithExpiration) - 1),
+ &expiration_time)) {
+ return true;
+ }
+ return GetCurrentTime() < expiration_time;
+}
+
bool PrerenderManager::IsWebContentsPrerendering(
const WebContents* web_contents,
Origin* origin) const {
@@ -882,6 +907,9 @@ std::unique_ptr<PrerenderHandle> PrerenderManager::AddPrerender(
origin = ORIGIN_GWS_PRERENDER;
}
+ if (origin != ORIGIN_OFFLINE && IsPrerenderSilenceExperiment())
+ return nullptr;
+
GURL url = url_arg;
GURL alias_url;
if (IsControlGroup() && MaybeGetQueryStringBasedAliasURL(url, &alias_url))

Powered by Google App Engine
This is Rietveld 408576698