summaryrefslogtreecommitdiffstats
path: root/sync/internal_api/sync_manager_impl.h
diff options
context:
space:
mode:
authorrlarocque@chromium.org <rlarocque@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-25 01:47:46 +0000
committerrlarocque@chromium.org <rlarocque@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-25 01:47:46 +0000
commit1691f004283eca700aa101b784bdec5a8c3b24cb (patch)
tree51686e63df183d4ea60fb38be4400db97fedbf18 /sync/internal_api/sync_manager_impl.h
parent9f9309fbb4f1ff34330a9ba3879011cad09f05e5 (diff)
downloadchromium_src-1691f004283eca700aa101b784bdec5a8c3b24cb.zip
chromium_src-1691f004283eca700aa101b784bdec5a8c3b24cb.tar.gz
chromium_src-1691f004283eca700aa101b784bdec5a8c3b24cb.tar.bz2
Revert 208315 "Make use of InvalidationService"
> Make use of InvalidationService > > The InvalidationService was introduced r199520. That commit added the > InvalidationService interface and several implementations of it, but > made no use of the new code. This commit builds on that work. > > Up until now, TICL invalidations were handled on the sync thread. The > related objects were instantiated and owned by the SyncBackendHost and > SyncManager. All requests to update the set of object registrations had > to be passed to the sync thread. Components that wanted to receive > invalidations but were not part of sync had to route their communication > with the invalidations server through ProfileSyncService to get to the > sync thread. Things were a bit different on Android, but the system > still tried to pretend that invalidations were owned by the sync thread. > > The new InvalidationService implementation is a ProfileKeyedService that > is mostly independent from sync. It still relies on sync to manage sign > in and fetch the appropriate auth tokens. However, it's now much easier > for components outside of sync to communication with the invalidations > server. > > The new system allows us to remove a lot of invalidations-related code > from the ProfileSyncService, SyncBackendHost and SyncManager. Sync is > now just one of many clients of the InvalidationService. The > SyncBackendHost is responsible for forwarding messages back and forth > between the InvalidationService and the sync thread. > > TBR=sky,erg > BUG=124137 > > Review URL: https://chromiumcodereview.appspot.com/15580002 TBR=rlarocque@chromium.org Review URL: https://codereview.chromium.org/17610004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208347 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/internal_api/sync_manager_impl.h')
-rw-r--r--sync/internal_api/sync_manager_impl.h24
1 files changed, 21 insertions, 3 deletions
diff --git a/sync/internal_api/sync_manager_impl.h b/sync/internal_api/sync_manager_impl.h
index 153df81..c12eea7 100644
--- a/sync/internal_api/sync_manager_impl.h
+++ b/sync/internal_api/sync_manager_impl.h
@@ -51,6 +51,7 @@ class SYNC_EXPORT_PRIVATE SyncManagerImpl :
public SyncManager,
public net::NetworkChangeNotifier::IPAddressObserver,
public net::NetworkChangeNotifier::ConnectionTypeObserver,
+ public InvalidationHandler,
public JsBackend,
public SyncEngineEventListener,
public ServerConnectionEventListener,
@@ -73,6 +74,7 @@ class SYNC_EXPORT_PRIVATE SyncManagerImpl :
ExtensionsActivityMonitor* extensions_activity_monitor,
SyncManager::ChangeDelegate* change_delegate,
const SyncCredentials& credentials,
+ scoped_ptr<Invalidator> invalidator,
const std::string& invalidator_client_id,
const std::string& restored_key_for_bootstrapping,
const std::string& restored_keystore_key_for_bootstrapping,
@@ -88,6 +90,17 @@ class SYNC_EXPORT_PRIVATE SyncManagerImpl :
ModelTypeSet types) OVERRIDE;
virtual bool PurgePartiallySyncedTypes() OVERRIDE;
virtual void UpdateCredentials(const SyncCredentials& credentials) OVERRIDE;
+ virtual void UpdateEnabledTypes(ModelTypeSet enabled_types) OVERRIDE;
+ virtual void RegisterInvalidationHandler(
+ InvalidationHandler* handler) OVERRIDE;
+ virtual void UpdateRegisteredInvalidationIds(
+ InvalidationHandler* handler,
+ const ObjectIdSet& ids) OVERRIDE;
+ virtual void UnregisterInvalidationHandler(
+ InvalidationHandler* handler) OVERRIDE;
+ virtual void AcknowledgeInvalidation(
+ const invalidation::ObjectId& id,
+ const syncer::AckHandle& ack_handle) OVERRIDE;
virtual void StartSyncingNormally(
const ModelSafeRoutingInfo& routing_info) OVERRIDE;
virtual void ConfigureSyncer(
@@ -99,9 +112,6 @@ class SYNC_EXPORT_PRIVATE SyncManagerImpl :
const ModelSafeRoutingInfo& new_routing_info,
const base::Closure& ready_task,
const base::Closure& retry_task) OVERRIDE;
- virtual void OnInvalidatorStateChange(InvalidatorState state) OVERRIDE;
- virtual void OnIncomingInvalidation(
- const ObjectIdInvalidationMap& invalidation_map) OVERRIDE;
virtual void AddObserver(SyncManager::Observer* observer) OVERRIDE;
virtual void RemoveObserver(SyncManager::Observer* observer) OVERRIDE;
virtual SyncStatus GetDetailedStatus() const OVERRIDE;
@@ -167,6 +177,11 @@ class SYNC_EXPORT_PRIVATE SyncManagerImpl :
syncable::BaseTransaction* trans,
std::vector<int64>* entries_changed) OVERRIDE;
+ // InvalidationHandler implementation.
+ virtual void OnInvalidatorStateChange(InvalidatorState state) OVERRIDE;
+ virtual void OnIncomingInvalidation(
+ const ObjectIdInvalidationMap& invalidation_map) OVERRIDE;
+
// Handle explicit requests to fetch updates for the given types.
virtual void RefreshTypes(ModelTypeSet types) OVERRIDE;
@@ -321,6 +336,9 @@ class SYNC_EXPORT_PRIVATE SyncManagerImpl :
// Start()ed.
scoped_ptr<SyncScheduler> scheduler_;
+ // The Invalidator which notifies us when updates need to be downloaded.
+ scoped_ptr<Invalidator> invalidator_;
+
// A multi-purpose status watch object that aggregates stats from various
// sync components.
AllStatus allstatus_;