summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/browser_shutdown.cc5
-rw-r--r--chrome/browser/net/predictor_api.cc33
-rw-r--r--chrome/browser/net/predictor_api.h1
-rw-r--r--chrome/browser/prefs/browser_prefs.cc1
-rw-r--r--chrome/browser/prefs/pref_service.h2
-rw-r--r--chrome/browser/ui/browser.cc1
-rw-r--r--chrome/common/pref_names.cc25
-rw-r--r--chrome/common/pref_names.h7
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[];