Chromium Code Reviews| 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 |