OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/chrome_pref_service_factory.h" | 5 #include "chrome/browser/prefs/chrome_pref_service_factory.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 17 matching lines...) Expand all Loading... |
28 #include "chrome/browser/prefs/command_line_pref_store.h" | 28 #include "chrome/browser/prefs/command_line_pref_store.h" |
29 #include "chrome/browser/prefs/pref_hash_filter.h" | 29 #include "chrome/browser/prefs/pref_hash_filter.h" |
30 #include "chrome/browser/prefs/pref_model_associator.h" | 30 #include "chrome/browser/prefs/pref_model_associator.h" |
31 #include "chrome/browser/prefs/pref_service_syncable.h" | 31 #include "chrome/browser/prefs/pref_service_syncable.h" |
32 #include "chrome/browser/prefs/pref_service_syncable_factory.h" | 32 #include "chrome/browser/prefs/pref_service_syncable_factory.h" |
33 #include "chrome/browser/prefs/profile_pref_store_manager.h" | 33 #include "chrome/browser/prefs/profile_pref_store_manager.h" |
34 #include "chrome/browser/profiles/file_path_verifier_win.h" | 34 #include "chrome/browser/profiles/file_path_verifier_win.h" |
35 #include "chrome/browser/profiles/profile.h" | 35 #include "chrome/browser/profiles/profile.h" |
36 #include "chrome/browser/search_engines/default_search_manager.h" | 36 #include "chrome/browser/search_engines/default_search_manager.h" |
37 #include "chrome/browser/search_engines/default_search_pref_migration.h" | 37 #include "chrome/browser/search_engines/default_search_pref_migration.h" |
| 38 #include "chrome/browser/sync/glue/sync_start_util.h" |
38 #include "chrome/browser/ui/profile_error_dialog.h" | 39 #include "chrome/browser/ui/profile_error_dialog.h" |
39 #include "chrome/common/chrome_constants.h" | 40 #include "chrome/common/chrome_constants.h" |
40 #include "chrome/common/pref_names.h" | 41 #include "chrome/common/pref_names.h" |
41 #include "components/pref_registry/pref_registry_syncable.h" | 42 #include "components/pref_registry/pref_registry_syncable.h" |
42 #include "components/sync_driver/pref_names.h" | 43 #include "components/sync_driver/pref_names.h" |
43 #include "content/public/browser/browser_context.h" | 44 #include "content/public/browser/browser_context.h" |
44 #include "content/public/browser/browser_thread.h" | 45 #include "content/public/browser/browser_thread.h" |
45 #include "extensions/browser/pref_names.h" | 46 #include "extensions/browser/pref_names.h" |
46 #include "grit/browser_resources.h" | 47 #include "grit/browser_resources.h" |
47 #include "grit/chromium_strings.h" | 48 #include "grit/chromium_strings.h" |
48 #include "grit/generated_resources.h" | 49 #include "grit/generated_resources.h" |
| 50 #include "sync/internal_api/public/base/model_type.h" |
49 #include "ui/base/resource/resource_bundle.h" | 51 #include "ui/base/resource/resource_bundle.h" |
50 | 52 |
51 #if defined(ENABLE_CONFIGURATION_POLICY) | 53 #if defined(ENABLE_CONFIGURATION_POLICY) |
52 #include "components/policy/core/browser/browser_policy_connector.h" | 54 #include "components/policy/core/browser/browser_policy_connector.h" |
53 #include "components/policy/core/browser/configuration_policy_pref_store.h" | 55 #include "components/policy/core/browser/configuration_policy_pref_store.h" |
54 #include "components/policy/core/common/policy_types.h" | 56 #include "components/policy/core/common/policy_types.h" |
55 #endif | 57 #endif |
56 | 58 |
57 #if defined(ENABLE_MANAGED_USERS) | 59 #if defined(ENABLE_MANAGED_USERS) |
58 #include "chrome/browser/supervised_user/supervised_user_pref_store.h" | 60 #include "chrome/browser/supervised_user/supervised_user_pref_store.h" |
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
435 scoped_ptr<PrefServiceSyncable> CreateProfilePrefs( | 437 scoped_ptr<PrefServiceSyncable> CreateProfilePrefs( |
436 const base::FilePath& profile_path, | 438 const base::FilePath& profile_path, |
437 base::SequencedTaskRunner* pref_io_task_runner, | 439 base::SequencedTaskRunner* pref_io_task_runner, |
438 TrackedPreferenceValidationDelegate* validation_delegate, | 440 TrackedPreferenceValidationDelegate* validation_delegate, |
439 policy::PolicyService* policy_service, | 441 policy::PolicyService* policy_service, |
440 SupervisedUserSettingsService* supervised_user_settings, | 442 SupervisedUserSettingsService* supervised_user_settings, |
441 const scoped_refptr<PrefStore>& extension_prefs, | 443 const scoped_refptr<PrefStore>& extension_prefs, |
442 const scoped_refptr<user_prefs::PrefRegistrySyncable>& pref_registry, | 444 const scoped_refptr<user_prefs::PrefRegistrySyncable>& pref_registry, |
443 bool async) { | 445 bool async) { |
444 TRACE_EVENT0("browser", "chrome_prefs::CreateProfilePrefs"); | 446 TRACE_EVENT0("browser", "chrome_prefs::CreateProfilePrefs"); |
| 447 |
| 448 // A StartSyncFlare used to kick sync early in case of a reset event. This is |
| 449 // done since sync may bring back the user's server value post-reset which |
| 450 // could potentially cause a "settings flash" between the factory default and |
| 451 // the re-instantiated server value. Starting sync ASAP minimizes the window |
| 452 // before the server value is re-instantiated (this window can otherwise be |
| 453 // as long as 10 seconds by default). |
| 454 const base::Closure start_sync_flare_for_prefs = |
| 455 base::Bind(sync_start_util::GetFlareForSyncableService(profile_path), |
| 456 syncer::PREFERENCES); |
| 457 |
445 PrefServiceSyncableFactory factory; | 458 PrefServiceSyncableFactory factory; |
446 PrepareFactory( | 459 PrepareFactory(&factory, |
447 &factory, | 460 policy_service, |
448 policy_service, | 461 supervised_user_settings, |
449 supervised_user_settings, | 462 scoped_refptr<PersistentPrefStore>( |
450 scoped_refptr<PersistentPrefStore>( | 463 CreateProfilePrefStoreManager(profile_path) |
451 CreateProfilePrefStoreManager(profile_path)->CreateProfilePrefStore( | 464 ->CreateProfilePrefStore(pref_io_task_runner, |
452 pref_io_task_runner, validation_delegate)), | 465 start_sync_flare_for_prefs, |
453 extension_prefs, | 466 validation_delegate)), |
454 async); | 467 extension_prefs, |
| 468 async); |
455 scoped_ptr<PrefServiceSyncable> pref_service = | 469 scoped_ptr<PrefServiceSyncable> pref_service = |
456 factory.CreateSyncable(pref_registry.get()); | 470 factory.CreateSyncable(pref_registry.get()); |
457 | 471 |
458 ConfigureDefaultSearchPrefMigrationToDictionaryValue(pref_service.get()); | 472 ConfigureDefaultSearchPrefMigrationToDictionaryValue(pref_service.get()); |
459 | 473 |
460 return pref_service.Pass(); | 474 return pref_service.Pass(); |
461 } | 475 } |
462 | 476 |
463 void SchedulePrefsFilePathVerification(const base::FilePath& profile_path) { | 477 void SchedulePrefsFilePathVerification(const base::FilePath& profile_path) { |
464 #if defined(OS_WIN) | 478 #if defined(OS_WIN) |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
496 | 510 |
497 void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { | 511 void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { |
498 ProfilePrefStoreManager::RegisterProfilePrefs(registry); | 512 ProfilePrefStoreManager::RegisterProfilePrefs(registry); |
499 } | 513 } |
500 | 514 |
501 void RegisterPrefs(PrefRegistrySimple* registry) { | 515 void RegisterPrefs(PrefRegistrySimple* registry) { |
502 ProfilePrefStoreManager::RegisterPrefs(registry); | 516 ProfilePrefStoreManager::RegisterPrefs(registry); |
503 } | 517 } |
504 | 518 |
505 } // namespace chrome_prefs | 519 } // namespace chrome_prefs |
OLD | NEW |