| Index: components/proximity_auth/cryptauth/cryptauth_device_manager.h
|
| diff --git a/components/proximity_auth/cryptauth/cryptauth_device_manager.h b/components/proximity_auth/cryptauth/cryptauth_device_manager.h
|
| index f1dfebeb981cea931136b1e6b17276026ae40171..ea16cd0ab992d4a1798c8878d1f692a8ccd4d8ab 100644
|
| --- a/components/proximity_auth/cryptauth/cryptauth_device_manager.h
|
| +++ b/components/proximity_auth/cryptauth/cryptauth_device_manager.h
|
| @@ -10,6 +10,7 @@
|
| #include "base/observer_list.h"
|
| #include "base/time/clock.h"
|
| #include "base/time/time.h"
|
| +#include "components/proximity_auth/cryptauth/cryptauth_gcm_manager.h"
|
| #include "components/proximity_auth/cryptauth/proto/cryptauth_api.pb.h"
|
| #include "components/proximity_auth/cryptauth/sync_scheduler.h"
|
|
|
| @@ -27,7 +28,8 @@ class CryptAuthClientFactory;
|
| // The manager periodically syncs the user's devices from CryptAuth to keep the
|
| // list of unlock keys fresh. If a sync attempts fails, the manager will
|
| // schedule the next sync more aggressively to recover.
|
| -class CryptAuthDeviceManager : public SyncScheduler::Delegate {
|
| +class CryptAuthDeviceManager : public SyncScheduler::Delegate,
|
| + public CryptAuthGCMManager::Observer {
|
| public:
|
| // Respresents the success result of a sync attempt.
|
| enum class SyncResult { SUCCESS, FAILURE };
|
| @@ -56,11 +58,14 @@ class CryptAuthDeviceManager : public SyncScheduler::Delegate {
|
| // Creates the manager:
|
| // |clock|: Used to determine the time between sync attempts.
|
| // |client_factory|: Creates CryptAuthClient instances to perform each sync.
|
| + // |gcm_manager|: Notifies when GCM push messages trigger device syncs.
|
| + // Not owned and must outlive this instance.
|
| // |pref_service|: Stores syncing metadata and unlock key information to
|
| // persist across browser restarts. Must already be registered
|
| // with RegisterPrefs().
|
| CryptAuthDeviceManager(scoped_ptr<base::Clock> clock,
|
| scoped_ptr<CryptAuthClientFactory> client_factory,
|
| + CryptAuthGCMManager* gcm_manager,
|
| PrefService* pref_service);
|
|
|
| ~CryptAuthDeviceManager() override;
|
| @@ -108,6 +113,9 @@ class CryptAuthDeviceManager : public SyncScheduler::Delegate {
|
| virtual scoped_ptr<SyncScheduler> CreateSyncScheduler();
|
|
|
| private:
|
| + // CryptAuthGCMManager::Observer:
|
| + void OnResyncMessage() override;
|
| +
|
| // Updates |unlock_keys_| by fetching the list stored in |pref_service_|.
|
| void UpdateUnlockKeysFromPrefs();
|
|
|
| @@ -125,7 +133,11 @@ class CryptAuthDeviceManager : public SyncScheduler::Delegate {
|
| // Creates CryptAuthClient instances for each sync attempt.
|
| scoped_ptr<CryptAuthClientFactory> client_factory_;
|
|
|
| - // Contains perferences that outlive the lifetime of this object and across
|
| + // Notifies when GCM push messages trigger device sync. Not owned and must
|
| + // outlive this instance.
|
| + CryptAuthGCMManager* gcm_manager_;
|
| +
|
| + // Contains preferences that outlive the lifetime of this object and across
|
| // process restarts. |pref_service_| must outlive the lifetime of this
|
| // instance.
|
| PrefService* const pref_service_;
|
|
|