diff options
-rw-r--r-- | chrome/browser/browser_shutdown.cc | 5 | ||||
-rw-r--r-- | chrome/browser/net/predictor_api.cc | 33 | ||||
-rw-r--r-- | chrome/browser/net/predictor_api.h | 1 | ||||
-rw-r--r-- | chrome/browser/prefs/browser_prefs.cc | 1 | ||||
-rw-r--r-- | chrome/browser/prefs/pref_service.h | 2 | ||||
-rw-r--r-- | chrome/browser/ui/browser.cc | 1 | ||||
-rw-r--r-- | chrome/common/pref_names.cc | 25 | ||||
-rw-r--r-- | chrome/common/pref_names.h | 7 |
8 files changed, 54 insertions, 21 deletions
diff --git a/chrome/browser/browser_shutdown.cc b/chrome/browser/browser_shutdown.cc index 2ccf5fd..a312523 100644 --- a/chrome/browser/browser_shutdown.cc +++ b/chrome/browser/browser_shutdown.cc @@ -28,6 +28,7 @@ #include "chrome/browser/metrics/metrics_service.h" #include "chrome/browser/plugin_process_host.h" #include "chrome/browser/prefs/pref_service.h" +#include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/renderer_host/render_process_host.h" #include "chrome/browser/renderer_host/render_view_host.h" #include "chrome/browser/renderer_host/render_widget_host.h" @@ -134,8 +135,10 @@ void Shutdown() { g_browser_process->shutdown_event()->Signal(); PrefService* prefs = g_browser_process->local_state(); + ProfileManager* profile_manager = g_browser_process->profile_manager(); + PrefService* user_prefs = profile_manager->GetDefaultProfile()->GetPrefs(); - chrome_browser_net::SavePredictorStateForNextStartupAndTrim(prefs); + chrome_browser_net::SavePredictorStateForNextStartupAndTrim(user_prefs); MetricsService* metrics = g_browser_process->metrics_service(); if (metrics) { diff --git a/chrome/browser/net/predictor_api.cc b/chrome/browser/net/predictor_api.cc index 6898dfa..40a583e 100644 --- a/chrome/browser/net/predictor_api.cc +++ b/chrome/browser/net/predictor_api.cc @@ -133,12 +133,9 @@ void OnTheRecord(bool enable) { g_browser_process->io_thread()->ChangedToOnTheRecord(); } -void RegisterPrefs(PrefService* local_state) { - local_state->RegisterListPref(prefs::kDnsStartupPrefetchList); - local_state->RegisterListPref(prefs::kDnsHostReferralList); -} - void RegisterUserPrefs(PrefService* user_prefs) { + user_prefs->RegisterListPref(prefs::kDnsPrefetchingStartupList); + user_prefs->RegisterListPref(prefs::kDnsPrefetchingHostReferralList); user_prefs->RegisterBooleanPref(prefs::kDnsPrefetchingEnabled, true); } @@ -393,8 +390,21 @@ static void InitNetworkPredictor(TimeDelta max_dns_queue_delay, GetPredictedUrlListAtStartup(user_prefs, local_state); ListValue* referral_list = - static_cast<ListValue*>( - local_state->GetMutableList(prefs::kDnsHostReferralList)->DeepCopy()); + static_cast<ListValue*>(user_prefs->GetMutableList( + prefs::kDnsPrefetchingHostReferralList)->DeepCopy()); + + // Remove obsolete preferences from local state if necessary. + int dns_prefs_version = + user_prefs->GetInteger(prefs::kMultipleProfilePrefMigration); + if (dns_prefs_version < 1) { + // These prefs only need to be registered if they need to be cleared from + // local state. + local_state->RegisterListPref(prefs::kDnsStartupPrefetchList); + local_state->RegisterListPref(prefs::kDnsHostReferralList); + local_state->ClearPref(prefs::kDnsStartupPrefetchList); + local_state->ClearPref(prefs::kDnsHostReferralList); + user_prefs->SetInteger(prefs::kMultipleProfilePrefMigration, 1); + } g_browser_process->io_thread()->InitNetworkPredictor( prefetching_enabled, max_dns_queue_delay, max_parallel_resolves, urls, @@ -462,9 +472,9 @@ void SavePredictorStateForNextStartupAndTrim(PrefService* prefs) { BrowserThread::IO, FROM_HERE, NewRunnableFunction(SaveDnsPrefetchStateForNextStartupAndTrimOnIOThread, - prefs->GetMutableList(prefs::kDnsStartupPrefetchList), - prefs->GetMutableList(prefs::kDnsHostReferralList), - &completion)); + prefs->GetMutableList(prefs::kDnsPrefetchingStartupList), + prefs->GetMutableList(prefs::kDnsPrefetchingHostReferralList), + &completion)); DCHECK(posted); if (posted) @@ -480,7 +490,8 @@ static UrlList GetPredictedUrlListAtStartup(PrefService* user_prefs, // also catch more of the "primary" home pages, since that was (presumably) // rendered first (and will be rendered first this time too). ListValue* startup_list = - local_state->GetMutableList(prefs::kDnsStartupPrefetchList); + user_prefs->GetMutableList(prefs::kDnsPrefetchingStartupList); + if (startup_list) { ListValue::iterator it = startup_list->begin(); int format_version = -1; diff --git a/chrome/browser/net/predictor_api.h b/chrome/browser/net/predictor_api.h index a03f7c9..8f22d31 100644 --- a/chrome/browser/net/predictor_api.h +++ b/chrome/browser/net/predictor_api.h @@ -41,7 +41,6 @@ void FreePredictorResources(); //------------------------------------------------------------------------------ // Global APIs relating to predictions in browser. void EnablePredictor(bool enable); -void RegisterPrefs(PrefService* local_state); void RegisterUserPrefs(PrefService* user_prefs); // Renderer bundles up list and sends to this browser API via IPC. diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc index b947969..1d21c1f 100644 --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc @@ -92,7 +92,6 @@ void RegisterLocalState(PrefService* local_state) { MetricsService::RegisterPrefs(local_state); SafeBrowsingService::RegisterPrefs(local_state); browser_shutdown::RegisterPrefs(local_state); - chrome_browser_net::RegisterPrefs(local_state); #if defined(TOOLKIT_VIEWS) BrowserView::RegisterBrowserViewPrefs(local_state); #endif diff --git a/chrome/browser/prefs/pref_service.h b/chrome/browser/prefs/pref_service.h index 04d7b91..2e0623b 100644 --- a/chrome/browser/prefs/pref_service.h +++ b/chrome/browser/prefs/pref_service.h @@ -139,7 +139,7 @@ class PrefService : public NonThreadSafe { void RegisterListPref(const char* path); void RegisterDictionaryPref(const char* path); - // These varients use a default value from the locale dll instead. + // These variants use a default value from the locale dll instead. void RegisterLocalizedBooleanPref(const char* path, int locale_default_message_id); void RegisterLocalizedIntegerPref(const char* path, diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc index 895e945..8ac60f6 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc @@ -2045,6 +2045,7 @@ void Browser::RegisterUserPrefs(PrefService* prefs) { prefs->RegisterStringPref(prefs::kCloudPrintEmail, std::string()); prefs->RegisterBooleanPref(prefs::kDevToolsDisabled, false); prefs->RegisterRealPref(prefs::kDefaultZoomLevel, 0.0); + prefs->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration, 0); } // static diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc index cd56cff..11a25fc 100644 --- a/chrome/common/pref_names.cc +++ b/chrome/common/pref_names.cc @@ -194,18 +194,27 @@ const char kAlternateErrorPagesEnabled[] = "alternate_error_pages.enabled"; // A boolean pref set to true if DNS pre-fetching is being done in browser. const char kDnsPrefetchingEnabled[] = "dns_prefetching.enabled"; +// OBSOLETE: new pref now stored with user prefs instead of profile, as +// kDnsPrefetchingStartupList. +const char kDnsStartupPrefetchList[] = "StartupDNSPrefetchList"; + // An adaptively identified list of domain names to be pre-fetched during the // next startup, based on what was actually needed during this startup. -const char kDnsStartupPrefetchList[] = "StartupDNSPrefetchList"; +const char kDnsPrefetchingStartupList[] = "dns_prefetching.startup_list"; -// Disables the SPDY protocol. -const char kDisableSpdy[] = "spdy.disabled"; +// OBSOLETE: new pref now stored with user prefs instead of profile, as +// kDnsPrefetchingHostReferralList. +const char kDnsHostReferralList[] = "HostReferralList"; // A list of host names used to fetch web pages, and their commonly used // sub-resource hostnames (and expected latency benefits from pre-resolving, or // preconnecting to, such sub-resource hostnames). // This list is adaptively grown and pruned. -const char kDnsHostReferralList[] = "HostReferralList"; +const char kDnsPrefetchingHostReferralList[] = + "dns_prefetching.host_referral_list"; + +// Disables the SPDY protocol. +const char kDisableSpdy[] = "spdy.disabled"; // Is the cookie prompt expanded? const char kCookiePromptExpanded[] = "cookieprompt.expanded"; @@ -226,6 +235,14 @@ const char kInstantEnabledTime[] = "instant.enabled_time"; // that are used. const char kInstantPromo[] = "instant.promo"; +// Used to migrate preferences from local state to user preferences to +// enable multiple profiles. +// Holds possible values: +// 0: no preferences migrated yet. +// 1: dns prefetching preferences stored in user preferences. +const char kMultipleProfilePrefMigration[] = + "profile.multiple_profile_prefs_version"; + #if defined(USE_NSS) || defined(USE_OPENSSL) // Prefs for SSLConfigServicePref. Currently, these are only present on // and used by NSS/OpenSSL using OSes. diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h index 613711d..6299465 100644 --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h @@ -75,8 +75,10 @@ extern const char kSearchProviderOverridesVersion[]; extern const char kPromptForDownload[]; extern const char kAlternateErrorPagesEnabled[]; extern const char kDnsPrefetchingEnabled[]; -extern const char kDnsStartupPrefetchList[]; -extern const char kDnsHostReferralList[]; +extern const char kDnsStartupPrefetchList[]; // OBSOLETE +extern const char kDnsPrefetchingStartupList[]; +extern const char kDnsHostReferralList[]; // OBSOLETE +extern const char kDnsPrefetchingHostReferralList[]; extern const char kDisableSpdy[]; extern const char kCookiePromptExpanded[]; extern const char kInstantConfirmDialogShown[]; @@ -84,6 +86,7 @@ extern const char kInstantEnabled[]; extern const char kInstantEnabledOnce[]; extern const char kInstantEnabledTime[]; extern const char kInstantPromo[]; +extern const char kMultipleProfilePrefMigration[]; #if defined(USE_NSS) || defined(USE_OPENSSL) extern const char kCertRevocationCheckingEnabled[]; extern const char kSSL3Enabled[]; |