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

Side by Side Diff: chrome/browser/prefs/chrome_pref_service_factory.cc

Issue 2752533002: Convert PrefHashFilter enums to enum class. (Closed)
Patch Set: Created 3 years, 9 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
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_command_line_pref_store.h> 5 #include <chrome/browser/prefs/chrome_command_line_pref_store.h>
6 #include "chrome/browser/prefs/chrome_pref_service_factory.h" 6 #include "chrome/browser/prefs/chrome_pref_service_factory.h"
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <string> 10 #include <string>
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 bool g_disable_domain_check_for_testing = false; 90 bool g_disable_domain_check_for_testing = false;
91 #endif // OS_WIN 91 #endif // OS_WIN
92 92
93 // These preferences must be kept in sync with the TrackedPreference enum in 93 // These preferences must be kept in sync with the TrackedPreference enum in
94 // tools/metrics/histograms/histograms.xml. To add a new preference, append it 94 // tools/metrics/histograms/histograms.xml. To add a new preference, append it
95 // to the array and add a corresponding value to the histogram enum. Each 95 // to the array and add a corresponding value to the histogram enum. Each
96 // tracked preference must be given a unique reporting ID. 96 // tracked preference must be given a unique reporting ID.
97 // See CleanupDeprecatedTrackedPreferences() in pref_hash_filter.cc to remove a 97 // See CleanupDeprecatedTrackedPreferences() in pref_hash_filter.cc to remove a
98 // deprecated tracked preference. 98 // deprecated tracked preference.
99 const PrefHashFilter::TrackedPreferenceMetadata kTrackedPrefs[] = { 99 const PrefHashFilter::TrackedPreferenceMetadata kTrackedPrefs[] = {
100 { 100 {0, prefs::kShowHomeButton,
101 0, prefs::kShowHomeButton, 101 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
gab 2017/03/15 14:16:36 Let's add using PrefHashFilter::EnforcementLevel
Sam McNally 2017/03/16 00:09:36 Done.
102 PrefHashFilter::ENFORCE_ON_LOAD, 102 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
103 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 103 PrefHashFilter::ValueType::IMPERSONAL},
104 PrefHashFilter::VALUE_IMPERSONAL 104 {1, prefs::kHomePageIsNewTabPage,
105 }, 105 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
106 { 106 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
107 1, prefs::kHomePageIsNewTabPage, 107 PrefHashFilter::ValueType::IMPERSONAL},
108 PrefHashFilter::ENFORCE_ON_LOAD, 108 {2, prefs::kHomePage, PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
109 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 109 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
110 PrefHashFilter::VALUE_IMPERSONAL 110 PrefHashFilter::ValueType::IMPERSONAL},
111 }, 111 {3, prefs::kRestoreOnStartup,
112 { 112 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
113 2, prefs::kHomePage, 113 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
114 PrefHashFilter::ENFORCE_ON_LOAD, 114 PrefHashFilter::ValueType::IMPERSONAL},
115 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 115 {4, prefs::kURLsToRestoreOnStartup,
116 PrefHashFilter::VALUE_IMPERSONAL 116 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
117 }, 117 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
118 { 118 PrefHashFilter::ValueType::IMPERSONAL},
119 3, prefs::kRestoreOnStartup,
120 PrefHashFilter::ENFORCE_ON_LOAD,
121 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
122 PrefHashFilter::VALUE_IMPERSONAL
123 },
124 {
125 4, prefs::kURLsToRestoreOnStartup,
126 PrefHashFilter::ENFORCE_ON_LOAD,
127 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
128 PrefHashFilter::VALUE_IMPERSONAL
129 },
130 #if BUILDFLAG(ENABLE_EXTENSIONS) 119 #if BUILDFLAG(ENABLE_EXTENSIONS)
131 { 120 {5, extensions::pref_names::kExtensions,
132 5, extensions::pref_names::kExtensions, 121 PrefHashFilter::EnforcementLevel::NO_ENFORCEMENT,
133 PrefHashFilter::NO_ENFORCEMENT, 122 PrefHashFilter::PrefTrackingStrategy::SPLIT,
134 PrefHashFilter::TRACKING_STRATEGY_SPLIT, 123 PrefHashFilter::ValueType::IMPERSONAL},
135 PrefHashFilter::VALUE_IMPERSONAL
136 },
137 #endif 124 #endif
138 { 125 {6, prefs::kGoogleServicesLastUsername,
139 6, prefs::kGoogleServicesLastUsername, 126 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
140 PrefHashFilter::ENFORCE_ON_LOAD, 127 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
141 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 128 PrefHashFilter::ValueType::PERSONAL},
142 PrefHashFilter::VALUE_PERSONAL 129 {7, prefs::kSearchProviderOverrides,
143 }, 130 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
144 { 131 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
145 7, prefs::kSearchProviderOverrides, 132 PrefHashFilter::ValueType::IMPERSONAL},
146 PrefHashFilter::ENFORCE_ON_LOAD,
147 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
148 PrefHashFilter::VALUE_IMPERSONAL
149 },
150 #if !defined(OS_ANDROID) 133 #if !defined(OS_ANDROID)
151 { 134 {11, prefs::kPinnedTabs, PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
152 11, prefs::kPinnedTabs, 135 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
153 PrefHashFilter::ENFORCE_ON_LOAD, 136 PrefHashFilter::ValueType::IMPERSONAL},
154 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
155 PrefHashFilter::VALUE_IMPERSONAL
156 },
157 #endif 137 #endif
158 { 138 {14, DefaultSearchManager::kDefaultSearchProviderDataPrefName,
159 14, DefaultSearchManager::kDefaultSearchProviderDataPrefName, 139 PrefHashFilter::EnforcementLevel::NO_ENFORCEMENT,
160 PrefHashFilter::NO_ENFORCEMENT, 140 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
161 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 141 PrefHashFilter::ValueType::IMPERSONAL},
162 PrefHashFilter::VALUE_IMPERSONAL 142 {// Protecting kPreferenceResetTime does two things:
163 }, 143 // 1) It ensures this isn't accidently set by someone stomping the pref
164 { 144 // file.
165 // Protecting kPreferenceResetTime does two things: 145 // 2) More importantly, it declares kPreferenceResetTime as a protected
166 // 1) It ensures this isn't accidently set by someone stomping the pref 146 // pref which is required for it to be visible when queried via the
167 // file. 147 // SegregatedPrefStore. This is because it's written directly in the
168 // 2) More importantly, it declares kPreferenceResetTime as a protected 148 // protected JsonPrefStore by that store's PrefHashFilter if there was
169 // pref which is required for it to be visible when queried via the 149 // a reset in FilterOnLoad and SegregatedPrefStore will not look for it
170 // SegregatedPrefStore. This is because it's written directly in the 150 // in the protected JsonPrefStore unless it's declared as a protected
171 // protected JsonPrefStore by that store's PrefHashFilter if there was 151 // preference here.
172 // a reset in FilterOnLoad and SegregatedPrefStore will not look for it 152 15, user_prefs::kPreferenceResetTime,
173 // in the protected JsonPrefStore unless it's declared as a protected 153 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
174 // preference here. 154 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
175 15, user_prefs::kPreferenceResetTime, 155 PrefHashFilter::ValueType::IMPERSONAL},
176 PrefHashFilter::ENFORCE_ON_LOAD, 156 // kSyncRemainingRollbackTries is deprecated and will be removed a few
177 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 157 // releases after M50.
178 PrefHashFilter::VALUE_IMPERSONAL 158 {18, prefs::kSafeBrowsingIncidentsSent,
179 }, 159 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
180 // kSyncRemainingRollbackTries is deprecated and will be removed a few 160 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
181 // releases after M50. 161 PrefHashFilter::ValueType::IMPERSONAL},
182 {
183 18, prefs::kSafeBrowsingIncidentsSent,
184 PrefHashFilter::ENFORCE_ON_LOAD,
185 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
186 PrefHashFilter::VALUE_IMPERSONAL
187 },
188 #if defined(OS_WIN) 162 #if defined(OS_WIN)
189 { 163 {19, prefs::kSwReporterPromptVersion,
190 19, prefs::kSwReporterPromptVersion, 164 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
191 PrefHashFilter::ENFORCE_ON_LOAD, 165 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
192 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 166 PrefHashFilter::ValueType::IMPERSONAL},
193 PrefHashFilter::VALUE_IMPERSONAL
194 },
195 #endif 167 #endif
196 // This pref is deprecated and will be removed a few releases after M43. 168 // This pref is deprecated and will be removed a few releases after M43.
197 // kGoogleServicesAccountId replaces it. 169 // kGoogleServicesAccountId replaces it.
198 { 170 {21, prefs::kGoogleServicesUsername,
199 21, prefs::kGoogleServicesUsername, 171 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
200 PrefHashFilter::ENFORCE_ON_LOAD, 172 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
201 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 173 PrefHashFilter::ValueType::PERSONAL},
202 PrefHashFilter::VALUE_PERSONAL
203 },
204 #if defined(OS_WIN) 174 #if defined(OS_WIN)
205 { 175 {22, prefs::kSwReporterPromptSeed,
206 22, prefs::kSwReporterPromptSeed, 176 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
207 PrefHashFilter::ENFORCE_ON_LOAD, 177 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
208 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 178 PrefHashFilter::ValueType::IMPERSONAL},
209 PrefHashFilter::VALUE_IMPERSONAL
210 },
211 #endif 179 #endif
212 { 180 {23, prefs::kGoogleServicesAccountId,
213 23, prefs::kGoogleServicesAccountId, 181 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
214 PrefHashFilter::ENFORCE_ON_LOAD, 182 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
215 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 183 PrefHashFilter::ValueType::PERSONAL},
216 PrefHashFilter::VALUE_PERSONAL 184 {24, prefs::kGoogleServicesLastAccountId,
217 }, 185 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
218 { 186 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
219 24, prefs::kGoogleServicesLastAccountId, 187 PrefHashFilter::ValueType::PERSONAL},
220 PrefHashFilter::ENFORCE_ON_LOAD,
221 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
222 PrefHashFilter::VALUE_PERSONAL
223 },
224 #if defined(OS_WIN) 188 #if defined(OS_WIN)
225 { 189 {25, prefs::kSettingsResetPromptPromptWave,
226 25, prefs::kSettingsResetPromptPromptWave, 190 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
227 PrefHashFilter::ENFORCE_ON_LOAD, 191 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
228 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 192 PrefHashFilter::ValueType::IMPERSONAL},
229 PrefHashFilter::VALUE_IMPERSONAL 193 {26, prefs::kSettingsResetPromptLastTriggeredForDefaultSearch,
230 }, 194 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
231 { 195 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
232 26, prefs::kSettingsResetPromptLastTriggeredForDefaultSearch, 196 PrefHashFilter::ValueType::IMPERSONAL},
233 PrefHashFilter::ENFORCE_ON_LOAD, 197 {27, prefs::kSettingsResetPromptLastTriggeredForStartupUrls,
234 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 198 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
235 PrefHashFilter::VALUE_IMPERSONAL 199 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
236 }, 200 PrefHashFilter::ValueType::IMPERSONAL},
237 { 201 {28, prefs::kSettingsResetPromptLastTriggeredForHomepage,
238 27, prefs::kSettingsResetPromptLastTriggeredForStartupUrls, 202 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD,
239 PrefHashFilter::ENFORCE_ON_LOAD, 203 PrefHashFilter::PrefTrackingStrategy::ATOMIC,
240 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 204 PrefHashFilter::ValueType::IMPERSONAL},
241 PrefHashFilter::VALUE_IMPERSONAL
242 },
243 {
244 28, prefs::kSettingsResetPromptLastTriggeredForHomepage,
245 PrefHashFilter::ENFORCE_ON_LOAD,
246 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
247 PrefHashFilter::VALUE_IMPERSONAL
248 },
249 #endif // defined(OS_WIN) 205 #endif // defined(OS_WIN)
250 // See note at top, new items added here also need to be added to 206
251 // histograms.xml's TrackedPreference enum. 207 // See note at top, new items added here also need to be added to
208 // histograms.xml's TrackedPreference enum.
252 }; 209 };
253 210
254 // One more than the last tracked preferences ID above. 211 // One more than the last tracked preferences ID above.
255 const size_t kTrackedPrefsReportingIDsCount = 212 const size_t kTrackedPrefsReportingIDsCount =
256 kTrackedPrefs[arraysize(kTrackedPrefs) - 1].reporting_id + 1; 213 kTrackedPrefs[arraysize(kTrackedPrefs) - 1].reporting_id + 1;
257 214
258 // 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
259 // one. 216 // one.
260 enum SettingsEnforcementGroup { 217 enum SettingsEnforcementGroup {
261 GROUP_NO_ENFORCEMENT, 218 GROUP_NO_ENFORCEMENT,
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 GetTrackingConfiguration() { 292 GetTrackingConfiguration() {
336 const SettingsEnforcementGroup enforcement_group = 293 const SettingsEnforcementGroup enforcement_group =
337 GetSettingsEnforcementGroup(); 294 GetSettingsEnforcementGroup();
338 295
339 std::vector<PrefHashFilter::TrackedPreferenceMetadata> result; 296 std::vector<PrefHashFilter::TrackedPreferenceMetadata> result;
340 for (size_t i = 0; i < arraysize(kTrackedPrefs); ++i) { 297 for (size_t i = 0; i < arraysize(kTrackedPrefs); ++i) {
341 PrefHashFilter::TrackedPreferenceMetadata data = kTrackedPrefs[i]; 298 PrefHashFilter::TrackedPreferenceMetadata data = kTrackedPrefs[i];
342 299
343 if (GROUP_NO_ENFORCEMENT == enforcement_group) { 300 if (GROUP_NO_ENFORCEMENT == enforcement_group) {
344 // Remove enforcement for all tracked preferences. 301 // Remove enforcement for all tracked preferences.
345 data.enforcement_level = PrefHashFilter::NO_ENFORCEMENT; 302 data.enforcement_level = PrefHashFilter::EnforcementLevel::NO_ENFORCEMENT;
346 } 303 }
347 304
348 if (enforcement_group >= GROUP_ENFORCE_ALWAYS_WITH_DSE && 305 if (enforcement_group >= GROUP_ENFORCE_ALWAYS_WITH_DSE &&
349 data.name == DefaultSearchManager::kDefaultSearchProviderDataPrefName) { 306 data.name == DefaultSearchManager::kDefaultSearchProviderDataPrefName) {
350 // Specifically enable default search settings enforcement. 307 // Specifically enable default search settings enforcement.
351 data.enforcement_level = PrefHashFilter::ENFORCE_ON_LOAD; 308 data.enforcement_level =
309 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD;
352 } 310 }
353 311
354 #if BUILDFLAG(ENABLE_EXTENSIONS) 312 #if BUILDFLAG(ENABLE_EXTENSIONS)
355 if (enforcement_group >= GROUP_ENFORCE_ALWAYS_WITH_EXTENSIONS_AND_DSE && 313 if (enforcement_group >= GROUP_ENFORCE_ALWAYS_WITH_EXTENSIONS_AND_DSE &&
356 data.name == extensions::pref_names::kExtensions) { 314 data.name == extensions::pref_names::kExtensions) {
357 // Specifically enable extension settings enforcement. 315 // Specifically enable extension settings enforcement.
358 data.enforcement_level = PrefHashFilter::ENFORCE_ON_LOAD; 316 data.enforcement_level =
317 PrefHashFilter::EnforcementLevel::ENFORCE_ON_LOAD;
359 } 318 }
360 #endif 319 #endif
361 320
362 result.push_back(data); 321 result.push_back(data);
363 } 322 }
364 return result; 323 return result;
365 } 324 }
366 325
367 // Shows notifications which correspond to PersistentPrefStore's reading errors. 326 // Shows notifications which correspond to PersistentPrefStore's reading errors.
368 void HandleReadError(const base::FilePath& pref_filename, 327 void HandleReadError(const base::FilePath& pref_filename,
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 511
553 void ClearResetTime(Profile* profile) { 512 void ClearResetTime(Profile* profile) {
554 ProfilePrefStoreManager::ClearResetTime(profile->GetPrefs()); 513 ProfilePrefStoreManager::ClearResetTime(profile->GetPrefs());
555 } 514 }
556 515
557 void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { 516 void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
558 ProfilePrefStoreManager::RegisterProfilePrefs(registry); 517 ProfilePrefStoreManager::RegisterProfilePrefs(registry);
559 } 518 }
560 519
561 } // namespace chrome_prefs 520 } // namespace chrome_prefs
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698