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