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

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
« no previous file with comments | « no previous file | chrome/browser/prefs/profile_pref_store_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 #if defined(OS_WIN) 74 #if defined(OS_WIN)
75 #include "base/win/win_util.h" 75 #include "base/win/win_util.h"
76 #if BUILDFLAG(ENABLE_RLZ) 76 #if BUILDFLAG(ENABLE_RLZ)
77 #include "rlz/lib/machine_id.h" 77 #include "rlz/lib/machine_id.h"
78 #endif // BUILDFLAG(ENABLE_RLZ) 78 #endif // BUILDFLAG(ENABLE_RLZ)
79 #endif // defined(OS_WIN) 79 #endif // defined(OS_WIN)
80 80
81 using content::BrowserContext; 81 using content::BrowserContext;
82 using content::BrowserThread; 82 using content::BrowserThread;
83 83
84 using EnforcementLevel = PrefHashFilter::EnforcementLevel;
85 using PrefTrackingStrategy = PrefHashFilter::PrefTrackingStrategy;
86 using ValueType = PrefHashFilter::ValueType;
87
84 namespace { 88 namespace {
85 89
86 #if defined(OS_WIN) 90 #if defined(OS_WIN)
87 // Whether we are in testing mode; can be enabled via 91 // Whether we are in testing mode; can be enabled via
88 // DisableDomainCheckForTesting(). Forces startup checks to ignore the presence 92 // DisableDomainCheckForTesting(). Forces startup checks to ignore the presence
89 // of a domain when determining the active SettingsEnforcement group. 93 // of a domain when determining the active SettingsEnforcement group.
90 bool g_disable_domain_check_for_testing = false; 94 bool g_disable_domain_check_for_testing = false;
91 #endif // OS_WIN 95 #endif // OS_WIN
92 96
93 // These preferences must be kept in sync with the TrackedPreference enum in 97 // 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 98 // 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 99 // to the array and add a corresponding value to the histogram enum. Each
96 // tracked preference must be given a unique reporting ID. 100 // tracked preference must be given a unique reporting ID.
97 // See CleanupDeprecatedTrackedPreferences() in pref_hash_filter.cc to remove a 101 // See CleanupDeprecatedTrackedPreferences() in pref_hash_filter.cc to remove a
98 // deprecated tracked preference. 102 // deprecated tracked preference.
99 const PrefHashFilter::TrackedPreferenceMetadata kTrackedPrefs[] = { 103 const PrefHashFilter::TrackedPreferenceMetadata kTrackedPrefs[] = {
100 { 104 {0, prefs::kShowHomeButton, EnforcementLevel::ENFORCE_ON_LOAD,
101 0, prefs::kShowHomeButton, 105 PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL},
102 PrefHashFilter::ENFORCE_ON_LOAD, 106 {1, prefs::kHomePageIsNewTabPage, EnforcementLevel::ENFORCE_ON_LOAD,
103 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 107 PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL},
104 PrefHashFilter::VALUE_IMPERSONAL 108 {2, prefs::kHomePage, EnforcementLevel::ENFORCE_ON_LOAD,
105 }, 109 PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL},
106 { 110 {3, prefs::kRestoreOnStartup, EnforcementLevel::ENFORCE_ON_LOAD,
107 1, prefs::kHomePageIsNewTabPage, 111 PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL},
108 PrefHashFilter::ENFORCE_ON_LOAD, 112 {4, prefs::kURLsToRestoreOnStartup, EnforcementLevel::ENFORCE_ON_LOAD,
109 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 113 PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL},
110 PrefHashFilter::VALUE_IMPERSONAL
111 },
112 {
113 2, prefs::kHomePage,
114 PrefHashFilter::ENFORCE_ON_LOAD,
115 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
116 PrefHashFilter::VALUE_IMPERSONAL
117 },
118 {
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) 114 #if BUILDFLAG(ENABLE_EXTENSIONS)
131 { 115 {5, extensions::pref_names::kExtensions, EnforcementLevel::NO_ENFORCEMENT,
132 5, extensions::pref_names::kExtensions, 116 PrefTrackingStrategy::SPLIT, ValueType::IMPERSONAL},
133 PrefHashFilter::NO_ENFORCEMENT,
134 PrefHashFilter::TRACKING_STRATEGY_SPLIT,
135 PrefHashFilter::VALUE_IMPERSONAL
136 },
137 #endif 117 #endif
138 { 118 {6, prefs::kGoogleServicesLastUsername, EnforcementLevel::ENFORCE_ON_LOAD,
139 6, prefs::kGoogleServicesLastUsername, 119 PrefTrackingStrategy::ATOMIC, ValueType::PERSONAL},
140 PrefHashFilter::ENFORCE_ON_LOAD, 120 {7, prefs::kSearchProviderOverrides, EnforcementLevel::ENFORCE_ON_LOAD,
141 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 121 PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL},
142 PrefHashFilter::VALUE_PERSONAL
143 },
144 {
145 7, prefs::kSearchProviderOverrides,
146 PrefHashFilter::ENFORCE_ON_LOAD,
147 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
148 PrefHashFilter::VALUE_IMPERSONAL
149 },
150 #if !defined(OS_ANDROID) 122 #if !defined(OS_ANDROID)
151 { 123 {11, prefs::kPinnedTabs, EnforcementLevel::ENFORCE_ON_LOAD,
152 11, prefs::kPinnedTabs, 124 PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL},
153 PrefHashFilter::ENFORCE_ON_LOAD,
154 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
155 PrefHashFilter::VALUE_IMPERSONAL
156 },
157 #endif 125 #endif
158 { 126 {14, DefaultSearchManager::kDefaultSearchProviderDataPrefName,
159 14, DefaultSearchManager::kDefaultSearchProviderDataPrefName, 127 EnforcementLevel::NO_ENFORCEMENT, PrefTrackingStrategy::ATOMIC,
160 PrefHashFilter::NO_ENFORCEMENT, 128 ValueType::IMPERSONAL},
161 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 129 {// Protecting kPreferenceResetTime does two things:
162 PrefHashFilter::VALUE_IMPERSONAL 130 // 1) It ensures this isn't accidently set by someone stomping the pref
163 }, 131 // file.
164 { 132 // 2) More importantly, it declares kPreferenceResetTime as a protected
165 // Protecting kPreferenceResetTime does two things: 133 // pref which is required for it to be visible when queried via the
166 // 1) It ensures this isn't accidently set by someone stomping the pref 134 // SegregatedPrefStore. This is because it's written directly in the
167 // file. 135 // protected JsonPrefStore by that store's PrefHashFilter if there was
168 // 2) More importantly, it declares kPreferenceResetTime as a protected 136 // a reset in FilterOnLoad and SegregatedPrefStore will not look for it
169 // pref which is required for it to be visible when queried via the 137 // in the protected JsonPrefStore unless it's declared as a protected
170 // SegregatedPrefStore. This is because it's written directly in the 138 // preference here.
171 // protected JsonPrefStore by that store's PrefHashFilter if there was 139 15, user_prefs::kPreferenceResetTime, EnforcementLevel::ENFORCE_ON_LOAD,
172 // a reset in FilterOnLoad and SegregatedPrefStore will not look for it 140 PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL},
173 // in the protected JsonPrefStore unless it's declared as a protected 141 // kSyncRemainingRollbackTries is deprecated and will be removed a few
174 // preference here. 142 // releases after M50.
175 15, user_prefs::kPreferenceResetTime, 143 {18, prefs::kSafeBrowsingIncidentsSent, EnforcementLevel::ENFORCE_ON_LOAD,
176 PrefHashFilter::ENFORCE_ON_LOAD, 144 PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL},
177 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
178 PrefHashFilter::VALUE_IMPERSONAL
179 },
180 // kSyncRemainingRollbackTries is deprecated and will be removed a few
181 // releases after M50.
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) 145 #if defined(OS_WIN)
189 { 146 {19, prefs::kSwReporterPromptVersion, EnforcementLevel::ENFORCE_ON_LOAD,
190 19, prefs::kSwReporterPromptVersion, 147 PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL},
191 PrefHashFilter::ENFORCE_ON_LOAD,
192 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
193 PrefHashFilter::VALUE_IMPERSONAL
194 },
195 #endif 148 #endif
196 // This pref is deprecated and will be removed a few releases after M43. 149 // This pref is deprecated and will be removed a few releases after M43.
197 // kGoogleServicesAccountId replaces it. 150 // kGoogleServicesAccountId replaces it.
198 { 151 {21, prefs::kGoogleServicesUsername, EnforcementLevel::ENFORCE_ON_LOAD,
199 21, prefs::kGoogleServicesUsername, 152 PrefTrackingStrategy::ATOMIC, ValueType::PERSONAL},
200 PrefHashFilter::ENFORCE_ON_LOAD,
201 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
202 PrefHashFilter::VALUE_PERSONAL
203 },
204 #if defined(OS_WIN) 153 #if defined(OS_WIN)
205 { 154 {22, prefs::kSwReporterPromptSeed, EnforcementLevel::ENFORCE_ON_LOAD,
206 22, prefs::kSwReporterPromptSeed, 155 PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL},
207 PrefHashFilter::ENFORCE_ON_LOAD,
208 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
209 PrefHashFilter::VALUE_IMPERSONAL
210 },
211 #endif 156 #endif
212 { 157 {23, prefs::kGoogleServicesAccountId, EnforcementLevel::ENFORCE_ON_LOAD,
213 23, prefs::kGoogleServicesAccountId, 158 PrefTrackingStrategy::ATOMIC, ValueType::PERSONAL},
214 PrefHashFilter::ENFORCE_ON_LOAD, 159 {24, prefs::kGoogleServicesLastAccountId, EnforcementLevel::ENFORCE_ON_LOAD,
215 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 160 PrefTrackingStrategy::ATOMIC, ValueType::PERSONAL},
216 PrefHashFilter::VALUE_PERSONAL
217 },
218 {
219 24, prefs::kGoogleServicesLastAccountId,
220 PrefHashFilter::ENFORCE_ON_LOAD,
221 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
222 PrefHashFilter::VALUE_PERSONAL
223 },
224 #if defined(OS_WIN) 161 #if defined(OS_WIN)
225 { 162 {25, prefs::kSettingsResetPromptPromptWave,
226 25, prefs::kSettingsResetPromptPromptWave, 163 EnforcementLevel::ENFORCE_ON_LOAD, PrefTrackingStrategy::ATOMIC,
227 PrefHashFilter::ENFORCE_ON_LOAD, 164 ValueType::IMPERSONAL},
228 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 165 {26, prefs::kSettingsResetPromptLastTriggeredForDefaultSearch,
229 PrefHashFilter::VALUE_IMPERSONAL 166 EnforcementLevel::ENFORCE_ON_LOAD, PrefTrackingStrategy::ATOMIC,
230 }, 167 ValueType::IMPERSONAL},
231 { 168 {27, prefs::kSettingsResetPromptLastTriggeredForStartupUrls,
232 26, prefs::kSettingsResetPromptLastTriggeredForDefaultSearch, 169 EnforcementLevel::ENFORCE_ON_LOAD, PrefTrackingStrategy::ATOMIC,
233 PrefHashFilter::ENFORCE_ON_LOAD, 170 ValueType::IMPERSONAL},
234 PrefHashFilter::TRACKING_STRATEGY_ATOMIC, 171 {28, prefs::kSettingsResetPromptLastTriggeredForHomepage,
235 PrefHashFilter::VALUE_IMPERSONAL 172 EnforcementLevel::ENFORCE_ON_LOAD, PrefTrackingStrategy::ATOMIC,
236 }, 173 ValueType::IMPERSONAL},
237 {
238 27, prefs::kSettingsResetPromptLastTriggeredForStartupUrls,
239 PrefHashFilter::ENFORCE_ON_LOAD,
240 PrefHashFilter::TRACKING_STRATEGY_ATOMIC,
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) 174 #endif // defined(OS_WIN)
250 // See note at top, new items added here also need to be added to 175
251 // histograms.xml's TrackedPreference enum. 176 // See note at top, new items added here also need to be added to
177 // histograms.xml's TrackedPreference enum.
252 }; 178 };
253 179
254 // One more than the last tracked preferences ID above. 180 // One more than the last tracked preferences ID above.
255 const size_t kTrackedPrefsReportingIDsCount = 181 const size_t kTrackedPrefsReportingIDsCount =
256 kTrackedPrefs[arraysize(kTrackedPrefs) - 1].reporting_id + 1; 182 kTrackedPrefs[arraysize(kTrackedPrefs) - 1].reporting_id + 1;
257 183
258 // Each group enforces a superset of the protection provided by the previous 184 // Each group enforces a superset of the protection provided by the previous
259 // one. 185 // one.
260 enum SettingsEnforcementGroup { 186 enum SettingsEnforcementGroup {
261 GROUP_NO_ENFORCEMENT, 187 GROUP_NO_ENFORCEMENT,
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 GetTrackingConfiguration() { 261 GetTrackingConfiguration() {
336 const SettingsEnforcementGroup enforcement_group = 262 const SettingsEnforcementGroup enforcement_group =
337 GetSettingsEnforcementGroup(); 263 GetSettingsEnforcementGroup();
338 264
339 std::vector<PrefHashFilter::TrackedPreferenceMetadata> result; 265 std::vector<PrefHashFilter::TrackedPreferenceMetadata> result;
340 for (size_t i = 0; i < arraysize(kTrackedPrefs); ++i) { 266 for (size_t i = 0; i < arraysize(kTrackedPrefs); ++i) {
341 PrefHashFilter::TrackedPreferenceMetadata data = kTrackedPrefs[i]; 267 PrefHashFilter::TrackedPreferenceMetadata data = kTrackedPrefs[i];
342 268
343 if (GROUP_NO_ENFORCEMENT == enforcement_group) { 269 if (GROUP_NO_ENFORCEMENT == enforcement_group) {
344 // Remove enforcement for all tracked preferences. 270 // Remove enforcement for all tracked preferences.
345 data.enforcement_level = PrefHashFilter::NO_ENFORCEMENT; 271 data.enforcement_level = EnforcementLevel::NO_ENFORCEMENT;
346 } 272 }
347 273
348 if (enforcement_group >= GROUP_ENFORCE_ALWAYS_WITH_DSE && 274 if (enforcement_group >= GROUP_ENFORCE_ALWAYS_WITH_DSE &&
349 data.name == DefaultSearchManager::kDefaultSearchProviderDataPrefName) { 275 data.name == DefaultSearchManager::kDefaultSearchProviderDataPrefName) {
350 // Specifically enable default search settings enforcement. 276 // Specifically enable default search settings enforcement.
351 data.enforcement_level = PrefHashFilter::ENFORCE_ON_LOAD; 277 data.enforcement_level = EnforcementLevel::ENFORCE_ON_LOAD;
352 } 278 }
353 279
354 #if BUILDFLAG(ENABLE_EXTENSIONS) 280 #if BUILDFLAG(ENABLE_EXTENSIONS)
355 if (enforcement_group >= GROUP_ENFORCE_ALWAYS_WITH_EXTENSIONS_AND_DSE && 281 if (enforcement_group >= GROUP_ENFORCE_ALWAYS_WITH_EXTENSIONS_AND_DSE &&
356 data.name == extensions::pref_names::kExtensions) { 282 data.name == extensions::pref_names::kExtensions) {
357 // Specifically enable extension settings enforcement. 283 // Specifically enable extension settings enforcement.
358 data.enforcement_level = PrefHashFilter::ENFORCE_ON_LOAD; 284 data.enforcement_level = EnforcementLevel::ENFORCE_ON_LOAD;
359 } 285 }
360 #endif 286 #endif
361 287
362 result.push_back(data); 288 result.push_back(data);
363 } 289 }
364 return result; 290 return result;
365 } 291 }
366 292
367 // Shows notifications which correspond to PersistentPrefStore's reading errors. 293 // Shows notifications which correspond to PersistentPrefStore's reading errors.
368 void HandleReadError(const base::FilePath& pref_filename, 294 void HandleReadError(const base::FilePath& pref_filename,
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 478
553 void ClearResetTime(Profile* profile) { 479 void ClearResetTime(Profile* profile) {
554 ProfilePrefStoreManager::ClearResetTime(profile->GetPrefs()); 480 ProfilePrefStoreManager::ClearResetTime(profile->GetPrefs());
555 } 481 }
556 482
557 void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { 483 void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
558 ProfilePrefStoreManager::RegisterProfilePrefs(registry); 484 ProfilePrefStoreManager::RegisterProfilePrefs(registry);
559 } 485 }
560 486
561 } // namespace chrome_prefs 487 } // namespace chrome_prefs
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/prefs/profile_pref_store_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698