OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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_ENGINE_SYNC_ENGINE_H_ | 5 #ifndef COMPONENTS_SYNC_ENGINE_SYNC_ENGINE_H_ |
6 #define COMPONENTS_SYNC_ENGINE_SYNC_ENGINE_H_ | 6 #define COMPONENTS_SYNC_ENGINE_SYNC_ENGINE_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <memory> | 9 #include <memory> |
10 #include <string> | 10 #include <string> |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 | 49 |
50 // Utility struct for holding initialization options. | 50 // Utility struct for holding initialization options. |
51 struct InitParams { | 51 struct InitParams { |
52 InitParams(); | 52 InitParams(); |
53 InitParams(InitParams&& other); | 53 InitParams(InitParams&& other); |
54 ~InitParams(); | 54 ~InitParams(); |
55 | 55 |
56 scoped_refptr<base::SingleThreadTaskRunner> sync_task_runner; | 56 scoped_refptr<base::SingleThreadTaskRunner> sync_task_runner; |
57 SyncEngineHost* host = nullptr; | 57 SyncEngineHost* host = nullptr; |
58 std::unique_ptr<SyncBackendRegistrar> registrar; | 58 std::unique_ptr<SyncBackendRegistrar> registrar; |
| 59 std::unique_ptr<SyncEncryptionHandler::Observer> encryption_observer_proxy; |
59 scoped_refptr<ExtensionsActivity> extensions_activity; | 60 scoped_refptr<ExtensionsActivity> extensions_activity; |
60 WeakHandle<JsEventHandler> event_handler; | 61 WeakHandle<JsEventHandler> event_handler; |
61 GURL service_url; | 62 GURL service_url; |
62 std::string sync_user_agent; | 63 std::string sync_user_agent; |
63 SyncEngine::HttpPostProviderFactoryGetter http_factory_getter; | 64 SyncEngine::HttpPostProviderFactoryGetter http_factory_getter; |
64 SyncCredentials credentials; | 65 SyncCredentials credentials; |
65 std::string invalidator_client_id; | 66 std::string invalidator_client_id; |
66 std::unique_ptr<SyncManagerFactory> sync_manager_factory; | 67 std::unique_ptr<SyncManagerFactory> sync_manager_factory; |
67 bool delete_sync_data_folder = false; | 68 bool delete_sync_data_folder = false; |
68 bool enable_local_sync_backend = false; | 69 bool enable_local_sync_backend = false; |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 // - |is_explicit| is true and we have pending keys. | 112 // - |is_explicit| is true and we have pending keys. |
112 // When |is_explicit| is false, a couple of things could happen: | 113 // When |is_explicit| is false, a couple of things could happen: |
113 // - If there are pending keys, we try to decrypt them. If decryption works, | 114 // - If there are pending keys, we try to decrypt them. If decryption works, |
114 // this acts like a call to SetDecryptionPassphrase. If not, the GAIA | 115 // this acts like a call to SetDecryptionPassphrase. If not, the GAIA |
115 // passphrase passed in is cached so we can re-encrypt with it in future. | 116 // passphrase passed in is cached so we can re-encrypt with it in future. |
116 // - If there are no pending keys, data is encrypted with |passphrase| (this | 117 // - If there are no pending keys, data is encrypted with |passphrase| (this |
117 // is a no-op if data was already encrypted with |passphrase|.) | 118 // is a no-op if data was already encrypted with |passphrase|.) |
118 virtual void SetEncryptionPassphrase(const std::string& passphrase, | 119 virtual void SetEncryptionPassphrase(const std::string& passphrase, |
119 bool is_explicit) = 0; | 120 bool is_explicit) = 0; |
120 | 121 |
121 // Use the provided passphrase to asynchronously attempt decryption. Returns | 122 // Use the provided passphrase to asynchronously attempt decryption. If new |
122 // false immediately if the passphrase could not be used to decrypt a locally | 123 // encrypted keys arrive during the asynchronous call, OnPassphraseRequired |
123 // cached copy of encrypted keys; returns true otherwise. If new encrypted | 124 // may be triggered at a later time. It is an error to call this when there |
124 // keys arrive during the asynchronous call, OnPassphraseRequired may be | 125 // are no pending keys. |
125 // triggered at a later time. It is an error to call this when there are no | 126 virtual void SetDecryptionPassphrase(const std::string& passphrase) = 0; |
126 // pending keys. | |
127 virtual bool SetDecryptionPassphrase(const std::string& passphrase) | |
128 WARN_UNUSED_RESULT = 0; | |
129 | 127 |
130 // Kick off shutdown procedure. Attempts to cut short any long-lived or | 128 // Kick off shutdown procedure. Attempts to cut short any long-lived or |
131 // blocking sync thread tasks so that the shutdown on sync thread task that | 129 // blocking sync thread tasks so that the shutdown on sync thread task that |
132 // we're about to post won't have to wait very long. | 130 // we're about to post won't have to wait very long. |
133 virtual void StopSyncingForShutdown() = 0; | 131 virtual void StopSyncingForShutdown() = 0; |
134 | 132 |
135 // See the implementation and Core::DoShutdown for details. | 133 // See the implementation and Core::DoShutdown for details. |
136 // Must be called *after* StopSyncingForShutdown. | 134 // Must be called *after* StopSyncingForShutdown. |
137 virtual void Shutdown(ShutdownReason reason) = 0; | 135 virtual void Shutdown(ShutdownReason reason) = 0; |
138 | 136 |
139 // Turns on encryption of all present and future sync data. | 137 // Turns on encryption of all present and future sync data. |
140 virtual void EnableEncryptEverything() = 0; | 138 virtual void EnableEncryptEverything() = 0; |
141 | 139 |
142 // Obtain a handle to the UserShare needed for creating transactions. Should | 140 // Obtain a handle to the UserShare needed for creating transactions. Should |
143 // not be called before we signal initialization is complete with | 141 // not be called before we signal initialization is complete with |
144 // OnBackendInitialized(). | 142 // OnBackendInitialized(). |
145 virtual UserShare* GetUserShare() const = 0; | 143 virtual UserShare* GetUserShare() const = 0; |
146 | 144 |
147 // Called from any thread to obtain current detailed status information. | 145 // Called from any thread to obtain current detailed status information. |
148 virtual Status GetDetailedStatus() = 0; | 146 virtual Status GetDetailedStatus() = 0; |
149 | 147 |
150 // Determines if the underlying sync engine has made any local changes to | 148 // Determines if the underlying sync engine has made any local changes to |
151 // items that have not yet been synced with the server. | 149 // items that have not yet been synced with the server. |
152 // ONLY CALL THIS IF OnInitializationComplete was called! | 150 // ONLY CALL THIS IF OnInitializationComplete was called! |
153 virtual bool HasUnsyncedItems() const = 0; | 151 virtual bool HasUnsyncedItems() const = 0; |
154 | 152 |
155 // Whether or not we are syncing encryption keys. | |
156 virtual bool IsNigoriEnabled() const = 0; | |
157 | |
158 // Returns the type of passphrase being used to encrypt data. See | |
159 // sync_encryption_handler.h. | |
160 virtual PassphraseType GetPassphraseType() const = 0; | |
161 | |
162 // If an explicit passphrase is in use, returns the time at which that | |
163 // passphrase was set (if available). | |
164 virtual base::Time GetExplicitPassphraseTime() const = 0; | |
165 | |
166 // True if the cryptographer has any keys available to attempt decryption. | 153 // True if the cryptographer has any keys available to attempt decryption. |
167 // Could mean we've downloaded and loaded Nigori objects, or we bootstrapped | 154 // Could mean we've downloaded and loaded Nigori objects, or we bootstrapped |
168 // using a token previously received. | 155 // using a token previously received. |
169 virtual bool IsCryptographerReady(const BaseTransaction* trans) const = 0; | 156 virtual bool IsCryptographerReady(const BaseTransaction* trans) const = 0; |
170 | 157 |
171 virtual void GetModelSafeRoutingInfo(ModelSafeRoutingInfo* out) const = 0; | 158 virtual void GetModelSafeRoutingInfo(ModelSafeRoutingInfo* out) const = 0; |
172 | 159 |
173 // Send a message to the sync thread to persist the Directory to disk. | 160 // Send a message to the sync thread to persist the Directory to disk. |
174 virtual void FlushDirectory() const = 0; | 161 virtual void FlushDirectory() const = 0; |
175 | 162 |
(...skipping 25 matching lines...) Expand all Loading... |
201 // See SyncManager::OnCookieJarChanged. | 188 // See SyncManager::OnCookieJarChanged. |
202 virtual void OnCookieJarChanged(bool account_mismatch, bool empty_jar) = 0; | 189 virtual void OnCookieJarChanged(bool account_mismatch, bool empty_jar) = 0; |
203 | 190 |
204 private: | 191 private: |
205 DISALLOW_COPY_AND_ASSIGN(SyncEngine); | 192 DISALLOW_COPY_AND_ASSIGN(SyncEngine); |
206 }; | 193 }; |
207 | 194 |
208 } // namespace syncer | 195 } // namespace syncer |
209 | 196 |
210 #endif // COMPONENTS_SYNC_ENGINE_SYNC_ENGINE_H_ | 197 #endif // COMPONENTS_SYNC_ENGINE_SYNC_ENGINE_H_ |
OLD | NEW |