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 a61995d2a2b404e8255e5c9c1b3216be46fe19ff..877ab2771c272fa417865f2d2558ed3f7c66118c 100644 |
--- a/chrome/browser/prefs/chrome_pref_service_factory.cc |
+++ b/chrome/browser/prefs/chrome_pref_service_factory.cc |
@@ -54,23 +54,65 @@ namespace { |
// tools/metrics/histograms/histograms.xml. To add a new preference, append it |
// to the array and add a corresponding value to the histogram enum. Each |
// tracked preference must be given a unique reporting ID. |
-const PrefHashFilter::TrackedPreference kTrackedPrefs[] = { |
- { 0, prefs::kShowHomeButton, true }, |
- { 1, prefs::kHomePageIsNewTabPage, true }, |
- { 2, prefs::kHomePage, true }, |
- { 3, prefs::kRestoreOnStartup, true }, |
- { 4, prefs::kURLsToRestoreOnStartup, true }, |
- { 5, extensions::pref_names::kExtensions, false }, |
- { 6, prefs::kGoogleServicesLastUsername, true }, |
- { 7, prefs::kSearchProviderOverrides, true }, |
- { 8, prefs::kDefaultSearchProviderSearchURL, true }, |
- { 9, prefs::kDefaultSearchProviderKeyword, true }, |
- { 10, prefs::kDefaultSearchProviderName, true }, |
+const PrefHashFilter::TrackedPreferenceMetadata kTrackedPrefs[] = { |
+ { |
+ 0, prefs::kShowHomeButton, true, |
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC |
+ }, |
+ { |
+ 1, prefs::kHomePageIsNewTabPage, true, |
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC |
+ }, |
+ { |
+ 2, prefs::kHomePage, true, |
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC |
+ }, |
+ { |
+ 3, prefs::kRestoreOnStartup, true, |
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC |
+ }, |
+ { |
+ 4, prefs::kURLsToRestoreOnStartup, true, |
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC |
+ }, |
+ { |
+ 5, extensions::pref_names::kExtensions, false, |
+ PrefHashFilter::TRACKING_STRATEGY_SPLIT |
+ }, |
+ { |
+ 6, prefs::kGoogleServicesLastUsername, true, |
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC |
+ }, |
+ { |
+ 7, prefs::kSearchProviderOverrides, true, |
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC |
+ }, |
+ { |
+ 8, prefs::kDefaultSearchProviderSearchURL, true, |
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC |
+ }, |
+ { |
+ 9, prefs::kDefaultSearchProviderKeyword, true, |
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC |
+ }, |
+ { |
+ 10, prefs::kDefaultSearchProviderName, true, |
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC |
+ }, |
#if !defined(OS_ANDROID) |
- { 11, prefs::kPinnedTabs, true }, |
+ { |
+ 11, prefs::kPinnedTabs, true, |
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC |
+ }, |
#endif |
- { 12, extensions::pref_names::kKnownDisabled, true }, |
- { 13, prefs::kProfileResetPromptMemento, true }, |
+ { |
+ 12, extensions::pref_names::kKnownDisabled, true, |
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC |
+ }, |
+ { |
+ 13, prefs::kProfileResetPromptMemento, true, |
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC |
+ }, |
}; |
// The count of tracked preferences IDs across all platforms. |
@@ -101,6 +143,10 @@ PrefHashFilter::EnforcementLevel GetSettingsEnforcementLevel() { |
PrefHashFilter::ENFORCE_NO_SEEDING_NO_MIGRATION |
}, |
}; |
+ COMPILE_ASSERT(ARRAYSIZE_UNSAFE(kEnforcementLevelMap) == |
+ (PrefHashFilter::ENFORCE_ALL - |
+ PrefHashFilter::NO_ENFORCEMENT), |
+ missing_enforcement_level); |
base::FieldTrial* trial = |
base::FieldTrialList::Find(kSettingsEnforcementExperiment); |