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

Unified Diff: chrome/browser/prefs/pref_hash_filter.cc

Issue 151003004: Add an automatic settings reset banner. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add missing pref_names change. Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/prefs/pref_hash_filter.cc
diff --git a/chrome/browser/prefs/pref_hash_filter.cc b/chrome/browser/prefs/pref_hash_filter.cc
index 1935708f9e22ca39964f2580d8dd402d1d39d9b9..36e3e2dc86de80c16a4a64407bc7e0a3731b9c45 100644
--- a/chrome/browser/prefs/pref_hash_filter.cc
+++ b/chrome/browser/prefs/pref_hash_filter.cc
@@ -4,20 +4,26 @@
#include "chrome/browser/prefs/pref_hash_filter.h"
+#include "base/callback.h"
#include "base/logging.h"
#include "base/metrics/histogram.h"
+#include "base/prefs/pref_registry_simple.h"
+#include "base/prefs/pref_service.h"
#include "base/prefs/pref_store.h"
#include "base/time/time.h"
#include "base/values.h"
+#include "chrome/browser/browser_process.h"
#include "chrome/browser/prefs/tracked/tracked_atomic_preference.h"
#include "chrome/browser/prefs/tracked/tracked_split_preference.h"
+#include "chrome/common/pref_names.h"
PrefHashFilter::PrefHashFilter(
scoped_ptr<PrefHashStore> pref_hash_store,
const TrackedPreferenceMetadata tracked_preferences[],
size_t tracked_preferences_size,
size_t reporting_ids_count,
- EnforcementLevel enforcement_level) {
+ EnforcementLevel enforcement_level,
+ const PrefResetCallback& reset_callback) : reset_callback_(reset_callback) {
DCHECK(pref_hash_store);
DCHECK_GE(reporting_ids_count, tracked_preferences_size);
@@ -63,6 +69,12 @@ PrefHashFilter::~PrefHashFilter() {
DCHECK(changed_paths_.empty());
}
+void PrefHashFilter::RegisterPrefs(PrefRegistrySimple* registry) {
+ // Register the pref that maintains state about the last time a reset event
+ // occurred. Used to decide whether to show UI.
+ registry->RegisterInt64Pref(prefs::kProfilePreferenceResetTime, 0L);
+}
+
void PrefHashFilter::Initialize(PrefStore* pref_store) {
UMA_HISTOGRAM_BOOLEAN(
"Settings.TrackedPreferencesInitializedForUnloadedProfile", true);
@@ -82,10 +94,16 @@ void PrefHashFilter::Initialize(PrefStore* pref_store) {
void PrefHashFilter::FilterOnLoad(base::DictionaryValue* pref_store_contents) {
DCHECK(pref_store_contents);
base::TimeTicks checkpoint = base::TimeTicks::Now();
+ bool did_reset = false;
for (TrackedPreferencesMap::const_iterator it = tracked_paths_.begin();
it != tracked_paths_.end(); ++it) {
- it->second->EnforceAndReport(pref_store_contents);
+ if (it->second->EnforceAndReport(pref_store_contents))
+ did_reset = true;
}
+
+ if (did_reset)
+ reset_callback_.Run();
+
// TODO(gab): Remove this histogram by Feb 21 2014; after sufficient timing
// data has been gathered from the wild to be confident this doesn't
// significantly affect startup.
@@ -124,3 +142,7 @@ void PrefHashFilter::FilterSerializeData(
base::TimeTicks::Now() - checkpoint);
}
}
+
+void PrefHashFilter::WriteResetEvent() {
+
Bernhard Bauer 2014/02/07 08:14:53 What does this do?
robertshield 2014/02/07 19:08:28 Needlessly occupies valuable screen real estate. S
+}

Powered by Google App Engine
This is Rietveld 408576698