| Index: chrome/browser/signin/easy_unlock_service_regular.h
|
| diff --git a/chrome/browser/signin/easy_unlock_service_regular.h b/chrome/browser/signin/easy_unlock_service_regular.h
|
| index fb46bc472662463e23d8452c969161cdb76c669c..2a4579777b69e26bbe0baf982fdaab5cb5dd4a52 100644
|
| --- a/chrome/browser/signin/easy_unlock_service_regular.h
|
| +++ b/chrome/browser/signin/easy_unlock_service_regular.h
|
| @@ -13,6 +13,7 @@
|
| #include "base/prefs/pref_change_registrar.h"
|
| #include "base/time/time.h"
|
| #include "chrome/browser/signin/easy_unlock_service.h"
|
| +#include "components/proximity_auth/cryptauth/cryptauth_device_manager.h"
|
| #include "components/proximity_auth/screenlock_bridge.h"
|
| #include "google_apis/gaia/oauth2_token_service.h"
|
|
|
| @@ -31,10 +32,11 @@ class ToggleEasyUnlockResponse;
|
|
|
| namespace proximity_auth {
|
| class CryptAuthClient;
|
| -class CryptAuthGCMManager;
|
| -class CryptAuthEnrollmentManager;
|
| class CryptAuthDeviceManager;
|
| +class CryptAuthEnrollmentManager;
|
| +class CryptAuthGCMManager;
|
| class ProximityAuthPrefManager;
|
| +class RemoteDeviceLoader;
|
| }
|
|
|
| class EasyUnlockAppManager;
|
| @@ -46,6 +48,7 @@ class Profile;
|
| class EasyUnlockServiceRegular
|
| : public EasyUnlockService,
|
| public proximity_auth::ScreenlockBridge::Observer,
|
| + public proximity_auth::CryptAuthDeviceManager::Observer,
|
| public OAuth2TokenService::Observer {
|
| public:
|
| explicit EasyUnlockServiceRegular(Profile* profile);
|
| @@ -64,6 +67,14 @@ class EasyUnlockServiceRegular
|
| proximity_auth::ProximityAuthPrefManager* GetProximityAuthPrefManager();
|
|
|
| private:
|
| + // Loads the RemoteDevice instances that will be supplied to
|
| + // ProximityAuthSystem.
|
| + void LoadRemoteDevices();
|
| +
|
| + // Called when |remote_device_loader_| completes.
|
| + void OnRemoteDevicesLoaded(
|
| + const std::vector<proximity_auth::RemoteDevice>& remote_devices);
|
| +
|
| // EasyUnlockService implementation:
|
| EasyUnlockService::Type GetType() const override;
|
| std::string GetUserEmail() const override;
|
| @@ -88,11 +99,17 @@ class EasyUnlockServiceRegular
|
| void ShutdownInternal() override;
|
| bool IsAllowedInternal() const override;
|
| void OnWillFinalizeUnlock(bool success) override;
|
| - void OnSuspendDone() override;
|
| + void OnSuspendDoneInternal() override;
|
|
|
| // OAuth2TokenService::Observer:
|
| void OnRefreshTokenAvailable(const std::string& account_id) override;
|
|
|
| + // CryptAuthDeviceManager::Observer:
|
| + void OnSyncFinished(
|
| + proximity_auth::CryptAuthDeviceManager::SyncResult sync_result,
|
| + proximity_auth::CryptAuthDeviceManager::DeviceChangeResult
|
| + device_change_result) override;
|
| +
|
| // proximity_auth::ScreenlockBridge::Observer implementation:
|
| void OnScreenDidLock(proximity_auth::ScreenlockBridge::LockHandler::ScreenType
|
| screen_type) override;
|
| @@ -165,6 +182,15 @@ class EasyUnlockServiceRegular
|
| // Manager responsible for handling the prefs used by proximity_auth classes.
|
| scoped_ptr<proximity_auth::ProximityAuthPrefManager> pref_manager_;
|
|
|
| + // Loads the RemoteDevice instances from CryptAuth and local data.
|
| + scoped_ptr<proximity_auth::RemoteDeviceLoader> remote_device_loader_;
|
| +
|
| + // If a new RemoteDevice was synced while the screen is locked, we defer
|
| + // loading the RemoteDevice until the screen is unlocked. For security,
|
| + // this deferment prevents the lock screen from being changed by a network
|
| + // event.
|
| + bool deferring_device_load_;
|
| +
|
| base::WeakPtrFactory<EasyUnlockServiceRegular> weak_ptr_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(EasyUnlockServiceRegular);
|
|
|