OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_PREFS_PREF_HASH_STORE_TRANSACTION_H_ | 5 #ifndef CHROME_BROWSER_PREFS_PREF_HASH_STORE_TRANSACTION_H_ |
6 #define CHROME_BROWSER_PREFS_PREF_HASH_STORE_TRANSACTION_H_ | 6 #define CHROME_BROWSER_PREFS_PREF_HASH_STORE_TRANSACTION_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 virtual ValueState CheckSplitValue( | 60 virtual ValueState CheckSplitValue( |
61 const std::string& path, | 61 const std::string& path, |
62 const base::DictionaryValue* initial_split_value, | 62 const base::DictionaryValue* initial_split_value, |
63 std::vector<std::string>* invalid_keys) const = 0; | 63 std::vector<std::string>* invalid_keys) const = 0; |
64 | 64 |
65 // Stores hashes for the |value| of the split preference at |path|. | 65 // Stores hashes for the |value| of the split preference at |path|. |
66 // |split_value| being an empty dictionary or NULL is equivalent. | 66 // |split_value| being an empty dictionary or NULL is equivalent. |
67 virtual void StoreSplitHash( | 67 virtual void StoreSplitHash( |
68 const std::string& path, | 68 const std::string& path, |
69 const base::DictionaryValue* split_value) = 0; | 69 const base::DictionaryValue* split_value) = 0; |
| 70 |
| 71 // Indicates whether the store contains a hash for the preference at |path|. |
| 72 virtual bool HasHash(const std::string& path) const = 0; |
| 73 |
| 74 // Sets the hash for the preference at |path|. |
| 75 // If |path| is a split preference |hash| must be a DictionaryValue whose |
| 76 // keys are keys in the split preference and whose values are MACs of the |
| 77 // corresponding values in the split preference. |
| 78 // If |path| is an atomic preference |hash| must be a StringValue |
| 79 // containing a MAC of the preference value. |
| 80 // |hash| should originate from a PrefHashStore sharing the same MAC |
| 81 // parameters as this transaction's store. |
| 82 // The (in)validity of the super MAC will be maintained by this call. |
| 83 virtual void ImportHash(const std::string& path, const base::Value* hash) = 0; |
| 84 |
| 85 // Removes the hash stored at |path|. The (in)validity of the super MAC will |
| 86 // be maintained by this call. |
| 87 virtual void ClearHash(const std::string& path) = 0; |
| 88 |
| 89 // Indicates whether the super MAC was successfully verified at the beginning |
| 90 // of this transaction. |
| 91 virtual bool IsSuperMACValid() const = 0; |
| 92 |
| 93 // Forces a valid super MAC to be stored when this transaction terminates. |
| 94 // Returns true if this results in a change to the store contents. |
| 95 virtual bool StampSuperMac() = 0; |
70 }; | 96 }; |
71 | 97 |
72 #endif // CHROME_BROWSER_PREFS_PREF_HASH_STORE_TRANSACTION_H_ | 98 #endif // CHROME_BROWSER_PREFS_PREF_HASH_STORE_TRANSACTION_H_ |
OLD | NEW |