Index: chrome/browser/prefs/pref_hash_filter.h |
diff --git a/chrome/browser/prefs/pref_hash_filter.h b/chrome/browser/prefs/pref_hash_filter.h |
index 38caa89494c46290e20f30180868c4d00ead0e24..f67e9bff95e58266a10036af5819c5d1cb8151c7 100644 |
--- a/chrome/browser/prefs/pref_hash_filter.h |
+++ b/chrome/browser/prefs/pref_hash_filter.h |
@@ -10,6 +10,8 @@ |
#include <string> |
#include "base/basictypes.h" |
+#include "base/bind.h" |
+#include "base/callback.h" |
#include "base/compiler_specific.h" |
#include "base/containers/scoped_ptr_hash_map.h" |
#include "base/memory/scoped_ptr.h" |
@@ -17,6 +19,7 @@ |
#include "chrome/browser/prefs/pref_hash_store.h" |
#include "chrome/browser/prefs/tracked/tracked_preference.h" |
+class PrefRegistrySimple; |
class PrefStore; |
namespace base { |
@@ -29,6 +32,8 @@ class Value; |
// are changed. |
class PrefHashFilter : public PrefFilter { |
public: |
+ typedef base::Callback<void(void)> PrefResetCallback; |
Bernhard Bauer
2014/02/07 08:14:53
This is typedef'd as a base::Closure already.
robertshield
2014/02/07 19:08:28
Done.
|
+ |
// Enforcement levels are defined in order of intensity; the next level always |
// implies the previous one and more. |
enum EnforcementLevel { |
@@ -65,15 +70,19 @@ class PrefHashFilter : public PrefFilter { |
// |reporting_ids_count| is the count of all possible IDs (possibly greater |
// than |tracked_preferences_size|). |enforcement_level| determines when this |
// filter will enforce factory defaults upon detecting an untrusted preference |
- // value. |
+ // value. |reset_callback| is called when a reset event occurs. |
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); |
virtual ~PrefHashFilter(); |
+ // Registers required local state preferences. |
+ static void RegisterPrefs(PrefRegistrySimple* registry); |
+ |
// Initializes the PrefHashStore with hashes of the tracked preferences |
// in |pref_store|. |
void Initialize(PrefStore* pref_store); |
@@ -85,6 +94,11 @@ class PrefHashFilter : public PrefFilter { |
virtual void FilterSerializeData( |
const base::DictionaryValue* pref_store_contents) OVERRIDE; |
+ protected: |
+ // Called when it is determined that a reset event has occurred. Exposed as |
+ // protected for testing. |
+ virtual void WriteResetEvent(); |
+ |
private: |
// A map of paths to TrackedPreferences; this map owns this individual |
// TrackedPreference objects. |
@@ -107,6 +121,8 @@ class PrefHashFilter : public PrefFilter { |
// FilterSerializeData. |
ChangedPathsMap changed_paths_; |
+ PrefResetCallback reset_callback_; |
+ |
DISALLOW_COPY_AND_ASSIGN(PrefHashFilter); |
}; |