Index: chrome/browser/prefs/chrome_pref_service_factory.cc |
diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc |
index 13d6a4b96f6069b02bb0e7ae403444f568e7e02b..5fb7c29bdd59004a53f43f52855f9ee752143718 100644 |
--- a/chrome/browser/prefs/chrome_pref_service_factory.cc |
+++ b/chrome/browser/prefs/chrome_pref_service_factory.cc |
@@ -60,6 +60,7 @@ |
#include "content/public/browser/browser_thread.h" |
#include "extensions/features/features.h" |
#include "rlz/features/features.h" |
+#include "services/preferences/public/interfaces/preferences.mojom.h" |
#include "sql/error_delegate_util.h" |
#include "ui/base/resource/resource_bundle.h" |
@@ -97,158 +98,115 @@ bool g_disable_domain_check_for_testing = false; |
// See CleanupDeprecatedTrackedPreferences() in pref_hash_filter.cc to remove a |
// deprecated tracked preference. |
const PrefHashFilter::TrackedPreferenceMetadata kTrackedPrefs[] = { |
- { |
- 0, prefs::kShowHomeButton, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
- { |
- 1, prefs::kHomePageIsNewTabPage, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
- { |
- 2, prefs::kHomePage, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
- { |
- 3, prefs::kRestoreOnStartup, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
- { |
- 4, prefs::kURLsToRestoreOnStartup, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
+ {0, prefs::kShowHomeButton, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
+ {1, prefs::kHomePageIsNewTabPage, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
+ {2, prefs::kHomePage, PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
+ {3, prefs::kRestoreOnStartup, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
+ {4, prefs::kURLsToRestoreOnStartup, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
#if BUILDFLAG(ENABLE_EXTENSIONS) |
- { |
- 5, extensions::pref_names::kExtensions, |
- PrefHashFilter::NO_ENFORCEMENT, |
- PrefHashFilter::TRACKING_STRATEGY_SPLIT, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
+ {5, extensions::pref_names::kExtensions, |
+ PrefHashFilter::EnforcementLevel::NO_ENFORCEMENT, |
+ PrefHashFilter::PrefTrackingStrategy::SPLIT, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
#endif |
- { |
- 6, prefs::kGoogleServicesLastUsername, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_PERSONAL |
- }, |
- { |
- 7, prefs::kSearchProviderOverrides, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
+ {6, prefs::kGoogleServicesLastUsername, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::PERSONAL}, |
+ {7, prefs::kSearchProviderOverrides, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
#if !defined(OS_ANDROID) |
- { |
- 11, prefs::kPinnedTabs, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
+ {11, prefs::kPinnedTabs, PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
#endif |
- { |
- 14, DefaultSearchManager::kDefaultSearchProviderDataPrefName, |
- PrefHashFilter::NO_ENFORCEMENT, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
- { |
- // Protecting kPreferenceResetTime does two things: |
- // 1) It ensures this isn't accidently set by someone stomping the pref |
- // file. |
- // 2) More importantly, it declares kPreferenceResetTime as a protected |
- // pref which is required for it to be visible when queried via the |
- // SegregatedPrefStore. This is because it's written directly in the |
- // protected JsonPrefStore by that store's PrefHashFilter if there was |
- // a reset in FilterOnLoad and SegregatedPrefStore will not look for it |
- // in the protected JsonPrefStore unless it's declared as a protected |
- // preference here. |
- 15, user_prefs::kPreferenceResetTime, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
- // kSyncRemainingRollbackTries is deprecated and will be removed a few |
- // releases after M50. |
- { |
- 18, prefs::kSafeBrowsingIncidentsSent, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
+ {14, DefaultSearchManager::kDefaultSearchProviderDataPrefName, |
+ PrefHashFilter::EnforcementLevel::NO_ENFORCEMENT, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
+ {// Protecting kPreferenceResetTime does two things: |
+ // 1) It ensures this isn't accidently set by someone stomping the pref |
+ // file. |
+ // 2) More importantly, it declares kPreferenceResetTime as a protected |
+ // pref which is required for it to be visible when queried via the |
+ // SegregatedPrefStore. This is because it's written directly in the |
+ // protected JsonPrefStore by that store's PrefHashFilter if there was |
+ // a reset in FilterOnLoad and SegregatedPrefStore will not look for it |
+ // in the protected JsonPrefStore unless it's declared as a protected |
+ // preference here. |
+ 15, user_prefs::kPreferenceResetTime, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
+ // kSyncRemainingRollbackTries is deprecated and will be removed a few |
+ // releases after M50. |
+ {18, prefs::kSafeBrowsingIncidentsSent, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
#if defined(OS_WIN) |
- { |
- 19, prefs::kSwReporterPromptVersion, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
+ {19, prefs::kSwReporterPromptVersion, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
#endif |
- // This pref is deprecated and will be removed a few releases after M43. |
- // kGoogleServicesAccountId replaces it. |
- { |
- 21, prefs::kGoogleServicesUsername, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_PERSONAL |
- }, |
+ // This pref is deprecated and will be removed a few releases after M43. |
+ // kGoogleServicesAccountId replaces it. |
+ {21, prefs::kGoogleServicesUsername, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::PERSONAL}, |
#if defined(OS_WIN) |
- { |
- 22, prefs::kSwReporterPromptSeed, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
+ {22, prefs::kSwReporterPromptSeed, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
#endif |
- { |
- 23, prefs::kGoogleServicesAccountId, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_PERSONAL |
- }, |
- { |
- 24, prefs::kGoogleServicesLastAccountId, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_PERSONAL |
- }, |
+ {23, prefs::kGoogleServicesAccountId, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::PERSONAL}, |
+ {24, prefs::kGoogleServicesLastAccountId, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::PERSONAL}, |
#if defined(OS_WIN) |
- { |
- 25, prefs::kSettingsResetPromptPromptWave, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
- { |
- 26, prefs::kSettingsResetPromptLastTriggeredForDefaultSearch, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
- { |
- 27, prefs::kSettingsResetPromptLastTriggeredForStartupUrls, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
- { |
- 28, prefs::kSettingsResetPromptLastTriggeredForHomepage, |
- PrefHashFilter::ENFORCE_ON_LOAD, |
- PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
- PrefHashFilter::VALUE_IMPERSONAL |
- }, |
+ {25, prefs::kSettingsResetPromptPromptWave, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
+ {26, prefs::kSettingsResetPromptLastTriggeredForDefaultSearch, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
+ {27, prefs::kSettingsResetPromptLastTriggeredForStartupUrls, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
+ {28, prefs::kSettingsResetPromptLastTriggeredForHomepage, |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD, |
+ PrefHashFilter::PrefTrackingStrategy::ATOMIC, |
+ PrefHashFilter::ValueType::IMPERSONAL}, |
#endif // defined(OS_WIN) |
- // See note at top, new items added here also need to be added to |
- // histograms.xml's TrackedPreference enum. |
+ |
+ // See note at top, new items added here also need to be added to |
+ // histograms.xml's TrackedPreference enum. |
}; |
// One more than the last tracked preferences ID above. |
@@ -342,20 +300,22 @@ GetTrackingConfiguration() { |
if (GROUP_NO_ENFORCEMENT == enforcement_group) { |
// Remove enforcement for all tracked preferences. |
- data.enforcement_level = PrefHashFilter::NO_ENFORCEMENT; |
+ data.enforcement_level = PrefHashFilter::EnforcementLevel::NO_ENFORCEMENT; |
} |
if (enforcement_group >= GROUP_ENFORCE_ALWAYS_WITH_DSE && |
data.name == DefaultSearchManager::kDefaultSearchProviderDataPrefName) { |
// Specifically enable default search settings enforcement. |
- data.enforcement_level = PrefHashFilter::ENFORCE_ON_LOAD; |
+ data.enforcement_level = |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD; |
} |
#if BUILDFLAG(ENABLE_EXTENSIONS) |
if (enforcement_group >= GROUP_ENFORCE_ALWAYS_WITH_EXTENSIONS_AND_DSE && |
data.name == extensions::pref_names::kExtensions) { |
// Specifically enable extension settings enforcement. |
- data.enforcement_level = PrefHashFilter::ENFORCE_ON_LOAD; |
+ data.enforcement_level = |
+ PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD; |
} |
#endif |
@@ -519,18 +479,19 @@ std::unique_ptr<sync_preferences::PrefServiceSyncable> CreateProfilePrefs( |
syncer::PREFERENCES); |
sync_preferences::PrefServiceSyncableFactory factory; |
+ prefs::mojom::PersistentPrefStoreConnectorPtr connector; |
scoped_refptr<PersistentPrefStore> user_pref_store( |
CreateProfilePrefStoreManager(profile_path) |
->CreateProfilePrefStore( |
content::BrowserThread::GetTaskRunnerForThread( |
content::BrowserThread::IO), |
pref_io_task_runner, start_sync_flare_for_prefs, |
- validation_delegate)); |
+ validation_delegate, &connector)); |
PrepareFactory(&factory, profile_path, policy_service, |
supervised_user_settings, user_pref_store, extension_prefs, |
async); |
std::unique_ptr<sync_preferences::PrefServiceSyncable> pref_service = |
- factory.CreateSyncable(pref_registry.get()); |
+ factory.CreateSyncable(pref_registry.get(), std::move(connector)); |
return pref_service; |
} |