summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/prefs/chrome_pref_service_factory.cc18
-rw-r--r--chrome/browser/prefs/pref_hash_filter.cc25
-rw-r--r--chrome/browser/prefs/pref_hash_filter_unittest.cc3
-rw-r--r--extensions/browser/extension_prefs.cc6
-rw-r--r--extensions/browser/pref_names.cc1
-rw-r--r--extensions/browser/pref_names.h4
-rw-r--r--tools/metrics/histograms/histograms.xml3
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"/>