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 // Retrieves the stored hash for the preference at |path|. If there is no |
| 72 // stored hash the result is NULL. If |path| is a split preference the result |
| 73 // is a DictionaryValue whose keys are keys in the split preference and whose |
| 74 // values are MACs of the corresponding values in the split preference. |
| 75 // Otherwise the result is a StringValue containing a MAC of the preference |
| 76 // value. |
| 77 virtual const base::Value* GetHash(const std::string& path) const = 0; |
| 78 |
| 79 // Sets the hash for the preference at |path|. |hash| may be a |
| 80 // DictionaryValue or StringValue as returned by GetHash() or it may be NULL |
| 81 // (which will clear any previously stored MAC). |
| 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 stored hash for the preference at |path|. The (in)validity of |
| 86 // the super MAC will be maintained by this call. |
| 87 virtual void ClearHash(const std::string& path) = 0; |
| 88 |
| 89 // Forces the super MAC (if used by this store) to be updated. Returns true if |
| 90 // this results in a change to the store contents. |
| 91 virtual bool StampSuperMac() = 0; |
70 }; | 92 }; |
71 | 93 |
72 #endif // CHROME_BROWSER_PREFS_PREF_HASH_STORE_TRANSACTION_H_ | 94 #endif // CHROME_BROWSER_PREFS_PREF_HASH_STORE_TRANSACTION_H_ |
OLD | NEW |