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

Unified Diff: chrome/browser/net/predictor.cc

Issue 2085643002: Don't clear the net predictors prefs on startup (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits Created 4 years, 6 months 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
« no previous file with comments | « chrome/browser/net/predictor.h ('k') | chrome/browser/net/predictor_browsertest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/net/predictor.cc
diff --git a/chrome/browser/net/predictor.cc b/chrome/browser/net/predictor.cc
index 44921f8b1658bf657309a3cc3155082d1df86460..b089e010ea1a92446bcf0d81bd75395b10697e6a 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
- // 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,
@@ -315,6 +307,12 @@ std::vector<GURL> Predictor::GetPredictedUrlListAtStartup(
return urls;
}
+void Predictor::ClearPrefsOnUIThread() {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ user_prefs_->ClearPref(prefs::kDnsPrefetchingStartupList);
+ user_prefs_->ClearPref(prefs::kDnsPrefetchingHostReferralList);
+}
+
void Predictor::set_max_queueing_delay(int max_queueing_delay_ms) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
g_max_queueing_delay_ms = max_queueing_delay_ms;
@@ -574,12 +572,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 +580,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 +604,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 +841,14 @@ bool Predictor::CanPreresolveAndPreconnect() const {
}
}
+void Predictor::DiscardAllResultsAndClearPrefs() {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DiscardAllResults();
+ BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
+ base::Bind(&Predictor::ClearPrefsOnUIThread,
+ weak_factory_->GetWeakPtr()));
+}
+
enum SubresourceValue {
PRECONNECTION,
PRERESOLUTION,
« no previous file with comments | « chrome/browser/net/predictor.h ('k') | chrome/browser/net/predictor_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698