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 |