Index: services/preferences/public/interfaces/tracked_preference_validation_delegate.mojom |
diff --git a/services/preferences/public/interfaces/tracked_preference_validation_delegate.mojom b/services/preferences/public/interfaces/tracked_preference_validation_delegate.mojom |
new file mode 100644 |
index 0000000000000000000000000000000000000000..370f95f75d9801e6a91fc5d498d7d90b6ceb6d2b |
--- /dev/null |
+++ b/services/preferences/public/interfaces/tracked_preference_validation_delegate.mojom |
@@ -0,0 +1,56 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+module prefs.mojom; |
+ |
+import "mojo/common/values.mojom"; |
+ |
+// A TrackedPreferenceValidationDelegate is notified of the results of each |
+// tracked preference validation event. |
+interface TrackedPreferenceValidationDelegate { |
+ enum ValueState { |
+ // The preference value corresponds to its stored hash. |
+ UNCHANGED, |
+ // The preference has been cleared since the last hash. |
+ CLEARED, |
+ // The preference value corresponds to its stored hash, but the hash was |
+ // calculated using a deprecated hash algorithm which is just as safe as |
+ // the current one. |
+ SECURE_LEGACY, |
+ // The preference value has been changed since the last hash. |
+ CHANGED, |
+ // No stored hash exists for the preference value. |
+ UNTRUSTED_UNKNOWN_VALUE, |
+ // No stored hash exists for the preference value, but the current set of |
+ // hashes stored is trusted and thus this value can safely be seeded. This |
+ // happens when all hashes are already properly seeded and a newly |
+ // tracked value needs to be seeded). |
+ TRUSTED_UNKNOWN_VALUE, |
+ // Null values are inherently trusted. |
+ TRUSTED_NULL_VALUE, |
+ // This transaction's store type is not supported. |
+ UNSUPPORTED, |
+ }; |
+ |
+ // Notifies observes of the result (|value_state|) of checking the atomic |
+ // |value| (which may be null) at |pref_path|. |is_personal| indicates whether |
+ // or not the value may contain personal information. |
+ OnAtomicPreferenceValidation( |
+ string pref_path, |
+ mojo.common.mojom.Value? value, |
+ ValueState value_state, |
+ ValueState external_validation_value_state, |
+ bool is_personal); |
+ |
+ // Notifies observes of the result (|value_state|) of checking the split |
+ // value at |pref_path|. |is_personal| indicates whether or not the value may |
+ // contain personal information. |
+ OnSplitPreferenceValidation( |
+ string pref_path, |
+ array<string> invalid_keys, |
+ array<string> external_validation_invalid_keys, |
+ ValueState value_state, |
+ ValueState external_validation_value_state, |
+ bool is_personal); |
+}; |