| 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..d9630699a3fdfa9f0e2badc8e75b924535203639 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_helper.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() {
|
| +TrackedPreferenceHelper::EnforcementLevel GetSettingsEnforcementLevel() {
|
| static const char kSettingsEnforcementExperiment[] = "SettingsEnforcement";
|
| struct {
|
| const char* level_name;
|
| - PrefHashFilter::EnforcementLevel level;
|
| + TrackedPreferenceHelper::EnforcementLevel level;
|
| } static const kEnforcementLevelMap[] = {
|
| {
|
| "no_enforcement",
|
| - PrefHashFilter::NO_ENFORCEMENT
|
| + TrackedPreferenceHelper::NO_ENFORCEMENT
|
| },
|
| {
|
| "enforce",
|
| - PrefHashFilter::ENFORCE
|
| + TrackedPreferenceHelper::ENFORCE
|
| },
|
| {
|
| "enforce_no_seeding",
|
| - PrefHashFilter::ENFORCE_NO_SEEDING
|
| + TrackedPreferenceHelper::ENFORCE_NO_SEEDING
|
| },
|
| {
|
| "enforce_no_seeding_no_migration",
|
| - PrefHashFilter::ENFORCE_NO_SEEDING_NO_MIGRATION
|
| + TrackedPreferenceHelper::ENFORCE_NO_SEEDING_NO_MIGRATION
|
| },
|
| };
|
| + COMPILE_ASSERT(ARRAYSIZE_UNSAFE(kEnforcementLevelMap) ==
|
| + (TrackedPreferenceHelper::ENFORCE_ALL -
|
| + TrackedPreferenceHelper::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 TrackedPreferenceHelper::NO_ENFORCEMENT;
|
| }
|
|
|
| // Shows notifications which correspond to PersistentPrefStore's reading errors.
|
|
|