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

Side by Side 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: fix compile 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/prefs/chrome_pref_service_factory.h" 5 #include "chrome/browser/prefs/chrome_pref_service_factory.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/debug/trace_event.h" 8 #include "base/debug/trace_event.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 44
45 using content::BrowserContext; 45 using content::BrowserContext;
46 using content::BrowserThread; 46 using content::BrowserThread;
47 47
48 namespace { 48 namespace {
49 49
50 // These preferences must be kept in sync with the TrackedPreference enum in 50 // These preferences must be kept in sync with the TrackedPreference enum in
51 // tools/metrics/histograms/histograms.xml. To add a new preference, append it 51 // tools/metrics/histograms/histograms.xml. To add a new preference, append it
52 // to the array and add a corresponding value to the histogram enum. Each 52 // to the array and add a corresponding value to the histogram enum. Each
53 // tracked preference must be given a unique reporting ID. 53 // tracked preference must be given a unique reporting ID.
54 const PrefHashFilter::TrackedPreference kTrackedPrefs[] = { 54 const PrefHashFilter::TrackedPreferenceMetadata kTrackedPrefs[] = {
55 { 0, prefs::kShowHomeButton, true }, 55 {
56 { 1, prefs::kHomePageIsNewTabPage, true }, 56 0, prefs::kShowHomeButton, true,
57 { 2, prefs::kHomePage, true }, 57 PrefHashFilter::TRACKING_STRATEGY_ATOMIC
58 { 3, prefs::kRestoreOnStartup, true }, 58 },
59 { 4, prefs::kURLsToRestoreOnStartup, true }, 59 {
60 { 5, extensions::pref_names::kExtensions, false }, 60 1, prefs::kHomePageIsNewTabPage, true,
61 { 6, prefs::kGoogleServicesLastUsername, true }, 61 PrefHashFilter::TRACKING_STRATEGY_ATOMIC
62 { 7, prefs::kSearchProviderOverrides, true }, 62 },
63 { 8, prefs::kDefaultSearchProviderSearchURL, true }, 63 {
64 { 9, prefs::kDefaultSearchProviderKeyword, true }, 64 2, prefs::kHomePage, true,
65 { 10, prefs::kDefaultSearchProviderName, true }, 65 PrefHashFilter::TRACKING_STRATEGY_ATOMIC
66 },
67 {
68 3, prefs::kRestoreOnStartup, true,
69 PrefHashFilter::TRACKING_STRATEGY_ATOMIC
70 },
71 {
72 4, prefs::kURLsToRestoreOnStartup, true,
73 PrefHashFilter::TRACKING_STRATEGY_ATOMIC
74 },
75 {
76 5, extensions::pref_names::kExtensions, false,
77 PrefHashFilter::TRACKING_STRATEGY_SPLIT
78 },
79 {
80 6, prefs::kGoogleServicesLastUsername, true,
81 PrefHashFilter::TRACKING_STRATEGY_ATOMIC
82 },
83 {
84 7, prefs::kSearchProviderOverrides, true,
85 PrefHashFilter::TRACKING_STRATEGY_ATOMIC
86 },
87 {
88 8, prefs::kDefaultSearchProviderSearchURL, true,
89 PrefHashFilter::TRACKING_STRATEGY_ATOMIC
90 },
91 {
92 9, prefs::kDefaultSearchProviderKeyword, true,
93 PrefHashFilter::TRACKING_STRATEGY_ATOMIC
94 },
95 {
96 10, prefs::kDefaultSearchProviderName, true,
97 PrefHashFilter::TRACKING_STRATEGY_ATOMIC
98 },
66 #if !defined(OS_ANDROID) 99 #if !defined(OS_ANDROID)
67 { 11, prefs::kPinnedTabs, true }, 100 {
101 11, prefs::kPinnedTabs, true,
102 PrefHashFilter::TRACKING_STRATEGY_ATOMIC
103 },
68 #endif 104 #endif
69 { 12, extensions::pref_names::kKnownDisabled, true }, 105 {
70 { 13, prefs::kProfileResetPromptMemento, true }, 106 12, extensions::pref_names::kKnownDisabled, true,
107 PrefHashFilter::TRACKING_STRATEGY_ATOMIC
108 },
109 {
110 13, prefs::kProfileResetPromptMemento, true,
111 PrefHashFilter::TRACKING_STRATEGY_ATOMIC
112 },
71 }; 113 };
72 114
73 // The count of tracked preferences IDs across all platforms. 115 // The count of tracked preferences IDs across all platforms.
74 const size_t kTrackedPrefsReportingIDsCount = 14; 116 const size_t kTrackedPrefsReportingIDsCount = 14;
75 COMPILE_ASSERT(kTrackedPrefsReportingIDsCount >= arraysize(kTrackedPrefs), 117 COMPILE_ASSERT(kTrackedPrefsReportingIDsCount >= arraysize(kTrackedPrefs),
76 need_to_increment_ids_count); 118 need_to_increment_ids_count);
77 119
78 PrefHashFilter::EnforcementLevel GetSettingsEnforcementLevel() { 120 PrefHashFilter::EnforcementLevel GetSettingsEnforcementLevel() {
79 static const char kSettingsEnforcementExperiment[] = "SettingsEnforcement"; 121 static const char kSettingsEnforcementExperiment[] = "SettingsEnforcement";
80 struct { 122 struct {
(...skipping 10 matching lines...) Expand all
91 }, 133 },
92 { 134 {
93 "enforce_no_seeding", 135 "enforce_no_seeding",
94 PrefHashFilter::ENFORCE_NO_SEEDING 136 PrefHashFilter::ENFORCE_NO_SEEDING
95 }, 137 },
96 { 138 {
97 "enforce_no_seeding_no_migration", 139 "enforce_no_seeding_no_migration",
98 PrefHashFilter::ENFORCE_NO_SEEDING_NO_MIGRATION 140 PrefHashFilter::ENFORCE_NO_SEEDING_NO_MIGRATION
99 }, 141 },
100 }; 142 };
143 COMPILE_ASSERT(ARRAYSIZE_UNSAFE(kEnforcementLevelMap) ==
144 (PrefHashFilter::ENFORCE_ALL -
145 PrefHashFilter::NO_ENFORCEMENT),
146 missing_enforcement_level);
101 147
102 base::FieldTrial* trial = 148 base::FieldTrial* trial =
103 base::FieldTrialList::Find(kSettingsEnforcementExperiment); 149 base::FieldTrialList::Find(kSettingsEnforcementExperiment);
104 if (trial) { 150 if (trial) {
105 const std::string& group_name = trial->group_name(); 151 const std::string& group_name = trial->group_name();
106 // ARRAYSIZE_UNSAFE must be used since the array is declared locally; it is 152 // ARRAYSIZE_UNSAFE must be used since the array is declared locally; it is
107 // only unsafe because it could not trigger a compile error on some 153 // only unsafe because it could not trigger a compile error on some
108 // non-array pointer types; this is fine since kEnforcementLevelMap is 154 // non-array pointer types; this is fine since kEnforcementLevelMap is
109 // clearly an array. 155 // clearly an array.
110 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kEnforcementLevelMap); ++i) { 156 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kEnforcementLevelMap); ++i) {
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 pref_io_task_runner, 296 pref_io_task_runner,
251 policy_service, 297 policy_service,
252 managed_user_settings, 298 managed_user_settings,
253 pref_hash_store.Pass(), 299 pref_hash_store.Pass(),
254 extension_prefs, 300 extension_prefs,
255 async); 301 async);
256 return factory.CreateSyncable(pref_registry.get()); 302 return factory.CreateSyncable(pref_registry.get());
257 } 303 }
258 304
259 } // namespace chrome_prefs 305 } // namespace chrome_prefs
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/prefs/pref_hash_filter.h » ('j') | chrome/browser/prefs/tracked/tracked_atomic_preference.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698