Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(861)

Unified Diff: chrome/browser/prefs/chrome_pref_service_factory.cc

Issue 114223002: Multi-strategy based tracking. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use base::ScopedPtrHashMap Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.
« no previous file with comments | « no previous file | chrome/browser/prefs/pref_hash_filter.h » ('j') | chrome/browser/prefs/pref_hash_filter_unittest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698