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 cdf3d5834af4d0a64d44c892c0f08165fac15aea..e13d6a8a10907864b2394f6a2b03fd249b7ad4a6 100644 |
--- a/chrome/browser/sync/glue/sync_backend_host.h |
+++ b/chrome/browser/sync/glue/sync_backend_host.h |
@@ -224,9 +224,6 @@ class SyncBackendHost { |
// ONLY CALL THIS IF OnInitializationComplete was called! |
bool HasUnsyncedItems() const; |
- // Logs the unsynced items. |
- void LogUnsyncedItems(int level) const; |
- |
// Whether or not we are syncing encryption keys. |
bool IsNigoriEnabled() const; |
@@ -243,11 +240,13 @@ class SyncBackendHost { |
protected: |
// An enum representing the steps to initializing the SyncBackendHost. |
enum InitializationState { |
- NOT_INITIALIZED, // Initialization hasn't completed. |
- DOWNLOADING_NIGORI, // The SyncManager is initialized, but we're fetching |
- // encryption information before alerting the |
- // frontend. |
- INITIALIZED, // Initialization is complete. |
+ NOT_INITIALIZED, // Initialization hasn't completed. |
+ DOWNLOADING_NIGORI, // The SyncManager is initialized, but |
+ // we're fetching encryption information. |
+ REFRESHING_ENCRYPTION, // The SyncManager is initialized, and we |
+ // have the encryption information, but we |
+ // still need to refresh encryption. |
+ INITIALIZED, // Initialization is complete. |
}; |
// The real guts of SyncBackendHost, to keep the public client API clean. |
@@ -259,12 +258,6 @@ class SyncBackendHost { |
// SyncManager::Observer implementation. The Core just acts like an air |
// traffic controller here, forwarding incoming messages to appropriate |
// landing threads. |
- virtual void OnChangesApplied( |
- syncable::ModelType model_type, |
- const sync_api::BaseTransaction* trans, |
- const sync_api::ImmutableChangeRecordList& changes) OVERRIDE; |
- virtual void OnChangesComplete( |
- syncable::ModelType model_type) OVERRIDE; |
virtual void OnSyncCycleCompleted( |
const sessions::SyncSessionSnapshot* snapshot) OVERRIDE; |
virtual void OnInitializationComplete( |
@@ -287,6 +280,7 @@ class SyncBackendHost { |
struct DoInitializeOptions { |
DoInitializeOptions( |
+ MessageLoop* sync_loop, |
SyncBackendRegistrar* registrar, |
const WeakHandle<JsEventHandler>& event_handler, |
const GURL& service_url, |
@@ -298,6 +292,7 @@ class SyncBackendHost { |
bool setup_for_test_mode); |
~DoInitializeOptions(); |
+ MessageLoop* sync_loop; |
SyncBackendRegistrar* registrar; |
WeakHandle<JsEventHandler> event_handler; |
GURL service_url; |
@@ -311,41 +306,45 @@ class SyncBackendHost { |
// Note: |
// |
- // The Do* methods are the various entry points from our SyncBackendHost. |
- // It calls us on a dedicated thread to actually perform synchronous |
- // (and potentially blocking) syncapi operations. |
+ // The Do* methods are the various entry points from our |
+ // SyncBackendHost. They are all called on the sync thread to |
+ // actually perform synchronous (and potentially blocking) syncapi |
+ // operations. |
// |
- // Called on the SyncBackendHost sync_thread_ to perform initialization |
- // of the syncapi on behalf of SyncBackendHost::Initialize. |
+ // Called to perform initialization of the syncapi on behalf of |
+ // SyncBackendHost::Initialize. |
void DoInitialize(const DoInitializeOptions& options); |
- // Called on our SyncBackendHost's sync_thread_ to perform credential |
- // update on behalf of SyncBackendHost::UpdateCredentials |
+ // Called to perform credential update on behalf of |
+ // SyncBackendHost::UpdateCredentials |
void DoUpdateCredentials(const sync_api::SyncCredentials& credentials); |
// Called when the user disables or enables a sync type. |
void DoUpdateEnabledTypes(); |
- // Called on the SyncBackendHost sync_thread_ to tell the syncapi to start |
- // syncing (generally after initialization and authentication). |
+ // Called to tell the syncapi to start syncing (generally after |
+ // initialization and authentication). |
void DoStartSyncing(); |
- // Called on the SyncBackendHost sync_thread_ to clear server |
- // data. |
+ // Called to clear server data. |
void DoRequestClearServerData(); |
- // Called on the SyncBackendHost sync_thread_ to cleanup disabled |
- // types. |
+ // Called to cleanup disabled types. |
void DoRequestCleanupDisabledTypes(); |
- // Called on our SyncBackendHost's |sync_thread_| to set the passphrase |
- // on behalf of SyncBackendHost::SupplyPassphrase. |
+ // Called to set the passphrase on behalf of |
+ // SyncBackendHost::SupplyPassphrase. |
void DoSetPassphrase(const std::string& passphrase, bool is_explicit); |
- // Called on SyncBackendHost's |sync_thread_| to turn on encryption of all |
- // sync data as well as reencrypt everything. |
+ // Called to turn on encryption of all sync data as well as |
+ // reencrypt everything. |
void DoEnableEncryptEverything(); |
+ // Called to refresh encryption with the most recent passphrase |
+ // and set of encrypted types. |done_callback| is called on the |
+ // sync thread. |
+ void DoRefreshEncryption(const base::Closure& done_callback); |
+ |
// The shutdown order is a bit complicated: |
// 1) From |sync_thread_|, invoke the syncapi Shutdown call to do |
// a final SaveChanges, and close sqlite handles. |
@@ -358,12 +357,12 @@ class SyncBackendHost { |
// (in step 2). |
void DoShutdown(bool stopping_sync); |
- // Posts a config request on the sync thread. |
virtual void DoRequestConfig( |
const syncable::ModelTypeBitSet& types_to_config, |
sync_api::ConfigureReason reason); |
- // Start the configuration mode. |
+ // Start the configuration mode. |callback| is called on the sync |
+ // thread. |
virtual void DoStartConfiguration(Callback0::Type* callback); |
// Set the base request context to use when making HTTP calls. |
@@ -449,6 +448,10 @@ class SyncBackendHost { |
// Our parent SyncBackendHost |
SyncBackendHost* host_; |
+ // The loop where all the sync backend operations happen. |
+ // Non-NULL only between calls to DoInitialize() and DoShutdown(). |
+ MessageLoop* sync_loop_; |
+ |
// Our parent's registrar (not owned). Non-NULL only between |
// calls to DoInitialize() and DoShutdown(). |
SyncBackendRegistrar* registrar_; |
@@ -481,8 +484,6 @@ class SyncBackendHost { |
virtual sync_api::HttpPostProviderFactory* MakeHttpBridgeFactory( |
const scoped_refptr<net::URLRequestContextGetter>& getter); |
- MessageLoop* sync_loop() { return sync_thread_.message_loop(); } |
- |
// Helpers to persist a token that can be used to bootstrap sync encryption |
// across browser restart to avoid requiring the user to re-enter their |
// passphrase. |token| must be valid UTF-8 as we use the PrefService for |
@@ -516,6 +517,10 @@ class SyncBackendHost { |
// For convenience, checks if initialization state is INITIALIZED. |
bool initialized() const { return initialization_state_ == INITIALIZED; } |
+ // Must be called on |frontend_loop_|. |done_callback| is called on |
+ // |frontend_loop_|. |
+ void RefreshEncryption(const base::Closure& done_callback); |
+ |
// A thread where all the sync operations happen. |
base::Thread sync_thread_; |