| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/prefs/browser_prefs.h" | 5 #include "chrome/browser/prefs/browser_prefs.h" |
| 6 | 6 |
| 7 #include "chrome/browser/about_flags.h" | 7 #include "chrome/browser/about_flags.h" |
| 8 #include "chrome/browser/accessibility/invert_bubble_prefs.h" | 8 #include "chrome/browser/accessibility/invert_bubble_prefs.h" |
| 9 #include "chrome/browser/autofill/autofill_manager.h" | 9 #include "chrome/browser/autofill/autofill_manager.h" |
| 10 #include "chrome/browser/background/background_mode_manager.h" | 10 #include "chrome/browser/background/background_mode_manager.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 #include "chrome/browser/net/net_pref_observer.h" | 41 #include "chrome/browser/net/net_pref_observer.h" |
| 42 #include "chrome/browser/net/predictor.h" | 42 #include "chrome/browser/net/predictor.h" |
| 43 #include "chrome/browser/net/ssl_config_service_manager.h" | 43 #include "chrome/browser/net/ssl_config_service_manager.h" |
| 44 #include "chrome/browser/notifications/desktop_notification_service.h" | 44 #include "chrome/browser/notifications/desktop_notification_service.h" |
| 45 #include "chrome/browser/notifications/notification_prefs_manager.h" | 45 #include "chrome/browser/notifications/notification_prefs_manager.h" |
| 46 #include "chrome/browser/password_manager/password_manager.h" | 46 #include "chrome/browser/password_manager/password_manager.h" |
| 47 #include "chrome/browser/pepper_flash_settings_manager.h" | 47 #include "chrome/browser/pepper_flash_settings_manager.h" |
| 48 #include "chrome/browser/plugins/plugin_finder.h" | 48 #include "chrome/browser/plugins/plugin_finder.h" |
| 49 #include "chrome/browser/prefs/incognito_mode_prefs.h" | 49 #include "chrome/browser/prefs/incognito_mode_prefs.h" |
| 50 #include "chrome/browser/prefs/pref_registry_simple.h" | 50 #include "chrome/browser/prefs/pref_registry_simple.h" |
| 51 #include "chrome/browser/prefs/pref_registry_syncable.h" |
| 51 #include "chrome/browser/prefs/pref_service.h" | 52 #include "chrome/browser/prefs/pref_service.h" |
| 53 #include "chrome/browser/prefs/pref_service_syncable.h" |
| 52 #include "chrome/browser/prefs/session_startup_pref.h" | 54 #include "chrome/browser/prefs/session_startup_pref.h" |
| 53 #include "chrome/browser/profiles/chrome_version_service.h" | 55 #include "chrome/browser/profiles/chrome_version_service.h" |
| 54 #include "chrome/browser/profiles/profile_impl.h" | 56 #include "chrome/browser/profiles/profile_impl.h" |
| 55 #include "chrome/browser/profiles/profile_info_cache.h" | 57 #include "chrome/browser/profiles/profile_info_cache.h" |
| 56 #include "chrome/browser/profiles/profile_manager.h" | 58 #include "chrome/browser/profiles/profile_manager.h" |
| 57 #include "chrome/browser/renderer_host/web_cache_manager.h" | 59 #include "chrome/browser/renderer_host/web_cache_manager.h" |
| 58 #include "chrome/browser/search_engines/template_url_prepopulate_data.h" | 60 #include "chrome/browser/search_engines/template_url_prepopulate_data.h" |
| 59 #include "chrome/browser/signin/signin_manager_factory.h" | 61 #include "chrome/browser/signin/signin_manager_factory.h" |
| 60 #include "chrome/browser/sync/sync_prefs.h" | 62 #include "chrome/browser/sync/sync_prefs.h" |
| 61 #include "chrome/browser/task_manager/task_manager.h" | 63 #include "chrome/browser/task_manager/task_manager.h" |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 GOOGLE_URL_TRACKER_PREFS = 1 << 2, | 147 GOOGLE_URL_TRACKER_PREFS = 1 << 2, |
| 146 }; | 148 }; |
| 147 | 149 |
| 148 } // namespace | 150 } // namespace |
| 149 | 151 |
| 150 namespace chrome { | 152 namespace chrome { |
| 151 | 153 |
| 152 // TODO(joi): Do the work needed to remove the PrefService parameter, | 154 // TODO(joi): Do the work needed to remove the PrefService parameter, |
| 153 // i.e. to do all registration up front before a PrefService is even | 155 // i.e. to do all registration up front before a PrefService is even |
| 154 // created. | 156 // created. |
| 155 void RegisterLocalState(PrefRegistrySimple* registry, | 157 void RegisterLocalState(PrefService* local_state, |
| 156 PrefService* local_state) { | 158 PrefRegistrySimple* registry) { |
| 157 // Prefs in Local State. | 159 // Prefs in Local State. |
| 158 registry->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration, 0); | 160 registry->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration, 0); |
| 159 | 161 |
| 160 // Please keep this list alphabetized. | 162 // Please keep this list alphabetized. |
| 161 browser_shutdown::RegisterPrefs(registry); | 163 browser_shutdown::RegisterPrefs(registry); |
| 162 BrowserProcessImpl::RegisterPrefs(registry); | 164 BrowserProcessImpl::RegisterPrefs(registry); |
| 163 chrome::RegisterScreenshotPrefs(registry); | 165 chrome::RegisterScreenshotPrefs(registry); |
| 164 extensions::app_launcher::RegisterPrefs(registry); | 166 extensions::app_launcher::RegisterPrefs(registry); |
| 165 ExternalProtocolHandler::RegisterPrefs(registry); | 167 ExternalProtocolHandler::RegisterPrefs(registry); |
| 166 FlagsUI::RegisterPrefs(registry); | 168 FlagsUI::RegisterPrefs(registry); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 229 | 231 |
| 230 #if defined(OS_MACOSX) | 232 #if defined(OS_MACOSX) |
| 231 confirm_quit::RegisterLocalState(registry); | 233 confirm_quit::RegisterLocalState(registry); |
| 232 #endif | 234 #endif |
| 233 | 235 |
| 234 #if defined(ENABLE_SETTINGS_APP) | 236 #if defined(ENABLE_SETTINGS_APP) |
| 235 chrome::RegisterAppListPrefs(registry); | 237 chrome::RegisterAppListPrefs(registry); |
| 236 #endif | 238 #endif |
| 237 } | 239 } |
| 238 | 240 |
| 239 void RegisterUserPrefs(PrefServiceSyncable* user_prefs) { | 241 void RegisterUserPrefs(PrefService* user_prefs, |
| 242 PrefRegistrySyncable* registry) { |
| 243 // TODO(joi): Get rid of the need for the PrefService parameter, and |
| 244 // do registration prior to PrefService creation. |
| 245 |
| 240 // User prefs. Please keep this list alphabetized. | 246 // User prefs. Please keep this list alphabetized. |
| 241 AlternateErrorPageTabObserver::RegisterUserPrefs(user_prefs); | 247 AlternateErrorPageTabObserver::RegisterUserPrefs(registry); |
| 242 AutofillManager::RegisterUserPrefs(user_prefs); | 248 AutofillManager::RegisterUserPrefs(registry); |
| 243 BookmarkPromptPrefs::RegisterUserPrefs(user_prefs); | 249 BookmarkPromptPrefs::RegisterUserPrefs(registry); |
| 244 bookmark_utils::RegisterUserPrefs(user_prefs); | 250 bookmark_utils::RegisterUserPrefs(registry); |
| 245 BrowserInstantController::RegisterUserPrefs(user_prefs); | 251 BrowserInstantController::RegisterUserPrefs(user_prefs, registry); |
| 246 browser_sync::SyncPrefs::RegisterUserPrefs(user_prefs); | 252 browser_sync::SyncPrefs::RegisterUserPrefs(user_prefs, registry); |
| 247 ChromeContentBrowserClient::RegisterUserPrefs(user_prefs); | 253 ChromeContentBrowserClient::RegisterUserPrefs(registry); |
| 248 ChromeVersionService::RegisterUserPrefs(user_prefs); | 254 ChromeVersionService::RegisterUserPrefs(registry); |
| 249 chrome_browser_net::HttpServerPropertiesManager::RegisterUserPrefs( | 255 chrome_browser_net::HttpServerPropertiesManager::RegisterUserPrefs( |
| 250 user_prefs); | 256 registry); |
| 251 chrome_browser_net::Predictor::RegisterUserPrefs(user_prefs); | 257 chrome_browser_net::Predictor::RegisterUserPrefs(registry); |
| 252 DownloadPrefs::RegisterUserPrefs(user_prefs); | 258 DownloadPrefs::RegisterUserPrefs(user_prefs, registry); |
| 253 extensions::ComponentLoader::RegisterUserPrefs(user_prefs); | 259 extensions::ComponentLoader::RegisterUserPrefs(registry); |
| 254 extensions::ExtensionPrefs::RegisterUserPrefs(user_prefs); | 260 extensions::ExtensionPrefs::RegisterUserPrefs(registry); |
| 255 ExtensionWebUI::RegisterUserPrefs(user_prefs); | 261 ExtensionWebUI::RegisterUserPrefs(registry); |
| 256 first_run::RegisterUserPrefs(user_prefs); | 262 first_run::RegisterUserPrefs(registry); |
| 257 HostContentSettingsMap::RegisterUserPrefs(user_prefs); | 263 HostContentSettingsMap::RegisterUserPrefs(registry); |
| 258 IncognitoModePrefs::RegisterUserPrefs(user_prefs); | 264 IncognitoModePrefs::RegisterUserPrefs(registry); |
| 259 InstantUI::RegisterUserPrefs(user_prefs); | 265 InstantUI::RegisterUserPrefs(registry); |
| 260 MediaCaptureDevicesDispatcher::RegisterUserPrefs(user_prefs); | 266 MediaCaptureDevicesDispatcher::RegisterUserPrefs(user_prefs, registry); |
| 261 MediaStreamDevicesController::RegisterUserPrefs(user_prefs); | 267 MediaStreamDevicesController::RegisterUserPrefs(registry); |
| 262 NetPrefObserver::RegisterUserPrefs(user_prefs); | 268 NetPrefObserver::RegisterUserPrefs(registry); |
| 263 NewTabUI::RegisterUserPrefs(user_prefs); | 269 NewTabUI::RegisterUserPrefs(registry); |
| 264 PasswordManager::RegisterUserPrefs(user_prefs); | 270 PasswordManager::RegisterUserPrefs(registry); |
| 265 PrefProxyConfigTrackerImpl::RegisterUserPrefs(user_prefs); | 271 PrefProxyConfigTrackerImpl::RegisterUserPrefs(registry); |
| 266 PrefsTabHelper::RegisterUserPrefs(user_prefs); | 272 PrefsTabHelper::RegisterUserPrefs(registry); |
| 267 ProfileImpl::RegisterUserPrefs(user_prefs); | 273 ProfileImpl::RegisterUserPrefs(registry); |
| 268 PromoResourceService::RegisterUserPrefs(user_prefs); | 274 PromoResourceService::RegisterUserPrefs(user_prefs, registry); |
| 269 ProtocolHandlerRegistry::RegisterUserPrefs(user_prefs); | 275 ProtocolHandlerRegistry::RegisterUserPrefs(registry); |
| 270 RegisterBrowserUserPrefs(user_prefs); | 276 RegisterBrowserUserPrefs(registry); |
| 271 SessionStartupPref::RegisterUserPrefs(user_prefs); | 277 SessionStartupPref::RegisterUserPrefs(registry); |
| 272 TemplateURLPrepopulateData::RegisterUserPrefs(user_prefs); | 278 TemplateURLPrepopulateData::RegisterUserPrefs(registry); |
| 273 TranslatePrefs::RegisterUserPrefs(user_prefs); | 279 TranslatePrefs::RegisterUserPrefs(user_prefs, registry); |
| 274 | 280 |
| 275 #if defined(ENABLE_CONFIGURATION_POLICY) | 281 #if defined(ENABLE_CONFIGURATION_POLICY) |
| 276 policy::URLBlacklistManager::RegisterUserPrefs(user_prefs); | 282 policy::URLBlacklistManager::RegisterUserPrefs(registry); |
| 277 #endif | 283 #endif |
| 278 | 284 |
| 279 #if defined(ENABLE_MANAGED_USERS) | 285 #if defined(ENABLE_MANAGED_USERS) |
| 280 ManagedUserService::RegisterUserPrefs(user_prefs); | 286 ManagedUserService::RegisterUserPrefs(registry); |
| 281 #endif | 287 #endif |
| 282 | 288 |
| 283 #if defined(ENABLE_WEB_INTENTS) | 289 #if defined(ENABLE_WEB_INTENTS) |
| 284 web_intents::RegisterUserPrefs(user_prefs); | 290 web_intents::RegisterUserPrefs(registry); |
| 285 #endif | 291 #endif |
| 286 | 292 |
| 287 #if defined(TOOLKIT_VIEWS) | 293 #if defined(TOOLKIT_VIEWS) |
| 288 RegisterInvertBubbleUserPrefs(user_prefs); | 294 RegisterInvertBubbleUserPrefs(registry); |
| 289 #elif defined(TOOLKIT_GTK) | 295 #elif defined(TOOLKIT_GTK) |
| 290 BrowserWindowGtk::RegisterUserPrefs(user_prefs); | 296 BrowserWindowGtk::RegisterUserPrefs(user_prefs, registry); |
| 291 #endif | 297 #endif |
| 292 | 298 |
| 293 #if defined(OS_ANDROID) | 299 #if defined(OS_ANDROID) |
| 294 PromoHandler::RegisterUserPrefs(user_prefs); | 300 PromoHandler::RegisterUserPrefs(registry); |
| 295 #endif | 301 #endif |
| 296 | 302 |
| 297 #if defined(USE_ASH) | 303 #if defined(USE_ASH) |
| 298 ash::RegisterChromeLauncherUserPrefs(user_prefs); | 304 ash::RegisterChromeLauncherUserPrefs(registry); |
| 299 #endif | 305 #endif |
| 300 | 306 |
| 301 #if !defined(OS_ANDROID) | 307 #if !defined(OS_ANDROID) |
| 302 TabsCaptureVisibleTabFunction::RegisterUserPrefs(user_prefs); | 308 TabsCaptureVisibleTabFunction::RegisterUserPrefs(registry); |
| 303 ChromeToMobileService::RegisterUserPrefs(user_prefs); | 309 ChromeToMobileService::RegisterUserPrefs(registry); |
| 304 DevToolsWindow::RegisterUserPrefs(user_prefs); | 310 DevToolsWindow::RegisterUserPrefs(registry); |
| 305 extensions::CommandService::RegisterUserPrefs(user_prefs); | 311 extensions::CommandService::RegisterUserPrefs(registry); |
| 306 ExtensionSettingsHandler::RegisterUserPrefs(user_prefs); | 312 ExtensionSettingsHandler::RegisterUserPrefs(registry); |
| 307 PepperFlashSettingsManager::RegisterUserPrefs(user_prefs); | 313 PepperFlashSettingsManager::RegisterUserPrefs(registry); |
| 308 PinnedTabCodec::RegisterUserPrefs(user_prefs); | 314 PinnedTabCodec::RegisterUserPrefs(registry); |
| 309 PluginsUI::RegisterUserPrefs(user_prefs); | 315 PluginsUI::RegisterUserPrefs(registry); |
| 310 printing::StickySettings::RegisterUserPrefs(user_prefs); | 316 printing::StickySettings::RegisterUserPrefs(registry); |
| 311 RegisterAutolaunchUserPrefs(user_prefs); | 317 RegisterAutolaunchUserPrefs(registry); |
| 312 SyncPromoUI::RegisterUserPrefs(user_prefs); | 318 SyncPromoUI::RegisterUserPrefs(registry); |
| 313 #endif | 319 #endif |
| 314 | 320 |
| 315 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) | 321 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) |
| 316 default_apps::RegisterUserPrefs(user_prefs); | 322 default_apps::RegisterUserPrefs(registry); |
| 317 #endif | 323 #endif |
| 318 | 324 |
| 319 #if defined(OS_CHROMEOS) | 325 #if defined(OS_CHROMEOS) |
| 320 chromeos::Preferences::RegisterUserPrefs(user_prefs); | 326 chromeos::Preferences::RegisterUserPrefs(user_prefs, registry); |
| 321 chromeos::ProxyConfigServiceImpl::RegisterUserPrefs(user_prefs); | 327 chromeos::ProxyConfigServiceImpl::RegisterUserPrefs(registry); |
| 322 #endif | 328 #endif |
| 323 | 329 |
| 324 #if defined(OS_WIN) | 330 #if defined(OS_WIN) |
| 325 NetworkProfileBubble::RegisterUserPrefs(user_prefs); | 331 NetworkProfileBubble::RegisterUserPrefs(registry); |
| 326 #endif | 332 #endif |
| 327 } | 333 } |
| 328 | 334 |
| 329 void MigrateUserPrefs(Profile* profile) { | 335 void MigrateUserPrefs(Profile* profile) { |
| 330 // Cleanup old prefs. | 336 // Cleanup old prefs. |
| 331 static const char kBackupPref[] = "backup"; | 337 static const char kBackupPref[] = "backup"; |
| 332 PrefServiceSyncable* prefs = profile->GetPrefs(); | 338 PrefService* prefs = profile->GetPrefs(); |
| 333 prefs->RegisterDictionaryPref(kBackupPref, new DictionaryValue(), | 339 // TODO(joi): Fix to not require post-construction registration? |
| 334 PrefServiceSyncable::UNSYNCABLE_PREF); | 340 scoped_refptr<PrefRegistrySyncable> registry( |
| 341 static_cast<PrefRegistrySyncable*>(prefs->DeprecatedGetPrefRegistry())); |
| 342 registry->RegisterDictionaryPref(kBackupPref, new DictionaryValue(), |
| 343 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 335 prefs->ClearPref(kBackupPref); | 344 prefs->ClearPref(kBackupPref); |
| 336 prefs->UnregisterPreference(kBackupPref); | 345 registry->DeprecatedUnregisterPreference(kBackupPref); |
| 346 |
| 347 PrefsTabHelper::MigrateUserPrefs(prefs, registry); |
| 337 } | 348 } |
| 338 | 349 |
| 339 void MigrateBrowserPrefs(Profile* profile, PrefService* local_state) { | 350 void MigrateBrowserPrefs(Profile* profile, PrefService* local_state) { |
| 340 // Copy pref values which have been migrated to user_prefs from local_state, | 351 // Copy pref values which have been migrated to user_prefs from local_state, |
| 341 // or remove them from local_state outright, if copying is not required. | 352 // or remove them from local_state outright, if copying is not required. |
| 342 int current_version = | 353 int current_version = |
| 343 local_state->GetInteger(prefs::kMultipleProfilePrefMigration); | 354 local_state->GetInteger(prefs::kMultipleProfilePrefMigration); |
| 344 PrefRegistrySimple* registry = static_cast<PrefRegistrySimple*>( | 355 PrefRegistrySimple* registry = static_cast<PrefRegistrySimple*>( |
| 345 local_state->DeprecatedGetPrefRegistry()); | 356 local_state->DeprecatedGetPrefRegistry()); |
| 346 | 357 |
| 347 if (!(current_version & DNS_PREFS)) { | 358 if (!(current_version & DNS_PREFS)) { |
| 348 registry->RegisterListPref(prefs::kDnsStartupPrefetchList); | 359 registry->RegisterListPref(prefs::kDnsStartupPrefetchList); |
| 349 local_state->ClearPref(prefs::kDnsStartupPrefetchList); | 360 local_state->ClearPref(prefs::kDnsStartupPrefetchList); |
| 350 | 361 |
| 351 registry->RegisterListPref(prefs::kDnsHostReferralList); | 362 registry->RegisterListPref(prefs::kDnsHostReferralList); |
| 352 local_state->ClearPref(prefs::kDnsHostReferralList); | 363 local_state->ClearPref(prefs::kDnsHostReferralList); |
| 353 | 364 |
| 354 current_version |= DNS_PREFS; | 365 current_version |= DNS_PREFS; |
| 355 local_state->SetInteger(prefs::kMultipleProfilePrefMigration, | 366 local_state->SetInteger(prefs::kMultipleProfilePrefMigration, |
| 356 current_version); | 367 current_version); |
| 357 } | 368 } |
| 358 | 369 |
| 359 PrefServiceSyncable* user_prefs = profile->GetPrefs(); | 370 PrefService* user_prefs = profile->GetPrefs(); |
| 360 if (!(current_version & WINDOWS_PREFS)) { | 371 if (!(current_version & WINDOWS_PREFS)) { |
| 361 registry->RegisterIntegerPref(prefs::kDevToolsHSplitLocation, -1); | 372 registry->RegisterIntegerPref(prefs::kDevToolsHSplitLocation, -1); |
| 362 if (local_state->HasPrefPath(prefs::kDevToolsHSplitLocation)) { | 373 if (local_state->HasPrefPath(prefs::kDevToolsHSplitLocation)) { |
| 363 user_prefs->SetInteger( | 374 user_prefs->SetInteger( |
| 364 prefs::kDevToolsHSplitLocation, | 375 prefs::kDevToolsHSplitLocation, |
| 365 local_state->GetInteger(prefs::kDevToolsHSplitLocation)); | 376 local_state->GetInteger(prefs::kDevToolsHSplitLocation)); |
| 366 } | 377 } |
| 367 local_state->ClearPref(prefs::kDevToolsHSplitLocation); | 378 local_state->ClearPref(prefs::kDevToolsHSplitLocation); |
| 368 | 379 |
| 369 registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); | 380 registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 400 } | 411 } |
| 401 local_state->ClearPref(prefs::kLastPromptedGoogleURL); | 412 local_state->ClearPref(prefs::kLastPromptedGoogleURL); |
| 402 | 413 |
| 403 current_version |= GOOGLE_URL_TRACKER_PREFS; | 414 current_version |= GOOGLE_URL_TRACKER_PREFS; |
| 404 local_state->SetInteger(prefs::kMultipleProfilePrefMigration, | 415 local_state->SetInteger(prefs::kMultipleProfilePrefMigration, |
| 405 current_version); | 416 current_version); |
| 406 } | 417 } |
| 407 } | 418 } |
| 408 | 419 |
| 409 } // namespace chrome | 420 } // namespace chrome |
| OLD | NEW |