diff options
-rw-r--r-- | chrome/browser/prefs/chrome_pref_service_factory.cc | 18 | ||||
-rw-r--r-- | chrome/browser/prefs/pref_hash_filter.cc | 25 | ||||
-rw-r--r-- | chrome/browser/prefs/pref_hash_filter_unittest.cc | 3 | ||||
-rw-r--r-- | extensions/browser/extension_prefs.cc | 6 | ||||
-rw-r--r-- | extensions/browser/pref_names.cc | 1 | ||||
-rw-r--r-- | extensions/browser/pref_names.h | 4 | ||||
-rw-r--r-- | tools/metrics/histograms/histograms.xml | 3 |
7 files changed, 34 insertions, 26 deletions
diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc index c4bc314..3f4ed9a 100644 --- a/chrome/browser/prefs/chrome_pref_service_factory.cc +++ b/chrome/browser/prefs/chrome_pref_service_factory.cc @@ -86,6 +86,8 @@ bool g_disable_delays_and_domain_check_for_testing = false; // tools/metrics/histograms/histograms.xml. To add a new preference, append it // to the array and add a corresponding value to the histogram enum. Each // tracked preference must be given a unique reporting ID. +// See CleanupDeprecatedTrackedPreferences() in pref_hash_filter.cc to remove a +// deprecated tracked preference. const PrefHashFilter::TrackedPreferenceMetadata kTrackedPrefs[] = { { 0, prefs::kShowHomeButton, @@ -151,15 +153,6 @@ const PrefHashFilter::TrackedPreferenceMetadata kTrackedPrefs[] = { PrefHashFilter::TRACKING_STRATEGY_ATOMIC }, #endif -#if defined(ENABLE_EXTENSIONS) - { - // This pref has been deprecated, leave it here for now for it to be - // properly mapped back to Preferences and cleaned up from there. - 12, extensions::pref_names::kKnownDisabled, - PrefHashFilter::NO_ENFORCEMENT, - PrefHashFilter::TRACKING_STRATEGY_ATOMIC - }, -#endif { 13, prefs::kProfileResetPromptMemento, PrefHashFilter::ENFORCE_ON_LOAD, @@ -202,10 +195,9 @@ const PrefHashFilter::TrackedPreferenceMetadata kTrackedPrefs[] = { }, }; -// The count of tracked preferences IDs across all platforms. -const size_t kTrackedPrefsReportingIDsCount = 19; -COMPILE_ASSERT(kTrackedPrefsReportingIDsCount >= arraysize(kTrackedPrefs), - need_to_increment_ids_count); +// One more than the last tracked preferences ID above. +const size_t kTrackedPrefsReportingIDsCount = + kTrackedPrefs[arraysize(kTrackedPrefs) - 1].reporting_id + 1; // Each group enforces a superset of the protection provided by the previous // one. diff --git a/chrome/browser/prefs/pref_hash_filter.cc b/chrome/browser/prefs/pref_hash_filter.cc index 9c2a62e..fe216e8 100644 --- a/chrome/browser/prefs/pref_hash_filter.cc +++ b/chrome/browser/prefs/pref_hash_filter.cc @@ -21,6 +21,27 @@ #include "chrome/common/pref_names.h" #include "components/pref_registry/pref_registry_syncable.h" +namespace { + +void CleanupDeprecatedTrackedPreferences( + base::DictionaryValue* pref_store_contents, + PrefHashStoreTransaction* hash_store_transaction) { + // Add deprecated previously tracked preferences below for them to be cleaned + // up from both the pref files and the hash store. + static const char* kDeprecatedTrackedPreferences[] = { + // TODO(gab): Remove in M41+. + "extensions.known_disabled", + }; + + for (size_t i = 0; i < arraysize(kDeprecatedTrackedPreferences); ++i) { + const char* key = kDeprecatedTrackedPreferences[i]; + pref_store_contents->Remove(key, NULL); + hash_store_transaction->ClearHash(key); + } +} + +} // namespace + PrefHashFilter::PrefHashFilter( scoped_ptr<PrefHashStore> pref_hash_store, const std::vector<TrackedPreferenceMetadata>& tracked_preferences, @@ -165,6 +186,10 @@ void PrefHashFilter::FinalizeFilterOnLoad( scoped_ptr<PrefHashStoreTransaction> hash_store_transaction( pref_hash_store_->BeginTransaction(scoped_ptr<HashStoreContents>( new DictionaryHashStoreContents(pref_store_contents.get())))); + + CleanupDeprecatedTrackedPreferences( + pref_store_contents.get(), hash_store_transaction.get()); + if (report_super_mac_validity_) { UMA_HISTOGRAM_BOOLEAN("Settings.HashesDictionaryTrusted", hash_store_transaction->IsSuperMACValid()); diff --git a/chrome/browser/prefs/pref_hash_filter_unittest.cc b/chrome/browser/prefs/pref_hash_filter_unittest.cc index 1dc4ff6..902bca5 100644 --- a/chrome/browser/prefs/pref_hash_filter_unittest.cc +++ b/chrome/browser/prefs/pref_hash_filter_unittest.cc @@ -335,7 +335,8 @@ void MockPrefHashStore::MockPrefHashStoreTransaction::ImportHash( void MockPrefHashStore::MockPrefHashStoreTransaction::ClearHash( const std::string& path) { - ADD_FAILURE() << "Unexpected call."; + // Allow this to be called by PrefHashFilter's deprecated tracked prefs + // cleanup tasks. } bool MockPrefHashStore::MockPrefHashStoreTransaction::IsSuperMACValid() const { diff --git a/extensions/browser/extension_prefs.cc b/extensions/browser/extension_prefs.cc index efe3ba4..502816c 100644 --- a/extensions/browser/extension_prefs.cc +++ b/extensions/browser/extension_prefs.cc @@ -1920,10 +1920,6 @@ ExtensionPrefs::ExtensionPrefs( app_sorting_(app_sorting.Pass()), time_provider_(time_provider.Pass()), extensions_disabled_(extensions_disabled) { - // Remove this deprecated pref. - // TODO(gab): Remove the pref's name from the code base altogether in M40. - prefs_->ClearPref(pref_names::kKnownDisabled); - app_sorting_->SetExtensionScopedPrefs(this); MakePathsRelative(); @@ -1988,8 +1984,6 @@ void ExtensionPrefs::RegisterProfilePrefs( pref_names::kLastChromeVersion, std::string(), // default value user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); - registry->RegisterListPref(pref_names::kKnownDisabled, - user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); #if defined(OS_MACOSX) registry->RegisterDoublePref( pref_names::kBrowserActionContainerWidth, diff --git a/extensions/browser/pref_names.cc b/extensions/browser/pref_names.cc index 76a7dc1..b693d21 100644 --- a/extensions/browser/pref_names.cc +++ b/extensions/browser/pref_names.cc @@ -38,7 +38,6 @@ const char kExtensions[] = "extensions.settings"; const char kInstallAllowList[] = "extensions.install.allowlist"; const char kInstallDenyList[] = "extensions.install.denylist"; const char kInstallForceList[] = "extensions.install.forcelist"; -const char kKnownDisabled[] = "extensions.known_disabled"; const char kLastChromeVersion[] = "extensions.last_chrome_version"; const char kLastUpdateCheck[] = "extensions.autoupdate.last_check"; const char kNativeMessagingBlacklist[] = "native_messaging.blacklist"; diff --git a/extensions/browser/pref_names.h b/extensions/browser/pref_names.h index 4f64677..131a939 100644 --- a/extensions/browser/pref_names.h +++ b/extensions/browser/pref_names.h @@ -64,10 +64,6 @@ extern const char kInstallDenyList[]; // accessed through extensions::ExternalPolicyProvider. extern const char kInstallForceList[]; -// Deprecated. A list of known disabled extensions IDs. -// TODO(gab): Remove this pref in M40+. -extern const char kKnownDisabled[]; - // String pref for what version chrome was last time the extension prefs were // loaded. extern const char kLastChromeVersion[]; diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 5e31b98..4f986de 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml @@ -48463,7 +48463,8 @@ Therefore, the affected-histogram name has to have at least one dot in it. <int value="9" label="prefs::kDefaultSearchProviderKeyword"/> <int value="10" label="prefs::kDefaultSearchProviderName"/> <int value="11" label="prefs::kPinnedTabs"/> - <int value="12" label="extensions::pref_names::kKnownDisabled"/> + <int value="12" + label="extensions::pref_names::kKnownDisabled (Obsolete 07/2014)"/> <int value="13" label="prefs::kProfileResetPromptMemento"/> <int value="14" label="DefaultSearchManager::kDefaultSearchProviderDataPrefName"/> |