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

Unified Diff: chrome/browser/precache/precache_util.cc

Issue 2562573003: Create a synthetic field trial for precache (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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/precache/precache_util.cc
diff --git a/chrome/browser/precache/precache_util.cc b/chrome/browser/precache/precache_util.cc
index 049155ba5122cea054071d7eb1b8884612c5a18d..7d4ae419ab3320faaf27e48767989ccf5f704fc8 100644
--- a/chrome/browser/precache/precache_util.cc
+++ b/chrome/browser/precache/precache_util.cc
@@ -4,8 +4,10 @@
#include "chrome/browser/precache/precache_util.h"
-#include "base/time/time.h"
+#include "base/metrics/field_trial.h"
+#include "base/strings/string_util.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/metrics/chrome_metrics_service_accessor.h"
#include "chrome/browser/precache/precache_manager_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
@@ -21,6 +23,13 @@ class HttpResponseInfo;
namespace {
+const char kPrecacheFieldTrialName[] = "Precache";
+const char kPrecacheSyntheticFieldTrialName[] = "PrecacheSynthetic";
+
+// Users who precached in the last |kDaysForPrecacheCandidates| days will be
+// treated as precache candidates.
+const size_t kDaysForPrecacheCandidates = 15;
+
void UpdatePrecacheMetricsAndStateOnUIThread(const GURL& url,
const GURL& referrer,
base::TimeDelta latency,
@@ -70,4 +79,16 @@ void UpdatePrecacheMetricsAndState(const net::URLRequest* request,
data_use_measurement::IsUserRequest(*request), profile_id));
}
+void RegisterPrecacheSyntheticFieldTrial(const base::Time& last_precache_time) {
+ if (base::Time::Now() - last_precache_time <=
+ base::TimeDelta::FromDays(kDaysForPrecacheCandidates)) {
+ const auto& group_name =
+ base::FieldTrialList::FindFullName(kPrecacheFieldTrialName);
+ if (!group_name.empty()) {
+ ChromeMetricsServiceAccessor::RegisterSyntheticFieldTrial(
twifkak 2016/12/08 21:49:22 Ooh, how about a multi-group field trial? Just lea
+ kPrecacheSyntheticFieldTrialName, group_name);
+ }
+ }
+}
+
} // namespace precache

Powered by Google App Engine
This is Rietveld 408576698