| 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 |