Chromium Code Reviews| 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); |
| }; |