| 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_NOTIFICATIONS) | 289 #if defined(ENABLE_NOTIFICATIONS) |
| 284 DesktopNotificationService::RegisterUserPrefs(user_prefs); | 290 DesktopNotificationService::RegisterUserPrefs(registry); |
| 285 #endif | 291 #endif |
| 286 | 292 |
| 287 #if defined(ENABLE_WEB_INTENTS) | 293 #if defined(ENABLE_WEB_INTENTS) |
| 288 web_intents::RegisterUserPrefs(user_prefs); | 294 web_intents::RegisterUserPrefs(registry); |
| 289 #endif | 295 #endif |
| 290 | 296 |
| 291 #if defined(TOOLKIT_VIEWS) | 297 #if defined(TOOLKIT_VIEWS) |
| 292 RegisterInvertBubbleUserPrefs(user_prefs); | 298 RegisterInvertBubbleUserPrefs(registry); |
| 293 #elif defined(TOOLKIT_GTK) | 299 #elif defined(TOOLKIT_GTK) |
| 294 BrowserWindowGtk::RegisterUserPrefs(user_prefs); | 300 BrowserWindowGtk::RegisterUserPrefs(user_prefs, registry); |
| 295 #endif | 301 #endif |
| 296 | 302 |
| 297 #if defined(OS_ANDROID) | 303 #if defined(OS_ANDROID) |
| 298 PromoHandler::RegisterUserPrefs(user_prefs); | 304 PromoHandler::RegisterUserPrefs(registry); |
| 299 #endif | 305 #endif |
| 300 | 306 |
| 301 #if defined(USE_ASH) | 307 #if defined(USE_ASH) |
| 302 ash::RegisterChromeLauncherUserPrefs(user_prefs); | 308 ash::RegisterChromeLauncherUserPrefs(registry); |
| 303 #endif | 309 #endif |
| 304 | 310 |
| 305 #if !defined(OS_ANDROID) | 311 #if !defined(OS_ANDROID) |
| 306 TabsCaptureVisibleTabFunction::RegisterUserPrefs(user_prefs); | 312 TabsCaptureVisibleTabFunction::RegisterUserPrefs(registry); |
| 307 ChromeToMobileService::RegisterUserPrefs(user_prefs); | 313 ChromeToMobileService::RegisterUserPrefs(registry); |
| 308 DevToolsWindow::RegisterUserPrefs(user_prefs); | 314 DevToolsWindow::RegisterUserPrefs(registry); |
| 309 extensions::CommandService::RegisterUserPrefs(user_prefs); | 315 extensions::CommandService::RegisterUserPrefs(registry); |
| 310 ExtensionSettingsHandler::RegisterUserPrefs(user_prefs); | 316 ExtensionSettingsHandler::RegisterUserPrefs(registry); |
| 311 PepperFlashSettingsManager::RegisterUserPrefs(user_prefs); | 317 PepperFlashSettingsManager::RegisterUserPrefs(registry); |
| 312 PinnedTabCodec::RegisterUserPrefs(user_prefs); | 318 PinnedTabCodec::RegisterUserPrefs(registry); |
| 313 PluginsUI::RegisterUserPrefs(user_prefs); | 319 PluginsUI::RegisterUserPrefs(registry); |
| 314 printing::StickySettings::RegisterUserPrefs(user_prefs); | 320 printing::StickySettings::RegisterUserPrefs(registry); |
| 315 RegisterAutolaunchUserPrefs(user_prefs); | 321 RegisterAutolaunchUserPrefs(registry); |
| 316 SyncPromoUI::RegisterUserPrefs(user_prefs); | 322 SyncPromoUI::RegisterUserPrefs(registry); |
| 317 #endif | 323 #endif |
| 318 | 324 |
| 319 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) | 325 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) |
| 320 default_apps::RegisterUserPrefs(user_prefs); | 326 default_apps::RegisterUserPrefs(registry); |
| 321 #endif | 327 #endif |
| 322 | 328 |
| 323 #if defined(OS_CHROMEOS) | 329 #if defined(OS_CHROMEOS) |
| 324 chromeos::Preferences::RegisterUserPrefs(user_prefs); | 330 chromeos::Preferences::RegisterUserPrefs(user_prefs, registry); |
| 325 chromeos::ProxyConfigServiceImpl::RegisterUserPrefs(user_prefs); | 331 chromeos::ProxyConfigServiceImpl::RegisterUserPrefs(registry); |
| 326 #endif | 332 #endif |
| 327 | 333 |
| 328 #if defined(OS_WIN) | 334 #if defined(OS_WIN) |
| 329 NetworkProfileBubble::RegisterUserPrefs(user_prefs); | 335 NetworkProfileBubble::RegisterUserPrefs(registry); |
| 330 #endif | 336 #endif |
| 331 } | 337 } |
| 332 | 338 |
| 333 void MigrateUserPrefs(Profile* profile) { | 339 void MigrateUserPrefs(Profile* profile) { |
| 334 // Cleanup old prefs. | 340 // Cleanup old prefs. |
| 335 static const char kBackupPref[] = "backup"; | 341 static const char kBackupPref[] = "backup"; |
| 336 PrefServiceSyncable* prefs = profile->GetPrefs(); | 342 PrefService* prefs = profile->GetPrefs(); |
| 337 prefs->RegisterDictionaryPref(kBackupPref, new DictionaryValue(), | 343 // TODO(joi): Fix to not require post-construction registration? |
| 338 PrefServiceSyncable::UNSYNCABLE_PREF); | 344 scoped_refptr<PrefRegistrySyncable> registry( |
| 345 static_cast<PrefRegistrySyncable*>(prefs->DeprecatedGetPrefRegistry())); |
| 346 registry->RegisterDictionaryPref(kBackupPref, new DictionaryValue(), |
| 347 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 339 prefs->ClearPref(kBackupPref); | 348 prefs->ClearPref(kBackupPref); |
| 340 prefs->UnregisterPreference(kBackupPref); | 349 registry->DeprecatedUnregisterPreference(kBackupPref); |
| 350 |
| 351 PrefsTabHelper::MigrateUserPrefs(prefs, registry); |
| 341 } | 352 } |
| 342 | 353 |
| 343 void MigrateBrowserPrefs(Profile* profile, PrefService* local_state) { | 354 void MigrateBrowserPrefs(Profile* profile, PrefService* local_state) { |
| 344 // Copy pref values which have been migrated to user_prefs from local_state, | 355 // Copy pref values which have been migrated to user_prefs from local_state, |
| 345 // or remove them from local_state outright, if copying is not required. | 356 // or remove them from local_state outright, if copying is not required. |
| 346 int current_version = | 357 int current_version = |
| 347 local_state->GetInteger(prefs::kMultipleProfilePrefMigration); | 358 local_state->GetInteger(prefs::kMultipleProfilePrefMigration); |
| 348 PrefRegistrySimple* registry = static_cast<PrefRegistrySimple*>( | 359 PrefRegistrySimple* registry = static_cast<PrefRegistrySimple*>( |
| 349 local_state->DeprecatedGetPrefRegistry()); | 360 local_state->DeprecatedGetPrefRegistry()); |
| 350 | 361 |
| 351 if (!(current_version & DNS_PREFS)) { | 362 if (!(current_version & DNS_PREFS)) { |
| 352 registry->RegisterListPref(prefs::kDnsStartupPrefetchList); | 363 registry->RegisterListPref(prefs::kDnsStartupPrefetchList); |
| 353 local_state->ClearPref(prefs::kDnsStartupPrefetchList); | 364 local_state->ClearPref(prefs::kDnsStartupPrefetchList); |
| 354 | 365 |
| 355 registry->RegisterListPref(prefs::kDnsHostReferralList); | 366 registry->RegisterListPref(prefs::kDnsHostReferralList); |
| 356 local_state->ClearPref(prefs::kDnsHostReferralList); | 367 local_state->ClearPref(prefs::kDnsHostReferralList); |
| 357 | 368 |
| 358 current_version |= DNS_PREFS; | 369 current_version |= DNS_PREFS; |
| 359 local_state->SetInteger(prefs::kMultipleProfilePrefMigration, | 370 local_state->SetInteger(prefs::kMultipleProfilePrefMigration, |
| 360 current_version); | 371 current_version); |
| 361 } | 372 } |
| 362 | 373 |
| 363 PrefServiceSyncable* user_prefs = profile->GetPrefs(); | 374 PrefService* user_prefs = profile->GetPrefs(); |
| 364 if (!(current_version & WINDOWS_PREFS)) { | 375 if (!(current_version & WINDOWS_PREFS)) { |
| 365 registry->RegisterIntegerPref(prefs::kDevToolsHSplitLocation, -1); | 376 registry->RegisterIntegerPref(prefs::kDevToolsHSplitLocation, -1); |
| 366 if (local_state->HasPrefPath(prefs::kDevToolsHSplitLocation)) { | 377 if (local_state->HasPrefPath(prefs::kDevToolsHSplitLocation)) { |
| 367 user_prefs->SetInteger( | 378 user_prefs->SetInteger( |
| 368 prefs::kDevToolsHSplitLocation, | 379 prefs::kDevToolsHSplitLocation, |
| 369 local_state->GetInteger(prefs::kDevToolsHSplitLocation)); | 380 local_state->GetInteger(prefs::kDevToolsHSplitLocation)); |
| 370 } | 381 } |
| 371 local_state->ClearPref(prefs::kDevToolsHSplitLocation); | 382 local_state->ClearPref(prefs::kDevToolsHSplitLocation); |
| 372 | 383 |
| 373 registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); | 384 registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 404 } | 415 } |
| 405 local_state->ClearPref(prefs::kLastPromptedGoogleURL); | 416 local_state->ClearPref(prefs::kLastPromptedGoogleURL); |
| 406 | 417 |
| 407 current_version |= GOOGLE_URL_TRACKER_PREFS; | 418 current_version |= GOOGLE_URL_TRACKER_PREFS; |
| 408 local_state->SetInteger(prefs::kMultipleProfilePrefMigration, | 419 local_state->SetInteger(prefs::kMultipleProfilePrefMigration, |
| 409 current_version); | 420 current_version); |
| 410 } | 421 } |
| 411 } | 422 } |
| 412 | 423 |
| 413 } // namespace chrome | 424 } // namespace chrome |
| OLD | NEW |