Chromium Code Reviews| Index: chrome/browser/sync/glue/sync_backend_host.h |
| diff --git a/chrome/browser/sync/glue/sync_backend_host.h b/chrome/browser/sync/glue/sync_backend_host.h |
| index a77026b25b274d59b3df06253c4ea2ab6423ad34..9513a8e2e344f2da833a3188beba9292352e4387 100644 |
| --- a/chrome/browser/sync/glue/sync_backend_host.h |
| +++ b/chrome/browser/sync/glue/sync_backend_host.h |
| @@ -25,6 +25,7 @@ |
| #include "sync/internal_api/public/engine/model_safe_worker.h" |
| #include "sync/internal_api/public/sessions/sync_session_snapshot.h" |
| #include "sync/internal_api/public/sync_manager.h" |
| +#include "sync/internal_api/public/sync_manager_factory.h" |
|
rlarocque
2012/07/04 06:39:35
Interesting... Is this part of the un-revert, or w
Nicolas Zea
2012/07/09 18:40:45
Neither, it's an addition to support testing via d
|
| #include "sync/internal_api/public/util/report_unrecoverable_error_function.h" |
| #include "sync/internal_api/public/util/unrecoverable_error_handler.h" |
| #include "sync/internal_api/public/util/weak_handle.h" |
| @@ -170,6 +171,7 @@ class SyncBackendHost : public BackendDataTypeConfigurer { |
| syncer::ModelTypeSet initial_types, |
| const syncer::SyncCredentials& credentials, |
| bool delete_sync_data_folder, |
| + syncer::SyncManagerFactory* sync_manager_factory, |
| syncer::UnrecoverableErrorHandler* unrecoverable_error_handler, |
| syncer::ReportUnrecoverableErrorFunction |
| report_unrecoverable_error_function); |
| @@ -276,7 +278,7 @@ class SyncBackendHost : public BackendDataTypeConfigurer { |
| // TODO(akalin): Figure out a better way for tests to hook into |
| // SyncBackendHost. |
| - typedef base::Callback<syncer::HttpPostProviderFactory*(void)> |
| + typedef base::Callback<scoped_ptr<syncer::HttpPostProviderFactory>(void)> |
|
rlarocque
2012/07/04 06:39:35
I'm pretty sure our scoped_ptr class supports this
Nicolas Zea
2012/07/09 18:40:45
It's a relatively new (past 6 months I think) addi
|
| MakeHttpBridgeFactoryFn; |
| struct DoInitializeOptions { |
| @@ -292,6 +294,7 @@ class SyncBackendHost : public BackendDataTypeConfigurer { |
| const syncer::SyncCredentials& credentials, |
| ChromeSyncNotificationBridge* chrome_sync_notification_bridge, |
| syncer::SyncNotifierFactory* sync_notifier_factory, |
| + syncer::SyncManagerFactory* sync_manager_factory, |
| bool delete_sync_data_folder, |
| const std::string& restored_key_for_bootstrapping, |
| syncer::SyncManager::TestingMode testing_mode, |
| @@ -312,6 +315,7 @@ class SyncBackendHost : public BackendDataTypeConfigurer { |
| syncer::SyncCredentials credentials; |
| ChromeSyncNotificationBridge* const chrome_sync_notification_bridge; |
| syncer::SyncNotifierFactory* const sync_notifier_factory; |
| + syncer::SyncManagerFactory* const sync_manager_factory; |
| std::string lsid; |
| bool delete_sync_data_folder; |
| std::string restored_key_for_bootstrapping; |
| @@ -321,6 +325,14 @@ class SyncBackendHost : public BackendDataTypeConfigurer { |
| report_unrecoverable_error_function; |
| }; |
| + // Allow derived classes to start the sync thread early. |
| + // Returns true on success, false otherwise. If the thread was already |
| + // running, does nothing and returns true. |
| + bool StartSyncThread(); |
| + |
| + // Getter for derived classes. May be NULL if the thread is not running. |
| + MessageLoop* sync_loop() const { return sync_thread_.message_loop(); } |
|
rlarocque
2012/07/04 06:39:35
This should be on several lines.
Also, are you su
Nicolas Zea
2012/07/09 18:40:45
SImple inlined methods like this are acceptable to
|
| + |
| // Allows tests to perform alternate core initialization work. |
| virtual void InitCore(const DoInitializeOptions& options); |
| @@ -333,6 +345,13 @@ class SyncBackendHost : public BackendDataTypeConfigurer { |
| const base::Callback<void(syncer::ModelTypeSet)>& ready_task, |
| const base::Closure& retry_callback); |
| + // InitializationComplete passes through the SyncBackendHost to forward |
|
rlarocque
2012/07/04 06:39:35
Was this move necessary? If not, could you undo i
Nicolas Zea
2012/07/09 18:40:45
Ah, originally I was calling this from a child, bu
|
| + // on to |frontend_|, and so that tests can intercept here if they need to |
| + // set up initial conditions. |
| + void HandleInitializationCompletedOnFrontendLoop( |
| + const syncer::WeakHandle<syncer::JsBackend>& js_backend, |
| + bool success); |
| + |
| // Called when the syncer has finished performing a configuration. |
| void FinishConfigureDataTypesOnFrontendLoop( |
| const syncer::ModelTypeSet types_to_configure, |
| @@ -349,6 +368,8 @@ class SyncBackendHost : public BackendDataTypeConfigurer { |
| // has been created. |
| NOT_INITIALIZED, // Initialization hasn't completed, but we've |
| // constructed a SyncManager. |
| + CLEANING_NIGORI, // A partially downloaded nigori was found. We |
| + // perform a configuration cycle to blow it away. |
| DOWNLOADING_NIGORI, // The SyncManager is initialized, but |
| // we're fetching encryption information. |
| REFRESHING_NIGORI, // The SyncManager is initialized, and we |
| @@ -366,13 +387,6 @@ class SyncBackendHost : public BackendDataTypeConfigurer { |
| // Downloading of nigori failed and will be retried. |
| void OnNigoriDownloadRetry(); |
| - // InitializationComplete passes through the SyncBackendHost to forward |
| - // on to |frontend_|, and so that tests can intercept here if they need to |
| - // set up initial conditions. |
| - void HandleInitializationCompletedOnFrontendLoop( |
| - const syncer::WeakHandle<syncer::JsBackend>& js_backend, |
| - bool success); |
| - |
| // Called from Core::OnSyncCycleCompleted to handle updating frontend |
| // thread components. |
| void HandleSyncCycleCompletedOnFrontendLoop( |