| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_SIGNIN_EASY_UNLOCK_SERVICE_REGULAR_H_ | 5 #ifndef CHROME_BROWSER_SIGNIN_EASY_UNLOCK_SERVICE_REGULAR_H_ |
| 6 #define CHROME_BROWSER_SIGNIN_EASY_UNLOCK_SERVICE_REGULAR_H_ | 6 #define CHROME_BROWSER_SIGNIN_EASY_UNLOCK_SERVICE_REGULAR_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| 11 #include "base/callback.h" | 11 #include "base/callback.h" |
| 12 #include "base/macros.h" | 12 #include "base/macros.h" |
| 13 #include "base/time/time.h" | 13 #include "base/time/time.h" |
| 14 #include "build/build_config.h" | 14 #include "build/build_config.h" |
| 15 #include "chrome/browser/signin/easy_unlock_service.h" | 15 #include "chrome/browser/signin/easy_unlock_service.h" |
| 16 #include "components/cryptauth/cryptauth_device_manager.h" |
| 16 #include "components/prefs/pref_change_registrar.h" | 17 #include "components/prefs/pref_change_registrar.h" |
| 17 #include "components/proximity_auth/cryptauth/cryptauth_device_manager.h" | |
| 18 #include "components/proximity_auth/screenlock_bridge.h" | 18 #include "components/proximity_auth/screenlock_bridge.h" |
| 19 #include "google_apis/gaia/oauth2_token_service.h" | 19 #include "google_apis/gaia/oauth2_token_service.h" |
| 20 | 20 |
| 21 #if defined(OS_CHROMEOS) | 21 #if defined(OS_CHROMEOS) |
| 22 #include "chrome/browser/chromeos/login/easy_unlock/short_lived_user_context.h" | 22 #include "chrome/browser/chromeos/login/easy_unlock/short_lived_user_context.h" |
| 23 #endif | 23 #endif |
| 24 | 24 |
| 25 namespace base { | 25 namespace base { |
| 26 class DictionaryValue; | 26 class DictionaryValue; |
| 27 class ListValue; | 27 class ListValue; |
| 28 } | 28 } |
| 29 | 29 |
| 30 namespace cryptauth { | 30 namespace cryptauth { |
| 31 class CryptAuthClient; |
| 32 class CryptAuthDeviceManager; |
| 33 class CryptAuthEnrollmentManager; |
| 34 class CryptAuthGCMManager; |
| 31 class ToggleEasyUnlockResponse; | 35 class ToggleEasyUnlockResponse; |
| 32 } | 36 } |
| 33 | 37 |
| 34 namespace proximity_auth { | 38 namespace proximity_auth { |
| 35 class CryptAuthClient; | |
| 36 class CryptAuthDeviceManager; | |
| 37 class CryptAuthEnrollmentManager; | |
| 38 class CryptAuthGCMManager; | |
| 39 class ProximityAuthPrefManager; | 39 class ProximityAuthPrefManager; |
| 40 class RemoteDeviceLoader; | 40 class RemoteDeviceLoader; |
| 41 } | 41 } |
| 42 | 42 |
| 43 class EasyUnlockAppManager; | 43 class EasyUnlockAppManager; |
| 44 class EasyUnlockToggleFlow; | 44 class EasyUnlockToggleFlow; |
| 45 class Profile; | 45 class Profile; |
| 46 | 46 |
| 47 // EasyUnlockService instance that should be used for regular, non-signin | 47 // EasyUnlockService instance that should be used for regular, non-signin |
| 48 // profiles. | 48 // profiles. |
| 49 class EasyUnlockServiceRegular | 49 class EasyUnlockServiceRegular |
| 50 : public EasyUnlockService, | 50 : public EasyUnlockService, |
| 51 public proximity_auth::ScreenlockBridge::Observer, | 51 public proximity_auth::ScreenlockBridge::Observer, |
| 52 public proximity_auth::CryptAuthDeviceManager::Observer, | 52 public cryptauth::CryptAuthDeviceManager::Observer, |
| 53 public OAuth2TokenService::Observer { | 53 public OAuth2TokenService::Observer { |
| 54 public: | 54 public: |
| 55 explicit EasyUnlockServiceRegular(Profile* profile); | 55 explicit EasyUnlockServiceRegular(Profile* profile); |
| 56 ~EasyUnlockServiceRegular() override; | 56 ~EasyUnlockServiceRegular() override; |
| 57 | 57 |
| 58 // Returns the CryptAuthEnrollmentManager, which manages the profile's | 58 // Returns the CryptAuthEnrollmentManager, which manages the profile's |
| 59 // CryptAuth enrollment. | 59 // CryptAuth enrollment. |
| 60 proximity_auth::CryptAuthEnrollmentManager* GetCryptAuthEnrollmentManager(); | 60 cryptauth::CryptAuthEnrollmentManager* GetCryptAuthEnrollmentManager(); |
| 61 | 61 |
| 62 // Returns the CryptAuthEnrollmentManager, which manages the profile's | 62 // Returns the CryptAuthEnrollmentManager, which manages the profile's |
| 63 // synced devices from CryptAuth. | 63 // synced devices from CryptAuth. |
| 64 proximity_auth::CryptAuthDeviceManager* GetCryptAuthDeviceManager(); | 64 cryptauth::CryptAuthDeviceManager* GetCryptAuthDeviceManager(); |
| 65 | 65 |
| 66 // Returns the ProximityAuthPrefManager, which manages the profile's | 66 // Returns the ProximityAuthPrefManager, which manages the profile's |
| 67 // prefs for proximity_auth classes. | 67 // prefs for proximity_auth classes. |
| 68 proximity_auth::ProximityAuthPrefManager* GetProximityAuthPrefManager(); | 68 proximity_auth::ProximityAuthPrefManager* GetProximityAuthPrefManager(); |
| 69 | 69 |
| 70 private: | 70 private: |
| 71 // Loads the RemoteDevice instances that will be supplied to | 71 // Loads the RemoteDevice instances that will be supplied to |
| 72 // ProximityAuthSystem. | 72 // ProximityAuthSystem. |
| 73 void LoadRemoteDevices(); | 73 void LoadRemoteDevices(); |
| 74 | 74 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 100 void ShutdownInternal() override; | 100 void ShutdownInternal() override; |
| 101 bool IsAllowedInternal() const override; | 101 bool IsAllowedInternal() const override; |
| 102 void OnWillFinalizeUnlock(bool success) override; | 102 void OnWillFinalizeUnlock(bool success) override; |
| 103 void OnSuspendDoneInternal() override; | 103 void OnSuspendDoneInternal() override; |
| 104 | 104 |
| 105 // OAuth2TokenService::Observer: | 105 // OAuth2TokenService::Observer: |
| 106 void OnRefreshTokenAvailable(const std::string& account_id) override; | 106 void OnRefreshTokenAvailable(const std::string& account_id) override; |
| 107 | 107 |
| 108 // CryptAuthDeviceManager::Observer: | 108 // CryptAuthDeviceManager::Observer: |
| 109 void OnSyncFinished( | 109 void OnSyncFinished( |
| 110 proximity_auth::CryptAuthDeviceManager::SyncResult sync_result, | 110 cryptauth::CryptAuthDeviceManager::SyncResult sync_result, |
| 111 proximity_auth::CryptAuthDeviceManager::DeviceChangeResult | 111 cryptauth::CryptAuthDeviceManager::DeviceChangeResult |
| 112 device_change_result) override; | 112 device_change_result) override; |
| 113 | 113 |
| 114 // proximity_auth::ScreenlockBridge::Observer implementation: | 114 // proximity_auth::ScreenlockBridge::Observer implementation: |
| 115 void OnScreenDidLock(proximity_auth::ScreenlockBridge::LockHandler::ScreenType | 115 void OnScreenDidLock(proximity_auth::ScreenlockBridge::LockHandler::ScreenType |
| 116 screen_type) override; | 116 screen_type) override; |
| 117 void OnScreenDidUnlock( | 117 void OnScreenDidUnlock( |
| 118 proximity_auth::ScreenlockBridge::LockHandler::ScreenType screen_type) | 118 proximity_auth::ScreenlockBridge::LockHandler::ScreenType screen_type) |
| 119 override; | 119 override; |
| 120 void OnFocusedUserChanged(const AccountId& account_id) override; | 120 void OnFocusedUserChanged(const AccountId& account_id) override; |
| 121 | 121 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 151 // can be accessed on the sign-in screen. | 151 // can be accessed on the sign-in screen. |
| 152 void SyncProfilePrefsToLocalState(); | 152 void SyncProfilePrefsToLocalState(); |
| 153 | 153 |
| 154 // Returns the base GcmDeviceInfo proto containing the device's platform and | 154 // Returns the base GcmDeviceInfo proto containing the device's platform and |
| 155 // version information. | 155 // version information. |
| 156 cryptauth::GcmDeviceInfo GetGcmDeviceInfo(); | 156 cryptauth::GcmDeviceInfo GetGcmDeviceInfo(); |
| 157 | 157 |
| 158 PrefChangeRegistrar registrar_; | 158 PrefChangeRegistrar registrar_; |
| 159 | 159 |
| 160 TurnOffFlowStatus turn_off_flow_status_; | 160 TurnOffFlowStatus turn_off_flow_status_; |
| 161 std::unique_ptr<proximity_auth::CryptAuthClient> cryptauth_client_; | 161 std::unique_ptr<cryptauth::CryptAuthClient> cryptauth_client_; |
| 162 | 162 |
| 163 AutoPairingResultCallback auto_pairing_callback_; | 163 AutoPairingResultCallback auto_pairing_callback_; |
| 164 | 164 |
| 165 // True if the user just unlocked the screen using Easy Unlock. Reset once | 165 // True if the user just unlocked the screen using Easy Unlock. Reset once |
| 166 // the screen unlocks. Used to distinguish Easy Unlock-powered unlocks from | 166 // the screen unlocks. Used to distinguish Easy Unlock-powered unlocks from |
| 167 // password-based unlocks for metrics. | 167 // password-based unlocks for metrics. |
| 168 bool will_unlock_using_easy_unlock_; | 168 bool will_unlock_using_easy_unlock_; |
| 169 | 169 |
| 170 // The timestamp for the most recent time when the lock screen was shown. The | 170 // The timestamp for the most recent time when the lock screen was shown. The |
| 171 // lock screen is typically shown when the user awakens their computer from | 171 // lock screen is typically shown when the user awakens their computer from |
| 172 // sleep -- e.g. by opening the lid -- but can also be shown if the screen is | 172 // sleep -- e.g. by opening the lid -- but can also be shown if the screen is |
| 173 // locked but the computer does not go to sleep. | 173 // locked but the computer does not go to sleep. |
| 174 base::TimeTicks lock_screen_last_shown_timestamp_; | 174 base::TimeTicks lock_screen_last_shown_timestamp_; |
| 175 | 175 |
| 176 // Managers responsible for handling syncing and communications with | 176 // Managers responsible for handling syncing and communications with |
| 177 // CryptAuth. | 177 // CryptAuth. |
| 178 std::unique_ptr<proximity_auth::CryptAuthGCMManager> gcm_manager_; | 178 std::unique_ptr<cryptauth::CryptAuthGCMManager> gcm_manager_; |
| 179 std::unique_ptr<proximity_auth::CryptAuthEnrollmentManager> | 179 std::unique_ptr<cryptauth::CryptAuthEnrollmentManager> |
| 180 enrollment_manager_; | 180 enrollment_manager_; |
| 181 std::unique_ptr<proximity_auth::CryptAuthDeviceManager> device_manager_; | 181 std::unique_ptr<cryptauth::CryptAuthDeviceManager> device_manager_; |
| 182 | 182 |
| 183 // Manager responsible for handling the prefs used by proximity_auth classes. | 183 // Manager responsible for handling the prefs used by proximity_auth classes. |
| 184 std::unique_ptr<proximity_auth::ProximityAuthPrefManager> pref_manager_; | 184 std::unique_ptr<proximity_auth::ProximityAuthPrefManager> pref_manager_; |
| 185 | 185 |
| 186 // Loads the RemoteDevice instances from CryptAuth and local data. | 186 // Loads the RemoteDevice instances from CryptAuth and local data. |
| 187 std::unique_ptr<proximity_auth::RemoteDeviceLoader> remote_device_loader_; | 187 std::unique_ptr<proximity_auth::RemoteDeviceLoader> remote_device_loader_; |
| 188 | 188 |
| 189 // If a new RemoteDevice was synced while the screen is locked, we defer | 189 // If a new RemoteDevice was synced while the screen is locked, we defer |
| 190 // loading the RemoteDevice until the screen is unlocked. For security, | 190 // loading the RemoteDevice until the screen is unlocked. For security, |
| 191 // this deferment prevents the lock screen from being changed by a network | 191 // this deferment prevents the lock screen from being changed by a network |
| 192 // event. | 192 // event. |
| 193 bool deferring_device_load_; | 193 bool deferring_device_load_; |
| 194 | 194 |
| 195 base::WeakPtrFactory<EasyUnlockServiceRegular> weak_ptr_factory_; | 195 base::WeakPtrFactory<EasyUnlockServiceRegular> weak_ptr_factory_; |
| 196 | 196 |
| 197 DISALLOW_COPY_AND_ASSIGN(EasyUnlockServiceRegular); | 197 DISALLOW_COPY_AND_ASSIGN(EasyUnlockServiceRegular); |
| 198 }; | 198 }; |
| 199 | 199 |
| 200 #endif // CHROME_BROWSER_SIGNIN_EASY_UNLOCK_SERVICE_REGULAR_H_ | 200 #endif // CHROME_BROWSER_SIGNIN_EASY_UNLOCK_SERVICE_REGULAR_H_ |
| OLD | NEW |