| Index: components/precache/content/precache_manager.cc | 
| diff --git a/components/precache/content/precache_manager.cc b/components/precache/content/precache_manager.cc | 
| index 1bb682005b2131774772dff5e16e7320198e4508..7732807e8f8e6af204265c69fd075a3f9a0c9bc7 100644 | 
| --- a/components/precache/content/precache_manager.cc | 
| +++ b/components/precache/content/precache_manager.cc | 
| @@ -356,22 +356,35 @@ void PrecacheManager::UpdatePrecacheMetricsAndState( | 
| const base::Time& fetch_time, | 
| const net::HttpResponseInfo& info, | 
| int64_t size, | 
| -    bool is_user_traffic) { | 
| +    bool is_user_traffic, | 
| +    const base::Callback<void(base::Time)>& register_synthetic_trial) { | 
| DCHECK_CURRENTLY_ON(BrowserThread::UI); | 
|  | 
| -  RecordStatsForFetch(url, referrer, latency, fetch_time, info, size); | 
| +  BrowserThread::PostTaskAndReplyWithResult( | 
| +      BrowserThread::DB, FROM_HERE, | 
| +      base::Bind(&PrecacheDatabase::GetLastPrecacheTimestamp, | 
| +                 base::Unretained(precache_database_.get())), | 
| +      base::Bind(&PrecacheManager::RecordStatsForFetch, AsWeakPtr(), url, | 
| +                 referrer, latency, fetch_time, info, size, | 
| +                 register_synthetic_trial)); | 
| + | 
| if (is_user_traffic && IsPrecaching()) | 
| CancelPrecaching(); | 
| } | 
|  | 
| -void PrecacheManager::RecordStatsForFetch(const GURL& url, | 
| -                                          const GURL& referrer, | 
| -                                          const base::TimeDelta& latency, | 
| -                                          const base::Time& fetch_time, | 
| -                                          const net::HttpResponseInfo& info, | 
| -                                          int64_t size) { | 
| +void PrecacheManager::RecordStatsForFetch( | 
| +    const GURL& url, | 
| +    const GURL& referrer, | 
| +    const base::TimeDelta& latency, | 
| +    const base::Time& fetch_time, | 
| +    const net::HttpResponseInfo& info, | 
| +    int64_t size, | 
| +    const base::Callback<void(base::Time)>& register_synthetic_trial, | 
| +    base::Time last_precache_time) { | 
| DCHECK_CURRENTLY_ON(BrowserThread::UI); | 
|  | 
| +  register_synthetic_trial.Run(last_precache_time); | 
| + | 
| if (size == 0 || url.is_empty() || !url.SchemeIsHTTPOrHTTPS()) { | 
| // Ignore empty responses, empty URLs, or URLs that aren't HTTP or HTTPS. | 
| return; | 
|  |