OLD | NEW |
---|---|
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 <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
74 | 74 |
75 namespace { | 75 namespace { |
76 | 76 |
77 // These preferences must be kept in sync with the TrackedPreference enum in | 77 // These preferences must be kept in sync with the TrackedPreference enum in |
78 // tools/metrics/histograms/histograms.xml. To add a new preference, append it | 78 // tools/metrics/histograms/histograms.xml. To add a new preference, append it |
79 // to the array and add a corresponding value to the histogram enum. Each | 79 // to the array and add a corresponding value to the histogram enum. Each |
80 // tracked preference must be given a unique reporting ID. | 80 // tracked preference must be given a unique reporting ID. |
81 // See CleanupDeprecatedTrackedPreferences() in pref_hash_filter.cc to remove a | 81 // See CleanupDeprecatedTrackedPreferences() in pref_hash_filter.cc to remove a |
82 // deprecated tracked preference. | 82 // deprecated tracked preference. |
83 const PrefHashFilter::TrackedPreferenceMetadata kTrackedPrefs[] = { | 83 const PrefHashFilter::TrackedPreferenceMetadata kTrackedPrefs[] = { |
84 { | 84 {0, |
gab
2015/01/26 13:29:12
I know this is the probably the new format of git
MAD
2015/01/27 19:34:18
OK, I disagree, and expressed my disagreement, but
| |
85 0, prefs::kShowHomeButton, | 85 prefs::kShowHomeButton, |
86 PrefHashFilter::ENFORCE_ON_LOAD, | 86 PrefHashFilter::ENFORCE_ON_LOAD, |
87 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 87 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
88 PrefHashFilter::VALUE_IMPERSONAL | 88 PrefHashFilter::VALUE_IMPERSONAL}, |
89 }, | 89 {1, |
90 { | 90 prefs::kHomePageIsNewTabPage, |
91 1, prefs::kHomePageIsNewTabPage, | 91 PrefHashFilter::ENFORCE_ON_LOAD, |
92 PrefHashFilter::ENFORCE_ON_LOAD, | 92 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
93 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 93 PrefHashFilter::VALUE_IMPERSONAL}, |
94 PrefHashFilter::VALUE_IMPERSONAL | 94 {2, |
95 }, | 95 prefs::kHomePage, |
96 { | 96 PrefHashFilter::ENFORCE_ON_LOAD, |
97 2, prefs::kHomePage, | 97 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
98 PrefHashFilter::ENFORCE_ON_LOAD, | 98 PrefHashFilter::VALUE_IMPERSONAL}, |
99 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 99 {3, |
100 PrefHashFilter::VALUE_IMPERSONAL | 100 prefs::kRestoreOnStartup, |
101 }, | 101 PrefHashFilter::ENFORCE_ON_LOAD, |
102 { | 102 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
103 3, prefs::kRestoreOnStartup, | 103 PrefHashFilter::VALUE_IMPERSONAL}, |
104 PrefHashFilter::ENFORCE_ON_LOAD, | 104 {4, |
105 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 105 prefs::kURLsToRestoreOnStartup, |
106 PrefHashFilter::VALUE_IMPERSONAL | 106 PrefHashFilter::ENFORCE_ON_LOAD, |
107 }, | 107 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
108 { | 108 PrefHashFilter::VALUE_IMPERSONAL}, |
109 4, prefs::kURLsToRestoreOnStartup, | |
110 PrefHashFilter::ENFORCE_ON_LOAD, | |
111 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | |
112 PrefHashFilter::VALUE_IMPERSONAL | |
113 }, | |
114 #if defined(ENABLE_EXTENSIONS) | 109 #if defined(ENABLE_EXTENSIONS) |
115 { | 110 {5, |
116 5, extensions::pref_names::kExtensions, | 111 extensions::pref_names::kExtensions, |
117 PrefHashFilter::NO_ENFORCEMENT, | 112 PrefHashFilter::NO_ENFORCEMENT, |
118 PrefHashFilter::TRACKING_STRATEGY_SPLIT, | 113 PrefHashFilter::TRACKING_STRATEGY_SPLIT, |
119 PrefHashFilter::VALUE_IMPERSONAL | 114 PrefHashFilter::VALUE_IMPERSONAL}, |
120 }, | |
121 #endif | 115 #endif |
122 { | 116 {6, |
123 6, prefs::kGoogleServicesLastUsername, | 117 prefs::kGoogleServicesLastUsername, |
124 PrefHashFilter::ENFORCE_ON_LOAD, | 118 PrefHashFilter::ENFORCE_ON_LOAD, |
125 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 119 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
126 PrefHashFilter::VALUE_PERSONAL | 120 PrefHashFilter::VALUE_PERSONAL}, |
127 }, | 121 {7, |
128 { | 122 prefs::kSearchProviderOverrides, |
129 7, prefs::kSearchProviderOverrides, | 123 PrefHashFilter::ENFORCE_ON_LOAD, |
130 PrefHashFilter::ENFORCE_ON_LOAD, | 124 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
131 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 125 PrefHashFilter::VALUE_IMPERSONAL}, |
132 PrefHashFilter::VALUE_IMPERSONAL | 126 {8, |
133 }, | 127 prefs::kDefaultSearchProviderSearchURL, |
134 { | 128 PrefHashFilter::ENFORCE_ON_LOAD, |
135 8, prefs::kDefaultSearchProviderSearchURL, | 129 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
136 PrefHashFilter::ENFORCE_ON_LOAD, | 130 PrefHashFilter::VALUE_IMPERSONAL}, |
137 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 131 {9, |
138 PrefHashFilter::VALUE_IMPERSONAL | 132 prefs::kDefaultSearchProviderKeyword, |
139 }, | 133 PrefHashFilter::ENFORCE_ON_LOAD, |
140 { | 134 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
141 9, prefs::kDefaultSearchProviderKeyword, | 135 PrefHashFilter::VALUE_IMPERSONAL}, |
142 PrefHashFilter::ENFORCE_ON_LOAD, | 136 {10, |
143 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 137 prefs::kDefaultSearchProviderName, |
144 PrefHashFilter::VALUE_IMPERSONAL | 138 PrefHashFilter::ENFORCE_ON_LOAD, |
145 }, | 139 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
146 { | 140 PrefHashFilter::VALUE_IMPERSONAL}, |
147 10, prefs::kDefaultSearchProviderName, | |
148 PrefHashFilter::ENFORCE_ON_LOAD, | |
149 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | |
150 PrefHashFilter::VALUE_IMPERSONAL | |
151 }, | |
152 #if !defined(OS_ANDROID) | 141 #if !defined(OS_ANDROID) |
153 { | 142 {11, |
154 11, prefs::kPinnedTabs, | 143 prefs::kPinnedTabs, |
155 PrefHashFilter::ENFORCE_ON_LOAD, | 144 PrefHashFilter::ENFORCE_ON_LOAD, |
156 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 145 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
157 PrefHashFilter::VALUE_IMPERSONAL | 146 PrefHashFilter::VALUE_IMPERSONAL}, |
158 }, | 147 {13, |
159 { | 148 prefs::kProfileResetPromptMementoInProfilePrefs, |
160 13, prefs::kProfileResetPromptMementoInProfilePrefs, | 149 PrefHashFilter::ENFORCE_ON_LOAD, |
161 PrefHashFilter::ENFORCE_ON_LOAD, | 150 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
162 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 151 PrefHashFilter::VALUE_IMPERSONAL}, |
163 PrefHashFilter::VALUE_IMPERSONAL | |
164 }, | |
165 #endif | 152 #endif |
166 { | 153 {14, |
167 14, DefaultSearchManager::kDefaultSearchProviderDataPrefName, | 154 DefaultSearchManager::kDefaultSearchProviderDataPrefName, |
168 PrefHashFilter::NO_ENFORCEMENT, | 155 PrefHashFilter::NO_ENFORCEMENT, |
169 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 156 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
170 PrefHashFilter::VALUE_IMPERSONAL | 157 PrefHashFilter::VALUE_IMPERSONAL}, |
171 }, | 158 {// Protecting kPreferenceResetTime does two things: |
172 { | 159 // 1) It ensures this isn't accidently set by someone stomping the pref |
173 // Protecting kPreferenceResetTime does two things: | 160 // file. |
174 // 1) It ensures this isn't accidently set by someone stomping the pref | 161 // 2) More importantly, it declares kPreferenceResetTime as a protected |
175 // file. | 162 // pref which is required for it to be visible when queried via the |
176 // 2) More importantly, it declares kPreferenceResetTime as a protected | 163 // SegregatedPrefStore. This is because it's written directly in the |
177 // pref which is required for it to be visible when queried via the | 164 // protected JsonPrefStore by that store's PrefHashFilter if there was |
178 // SegregatedPrefStore. This is because it's written directly in the | 165 // a reset in FilterOnLoad and SegregatedPrefStore will not look for it |
179 // protected JsonPrefStore by that store's PrefHashFilter if there was | 166 // in the protected JsonPrefStore unless it's declared as a protected |
180 // a reset in FilterOnLoad and SegregatedPrefStore will not look for it | 167 // preference here. |
181 // in the protected JsonPrefStore unless it's declared as a protected | 168 15, |
182 // preference here. | 169 prefs::kPreferenceResetTime, |
183 15, prefs::kPreferenceResetTime, | 170 PrefHashFilter::ENFORCE_ON_LOAD, |
184 PrefHashFilter::ENFORCE_ON_LOAD, | 171 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
185 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 172 PrefHashFilter::VALUE_IMPERSONAL}, |
186 PrefHashFilter::VALUE_IMPERSONAL | 173 {17, |
187 }, | 174 sync_driver::prefs::kSyncRemainingRollbackTries, |
188 { | 175 PrefHashFilter::ENFORCE_ON_LOAD, |
189 17, sync_driver::prefs::kSyncRemainingRollbackTries, | 176 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
190 PrefHashFilter::ENFORCE_ON_LOAD, | 177 PrefHashFilter::VALUE_IMPERSONAL}, |
191 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 178 {18, |
192 PrefHashFilter::VALUE_IMPERSONAL | 179 prefs::kSafeBrowsingIncidentsSent, |
193 }, | 180 PrefHashFilter::ENFORCE_ON_LOAD, |
194 { | 181 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
195 18, prefs::kSafeBrowsingIncidentsSent, | 182 PrefHashFilter::VALUE_IMPERSONAL}, |
196 PrefHashFilter::ENFORCE_ON_LOAD, | |
197 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | |
198 PrefHashFilter::VALUE_IMPERSONAL | |
199 }, | |
200 #if defined(OS_WIN) | 183 #if defined(OS_WIN) |
201 { | 184 {19, |
202 19, prefs::kSwReporterPromptVersion, | 185 prefs::kSwReporterPromptVersion, |
203 PrefHashFilter::ENFORCE_ON_LOAD, | 186 PrefHashFilter::ENFORCE_ON_LOAD, |
204 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 187 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
205 PrefHashFilter::VALUE_IMPERSONAL | 188 PrefHashFilter::VALUE_IMPERSONAL}, |
206 }, | 189 {20, |
207 { | 190 prefs::kSwReporterPromptReason, |
208 20, prefs::kSwReporterPromptReason, | 191 PrefHashFilter::ENFORCE_ON_LOAD, |
209 PrefHashFilter::ENFORCE_ON_LOAD, | 192 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
210 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 193 PrefHashFilter::VALUE_IMPERSONAL}, |
211 PrefHashFilter::VALUE_IMPERSONAL | |
212 }, | |
213 #endif | 194 #endif |
214 { | 195 {21, |
215 21, prefs::kGoogleServicesUsername, | 196 prefs::kGoogleServicesUsername, |
216 PrefHashFilter::ENFORCE_ON_LOAD, | 197 PrefHashFilter::ENFORCE_ON_LOAD, |
217 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | 198 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, |
218 PrefHashFilter::VALUE_PERSONAL | 199 PrefHashFilter::VALUE_PERSONAL}, |
219 }, | 200 #if defined(OS_WIN) |
220 // See note at top, new items added here also need to be added to | 201 {22, |
221 // histograms.xml's TrackedPreference enum. | 202 prefs::kSwReporterPromptSeed, |
203 PrefHashFilter::ENFORCE_ON_LOAD, | |
204 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, | |
205 PrefHashFilter::VALUE_IMPERSONAL}, | |
206 #endif | |
207 // See note at top, new items added here also need to be added to | |
208 // histograms.xml's TrackedPreference enum. | |
222 }; | 209 }; |
223 | 210 |
224 // One more than the last tracked preferences ID above. | 211 // One more than the last tracked preferences ID above. |
225 const size_t kTrackedPrefsReportingIDsCount = | 212 const size_t kTrackedPrefsReportingIDsCount = |
226 kTrackedPrefs[arraysize(kTrackedPrefs) - 1].reporting_id + 1; | 213 kTrackedPrefs[arraysize(kTrackedPrefs) - 1].reporting_id + 1; |
227 | 214 |
228 // Each group enforces a superset of the protection provided by the previous | 215 // Each group enforces a superset of the protection provided by the previous |
229 // one. | 216 // one. |
230 enum SettingsEnforcementGroup { | 217 enum SettingsEnforcementGroup { |
231 GROUP_NO_ENFORCEMENT, | 218 GROUP_NO_ENFORCEMENT, |
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
530 | 517 |
531 void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { | 518 void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { |
532 ProfilePrefStoreManager::RegisterProfilePrefs(registry); | 519 ProfilePrefStoreManager::RegisterProfilePrefs(registry); |
533 } | 520 } |
534 | 521 |
535 void RegisterPrefs(PrefRegistrySimple* registry) { | 522 void RegisterPrefs(PrefRegistrySimple* registry) { |
536 ProfilePrefStoreManager::RegisterPrefs(registry); | 523 ProfilePrefStoreManager::RegisterPrefs(registry); |
537 } | 524 } |
538 | 525 |
539 } // namespace chrome_prefs | 526 } // namespace chrome_prefs |
OLD | NEW |