OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_SYNC_GLUE_SYNC_BACKEND_HOST_H_ | 5 #ifndef CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_H_ |
6 #define CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_H_ | 6 #define CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <map> | 9 #include <map> |
10 #include <string> | 10 #include <string> |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 // below). | 96 // below). |
97 // | 97 // |
98 // |encrypted_types| will always be a superset of | 98 // |encrypted_types| will always be a superset of |
99 // Cryptographer::SensitiveTypes(). If |encrypt_everything| is | 99 // Cryptographer::SensitiveTypes(). If |encrypt_everything| is |
100 // true, |encrypted_types| will be the set of all known types. | 100 // true, |encrypted_types| will be the set of all known types. |
101 // | 101 // |
102 // Until this function is called, observers can assume that the set | 102 // Until this function is called, observers can assume that the set |
103 // of encrypted types is Cryptographer::SensitiveTypes() and that | 103 // of encrypted types is Cryptographer::SensitiveTypes() and that |
104 // the encrypt everything flag is false. | 104 // the encrypt everything flag is false. |
105 virtual void OnEncryptedTypesChanged( | 105 virtual void OnEncryptedTypesChanged( |
106 const syncable::ModelTypeSet& encrypted_types, | 106 syncable::ModelEnumSet encrypted_types, |
107 bool encrypt_everything) = 0; | 107 bool encrypt_everything) = 0; |
108 | 108 |
109 // Called after we finish encrypting the current set of encrypted | 109 // Called after we finish encrypting the current set of encrypted |
110 // types. | 110 // types. |
111 virtual void OnEncryptionComplete() = 0; | 111 virtual void OnEncryptionComplete() = 0; |
112 | 112 |
113 // Called to perform migration of |types|. | 113 // Called to perform migration of |types|. |
114 virtual void OnMigrationNeededForTypes( | 114 virtual void OnMigrationNeededForTypes( |
115 const syncable::ModelTypeSet& types) = 0; | 115 syncable::ModelEnumSet types) = 0; |
116 | 116 |
117 // Inform the Frontend that new datatypes are available for registration. | 117 // Inform the Frontend that new datatypes are available for registration. |
118 virtual void OnDataTypesChanged(const syncable::ModelTypeSet& to_add) = 0; | 118 virtual void OnDataTypesChanged(syncable::ModelEnumSet to_add) = 0; |
119 | 119 |
120 // Called when the sync cycle returns there is an user actionable error. | 120 // Called when the sync cycle returns there is an user actionable error. |
121 virtual void OnActionableError( | 121 virtual void OnActionableError( |
122 const browser_sync::SyncProtocolError& error) = 0; | 122 const browser_sync::SyncProtocolError& error) = 0; |
123 | 123 |
124 protected: | 124 protected: |
125 // Don't delete through SyncFrontend interface. | 125 // Don't delete through SyncFrontend interface. |
126 virtual ~SyncFrontend() { | 126 virtual ~SyncFrontend() { |
127 } | 127 } |
128 private: | 128 private: |
(...skipping 21 matching lines...) Expand all Loading... |
150 SyncBackendHost(); | 150 SyncBackendHost(); |
151 virtual ~SyncBackendHost(); | 151 virtual ~SyncBackendHost(); |
152 | 152 |
153 // Called on |frontend_loop_| to kick off asynchronous initialization. | 153 // Called on |frontend_loop_| to kick off asynchronous initialization. |
154 // As a fallback when no cached auth information is available, try to | 154 // As a fallback when no cached auth information is available, try to |
155 // bootstrap authentication using |lsid|, if it isn't empty. | 155 // bootstrap authentication using |lsid|, if it isn't empty. |
156 // Optionally delete the Sync Data folder (if it's corrupt). | 156 // Optionally delete the Sync Data folder (if it's corrupt). |
157 void Initialize(SyncFrontend* frontend, | 157 void Initialize(SyncFrontend* frontend, |
158 const WeakHandle<JsEventHandler>& event_handler, | 158 const WeakHandle<JsEventHandler>& event_handler, |
159 const GURL& service_url, | 159 const GURL& service_url, |
160 const syncable::ModelTypeSet& initial_types, | 160 syncable::ModelEnumSet initial_types, |
161 const sync_api::SyncCredentials& credentials, | 161 const sync_api::SyncCredentials& credentials, |
162 bool delete_sync_data_folder); | 162 bool delete_sync_data_folder); |
163 | 163 |
164 // Called from |frontend_loop| to update SyncCredentials. | 164 // Called from |frontend_loop| to update SyncCredentials. |
165 void UpdateCredentials(const sync_api::SyncCredentials& credentials); | 165 void UpdateCredentials(const sync_api::SyncCredentials& credentials); |
166 | 166 |
167 // This starts the SyncerThread running a Syncer object to communicate with | 167 // This starts the SyncerThread running a Syncer object to communicate with |
168 // sync servers. Until this is called, no changes will leave or enter this | 168 // sync servers. Until this is called, no changes will leave or enter this |
169 // browser from the cloud / sync servers. | 169 // browser from the cloud / sync servers. |
170 // Called on |frontend_loop_|. | 170 // Called on |frontend_loop_|. |
(...skipping 15 matching lines...) Expand all Loading... |
186 // |sync_disabled| indicates if syncing is being disabled or not. | 186 // |sync_disabled| indicates if syncing is being disabled or not. |
187 // See the implementation and Core::DoShutdown for details. | 187 // See the implementation and Core::DoShutdown for details. |
188 // Must be called *after* StopSyncingForShutdown. | 188 // Must be called *after* StopSyncingForShutdown. |
189 void Shutdown(bool sync_disabled); | 189 void Shutdown(bool sync_disabled); |
190 | 190 |
191 // Changes the set of data types that are currently being synced. | 191 // Changes the set of data types that are currently being synced. |
192 // The ready_task will be run when configuration is done with the | 192 // The ready_task will be run when configuration is done with the |
193 // set of all types that failed configuration (i.e., if its argument | 193 // set of all types that failed configuration (i.e., if its argument |
194 // is non-empty, then an error was encountered). | 194 // is non-empty, then an error was encountered). |
195 virtual void ConfigureDataTypes( | 195 virtual void ConfigureDataTypes( |
196 const syncable::ModelTypeSet& types_to_add, | 196 syncable::ModelEnumSet types_to_add, |
197 const syncable::ModelTypeSet& types_to_remove, | 197 syncable::ModelEnumSet types_to_remove, |
198 sync_api::ConfigureReason reason, | 198 sync_api::ConfigureReason reason, |
199 base::Callback<void(syncable::ModelEnumSet)> ready_task, | 199 base::Callback<void(syncable::ModelEnumSet)> ready_task, |
200 bool enable_nigori); | 200 bool enable_nigori); |
201 | 201 |
202 // Makes an asynchronous call to syncer to switch to config mode. When done | 202 // Makes an asynchronous call to syncer to switch to config mode. When done |
203 // syncer will call us back on FinishConfigureDataTypes. | 203 // syncer will call us back on FinishConfigureDataTypes. |
204 virtual void StartConfiguration(const base::Closure& callback); | 204 virtual void StartConfiguration(const base::Closure& callback); |
205 | 205 |
206 // Turns on encryption of all present and future sync data. | 206 // Turns on encryption of all present and future sync data. |
207 virtual void EnableEncryptEverything(); | 207 virtual void EnableEncryptEverything(); |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
288 const GoogleServiceAuthError& auth_error) OVERRIDE; | 288 const GoogleServiceAuthError& auth_error) OVERRIDE; |
289 virtual void OnPassphraseRequired( | 289 virtual void OnPassphraseRequired( |
290 sync_api::PassphraseRequiredReason reason) OVERRIDE; | 290 sync_api::PassphraseRequiredReason reason) OVERRIDE; |
291 virtual void OnPassphraseAccepted( | 291 virtual void OnPassphraseAccepted( |
292 const std::string& bootstrap_token) OVERRIDE; | 292 const std::string& bootstrap_token) OVERRIDE; |
293 virtual void OnStopSyncingPermanently() OVERRIDE; | 293 virtual void OnStopSyncingPermanently() OVERRIDE; |
294 virtual void OnUpdatedToken(const std::string& token) OVERRIDE; | 294 virtual void OnUpdatedToken(const std::string& token) OVERRIDE; |
295 virtual void OnClearServerDataFailed() OVERRIDE; | 295 virtual void OnClearServerDataFailed() OVERRIDE; |
296 virtual void OnClearServerDataSucceeded() OVERRIDE; | 296 virtual void OnClearServerDataSucceeded() OVERRIDE; |
297 virtual void OnEncryptedTypesChanged( | 297 virtual void OnEncryptedTypesChanged( |
298 const syncable::ModelTypeSet& encrypted_types, | 298 syncable::ModelEnumSet encrypted_types, |
299 bool encrypt_everything) OVERRIDE; | 299 bool encrypt_everything) OVERRIDE; |
300 virtual void OnEncryptionComplete() OVERRIDE; | 300 virtual void OnEncryptionComplete() OVERRIDE; |
301 virtual void OnActionableError( | 301 virtual void OnActionableError( |
302 const browser_sync::SyncProtocolError& sync_error) OVERRIDE; | 302 const browser_sync::SyncProtocolError& sync_error) OVERRIDE; |
303 | 303 |
304 struct DoInitializeOptions { | 304 struct DoInitializeOptions { |
305 DoInitializeOptions( | 305 DoInitializeOptions( |
306 MessageLoop* sync_loop, | 306 MessageLoop* sync_loop, |
307 SyncBackendRegistrar* registrar, | 307 SyncBackendRegistrar* registrar, |
308 const WeakHandle<JsEventHandler>& event_handler, | 308 const WeakHandle<JsEventHandler>& event_handler, |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
454 | 454 |
455 // Invoked when the passphrase provided by the user has been accepted. | 455 // Invoked when the passphrase provided by the user has been accepted. |
456 void NotifyPassphraseAccepted(const std::string& bootstrap_token); | 456 void NotifyPassphraseAccepted(const std::string& bootstrap_token); |
457 | 457 |
458 // Invoked when an updated token is available from the sync server. | 458 // Invoked when an updated token is available from the sync server. |
459 void NotifyUpdatedToken(const std::string& token); | 459 void NotifyUpdatedToken(const std::string& token); |
460 | 460 |
461 // Invoked when the set of encrypted types or the encrypt | 461 // Invoked when the set of encrypted types or the encrypt |
462 // everything flag changes. | 462 // everything flag changes. |
463 void NotifyEncryptedTypesChanged( | 463 void NotifyEncryptedTypesChanged( |
464 const syncable::ModelTypeSet& encrypted_types, | 464 syncable::ModelEnumSet encrypted_types, |
465 bool encrypt_everything); | 465 bool encrypt_everything); |
466 | 466 |
467 // Invoked when sync finishes encrypting new datatypes. | 467 // Invoked when sync finishes encrypting new datatypes. |
468 void NotifyEncryptionComplete(); | 468 void NotifyEncryptionComplete(); |
469 | 469 |
470 // Called from Core::OnSyncCycleCompleted to handle updating frontend | 470 // Called from Core::OnSyncCycleCompleted to handle updating frontend |
471 // thread components. | 471 // thread components. |
472 void HandleSyncCycleCompletedOnFrontendLoop( | 472 void HandleSyncCycleCompletedOnFrontendLoop( |
473 sessions::SyncSessionSnapshot* snapshot); | 473 sessions::SyncSessionSnapshot* snapshot); |
474 | 474 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
543 PendingConfigureDataTypesState(); | 543 PendingConfigureDataTypesState(); |
544 ~PendingConfigureDataTypesState(); | 544 ~PendingConfigureDataTypesState(); |
545 | 545 |
546 // The ready_task will be run when configuration is done with the | 546 // The ready_task will be run when configuration is done with the |
547 // set of all types that failed configuration (i.e., if its | 547 // set of all types that failed configuration (i.e., if its |
548 // argument is non-empty, then an error was encountered). | 548 // argument is non-empty, then an error was encountered). |
549 base::Callback<void(syncable::ModelEnumSet)> ready_task; | 549 base::Callback<void(syncable::ModelEnumSet)> ready_task; |
550 | 550 |
551 // The set of types that we are waiting to be initially synced in a | 551 // The set of types that we are waiting to be initially synced in a |
552 // configuration cycle. | 552 // configuration cycle. |
553 syncable::ModelTypeSet types_to_add; | 553 syncable::ModelEnumSet types_to_add; |
554 | 554 |
555 // Additional details about which types were added. | 555 // Additional details about which types were added. |
556 syncable::ModelTypeSet added_types; | 556 syncable::ModelEnumSet added_types; |
557 sync_api::ConfigureReason reason; | 557 sync_api::ConfigureReason reason; |
558 }; | 558 }; |
559 | 559 |
560 // For convenience, checks if initialization state is INITIALIZED. | 560 // For convenience, checks if initialization state is INITIALIZED. |
561 bool initialized() const { return initialization_state_ == INITIALIZED; } | 561 bool initialized() const { return initialization_state_ == INITIALIZED; } |
562 | 562 |
563 // Must be called on |frontend_loop_|. |done_callback| is called on | 563 // Must be called on |frontend_loop_|. |done_callback| is called on |
564 // |frontend_loop_|. | 564 // |frontend_loop_|. |
565 void RefreshEncryption(const base::Closure& done_callback); | 565 void RefreshEncryption(const base::Closure& done_callback); |
566 | 566 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
600 | 600 |
601 // UI-thread cache of the last SyncSessionSnapshot received from syncapi. | 601 // UI-thread cache of the last SyncSessionSnapshot received from syncapi. |
602 scoped_ptr<sessions::SyncSessionSnapshot> last_snapshot_; | 602 scoped_ptr<sessions::SyncSessionSnapshot> last_snapshot_; |
603 | 603 |
604 DISALLOW_COPY_AND_ASSIGN(SyncBackendHost); | 604 DISALLOW_COPY_AND_ASSIGN(SyncBackendHost); |
605 }; | 605 }; |
606 | 606 |
607 } // namespace browser_sync | 607 } // namespace browser_sync |
608 | 608 |
609 #endif // CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_H_ | 609 #endif // CHROME_BROWSER_SYNC_GLUE_SYNC_BACKEND_HOST_H_ |
OLD | NEW |