Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 module prefs.mojom; | 5 module prefs.mojom; |
| 6 | 6 |
| 7 import "mojo/common/values.mojom"; | 7 import "mojo/common/values.mojom"; |
| 8 import "services/preferences/public/interfaces/preferences_configuration.mojom"; | 8 import "services/preferences/public/interfaces/preferences_configuration.mojom"; |
| 9 | 9 |
| 10 const string kServiceName = "preferences"; | 10 const string kServiceName = "preferences"; |
| 11 const string kForwarderServiceName = "preferences_forwarder"; | 11 const string kForwarderServiceName = "preferences_forwarder"; |
| 12 | 12 |
| 13 // The know pref store types. | 13 // The know pref store types. |
| 14 // | 14 // |
| 15 // Should be kept in sync with PrefValueStore::PrefStoreType. | 15 // Should be kept in sync with PrefValueStore::PrefStoreType. |
| 16 enum PrefStoreType { | 16 enum PrefStoreType { |
| 17 MANAGED, | 17 MANAGED, |
| 18 SUPERVISED_USER, | 18 SUPERVISED_USER, |
| 19 EXTENSION, | 19 EXTENSION, |
| 20 COMMAND_LINE, | 20 COMMAND_LINE, |
| 21 USER, | 21 USER, |
| 22 RECOMMENDED, | 22 RECOMMENDED, |
| 23 DEFAULT, | 23 DEFAULT, |
| 24 }; | 24 }; |
| 25 | 25 |
| 26 // Allows observing changes to prefs stored in a |PrefStore|. | 26 // Allows observing changes to prefs stored in a |PrefStore|. |
| 27 interface PrefStoreObserver { | 27 interface PrefStoreObserver { |
| 28 // The preference with the given |key| has changed. If |value| is null then | 28 // Preferences have been changed. |
|
tibell
2017/04/07 03:53:16
Preferences that have changed.
Sam McNally
2017/04/07 05:24:02
Acknowledged.
| |
| 29 // the preference was deleted. | 29 OnPrefsChanged(array<PrefUpdate> updates); |
| 30 OnPrefChanged(string key, mojo.common.mojom.Value? value); | |
| 31 | 30 |
| 32 // The PrefStore has been initialized (asynchronously). | 31 // The PrefStore has been initialized (asynchronously). |
| 33 OnInitializationCompleted(bool succeeded); | 32 OnInitializationCompleted(bool succeeded); |
| 34 }; | 33 }; |
| 35 | 34 |
| 36 // Captures the connections to a PrefStore by supplying the initial state of the | 35 // Captures the connections to a PrefStore by supplying the initial state of the |
| 37 // store and a handle to receive notifications on. | 36 // store and a handle to receive notifications on. |
| 38 struct PrefStoreConnection { | 37 struct PrefStoreConnection { |
| 39 // Handle to receive updates on. | 38 // Handle to receive updates on. |
| 40 PrefStoreObserver& observer; | 39 PrefStoreObserver& observer; |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 93 // be received. The client asserts that it is already connected to the | 92 // be received. The client asserts that it is already connected to the |
| 94 // |already_connected_types| pref stores through some other means, so the | 93 // |already_connected_types| pref stores through some other means, so the |
| 95 // Connect call will not connect to those. | 94 // Connect call will not connect to those. |
| 96 [Sync] | 95 [Sync] |
| 97 Connect(PrefRegistry pref_registry, | 96 Connect(PrefRegistry pref_registry, |
| 98 array<PrefStoreType> already_connected_types) => | 97 array<PrefStoreType> already_connected_types) => |
| 99 (PersistentPrefStoreConnection connection, | 98 (PersistentPrefStoreConnection connection, |
| 100 map<PrefStoreType, PrefStoreConnection> connections); | 99 map<PrefStoreType, PrefStoreConnection> connections); |
| 101 }; | 100 }; |
| 102 | 101 |
| 102 // An update to a pref. | |
| 103 struct PrefUpdate { | |
| 104 // The key of the pref being updated. | |
| 105 string key; | |
|
tibell
2017/04/07 03:53:16
This is still a normal pref key right? It doesn't
Sam McNally
2017/04/07 05:24:02
Correct.
| |
| 106 // The new value; a null |value| indicates a delete. | |
| 107 mojo.common.mojom.Value? value; | |
| 108 //|flags| is a bitmask of WritablePrefStore::PrefWriteFlags. | |
| 109 uint32 flags; | |
| 110 }; | |
| 111 | |
| 103 // An interface providing mutation access to a PersistentPrefStore. | 112 // An interface providing mutation access to a PersistentPrefStore. |
| 104 interface PersistentPrefStore { | 113 interface PersistentPrefStore { |
| 105 // Sets the value for |key|. A null |value| indicates a delete. |flags| is a | 114 // Sets the values for prefs. |
| 106 // bitmask of WritablePrefStore::PrefWriteFlags. | 115 SetValues(array<PrefUpdate> updates); |
| 107 SetValue(string key, mojo.common.mojom.Value? value, uint32 flags); | |
| 108 | 116 |
| 109 // These mirror the C++ PersistentPrefStore methods. | 117 // These mirror the C++ PersistentPrefStore methods. |
| 110 CommitPendingWrite(); | 118 CommitPendingWrite(); |
| 111 SchedulePendingLossyWrites(); | 119 SchedulePendingLossyWrites(); |
| 112 ClearMutableValues(); | 120 ClearMutableValues(); |
| 113 }; | 121 }; |
| 114 | 122 |
| 115 // A registry of all prefs registered by a single client. | 123 // A registry of all prefs registered by a single client. |
| 116 struct PrefRegistry { | 124 struct PrefRegistry { |
| 117 map<string, PrefRegistration> registrations; | 125 map<string, PrefRegistration> registrations; |
| 118 }; | 126 }; |
| 119 | 127 |
| 120 struct PrefRegistration { | 128 struct PrefRegistration { |
| 121 mojo.common.mojom.Value default_value; | 129 mojo.common.mojom.Value default_value; |
| 122 | 130 |
| 123 // A bitfield of flags. Flag values are defined in | 131 // A bitfield of flags. Flag values are defined in |
| 124 // PrefRegistry::PrefRegistrationFlags and | 132 // PrefRegistry::PrefRegistrationFlags and |
| 125 // PrefRegistrySyncable::PrefRegistrationFlags. | 133 // PrefRegistrySyncable::PrefRegistrationFlags. |
| 126 uint32 flags; | 134 uint32 flags; |
| 127 }; | 135 }; |
| 128 | 136 |
| 129 interface PrefServiceControl { | 137 interface PrefServiceControl { |
| 130 // Initializes the pref service. This must be called before the service can | 138 // Initializes the pref service. This must be called before the service can |
| 131 // be used. | 139 // be used. |
| 132 Init(PersistentPrefStoreConfiguration configuration); | 140 Init(PersistentPrefStoreConfiguration configuration); |
| 133 }; | 141 }; |
| OLD | NEW |