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

Unified Diff: components/user_prefs/tracked/tracked_preference.h

Issue 2204943002: Integrate registry_hash_store_contents with the rest of tracked prefs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Apply comments from patch set 27 Created 4 years, 2 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: components/user_prefs/tracked/tracked_preference.h
diff --git a/components/user_prefs/tracked/tracked_preference.h b/components/user_prefs/tracked/tracked_preference.h
index 4773ac1cd3cc27c391a4abccb5ef2f2ed3b94166..97666a0fcf8b4eb0dc5dbe70dccd45f21036db82 100644
--- a/components/user_prefs/tracked/tracked_preference.h
+++ b/components/user_prefs/tracked/tracked_preference.h
@@ -12,12 +12,16 @@ class DictionaryValue;
class Value;
}
+enum class TrackedPreferenceType { ATOMIC, SPLIT };
+
// A TrackedPreference tracks changes to an individual preference, reporting and
// reacting to them according to preference-specific and browser-wide policies.
class TrackedPreference {
public:
virtual ~TrackedPreference() {}
+ virtual TrackedPreferenceType GetType() const = 0;
+
// Notifies the underlying TrackedPreference about its new |value| which
// can update hashes in the corresponding hash store via |transaction|.
virtual void OnNewValue(const base::Value* value,
@@ -27,10 +31,14 @@ class TrackedPreference {
// is valid. Responds to verification failures according to
// preference-specific and browser-wide policy and reports results to via UMA.
// May use |transaction| to check/modify hashes in the corresponding hash
- // store.
+ // store. Performs validation and reports results without enforcing for
+ // |external_validation_transaction|. This call assumes exclusive access to
+ // |external_validation_transaction| and its associated state and as such
+ // should only be called before any other subsystem is made aware of it.
virtual bool EnforceAndReport(
base::DictionaryValue* pref_store_contents,
- PrefHashStoreTransaction* transaction) const = 0;
+ PrefHashStoreTransaction* transaction,
+ PrefHashStoreTransaction* external_validation_transaction) const = 0;
};
#endif // COMPONENTS_USER_PREFS_TRACKED_TRACKED_PREFERENCE_H_
« no previous file with comments | « components/user_prefs/tracked/tracked_atomic_preference.cc ('k') | components/user_prefs/tracked/tracked_split_preference.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698