Chromium Code Reviews| Index: chrome/browser/net/predictor.cc |
| diff --git a/chrome/browser/net/predictor.cc b/chrome/browser/net/predictor.cc |
| index 44921f8b1658bf657309a3cc3155082d1df86460..4e6073cdba9bdefb9eba4f3f19017ccd7965c486 100644 |
| --- a/chrome/browser/net/predictor.cc |
| +++ b/chrome/browser/net/predictor.cc |
| @@ -146,16 +146,8 @@ void Predictor::InitNetworkPredictor(PrefService* user_prefs, |
| // Gather the list of hostnames to prefetch on startup. |
| std::vector<GURL> urls = GetPredictedUrlListAtStartup(user_prefs); |
| - base::ListValue* referral_list = |
| - static_cast<base::ListValue*>(user_prefs->GetList( |
| - prefs::kDnsPrefetchingHostReferralList)->DeepCopy()); |
| - |
| - // Now that we have the statistics in memory, wipe them from the Preferences |
| - // file. They will be serialized back on a clean shutdown. This way we only |
| - // have to worry about clearing our in-memory state when Clearing Browsing |
|
eroman
2016/06/25 01:12:53
(Not familiar with this previous code, but the pre
Charlie Harrison
2016/06/27 18:57:12
Yeah this was my impression as well. It makes some
|
| - // Data. |
| - user_prefs->ClearPref(prefs::kDnsPrefetchingStartupList); |
| - user_prefs->ClearPref(prefs::kDnsPrefetchingHostReferralList); |
| + const base::ListValue* referral_list = |
| + user_prefs->GetList(prefs::kDnsPrefetchingHostReferralList); |
| BrowserThread::PostTask( |
| BrowserThread::IO, |
| @@ -574,12 +566,6 @@ void Predictor::DeserializeReferrers(const base::ListValue& referral_list) { |
| } |
| } |
| -void Predictor::DeserializeReferrersThenDelete( |
| - base::ListValue* referral_list) { |
| - DeserializeReferrers(*referral_list); |
| - delete referral_list; |
| -} |
| - |
| void Predictor::DiscardInitialNavigationHistory() { |
| DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| if (initial_observer_.get()) |
| @@ -588,7 +574,7 @@ void Predictor::DiscardInitialNavigationHistory() { |
| void Predictor::FinalizeInitializationOnIOThread( |
| const std::vector<GURL>& startup_urls, |
| - base::ListValue* referral_list, |
| + const base::ListValue* referral_list, |
| IOThread* io_thread, |
| ProfileIOData* profile_io_data) { |
| DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| @@ -612,7 +598,7 @@ void Predictor::FinalizeInitializationOnIOThread( |
| // Prefetch these hostnames on startup. |
| DnsPrefetchMotivatedList(startup_urls, UrlInfo::STARTUP_LIST_MOTIVATED); |
| - DeserializeReferrersThenDelete(referral_list); |
| + DeserializeReferrers(*referral_list); |
| LogStartupMetrics(); |
| } |
| @@ -849,6 +835,20 @@ bool Predictor::CanPreresolveAndPreconnect() const { |
| } |
| } |
| +void Predictor::ClearPrefsOnUIThread() { |
| + DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| + user_prefs_->ClearPref(prefs::kDnsPrefetchingStartupList); |
| + user_prefs_->ClearPref(prefs::kDnsPrefetchingHostReferralList); |
| +} |
| + |
| +void Predictor::DiscardAllResultAndClearPrefs() { |
| + DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| + DiscardAllResults(); |
| + BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
| + base::Bind(&Predictor::ClearPrefsOnUIThread, |
| + weak_factory_->GetWeakPtr())); |
| +} |
| + |
| enum SubresourceValue { |
| PRECONNECTION, |
| PRERESOLUTION, |