OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 COMPONENTS_SYNC_DRIVER_SYNC_PREFS_H_ | 5 #ifndef COMPONENTS_SYNC_DRIVER_SYNC_PREFS_H_ |
6 #define COMPONENTS_SYNC_DRIVER_SYNC_PREFS_H_ | 6 #define COMPONENTS_SYNC_DRIVER_SYNC_PREFS_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 11 matching lines...) Expand all Loading... |
22 #include "components/sync/base/model_type.h" | 22 #include "components/sync/base/model_type.h" |
23 #include "components/sync/core/sync_encryption_handler.h" | 23 #include "components/sync/core/sync_encryption_handler.h" |
24 | 24 |
25 class PrefService; | 25 class PrefService; |
26 class ProfileIOData; | 26 class ProfileIOData; |
27 | 27 |
28 namespace user_prefs { | 28 namespace user_prefs { |
29 class PrefRegistrySyncable; | 29 class PrefRegistrySyncable; |
30 } | 30 } |
31 | 31 |
32 namespace sync_driver { | 32 namespace syncer { |
33 | 33 |
34 class SyncPrefObserver { | 34 class SyncPrefObserver { |
35 public: | 35 public: |
36 // Called whenever the pref that controls whether sync is managed | 36 // Called whenever the pref that controls whether sync is managed |
37 // changes. | 37 // changes. |
38 virtual void OnSyncManagedPrefChange(bool is_sync_managed) = 0; | 38 virtual void OnSyncManagedPrefChange(bool is_sync_managed) = 0; |
39 | 39 |
40 protected: | 40 protected: |
41 virtual ~SyncPrefObserver(); | 41 virtual ~SyncPrefObserver(); |
42 }; | 42 }; |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 | 90 |
91 base::Time GetLastPollTime() const; | 91 base::Time GetLastPollTime() const; |
92 void SetLastPollTime(base::Time time); | 92 void SetLastPollTime(base::Time time); |
93 | 93 |
94 bool HasKeepEverythingSynced() const; | 94 bool HasKeepEverythingSynced() const; |
95 void SetKeepEverythingSynced(bool keep_everything_synced); | 95 void SetKeepEverythingSynced(bool keep_everything_synced); |
96 | 96 |
97 // The returned set is guaranteed to be a subset of | 97 // The returned set is guaranteed to be a subset of |
98 // |registered_types|. Returns |registered_types| directly if | 98 // |registered_types|. Returns |registered_types| directly if |
99 // HasKeepEverythingSynced() is true. | 99 // HasKeepEverythingSynced() is true. |
100 syncer::ModelTypeSet GetPreferredDataTypes( | 100 ModelTypeSet GetPreferredDataTypes(ModelTypeSet registered_types) const; |
101 syncer::ModelTypeSet registered_types) const; | |
102 // |preferred_types| should be a subset of |registered_types|. All | 101 // |preferred_types| should be a subset of |registered_types|. All |
103 // types in |preferred_types| are marked preferred, and all types in | 102 // types in |preferred_types| are marked preferred, and all types in |
104 // |registered_types| \ |preferred_types| are marked not preferred. | 103 // |registered_types| \ |preferred_types| are marked not preferred. |
105 // Changes are still made to the prefs even if | 104 // Changes are still made to the prefs even if |
106 // HasKeepEverythingSynced() is true, but won't be visible until | 105 // HasKeepEverythingSynced() is true, but won't be visible until |
107 // SetKeepEverythingSynced(false) is called. | 106 // SetKeepEverythingSynced(false) is called. |
108 void SetPreferredDataTypes(syncer::ModelTypeSet registered_types, | 107 void SetPreferredDataTypes(ModelTypeSet registered_types, |
109 syncer::ModelTypeSet preferred_types); | 108 ModelTypeSet preferred_types); |
110 | 109 |
111 // This pref is set outside of sync. | 110 // This pref is set outside of sync. |
112 bool IsManaged() const; | 111 bool IsManaged() const; |
113 | 112 |
114 // Use this encryption bootstrap token if we're using an explicit passphrase. | 113 // Use this encryption bootstrap token if we're using an explicit passphrase. |
115 std::string GetEncryptionBootstrapToken() const; | 114 std::string GetEncryptionBootstrapToken() const; |
116 void SetEncryptionBootstrapToken(const std::string& token); | 115 void SetEncryptionBootstrapToken(const std::string& token); |
117 | 116 |
118 // Use this keystore bootstrap token if we're not using an explicit | 117 // Use this keystore bootstrap token if we're not using an explicit |
119 // passphrase. | 118 // passphrase. |
120 std::string GetKeystoreEncryptionBootstrapToken() const; | 119 std::string GetKeystoreEncryptionBootstrapToken() const; |
121 void SetKeystoreEncryptionBootstrapToken(const std::string& token); | 120 void SetKeystoreEncryptionBootstrapToken(const std::string& token); |
122 | 121 |
123 // Use this for the unique machine tag used for session sync. | 122 // Use this for the unique machine tag used for session sync. |
124 std::string GetSyncSessionsGUID() const; | 123 std::string GetSyncSessionsGUID() const; |
125 void SetSyncSessionsGUID(const std::string& guid); | 124 void SetSyncSessionsGUID(const std::string& guid); |
126 | 125 |
127 // Maps |data_type| to its corresponding preference name. | 126 // Maps |data_type| to its corresponding preference name. |
128 static const char* GetPrefNameForDataType(syncer::ModelType data_type); | 127 static const char* GetPrefNameForDataType(ModelType data_type); |
129 | 128 |
130 #if defined(OS_CHROMEOS) | 129 #if defined(OS_CHROMEOS) |
131 // Use this spare bootstrap token only when setting up sync for the first | 130 // Use this spare bootstrap token only when setting up sync for the first |
132 // time. | 131 // time. |
133 std::string GetSpareBootstrapToken() const; | 132 std::string GetSpareBootstrapToken() const; |
134 void SetSpareBootstrapToken(const std::string& token); | 133 void SetSpareBootstrapToken(const std::string& token); |
135 #endif | 134 #endif |
136 | 135 |
137 // Get/set/clear first sync time of current user. Used to roll back browsing | 136 // Get/set/clear first sync time of current user. Used to roll back browsing |
138 // data later when user signs out. | 137 // data later when user signs out. |
(...skipping 13 matching lines...) Expand all Loading... |
152 void SetMemoryPressureWarningCount(int value); | 151 void SetMemoryPressureWarningCount(int value); |
153 | 152 |
154 // Check if the previous shutdown was clean. | 153 // Check if the previous shutdown was clean. |
155 bool DidSyncShutdownCleanly() const; | 154 bool DidSyncShutdownCleanly() const; |
156 | 155 |
157 // Set whether the last shutdown was clean. | 156 // Set whether the last shutdown was clean. |
158 void SetCleanShutdown(bool value); | 157 void SetCleanShutdown(bool value); |
159 | 158 |
160 // Get/set for the last known sync invalidation versions. | 159 // Get/set for the last known sync invalidation versions. |
161 void GetInvalidationVersions( | 160 void GetInvalidationVersions( |
162 std::map<syncer::ModelType, int64_t>* invalidation_versions) const; | 161 std::map<ModelType, int64_t>* invalidation_versions) const; |
163 void UpdateInvalidationVersions( | 162 void UpdateInvalidationVersions( |
164 const std::map<syncer::ModelType, int64_t>& invalidation_versions); | 163 const std::map<ModelType, int64_t>& invalidation_versions); |
165 | 164 |
166 // Will return the contents of the LastRunVersion preference. This may be an | 165 // Will return the contents of the LastRunVersion preference. This may be an |
167 // empty string if no version info was present, and is only valid at | 166 // empty string if no version info was present, and is only valid at |
168 // Sync startup time (after which the LastRunVersion preference will have been | 167 // Sync startup time (after which the LastRunVersion preference will have been |
169 // updated to the current version). | 168 // updated to the current version). |
170 std::string GetLastRunVersion() const; | 169 std::string GetLastRunVersion() const; |
171 void SetLastRunVersion(const std::string& current_version); | 170 void SetLastRunVersion(const std::string& current_version); |
172 | 171 |
173 // Get/set for flag indicating that passphrase encryption transition is in | 172 // Get/set for flag indicating that passphrase encryption transition is in |
174 // progress. | 173 // progress. |
175 void SetPassphraseEncryptionTransitionInProgress(bool value); | 174 void SetPassphraseEncryptionTransitionInProgress(bool value); |
176 bool GetPassphraseEncryptionTransitionInProgress() const; | 175 bool GetPassphraseEncryptionTransitionInProgress() const; |
177 | 176 |
178 // Get/set for saved Nigori state that needs to be passed to backend | 177 // Get/set for saved Nigori state that needs to be passed to backend |
179 // initialization after transition. | 178 // initialization after transition. |
180 void SetSavedNigoriStateForPassphraseEncryptionTransition( | 179 void SetSavedNigoriStateForPassphraseEncryptionTransition( |
181 const syncer::SyncEncryptionHandler::NigoriState& nigori_state); | 180 const SyncEncryptionHandler::NigoriState& nigori_state); |
182 std::unique_ptr<syncer::SyncEncryptionHandler::NigoriState> | 181 std::unique_ptr<SyncEncryptionHandler::NigoriState> |
183 GetSavedNigoriStateForPassphraseEncryptionTransition() const; | 182 GetSavedNigoriStateForPassphraseEncryptionTransition() const; |
184 | 183 |
185 private: | 184 private: |
186 void RegisterPrefGroups(); | 185 void RegisterPrefGroups(); |
187 | 186 |
188 static void RegisterDataTypePreferredPref( | 187 static void RegisterDataTypePreferredPref( |
189 user_prefs::PrefRegistrySyncable* prefs, | 188 user_prefs::PrefRegistrySyncable* prefs, |
190 syncer::ModelType type, | 189 ModelType type, |
191 bool is_preferred); | 190 bool is_preferred); |
192 bool GetDataTypePreferred(syncer::ModelType type) const; | 191 bool GetDataTypePreferred(ModelType type) const; |
193 void SetDataTypePreferred(syncer::ModelType type, bool is_preferred); | 192 void SetDataTypePreferred(ModelType type, bool is_preferred); |
194 | 193 |
195 // Returns a ModelTypeSet based on |types| expanded to include pref groups | 194 // Returns a ModelTypeSet based on |types| expanded to include pref groups |
196 // (see |pref_groups_|), but as a subset of |registered_types|. | 195 // (see |pref_groups_|), but as a subset of |registered_types|. |
197 syncer::ModelTypeSet ResolvePrefGroups(syncer::ModelTypeSet registered_types, | 196 ModelTypeSet ResolvePrefGroups(ModelTypeSet registered_types, |
198 syncer::ModelTypeSet types) const; | 197 ModelTypeSet types) const; |
199 | 198 |
200 void OnSyncManagedPrefChanged(); | 199 void OnSyncManagedPrefChanged(); |
201 | 200 |
202 // May be NULL. | 201 // May be NULL. |
203 PrefService* const pref_service_; | 202 PrefService* const pref_service_; |
204 | 203 |
205 base::ObserverList<SyncPrefObserver> sync_pref_observers_; | 204 base::ObserverList<SyncPrefObserver> sync_pref_observers_; |
206 | 205 |
207 // The preference that controls whether sync is under control by | 206 // The preference that controls whether sync is under control by |
208 // configuration management. | 207 // configuration management. |
209 BooleanPrefMember pref_sync_managed_; | 208 BooleanPrefMember pref_sync_managed_; |
210 | 209 |
211 // Groups of prefs that always have the same value as a "master" pref. | 210 // Groups of prefs that always have the same value as a "master" pref. |
212 // For example, the APPS group has {APP_NOTIFICATIONS, APP_SETTINGS} | 211 // For example, the APPS group has {APP_NOTIFICATIONS, APP_SETTINGS} |
213 // (as well as APPS, but that is implied), so | 212 // (as well as APPS, but that is implied), so |
214 // pref_groups_[syncer::APPS] = { syncer::APP_NOTIFICATIONS, | 213 // pref_groups_[APPS] = { APP_NOTIFICATIONS, |
215 // syncer::APP_SETTINGS } | 214 // APP_SETTINGS } |
216 // pref_groups_[syncer::EXTENSIONS] = { syncer::EXTENSION_SETTINGS } | 215 // pref_groups_[EXTENSIONS] = { EXTENSION_SETTINGS } |
217 // etc. | 216 // etc. |
218 typedef std::map<syncer::ModelType, syncer::ModelTypeSet> PrefGroupsMap; | 217 typedef std::map<ModelType, ModelTypeSet> PrefGroupsMap; |
219 PrefGroupsMap pref_groups_; | 218 PrefGroupsMap pref_groups_; |
220 | 219 |
221 DISALLOW_COPY_AND_ASSIGN(SyncPrefs); | 220 DISALLOW_COPY_AND_ASSIGN(SyncPrefs); |
222 }; | 221 }; |
223 | 222 |
224 } // namespace sync_driver | 223 } // namespace syncer |
225 | 224 |
226 #endif // COMPONENTS_SYNC_DRIVER_SYNC_PREFS_H_ | 225 #endif // COMPONENTS_SYNC_DRIVER_SYNC_PREFS_H_ |
OLD | NEW |