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 1f4ff9d605b060a5c6d5f7bcde9b2063de153511..d1febbdf34cfcb3a70a96f3fce47eb16d9edc068 100644 |
--- a/chrome/browser/signin/easy_unlock_service_regular.h |
+++ b/chrome/browser/signin/easy_unlock_service_regular.h |
@@ -14,6 +14,7 @@ |
#include "base/time/time.h" |
#include "chrome/browser/signin/easy_unlock_service.h" |
#include "components/proximity_auth/screenlock_bridge.h" |
+#include "google_apis/gaia/oauth2_token_service.h" |
#if defined(OS_CHROMEOS) |
#include "chrome/browser/chromeos/login/easy_unlock/short_lived_user_context.h" |
@@ -30,6 +31,9 @@ class ToggleEasyUnlockResponse; |
namespace proximity_auth { |
class CryptAuthClient; |
+class CryptAuthGCMManager; |
+class CryptAuthEnrollmentManager; |
+class CryptAuthDeviceManager; |
} |
class EasyUnlockAppManager; |
@@ -40,11 +44,20 @@ class Profile; |
// profiles. |
class EasyUnlockServiceRegular |
: public EasyUnlockService, |
- public proximity_auth::ScreenlockBridge::Observer { |
+ public proximity_auth::ScreenlockBridge::Observer, |
+ public OAuth2TokenService::Observer { |
public: |
explicit EasyUnlockServiceRegular(Profile* profile); |
~EasyUnlockServiceRegular() override; |
+ // Returns the CryptAuthEnrollmentManager, which manages the profile's |
+ // CryptAuth enrollment. |
+ proximity_auth::CryptAuthEnrollmentManager* GetCryptAuthEnrollmentManager(); |
+ |
+ // Returns the CryptAuthEnrollmentManager, which manages the profile's |
+ // synced devices from CryptAuth. |
+ proximity_auth::CryptAuthDeviceManager* GetCryptAuthDeviceManager(); |
+ |
private: |
// EasyUnlockService implementation: |
EasyUnlockService::Type GetType() const override; |
@@ -71,6 +84,9 @@ class EasyUnlockServiceRegular |
void OnWillFinalizeUnlock(bool success) override; |
void OnSuspendDone() override; |
+ // OAuth2TokenService::Observer: |
+ void OnRefreshTokenAvailable(const std::string& account_id) override; |
+ |
// proximity_auth::ScreenlockBridge::Observer implementation: |
void OnScreenDidLock(proximity_auth::ScreenlockBridge::LockHandler::ScreenType |
screen_type) override; |
@@ -102,6 +118,9 @@ class EasyUnlockServiceRegular |
EasyUnlockScreenlockStateHandler::HardlockState state_on_success, |
bool success); |
+ // Initializes the managers that communicate with CryptAuth. |
+ void InitializeCryptAuth(); |
+ |
scoped_ptr<chromeos::ShortLivedUserContext> short_lived_user_context_; |
#endif |
@@ -109,6 +128,10 @@ class EasyUnlockServiceRegular |
// can be accessed on the sign-in screen. |
void SyncProfilePrefsToLocalState(); |
+ // Returns the base GcmDeviceInfo proto containing the device's platform and |
+ // version information. |
+ cryptauth::GcmDeviceInfo GetGcmDeviceInfo(); |
+ |
PrefChangeRegistrar registrar_; |
TurnOffFlowStatus turn_off_flow_status_; |
@@ -127,6 +150,12 @@ class EasyUnlockServiceRegular |
// locked but the computer does not go to sleep. |
base::TimeTicks lock_screen_last_shown_timestamp_; |
+ // Managers responsible for handling syncing and communications with |
+ // CryptAuth. |
+ scoped_ptr<proximity_auth::CryptAuthGCMManager> gcm_manager_; |
+ scoped_ptr<proximity_auth::CryptAuthEnrollmentManager> enrollment_manager_; |
+ scoped_ptr<proximity_auth::CryptAuthDeviceManager> device_manager_; |
+ |
base::WeakPtrFactory<EasyUnlockServiceRegular> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(EasyUnlockServiceRegular); |