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_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 Loading... | |
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |