| 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_PROFILE_SYNC_SERVICE_HARNESS_H_ | 5 #ifndef CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_HARNESS_H_ |
| 6 #define CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_HARNESS_H_ | 6 #define CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_HARNESS_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 | 69 |
| 70 // Blocks the caller until the sync backend host associated with this harness | 70 // Blocks the caller until the sync backend host associated with this harness |
| 71 // has been initialized. Returns true if the wait was successful. | 71 // has been initialized. Returns true if the wait was successful. |
| 72 bool AwaitBackendInitialized(); | 72 bool AwaitBackendInitialized(); |
| 73 | 73 |
| 74 // Blocks the caller until the datatype manager is configured and sync has | 74 // Blocks the caller until the datatype manager is configured and sync has |
| 75 // been initialized (for example, after a browser restart). Returns true if | 75 // been initialized (for example, after a browser restart). Returns true if |
| 76 // the wait was successful. | 76 // the wait was successful. |
| 77 bool AwaitSyncRestart(); | 77 bool AwaitSyncRestart(); |
| 78 | 78 |
| 79 // Blocks the caller until this harness has completed a single sync cycle | 79 // Block the caller until this harness has completed a single sync cycle |
| 80 // since the previous one. Returns true if a sync cycle has completed. | 80 // since the previous one. Returns true if a sync cycle has completed. |
| 81 bool AwaitSyncCycleCompletion(const std::string& reason); | 81 bool AwaitDataSyncCompletion(const std::string& reason); |
| 82 |
| 83 // Blocks the caller until this harness has completed as many sync cycles as |
| 84 // are required to ensure its progress marker matches the latest available on |
| 85 // the server. |
| 86 // |
| 87 // Note: When other clients are committing changes this will not be reliable. |
| 88 // Use one of the sync cycle functions to handle those cases. |
| 89 bool AwaitFullSyncCompletion(const std::string& reason); |
| 82 | 90 |
| 83 // Blocks the caller until sync has been disabled for this client. Returns | 91 // Blocks the caller until sync has been disabled for this client. Returns |
| 84 // true if sync is disabled. | 92 // true if sync is disabled. |
| 85 bool AwaitSyncDisabled(const std::string& reason); | 93 bool AwaitSyncDisabled(const std::string& reason); |
| 86 | 94 |
| 87 // Blocks the caller until exponential backoff has been verified to happen. | 95 // Blocks the caller until exponential backoff has been verified to happen. |
| 88 bool AwaitExponentialBackoffVerification(); | 96 bool AwaitExponentialBackoffVerification(); |
| 89 | 97 |
| 90 // Blocks the caller until the syncer receives an actionable error. | 98 // Blocks the caller until the syncer receives an actionable error. |
| 91 // Returns true if the sync client received an actionable error. | 99 // Returns true if the sync client received an actionable error. |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 enum WaitState { | 190 enum WaitState { |
| 183 // The sync client has just been initialized. | 191 // The sync client has just been initialized. |
| 184 INITIAL_WAIT_STATE = 0, | 192 INITIAL_WAIT_STATE = 0, |
| 185 | 193 |
| 186 // The sync client awaits the OnBackendInitialized() callback. | 194 // The sync client awaits the OnBackendInitialized() callback. |
| 187 WAITING_FOR_ON_BACKEND_INITIALIZED, | 195 WAITING_FOR_ON_BACKEND_INITIALIZED, |
| 188 | 196 |
| 189 // The sync client is waiting for the first sync cycle to complete. | 197 // The sync client is waiting for the first sync cycle to complete. |
| 190 WAITING_FOR_INITIAL_SYNC, | 198 WAITING_FOR_INITIAL_SYNC, |
| 191 | 199 |
| 192 // The sync client is waiting for an ongoing sync cycle to complete. | 200 // The sync client is waiting for data to be synced. |
| 193 WAITING_FOR_SYNC_TO_FINISH, | 201 WAITING_FOR_DATA_SYNC, |
| 202 |
| 203 // The sync client is waiting for data and progress markers to be synced. |
| 204 WAITING_FOR_FULL_SYNC, |
| 194 | 205 |
| 195 // The sync client anticipates incoming updates leading to a new sync cycle. | 206 // The sync client anticipates incoming updates leading to a new sync cycle. |
| 196 WAITING_FOR_UPDATES, | 207 WAITING_FOR_UPDATES, |
| 197 | 208 |
| 198 // The sync client is waiting for a passphrase to be required by the | 209 // The sync client is waiting for a passphrase to be required by the |
| 199 // cryptographer. | 210 // cryptographer. |
| 200 WAITING_FOR_PASSPHRASE_REQUIRED, | 211 WAITING_FOR_PASSPHRASE_REQUIRED, |
| 201 | 212 |
| 202 // The sync client is waiting for its passphrase to be accepted by the | 213 // The sync client is waiting for its passphrase to be accepted by the |
| 203 // cryptographer. | 214 // cryptographer. |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 void SignalStateComplete(); | 269 void SignalStateComplete(); |
| 259 | 270 |
| 260 // Finite state machine for controlling state. Returns true only if a state | 271 // Finite state machine for controlling state. Returns true only if a state |
| 261 // change has taken place. | 272 // change has taken place. |
| 262 bool RunStateChangeMachine(); | 273 bool RunStateChangeMachine(); |
| 263 | 274 |
| 264 // Returns true if a status change took place, false on timeout. | 275 // Returns true if a status change took place, false on timeout. |
| 265 bool AwaitStatusChangeWithTimeout(int timeout_milliseconds, | 276 bool AwaitStatusChangeWithTimeout(int timeout_milliseconds, |
| 266 const std::string& reason); | 277 const std::string& reason); |
| 267 | 278 |
| 279 // A helper for implementing IsDataSynced() and IsFullySynced() |
| 280 bool IsDataSyncedImpl(const browser_sync::sessions::SyncSessionSnapshot*); |
| 281 |
| 268 // Returns true if the sync client has no unsynced items. | 282 // Returns true if the sync client has no unsynced items. |
| 269 bool IsSynced(); | 283 bool IsDataSynced(); |
| 284 |
| 285 // Returns true if the sync client has no unsynced items and its progress |
| 286 // markers are believed to be up to date. |
| 287 // |
| 288 // Although we can't detect when commits from other clients invalidate our |
| 289 // local progress markers, we do know when our own commits have invalidated |
| 290 // our timestmaps. This check returns true when this client has, to the best |
| 291 // of its knowledge, downloaded the latest progress markers. |
| 292 bool IsFullySynced(); |
| 270 | 293 |
| 271 // Returns true if there is a backend migration in progress. | 294 // Returns true if there is a backend migration in progress. |
| 272 bool HasPendingBackendMigration(); | 295 bool HasPendingBackendMigration(); |
| 273 | 296 |
| 274 // Returns true if this client has downloaded all the items that the | 297 // Returns true if this client has downloaded all the items that the |
| 275 // other client has. | 298 // other client has. |
| 276 bool MatchesOtherClient(ProfileSyncServiceHarness* partner); | 299 bool MatchesOtherClient(ProfileSyncServiceHarness* partner); |
| 277 | 300 |
| 278 // Returns a string with relevant info about client's sync state (if | 301 // Returns a string with relevant info about client's sync state (if |
| 279 // available), annotated with |message|. Useful for logging. | 302 // available), annotated with |message|. Useful for logging. |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 320 const std::string profile_debug_name_; | 343 const std::string profile_debug_name_; |
| 321 | 344 |
| 322 // Keeps track of the number of attempts at exponential backoff and its | 345 // Keeps track of the number of attempts at exponential backoff and its |
| 323 // related bookkeeping information for verification. | 346 // related bookkeeping information for verification. |
| 324 browser_sync::RetryVerifier retry_verifier_; | 347 browser_sync::RetryVerifier retry_verifier_; |
| 325 | 348 |
| 326 DISALLOW_COPY_AND_ASSIGN(ProfileSyncServiceHarness); | 349 DISALLOW_COPY_AND_ASSIGN(ProfileSyncServiceHarness); |
| 327 }; | 350 }; |
| 328 | 351 |
| 329 #endif // CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_HARNESS_H_ | 352 #endif // CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_HARNESS_H_ |
| OLD | NEW |