| Index: chrome/browser/sync/profile_sync_service.h
|
| diff --git a/chrome/browser/sync/profile_sync_service.h b/chrome/browser/sync/profile_sync_service.h
|
| index 4ab847b9af51a51a0e811b4ffcc207c5e7116670..bfeb6761c9e3d096e6ab9e124a388efd8b696db9 100644
|
| --- a/chrome/browser/sync/profile_sync_service.h
|
| +++ b/chrome/browser/sync/profile_sync_service.h
|
| @@ -41,7 +41,6 @@
|
| #include "sync/internal_api/public/util/experiments.h"
|
| #include "sync/internal_api/public/util/unrecoverable_error_handler.h"
|
| #include "sync/js/sync_js_controller.h"
|
| -#include "sync/notifier/invalidator_registrar.h"
|
|
|
| class Profile;
|
| class ProfileSyncComponentsFactory;
|
| @@ -60,6 +59,7 @@ namespace sessions { class SyncSessionSnapshot; }
|
|
|
| namespace syncer {
|
| class BaseTransaction;
|
| +class InvalidatorRegistrar;
|
| struct SyncCredentials;
|
| struct UserShare;
|
| }
|
| @@ -218,8 +218,8 @@ class ProfileSyncService : public ProfileSyncServiceBase,
|
| StartBehavior start_behavior);
|
| virtual ~ProfileSyncService();
|
|
|
| - // Initializes the object. This should be called every time an object of this
|
| - // class is constructed.
|
| + // Initializes the object. This must be called at most once, and
|
| + // immediately after an object of this class is constructed.
|
| void Initialize();
|
|
|
| virtual void SetSyncSetupCompleted();
|
| @@ -552,7 +552,8 @@ class ProfileSyncService : public ProfileSyncServiceBase,
|
| // been cleared yet. Virtual for testing purposes.
|
| virtual bool waiting_for_auth() const;
|
|
|
| - // InvalidationFrontend implementation.
|
| + // InvalidationFrontend implementation. It is an error to have
|
| + // registered handlers when Shutdown() is called.
|
| virtual void RegisterInvalidationHandler(
|
| syncer::InvalidationHandler* handler) OVERRIDE;
|
| virtual void UpdateRegisteredInvalidationIds(
|
| @@ -562,7 +563,8 @@ class ProfileSyncService : public ProfileSyncServiceBase,
|
| syncer::InvalidationHandler* handler) OVERRIDE;
|
| virtual syncer::InvalidatorState GetInvalidatorState() const OVERRIDE;
|
|
|
| - // ProfileKeyedService implementation.
|
| + // ProfileKeyedService implementation. This must be called exactly
|
| + // once (before this object is destroyed).
|
| virtual void Shutdown() OVERRIDE;
|
|
|
| // Simulate an incoming notification for the given id and payload.
|
| @@ -841,8 +843,9 @@ class ProfileSyncService : public ProfileSyncServiceBase,
|
| // Factory the backend will use to build the SyncManager.
|
| syncer::SyncManagerFactory sync_manager_factory_;
|
|
|
| - // Dispatches invalidations to handlers.
|
| - syncer::InvalidatorRegistrar invalidator_registrar_;
|
| + // Dispatches invalidations to handlers. Set in Initialize() and
|
| + // unset in Shutdown().
|
| + scoped_ptr<syncer::InvalidatorRegistrar> invalidator_registrar_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ProfileSyncService);
|
| };
|
|
|