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

Unified Diff: components/precache/content/precache_manager.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: components/precache/content/precache_manager.cc
diff --git a/components/precache/content/precache_manager.cc b/components/precache/content/precache_manager.cc
index 327fa2b6b83ceafdd748f932467358cb30803ee7..b76f94a8d2dbef00652e6ab9f14367bddcc14b85 100644
--- a/components/precache/content/precache_manager.cc
+++ b/components/precache/content/precache_manager.cc
@@ -51,16 +51,25 @@ PrecacheManager::PrecacheManager(
const syncer::SyncService* const sync_service,
const history::HistoryService* const history_service,
const base::FilePath& db_path,
- std::unique_ptr<PrecacheDatabase> precache_database)
+ std::unique_ptr<PrecacheDatabase> precache_database,
+ const base::Callback<void(const base::Time&)>&
+ register_synthetic_field_trial_callback)
: browser_context_(browser_context),
sync_service_(sync_service),
history_service_(history_service),
- is_precaching_(false) {
+ is_precaching_(false),
+ register_synthetic_field_trial_callback_(
+ register_synthetic_field_trial_callback) {
precache_database_ = std::move(precache_database);
BrowserThread::PostTask(
BrowserThread::DB, FROM_HERE,
base::Bind(base::IgnoreResult(&PrecacheDatabase::Init),
base::Unretained(precache_database_.get()), db_path));
+ BrowserThread::PostTaskAndReplyWithResult(
twifkak 2016/12/08 21:49:22 Good idea, sticking it in the PrecacheManager cons
+ BrowserThread::DB, FROM_HERE,
+ base::Bind(&PrecacheDatabase::GetLastPrecacheTimestamp,
+ base::Unretained(precache_database_.get())),
+ base::Bind(&PrecacheManager::RegisterSyntheticFieldTrial, AsWeakPtr()));
}
PrecacheManager::~PrecacheManager() {
@@ -71,6 +80,11 @@ PrecacheManager::~PrecacheManager() {
precache_database_.release());
}
+void PrecacheManager::RegisterSyntheticFieldTrial(
+ const base::Time& last_precache_time) {
+ register_synthetic_field_trial_callback_.Run(last_precache_time);
+}
+
bool PrecacheManager::IsInExperimentGroup() const {
// Verify IsPrecachingAllowed() before calling FieldTrialList::FindFullName().
// This is because field trials are only assigned when requested. This allows

Powered by Google App Engine
This is Rietveld 408576698