| 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_command_line_pref_store.h> | 5 #include <chrome/browser/prefs/chrome_command_line_pref_store.h> |
| 6 #include "chrome/browser/prefs/chrome_pref_service_factory.h" | 6 #include "chrome/browser/prefs/chrome_pref_service_factory.h" |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 #include "components/sync/base/model_type.h" | 53 #include "components/sync/base/model_type.h" |
| 54 #include "components/sync/base/pref_names.h" | 54 #include "components/sync/base/pref_names.h" |
| 55 #include "components/sync_preferences/pref_model_associator.h" | 55 #include "components/sync_preferences/pref_model_associator.h" |
| 56 #include "components/sync_preferences/pref_service_syncable.h" | 56 #include "components/sync_preferences/pref_service_syncable.h" |
| 57 #include "components/sync_preferences/pref_service_syncable_factory.h" | 57 #include "components/sync_preferences/pref_service_syncable_factory.h" |
| 58 #include "components/user_prefs/tracked/pref_names.h" | 58 #include "components/user_prefs/tracked/pref_names.h" |
| 59 #include "content/public/browser/browser_context.h" | 59 #include "content/public/browser/browser_context.h" |
| 60 #include "content/public/browser/browser_thread.h" | 60 #include "content/public/browser/browser_thread.h" |
| 61 #include "extensions/features/features.h" | 61 #include "extensions/features/features.h" |
| 62 #include "rlz/features/features.h" | 62 #include "rlz/features/features.h" |
| 63 #include "services/preferences/public/interfaces/preferences.mojom.h" |
| 63 #include "sql/error_delegate_util.h" | 64 #include "sql/error_delegate_util.h" |
| 64 #include "ui/base/resource/resource_bundle.h" | 65 #include "ui/base/resource/resource_bundle.h" |
| 65 | 66 |
| 66 #if BUILDFLAG(ENABLE_EXTENSIONS) | 67 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 67 #include "extensions/browser/pref_names.h" | 68 #include "extensions/browser/pref_names.h" |
| 68 #endif | 69 #endif |
| 69 | 70 |
| 70 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) | 71 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
| 71 #include "chrome/browser/supervised_user/supervised_user_pref_store.h" | 72 #include "chrome/browser/supervised_user/supervised_user_pref_store.h" |
| 72 #endif | 73 #endif |
| (...skipping 17 matching lines...) Expand all Loading... |
| 90 bool g_disable_domain_check_for_testing = false; | 91 bool g_disable_domain_check_for_testing = false; |
| 91 #endif // OS_WIN | 92 #endif // OS_WIN |
| 92 | 93 |
| 93 // These preferences must be kept in sync with the TrackedPreference enum in | 94 // These preferences must be kept in sync with the TrackedPreference enum in |
| 94 // tools/metrics/histograms/histograms.xml. To add a new preference, append it | 95 // tools/metrics/histograms/histograms.xml. To add a new preference, append it |
| 95 // to the array and add a corresponding value to the histogram enum. Each | 96 // to the array and add a corresponding value to the histogram enum. Each |
| 96 // tracked preference must be given a unique reporting ID. | 97 // tracked preference must be given a unique reporting ID. |
| 97 // See CleanupDeprecatedTrackedPreferences() in pref_hash_filter.cc to remove a | 98 // See CleanupDeprecatedTrackedPreferences() in pref_hash_filter.cc to remove a |
| 98 // deprecated tracked preference. | 99 // deprecated tracked preference. |
| 99 const PrefHashFilter::TrackedPreferenceMetadata kTrackedPrefs[] = { | 100 const PrefHashFilter::TrackedPreferenceMetadata kTrackedPrefs[] = { |
| 100 { | 101 {0, prefs::kShowHomeButton, |
| 101 0, prefs::kShowHomeButton, | 102 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 102 PrefHashFilter::ENFORCE_ON_LOAD, | 103 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 103 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 104 PrefHashFilter::ValueType::IMPERSONAL}, |
| 104 PrefHashFilter::VALUE_IMPERSONAL | 105 {1, prefs::kHomePageIsNewTabPage, |
| 105 }, | 106 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 106 { | 107 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 107 1, prefs::kHomePageIsNewTabPage, | 108 PrefHashFilter::ValueType::IMPERSONAL}, |
| 108 PrefHashFilter::ENFORCE_ON_LOAD, | 109 {2, prefs::kHomePage, PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 109 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 110 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 110 PrefHashFilter::VALUE_IMPERSONAL | 111 PrefHashFilter::ValueType::IMPERSONAL}, |
| 111 }, | 112 {3, prefs::kRestoreOnStartup, |
| 112 { | 113 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 113 2, prefs::kHomePage, | 114 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 114 PrefHashFilter::ENFORCE_ON_LOAD, | 115 PrefHashFilter::ValueType::IMPERSONAL}, |
| 115 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 116 {4, prefs::kURLsToRestoreOnStartup, |
| 116 PrefHashFilter::VALUE_IMPERSONAL | 117 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 117 }, | 118 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 118 { | 119 PrefHashFilter::ValueType::IMPERSONAL}, |
| 119 3, prefs::kRestoreOnStartup, | |
| 120 PrefHashFilter::ENFORCE_ON_LOAD, | |
| 121 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | |
| 122 PrefHashFilter::VALUE_IMPERSONAL | |
| 123 }, | |
| 124 { | |
| 125 4, prefs::kURLsToRestoreOnStartup, | |
| 126 PrefHashFilter::ENFORCE_ON_LOAD, | |
| 127 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | |
| 128 PrefHashFilter::VALUE_IMPERSONAL | |
| 129 }, | |
| 130 #if BUILDFLAG(ENABLE_EXTENSIONS) | 120 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 131 { | 121 {5, extensions::pref_names::kExtensions, |
| 132 5, extensions::pref_names::kExtensions, | 122 PrefHashFilter::EnforcementLevel::NO_ENFORCEMENT, |
| 133 PrefHashFilter::NO_ENFORCEMENT, | 123 PrefHashFilter::PrefTrackingStrategy::SPLIT, |
| 134 PrefHashFilter::TRACKING_STRATEGY_SPLIT, | 124 PrefHashFilter::ValueType::IMPERSONAL}, |
| 135 PrefHashFilter::VALUE_IMPERSONAL | |
| 136 }, | |
| 137 #endif | 125 #endif |
| 138 { | 126 {6, prefs::kGoogleServicesLastUsername, |
| 139 6, prefs::kGoogleServicesLastUsername, | 127 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 140 PrefHashFilter::ENFORCE_ON_LOAD, | 128 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 141 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 129 PrefHashFilter::ValueType::PERSONAL}, |
| 142 PrefHashFilter::VALUE_PERSONAL | 130 {7, prefs::kSearchProviderOverrides, |
| 143 }, | 131 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 144 { | 132 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 145 7, prefs::kSearchProviderOverrides, | 133 PrefHashFilter::ValueType::IMPERSONAL}, |
| 146 PrefHashFilter::ENFORCE_ON_LOAD, | |
| 147 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | |
| 148 PrefHashFilter::VALUE_IMPERSONAL | |
| 149 }, | |
| 150 #if !defined(OS_ANDROID) | 134 #if !defined(OS_ANDROID) |
| 151 { | 135 {11, prefs::kPinnedTabs, PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 152 11, prefs::kPinnedTabs, | 136 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 153 PrefHashFilter::ENFORCE_ON_LOAD, | 137 PrefHashFilter::ValueType::IMPERSONAL}, |
| 154 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | |
| 155 PrefHashFilter::VALUE_IMPERSONAL | |
| 156 }, | |
| 157 #endif | 138 #endif |
| 158 { | 139 {14, DefaultSearchManager::kDefaultSearchProviderDataPrefName, |
| 159 14, DefaultSearchManager::kDefaultSearchProviderDataPrefName, | 140 PrefHashFilter::EnforcementLevel::NO_ENFORCEMENT, |
| 160 PrefHashFilter::NO_ENFORCEMENT, | 141 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 161 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 142 PrefHashFilter::ValueType::IMPERSONAL}, |
| 162 PrefHashFilter::VALUE_IMPERSONAL | 143 {// Protecting kPreferenceResetTime does two things: |
| 163 }, | 144 // 1) It ensures this isn't accidently set by someone stomping the pref |
| 164 { | 145 // file. |
| 165 // Protecting kPreferenceResetTime does two things: | 146 // 2) More importantly, it declares kPreferenceResetTime as a protected |
| 166 // 1) It ensures this isn't accidently set by someone stomping the pref | 147 // pref which is required for it to be visible when queried via the |
| 167 // file. | 148 // SegregatedPrefStore. This is because it's written directly in the |
| 168 // 2) More importantly, it declares kPreferenceResetTime as a protected | 149 // protected JsonPrefStore by that store's PrefHashFilter if there was |
| 169 // pref which is required for it to be visible when queried via the | 150 // a reset in FilterOnLoad and SegregatedPrefStore will not look for it |
| 170 // SegregatedPrefStore. This is because it's written directly in the | 151 // in the protected JsonPrefStore unless it's declared as a protected |
| 171 // protected JsonPrefStore by that store's PrefHashFilter if there was | 152 // preference here. |
| 172 // a reset in FilterOnLoad and SegregatedPrefStore will not look for it | 153 15, user_prefs::kPreferenceResetTime, |
| 173 // in the protected JsonPrefStore unless it's declared as a protected | 154 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 174 // preference here. | 155 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 175 15, user_prefs::kPreferenceResetTime, | 156 PrefHashFilter::ValueType::IMPERSONAL}, |
| 176 PrefHashFilter::ENFORCE_ON_LOAD, | 157 // kSyncRemainingRollbackTries is deprecated and will be removed a few |
| 177 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 158 // releases after M50. |
| 178 PrefHashFilter::VALUE_IMPERSONAL | 159 {18, prefs::kSafeBrowsingIncidentsSent, |
| 179 }, | 160 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 180 // kSyncRemainingRollbackTries is deprecated and will be removed a few | 161 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 181 // releases after M50. | 162 PrefHashFilter::ValueType::IMPERSONAL}, |
| 182 { | |
| 183 18, prefs::kSafeBrowsingIncidentsSent, | |
| 184 PrefHashFilter::ENFORCE_ON_LOAD, | |
| 185 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | |
| 186 PrefHashFilter::VALUE_IMPERSONAL | |
| 187 }, | |
| 188 #if defined(OS_WIN) | 163 #if defined(OS_WIN) |
| 189 { | 164 {19, prefs::kSwReporterPromptVersion, |
| 190 19, prefs::kSwReporterPromptVersion, | 165 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 191 PrefHashFilter::ENFORCE_ON_LOAD, | 166 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 192 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 167 PrefHashFilter::ValueType::IMPERSONAL}, |
| 193 PrefHashFilter::VALUE_IMPERSONAL | |
| 194 }, | |
| 195 #endif | 168 #endif |
| 196 // This pref is deprecated and will be removed a few releases after M43. | 169 // This pref is deprecated and will be removed a few releases after M43. |
| 197 // kGoogleServicesAccountId replaces it. | 170 // kGoogleServicesAccountId replaces it. |
| 198 { | 171 {21, prefs::kGoogleServicesUsername, |
| 199 21, prefs::kGoogleServicesUsername, | 172 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 200 PrefHashFilter::ENFORCE_ON_LOAD, | 173 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 201 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 174 PrefHashFilter::ValueType::PERSONAL}, |
| 202 PrefHashFilter::VALUE_PERSONAL | |
| 203 }, | |
| 204 #if defined(OS_WIN) | 175 #if defined(OS_WIN) |
| 205 { | 176 {22, prefs::kSwReporterPromptSeed, |
| 206 22, prefs::kSwReporterPromptSeed, | 177 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 207 PrefHashFilter::ENFORCE_ON_LOAD, | 178 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 208 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 179 PrefHashFilter::ValueType::IMPERSONAL}, |
| 209 PrefHashFilter::VALUE_IMPERSONAL | |
| 210 }, | |
| 211 #endif | 180 #endif |
| 212 { | 181 {23, prefs::kGoogleServicesAccountId, |
| 213 23, prefs::kGoogleServicesAccountId, | 182 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 214 PrefHashFilter::ENFORCE_ON_LOAD, | 183 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 215 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 184 PrefHashFilter::ValueType::PERSONAL}, |
| 216 PrefHashFilter::VALUE_PERSONAL | 185 {24, prefs::kGoogleServicesLastAccountId, |
| 217 }, | 186 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 218 { | 187 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 219 24, prefs::kGoogleServicesLastAccountId, | 188 PrefHashFilter::ValueType::PERSONAL}, |
| 220 PrefHashFilter::ENFORCE_ON_LOAD, | |
| 221 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | |
| 222 PrefHashFilter::VALUE_PERSONAL | |
| 223 }, | |
| 224 #if defined(OS_WIN) | 189 #if defined(OS_WIN) |
| 225 { | 190 {25, prefs::kSettingsResetPromptPromptWave, |
| 226 25, prefs::kSettingsResetPromptPromptWave, | 191 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 227 PrefHashFilter::ENFORCE_ON_LOAD, | 192 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 228 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 193 PrefHashFilter::ValueType::IMPERSONAL}, |
| 229 PrefHashFilter::VALUE_IMPERSONAL | 194 {26, prefs::kSettingsResetPromptLastTriggeredForDefaultSearch, |
| 230 }, | 195 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 231 { | 196 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 232 26, prefs::kSettingsResetPromptLastTriggeredForDefaultSearch, | 197 PrefHashFilter::ValueType::IMPERSONAL}, |
| 233 PrefHashFilter::ENFORCE_ON_LOAD, | 198 {27, prefs::kSettingsResetPromptLastTriggeredForStartupUrls, |
| 234 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 199 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 235 PrefHashFilter::VALUE_IMPERSONAL | 200 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 236 }, | 201 PrefHashFilter::ValueType::IMPERSONAL}, |
| 237 { | 202 {28, prefs::kSettingsResetPromptLastTriggeredForHomepage, |
| 238 27, prefs::kSettingsResetPromptLastTriggeredForStartupUrls, | 203 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
| 239 PrefHashFilter::ENFORCE_ON_LOAD, | 204 PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
| 240 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 205 PrefHashFilter::ValueType::IMPERSONAL}, |
| 241 PrefHashFilter::VALUE_IMPERSONAL | |
| 242 }, | |
| 243 { | |
| 244 28, prefs::kSettingsResetPromptLastTriggeredForHomepage, | |
| 245 PrefHashFilter::ENFORCE_ON_LOAD, | |
| 246 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | |
| 247 PrefHashFilter::VALUE_IMPERSONAL | |
| 248 }, | |
| 249 #endif // defined(OS_WIN) | 206 #endif // defined(OS_WIN) |
| 250 // See note at top, new items added here also need to be added to | 207 |
| 251 // histograms.xml's TrackedPreference enum. | 208 // See note at top, new items added here also need to be added to |
| 209 // histograms.xml's TrackedPreference enum. |
| 252 }; | 210 }; |
| 253 | 211 |
| 254 // One more than the last tracked preferences ID above. | 212 // One more than the last tracked preferences ID above. |
| 255 const size_t kTrackedPrefsReportingIDsCount = | 213 const size_t kTrackedPrefsReportingIDsCount = |
| 256 kTrackedPrefs[arraysize(kTrackedPrefs) - 1].reporting_id + 1; | 214 kTrackedPrefs[arraysize(kTrackedPrefs) - 1].reporting_id + 1; |
| 257 | 215 |
| 258 // Each group enforces a superset of the protection provided by the previous | 216 // Each group enforces a superset of the protection provided by the previous |
| 259 // one. | 217 // one. |
| 260 enum SettingsEnforcementGroup { | 218 enum SettingsEnforcementGroup { |
| 261 GROUP_NO_ENFORCEMENT, | 219 GROUP_NO_ENFORCEMENT, |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 335 GetTrackingConfiguration() { | 293 GetTrackingConfiguration() { |
| 336 const SettingsEnforcementGroup enforcement_group = | 294 const SettingsEnforcementGroup enforcement_group = |
| 337 GetSettingsEnforcementGroup(); | 295 GetSettingsEnforcementGroup(); |
| 338 | 296 |
| 339 std::vector<PrefHashFilter::TrackedPreferenceMetadata> result; | 297 std::vector<PrefHashFilter::TrackedPreferenceMetadata> result; |
| 340 for (size_t i = 0; i < arraysize(kTrackedPrefs); ++i) { | 298 for (size_t i = 0; i < arraysize(kTrackedPrefs); ++i) { |
| 341 PrefHashFilter::TrackedPreferenceMetadata data = kTrackedPrefs[i]; | 299 PrefHashFilter::TrackedPreferenceMetadata data = kTrackedPrefs[i]; |
| 342 | 300 |
| 343 if (GROUP_NO_ENFORCEMENT == enforcement_group) { | 301 if (GROUP_NO_ENFORCEMENT == enforcement_group) { |
| 344 // Remove enforcement for all tracked preferences. | 302 // Remove enforcement for all tracked preferences. |
| 345 data.enforcement_level = PrefHashFilter::NO_ENFORCEMENT; | 303 data.enforcement_level = PrefHashFilter::EnforcementLevel::NO_ENFORCEMENT; |
| 346 } | 304 } |
| 347 | 305 |
| 348 if (enforcement_group >= GROUP_ENFORCE_ALWAYS_WITH_DSE && | 306 if (enforcement_group >= GROUP_ENFORCE_ALWAYS_WITH_DSE && |
| 349 data.name == DefaultSearchManager::kDefaultSearchProviderDataPrefName) { | 307 data.name == DefaultSearchManager::kDefaultSearchProviderDataPrefName) { |
| 350 // Specifically enable default search settings enforcement. | 308 // Specifically enable default search settings enforcement. |
| 351 data.enforcement_level = PrefHashFilter::ENFORCE_ON_LOAD; | 309 data.enforcement_level = |
| 310 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD; |
| 352 } | 311 } |
| 353 | 312 |
| 354 #if BUILDFLAG(ENABLE_EXTENSIONS) | 313 #if BUILDFLAG(ENABLE_EXTENSIONS) |
| 355 if (enforcement_group >= GROUP_ENFORCE_ALWAYS_WITH_EXTENSIONS_AND_DSE && | 314 if (enforcement_group >= GROUP_ENFORCE_ALWAYS_WITH_EXTENSIONS_AND_DSE && |
| 356 data.name == extensions::pref_names::kExtensions) { | 315 data.name == extensions::pref_names::kExtensions) { |
| 357 // Specifically enable extension settings enforcement. | 316 // Specifically enable extension settings enforcement. |
| 358 data.enforcement_level = PrefHashFilter::ENFORCE_ON_LOAD; | 317 data.enforcement_level = |
| 318 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD; |
| 359 } | 319 } |
| 360 #endif | 320 #endif |
| 361 | 321 |
| 362 result.push_back(data); | 322 result.push_back(data); |
| 363 } | 323 } |
| 364 return result; | 324 return result; |
| 365 } | 325 } |
| 366 | 326 |
| 367 // Shows notifications which correspond to PersistentPrefStore's reading errors. | 327 // Shows notifications which correspond to PersistentPrefStore's reading errors. |
| 368 void HandleReadError(const base::FilePath& pref_filename, | 328 void HandleReadError(const base::FilePath& pref_filename, |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 // done since sync may bring back the user's server value post-reset which | 472 // done since sync may bring back the user's server value post-reset which |
| 513 // could potentially cause a "settings flash" between the factory default and | 473 // could potentially cause a "settings flash" between the factory default and |
| 514 // the re-instantiated server value. Starting sync ASAP minimizes the window | 474 // the re-instantiated server value. Starting sync ASAP minimizes the window |
| 515 // before the server value is re-instantiated (this window can otherwise be | 475 // before the server value is re-instantiated (this window can otherwise be |
| 516 // as long as 10 seconds by default). | 476 // as long as 10 seconds by default). |
| 517 const base::Closure start_sync_flare_for_prefs = | 477 const base::Closure start_sync_flare_for_prefs = |
| 518 base::Bind(sync_start_util::GetFlareForSyncableService(profile_path), | 478 base::Bind(sync_start_util::GetFlareForSyncableService(profile_path), |
| 519 syncer::PREFERENCES); | 479 syncer::PREFERENCES); |
| 520 | 480 |
| 521 sync_preferences::PrefServiceSyncableFactory factory; | 481 sync_preferences::PrefServiceSyncableFactory factory; |
| 482 prefs::mojom::PersistentPrefStoreConnectorPtr connector; |
| 522 scoped_refptr<PersistentPrefStore> user_pref_store( | 483 scoped_refptr<PersistentPrefStore> user_pref_store( |
| 523 CreateProfilePrefStoreManager(profile_path) | 484 CreateProfilePrefStoreManager(profile_path) |
| 524 ->CreateProfilePrefStore( | 485 ->CreateProfilePrefStore( |
| 525 content::BrowserThread::GetTaskRunnerForThread( | 486 content::BrowserThread::GetTaskRunnerForThread( |
| 526 content::BrowserThread::IO), | 487 content::BrowserThread::IO), |
| 527 pref_io_task_runner, start_sync_flare_for_prefs, | 488 pref_io_task_runner, start_sync_flare_for_prefs, |
| 528 validation_delegate)); | 489 validation_delegate, &connector)); |
| 529 PrepareFactory(&factory, profile_path, policy_service, | 490 PrepareFactory(&factory, profile_path, policy_service, |
| 530 supervised_user_settings, user_pref_store, extension_prefs, | 491 supervised_user_settings, user_pref_store, extension_prefs, |
| 531 async); | 492 async); |
| 532 std::unique_ptr<sync_preferences::PrefServiceSyncable> pref_service = | 493 std::unique_ptr<sync_preferences::PrefServiceSyncable> pref_service = |
| 533 factory.CreateSyncable(pref_registry.get()); | 494 factory.CreateSyncable(pref_registry.get(), std::move(connector)); |
| 534 | 495 |
| 535 return pref_service; | 496 return pref_service; |
| 536 } | 497 } |
| 537 | 498 |
| 538 void DisableDomainCheckForTesting() { | 499 void DisableDomainCheckForTesting() { |
| 539 #if defined(OS_WIN) | 500 #if defined(OS_WIN) |
| 540 g_disable_domain_check_for_testing = true; | 501 g_disable_domain_check_for_testing = true; |
| 541 #endif // OS_WIN | 502 #endif // OS_WIN |
| 542 } | 503 } |
| 543 | 504 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 554 | 515 |
| 555 void ClearResetTime(Profile* profile) { | 516 void ClearResetTime(Profile* profile) { |
| 556 ProfilePrefStoreManager::ClearResetTime(profile->GetPrefs()); | 517 ProfilePrefStoreManager::ClearResetTime(profile->GetPrefs()); |
| 557 } | 518 } |
| 558 | 519 |
| 559 void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { | 520 void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { |
| 560 ProfilePrefStoreManager::RegisterProfilePrefs(registry); | 521 ProfilePrefStoreManager::RegisterProfilePrefs(registry); |
| 561 } | 522 } |
| 562 | 523 |
| 563 } // namespace chrome_prefs | 524 } // namespace chrome_prefs |
| OLD | NEW |