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

Unified Diff: chrome/browser/prefs/browser_prefs.cc

Issue 12079097: Introduce PrefRegistrySyncable, simplifying PrefServiceSyncable. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add to PrefRegistrySyncable and PrefServiceSyncable to let sync know of pre-registered prefs. Created 7 years, 10 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
Index: chrome/browser/prefs/browser_prefs.cc
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 086a24c73ba1f9f69f0f9c49e9a47a5b6e0b12e4..28ff274e0c0f6fe6b8607840a1f28763524f2fef 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -48,7 +48,9 @@
#include "chrome/browser/plugins/plugin_finder.h"
#include "chrome/browser/prefs/incognito_mode_prefs.h"
#include "chrome/browser/prefs/pref_registry_simple.h"
+#include "chrome/browser/prefs/pref_registry_syncable.h"
#include "chrome/browser/prefs/pref_service.h"
+#include "chrome/browser/prefs/pref_service_syncable.h"
#include "chrome/browser/prefs/session_startup_pref.h"
#include "chrome/browser/profiles/chrome_version_service.h"
#include "chrome/browser/profiles/profile_impl.h"
@@ -152,8 +154,8 @@ namespace chrome {
// TODO(joi): Do the work needed to remove the PrefService parameter,
// i.e. to do all registration up front before a PrefService is even
// created.
-void RegisterLocalState(PrefRegistrySimple* registry,
- PrefService* local_state) {
+void RegisterLocalState(PrefService* local_state,
+ PrefRegistrySimple* registry) {
// Prefs in Local State.
registry->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration, 0);
@@ -236,104 +238,113 @@ void RegisterLocalState(PrefRegistrySimple* registry,
#endif
}
-void RegisterUserPrefs(PrefServiceSyncable* user_prefs) {
+void RegisterUserPrefs(PrefService* user_prefs,
+ PrefRegistrySyncable* registry) {
+ // TODO(joi): Get rid of the need for the PrefService parameter, and
+ // do registration prior to PrefService creation.
+
// User prefs. Please keep this list alphabetized.
- AlternateErrorPageTabObserver::RegisterUserPrefs(user_prefs);
- AutofillManager::RegisterUserPrefs(user_prefs);
- BookmarkPromptPrefs::RegisterUserPrefs(user_prefs);
- bookmark_utils::RegisterUserPrefs(user_prefs);
- BrowserInstantController::RegisterUserPrefs(user_prefs);
- browser_sync::SyncPrefs::RegisterUserPrefs(user_prefs);
- ChromeContentBrowserClient::RegisterUserPrefs(user_prefs);
- ChromeVersionService::RegisterUserPrefs(user_prefs);
+ AlternateErrorPageTabObserver::RegisterUserPrefs(registry);
+ AutofillManager::RegisterUserPrefs(registry);
+ BookmarkPromptPrefs::RegisterUserPrefs(registry);
+ bookmark_utils::RegisterUserPrefs(registry);
+ BrowserInstantController::RegisterUserPrefs(user_prefs, registry);
+ browser_sync::SyncPrefs::RegisterUserPrefs(user_prefs, registry);
+ ChromeContentBrowserClient::RegisterUserPrefs(registry);
+ ChromeVersionService::RegisterUserPrefs(registry);
chrome_browser_net::HttpServerPropertiesManager::RegisterUserPrefs(
- user_prefs);
- chrome_browser_net::Predictor::RegisterUserPrefs(user_prefs);
- DownloadPrefs::RegisterUserPrefs(user_prefs);
- extensions::ComponentLoader::RegisterUserPrefs(user_prefs);
- extensions::ExtensionPrefs::RegisterUserPrefs(user_prefs);
- ExtensionWebUI::RegisterUserPrefs(user_prefs);
- first_run::RegisterUserPrefs(user_prefs);
- HostContentSettingsMap::RegisterUserPrefs(user_prefs);
- IncognitoModePrefs::RegisterUserPrefs(user_prefs);
- InstantUI::RegisterUserPrefs(user_prefs);
- MediaCaptureDevicesDispatcher::RegisterUserPrefs(user_prefs);
- MediaStreamDevicesController::RegisterUserPrefs(user_prefs);
- NetPrefObserver::RegisterUserPrefs(user_prefs);
- NewTabUI::RegisterUserPrefs(user_prefs);
- PasswordManager::RegisterUserPrefs(user_prefs);
- PrefProxyConfigTrackerImpl::RegisterUserPrefs(user_prefs);
- PrefsTabHelper::RegisterUserPrefs(user_prefs);
- ProfileImpl::RegisterUserPrefs(user_prefs);
- PromoResourceService::RegisterUserPrefs(user_prefs);
- ProtocolHandlerRegistry::RegisterUserPrefs(user_prefs);
- RegisterBrowserUserPrefs(user_prefs);
- SessionStartupPref::RegisterUserPrefs(user_prefs);
- TemplateURLPrepopulateData::RegisterUserPrefs(user_prefs);
- TranslatePrefs::RegisterUserPrefs(user_prefs);
+ registry);
+ chrome_browser_net::Predictor::RegisterUserPrefs(registry);
+ DownloadPrefs::RegisterUserPrefs(user_prefs, registry);
+ extensions::ComponentLoader::RegisterUserPrefs(registry);
+ extensions::ExtensionPrefs::RegisterUserPrefs(registry);
+ ExtensionWebUI::RegisterUserPrefs(registry);
+ first_run::RegisterUserPrefs(registry);
+ HostContentSettingsMap::RegisterUserPrefs(registry);
+ IncognitoModePrefs::RegisterUserPrefs(registry);
+ InstantUI::RegisterUserPrefs(registry);
+ MediaCaptureDevicesDispatcher::RegisterUserPrefs(user_prefs, registry);
+ MediaStreamDevicesController::RegisterUserPrefs(registry);
+ NetPrefObserver::RegisterUserPrefs(registry);
+ NewTabUI::RegisterUserPrefs(registry);
+ PasswordManager::RegisterUserPrefs(registry);
+ PrefProxyConfigTrackerImpl::RegisterUserPrefs(registry);
+ PrefsTabHelper::RegisterUserPrefs(registry);
+ ProfileImpl::RegisterUserPrefs(registry);
+ PromoResourceService::RegisterUserPrefs(user_prefs, registry);
+ ProtocolHandlerRegistry::RegisterUserPrefs(registry);
+ RegisterBrowserUserPrefs(registry);
+ SessionStartupPref::RegisterUserPrefs(registry);
+ TemplateURLPrepopulateData::RegisterUserPrefs(registry);
+ TranslatePrefs::RegisterUserPrefs(user_prefs, registry);
#if defined(ENABLE_CONFIGURATION_POLICY)
- policy::URLBlacklistManager::RegisterUserPrefs(user_prefs);
+ policy::URLBlacklistManager::RegisterUserPrefs(registry);
#endif
#if defined(ENABLE_MANAGED_USERS)
- ManagedUserService::RegisterUserPrefs(user_prefs);
+ ManagedUserService::RegisterUserPrefs(registry);
#endif
#if defined(ENABLE_WEB_INTENTS)
- web_intents::RegisterUserPrefs(user_prefs);
+ web_intents::RegisterUserPrefs(registry);
#endif
#if defined(TOOLKIT_VIEWS)
- RegisterInvertBubbleUserPrefs(user_prefs);
+ RegisterInvertBubbleUserPrefs(registry);
#elif defined(TOOLKIT_GTK)
- BrowserWindowGtk::RegisterUserPrefs(user_prefs);
+ BrowserWindowGtk::RegisterUserPrefs(user_prefs, registry);
#endif
#if defined(OS_ANDROID)
- PromoHandler::RegisterUserPrefs(user_prefs);
+ PromoHandler::RegisterUserPrefs(registry);
#endif
#if defined(USE_ASH)
- ash::RegisterChromeLauncherUserPrefs(user_prefs);
+ ash::RegisterChromeLauncherUserPrefs(registry);
#endif
#if !defined(OS_ANDROID)
- TabsCaptureVisibleTabFunction::RegisterUserPrefs(user_prefs);
- ChromeToMobileService::RegisterUserPrefs(user_prefs);
- DevToolsWindow::RegisterUserPrefs(user_prefs);
- extensions::CommandService::RegisterUserPrefs(user_prefs);
- ExtensionSettingsHandler::RegisterUserPrefs(user_prefs);
- PepperFlashSettingsManager::RegisterUserPrefs(user_prefs);
- PinnedTabCodec::RegisterUserPrefs(user_prefs);
- PluginsUI::RegisterUserPrefs(user_prefs);
- printing::StickySettings::RegisterUserPrefs(user_prefs);
- RegisterAutolaunchUserPrefs(user_prefs);
- SyncPromoUI::RegisterUserPrefs(user_prefs);
+ TabsCaptureVisibleTabFunction::RegisterUserPrefs(registry);
+ ChromeToMobileService::RegisterUserPrefs(registry);
+ DevToolsWindow::RegisterUserPrefs(registry);
+ extensions::CommandService::RegisterUserPrefs(registry);
+ ExtensionSettingsHandler::RegisterUserPrefs(registry);
+ PepperFlashSettingsManager::RegisterUserPrefs(registry);
+ PinnedTabCodec::RegisterUserPrefs(registry);
+ PluginsUI::RegisterUserPrefs(registry);
+ printing::StickySettings::RegisterUserPrefs(registry);
+ RegisterAutolaunchUserPrefs(registry);
+ SyncPromoUI::RegisterUserPrefs(registry);
#endif
#if !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
- default_apps::RegisterUserPrefs(user_prefs);
+ default_apps::RegisterUserPrefs(registry);
#endif
#if defined(OS_CHROMEOS)
- chromeos::Preferences::RegisterUserPrefs(user_prefs);
- chromeos::ProxyConfigServiceImpl::RegisterUserPrefs(user_prefs);
+ chromeos::Preferences::RegisterUserPrefs(user_prefs, registry);
+ chromeos::ProxyConfigServiceImpl::RegisterUserPrefs(registry);
#endif
#if defined(OS_WIN)
- NetworkProfileBubble::RegisterUserPrefs(user_prefs);
+ NetworkProfileBubble::RegisterUserPrefs(registry);
#endif
}
void MigrateUserPrefs(Profile* profile) {
// Cleanup old prefs.
static const char kBackupPref[] = "backup";
- PrefServiceSyncable* prefs = profile->GetPrefs();
- prefs->RegisterDictionaryPref(kBackupPref, new DictionaryValue(),
- PrefServiceSyncable::UNSYNCABLE_PREF);
+ PrefService* prefs = profile->GetPrefs();
+ // TODO(joi): Fix to not require post-construction registration?
+ scoped_refptr<PrefRegistrySyncable> registry(
+ static_cast<PrefRegistrySyncable*>(prefs->DeprecatedGetPrefRegistry()));
+ registry->RegisterDictionaryPref(kBackupPref, new DictionaryValue(),
+ PrefRegistrySyncable::UNSYNCABLE_PREF);
prefs->ClearPref(kBackupPref);
- prefs->UnregisterPreference(kBackupPref);
+ registry->DeprecatedUnregisterPreference(kBackupPref);
+
+ PrefsTabHelper::MigrateUserPrefs(prefs, registry);
}
void MigrateBrowserPrefs(Profile* profile, PrefService* local_state) {
@@ -356,7 +367,7 @@ void MigrateBrowserPrefs(Profile* profile, PrefService* local_state) {
current_version);
}
- PrefServiceSyncable* user_prefs = profile->GetPrefs();
+ PrefService* user_prefs = profile->GetPrefs();
if (!(current_version & WINDOWS_PREFS)) {
registry->RegisterIntegerPref(prefs::kDevToolsHSplitLocation, -1);
if (local_state->HasPrefPath(prefs::kDevToolsHSplitLocation)) {

Powered by Google App Engine
This is Rietveld 408576698