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 1410784c20f1e06698a06d1099827a64b0b0b4df..706b5d6d607ac5b3e344b7f4b8e6668bf7fce441 100644 |
--- a/chrome/browser/prefs/chrome_pref_service_factory.cc |
+++ b/chrome/browser/prefs/chrome_pref_service_factory.cc |
@@ -23,6 +23,7 @@ |
#include "chrome/browser/prefs/pref_model_associator.h" |
#include "chrome/browser/prefs/pref_service_syncable.h" |
#include "chrome/browser/prefs/pref_service_syncable_factory.h" |
+#include "chrome/browser/prefs/tracked_preference.h" |
#include "chrome/browser/ui/profile_error_dialog.h" |
#include "chrome/common/pref_names.h" |
#include "components/user_prefs/pref_registry_syncable.h" |
@@ -50,23 +51,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, prefs::kExtensionsPref, 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, prefs::kExtensionsPref, 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, prefs::kExtensionKnownDisabled, true }, |
- { 13, prefs::kProfileResetPromptMemento, true }, |
+ { |
+ 12, prefs::kExtensionKnownDisabled, true, |
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC |
+ }, |
+ { |
+ 13, prefs::kProfileResetPromptMemento, true, |
+ PrefHashFilter::TRACKING_STRATEGY_ATOMIC |
+ }, |
}; |
// The count of tracked preferences IDs across all platforms. |
@@ -74,29 +117,33 @@ const size_t kTrackedPrefsReportingIDsCount = 14; |
COMPILE_ASSERT(kTrackedPrefsReportingIDsCount >= arraysize(kTrackedPrefs), |
need_to_increment_ids_count); |
-PrefHashFilter::EnforcementLevel GetSettingsEnforcementLevel() { |
+TrackedPreference::EnforcementLevel GetSettingsEnforcementLevel() { |
static const char kSettingsEnforcementExperiment[] = "SettingsEnforcement"; |
struct { |
const char* level_name; |
- PrefHashFilter::EnforcementLevel level; |
+ TrackedPreference::EnforcementLevel level; |
} static const kEnforcementLevelMap[] = { |
{ |
"no_enforcement", |
- PrefHashFilter::NO_ENFORCEMENT |
+ TrackedPreference::NO_ENFORCEMENT |
}, |
{ |
"enforce", |
- PrefHashFilter::ENFORCE |
+ TrackedPreference::ENFORCE |
}, |
{ |
"enforce_no_seeding", |
- PrefHashFilter::ENFORCE_NO_SEEDING |
+ TrackedPreference::ENFORCE_NO_SEEDING |
}, |
{ |
"enforce_no_seeding_no_migration", |
- PrefHashFilter::ENFORCE_NO_SEEDING_NO_MIGRATION |
+ TrackedPreference::ENFORCE_NO_SEEDING_NO_MIGRATION |
}, |
}; |
+ COMPILE_ASSERT(ARRAYSIZE_UNSAFE(kEnforcementLevelMap) == |
+ (TrackedPreference::ENFORCE_ALL - |
+ TrackedPreference::NO_ENFORCEMENT), |
+ missing_enforcement_level); |
base::FieldTrial* trial = |
base::FieldTrialList::Find(kSettingsEnforcementExperiment); |
@@ -112,7 +159,7 @@ PrefHashFilter::EnforcementLevel GetSettingsEnforcementLevel() { |
} |
} |
// TODO(gab): Switch default to ENFORCE_ALL when the field trial config is up. |
- return PrefHashFilter::NO_ENFORCEMENT; |
+ return TrackedPreference::NO_ENFORCEMENT; |
} |
// Shows notifications which correspond to PersistentPrefStore's reading errors. |