Chromium Code Reviews| 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 |