| 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;
|
| +
|
| // 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);
|
| };
|
|
|
|
|