| Index: chrome/browser/signin/easy_unlock_service_regular.cc
|
| diff --git a/chrome/browser/signin/easy_unlock_service_regular.cc b/chrome/browser/signin/easy_unlock_service_regular.cc
|
| index a4ba88b6e9152689746dc9b6a5413ff49e01a4e9..7f1ebabb4f615324996fe5aefc10f309597ea5ef 100644
|
| --- a/chrome/browser/signin/easy_unlock_service_regular.cc
|
| +++ b/chrome/browser/signin/easy_unlock_service_regular.cc
|
| @@ -24,9 +24,9 @@
|
| #include "chrome/common/pref_names.h"
|
| #include "chromeos/login/user_names.h"
|
| #include "components/pref_registry/pref_registry_syncable.h"
|
| -#include "components/proximity_auth/cryptauth/base64url.h"
|
| #include "components/proximity_auth/cryptauth/cryptauth_access_token_fetcher.h"
|
| #include "components/proximity_auth/cryptauth/cryptauth_client_impl.h"
|
| +#include "components/proximity_auth/cryptauth/cryptauth_device_manager.h"
|
| #include "components/proximity_auth/cryptauth/cryptauth_enrollment_manager.h"
|
| #include "components/proximity_auth/cryptauth/cryptauth_enrollment_utils.h"
|
| #include "components/proximity_auth/cryptauth/cryptauth_gcm_manager_impl.h"
|
| @@ -34,8 +34,6 @@
|
| #include "components/proximity_auth/cryptauth_enroller_factory_impl.h"
|
| #include "components/proximity_auth/logging/logging.h"
|
| #include "components/proximity_auth/proximity_auth_pref_manager.h"
|
| -#include "components/proximity_auth/proximity_auth_system.h"
|
| -#include "components/proximity_auth/remote_device_loader.h"
|
| #include "components/proximity_auth/screenlock_bridge.h"
|
| #include "components/proximity_auth/switches.h"
|
| #include "components/signin/core/browser/profile_oauth2_token_service.h"
|
| @@ -76,8 +74,8 @@
|
| turn_off_flow_status_(EasyUnlockService::IDLE),
|
| will_unlock_using_easy_unlock_(false),
|
| lock_screen_last_shown_timestamp_(base::TimeTicks::Now()),
|
| - deferring_device_load_(false),
|
| - weak_ptr_factory_(this) {}
|
| + weak_ptr_factory_(this) {
|
| +}
|
|
|
| EasyUnlockServiceRegular::~EasyUnlockServiceRegular() {
|
| }
|
| @@ -95,55 +93,6 @@
|
| proximity_auth::ProximityAuthPrefManager*
|
| EasyUnlockServiceRegular::GetProximityAuthPrefManager() {
|
| return pref_manager_.get();
|
| -}
|
| -
|
| -void EasyUnlockServiceRegular::LoadRemoteDevices() {
|
| - if (device_manager_->unlock_keys().empty()) {
|
| - OnRemoteDeviceChanged(nullptr);
|
| - return;
|
| - }
|
| -
|
| - remote_device_loader_.reset(new proximity_auth::RemoteDeviceLoader(
|
| - device_manager_->unlock_keys(), proximity_auth_client()->GetAccountId(),
|
| - enrollment_manager_->GetUserPrivateKey(),
|
| - proximity_auth_client()->CreateSecureMessageDelegate(),
|
| - pref_manager_.get()));
|
| - remote_device_loader_->Load(
|
| - base::Bind(&EasyUnlockServiceRegular::OnRemoteDevicesLoaded,
|
| - weak_ptr_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void EasyUnlockServiceRegular::OnRemoteDevicesLoaded(
|
| - const std::vector<proximity_auth::RemoteDevice>& remote_devices) {
|
| - // TODO(tengs): We only support unlocking with one remote device at the
|
| - // moment. We need to revisit once multiple devices are supported.
|
| - OnRemoteDeviceChanged(&remote_devices[0]);
|
| -
|
| -#if defined(OS_CHROMEOS)
|
| - // We need to store a copy of |remote devices_| in the TPM, so it can be
|
| - // retrieved on the sign-in screen when a user session has not been started
|
| - // yet.
|
| - scoped_ptr<base::ListValue> device_list(new base::ListValue());
|
| - for (const auto& device : remote_devices) {
|
| - scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
|
| - std::string b64_public_key, b64_psk;
|
| - proximity_auth::Base64UrlEncode(device.public_key, &b64_public_key);
|
| - proximity_auth::Base64UrlEncode(device.persistent_symmetric_key, &b64_psk);
|
| -
|
| - dict->SetString("name", device.name);
|
| - dict->SetString("psk", b64_psk);
|
| - dict->SetString("bluetoothAddress", device.bluetooth_address);
|
| - dict->SetString("permitId", "permit://google.com/easyunlock/v1/" +
|
| - proximity_auth_client()->GetAccountId());
|
| - dict->SetString("permitRecord.id", b64_public_key);
|
| - dict->SetString("permitRecord.type", "license");
|
| - dict->SetString("permitRecord.data", b64_public_key);
|
| - device_list->Append(dict.Pass());
|
| - }
|
| -
|
| - // TODO(tengs): Rename this function after the easy_unlock app is replaced.
|
| - SetRemoteDevices(*device_list);
|
| -#endif
|
| }
|
|
|
| EasyUnlockService::Type EasyUnlockServiceRegular::GetType() const {
|
| @@ -388,17 +337,16 @@
|
| base::Bind(&EasyUnlockServiceRegular::OnPrefsChanged,
|
| base::Unretained(this)));
|
|
|
| - OnPrefsChanged();
|
| -
|
| #if defined(OS_CHROMEOS)
|
| if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| proximity_auth::switches::kEnableBluetoothLowEnergyDiscovery)) {
|
| + InitializeCryptAuth();
|
| pref_manager_.reset(
|
| new proximity_auth::ProximityAuthPrefManager(profile()->GetPrefs()));
|
| - InitializeCryptAuth();
|
| - LoadRemoteDevices();
|
| - }
|
| -#endif
|
| + }
|
| +#endif
|
| +
|
| + OnPrefsChanged();
|
| }
|
|
|
| void EasyUnlockServiceRegular::ShutdownInternal() {
|
| @@ -440,7 +388,7 @@
|
| will_unlock_using_easy_unlock_ = success;
|
| }
|
|
|
| -void EasyUnlockServiceRegular::OnSuspendDoneInternal() {
|
| +void EasyUnlockServiceRegular::OnSuspendDone() {
|
| lock_screen_last_shown_timestamp_ = base::TimeTicks::Now();
|
| }
|
|
|
| @@ -451,25 +399,8 @@
|
| ProfileOAuth2TokenServiceFactory::GetForProfile(profile());
|
| token_service->RemoveObserver(this);
|
| #if defined(OS_CHROMEOS)
|
| - enrollment_manager_->Start();
|
| - device_manager_->Start();
|
| -#endif
|
| - }
|
| -}
|
| -
|
| -void EasyUnlockServiceRegular::OnSyncFinished(
|
| - proximity_auth::CryptAuthDeviceManager::SyncResult sync_result,
|
| - proximity_auth::CryptAuthDeviceManager::DeviceChangeResult
|
| - device_change_result) {
|
| - if (device_change_result !=
|
| - proximity_auth::CryptAuthDeviceManager::DeviceChangeResult::CHANGED)
|
| - return;
|
| -
|
| - if (proximity_auth::ScreenlockBridge::Get()->IsLocked()) {
|
| - PA_LOG(INFO) << "Deferring device load until screen is unlocked.";
|
| - deferring_device_load_ = true;
|
| - } else {
|
| - LoadRemoteDevices();
|
| + InitializeCryptAuth();
|
| +#endif
|
| }
|
| }
|
|
|
| @@ -501,14 +432,6 @@
|
| }
|
|
|
| will_unlock_using_easy_unlock_ = false;
|
| -
|
| - // If we synced remote devices while the screen was locked, we can now load
|
| - // the new remote devices.
|
| - if (deferring_device_load_) {
|
| - PA_LOG(INFO) << "Loading deferred devices after screen unlock.";
|
| - deferring_device_load_ = false;
|
| - LoadRemoteDevices();
|
| - }
|
| }
|
|
|
| void EasyUnlockServiceRegular::OnFocusedUserChanged(
|
| @@ -609,6 +532,15 @@
|
|
|
| #if defined(OS_CHROMEOS)
|
| void EasyUnlockServiceRegular::InitializeCryptAuth() {
|
| + OAuth2TokenService* token_service =
|
| + ProfileOAuth2TokenServiceFactory::GetForProfile(profile());
|
| + if (!token_service->RefreshTokenIsAvailable(
|
| + proximity_auth_client()->GetAccountId())) {
|
| + PA_LOG(INFO) << "Refresh token not yet available.";
|
| + token_service->AddObserver(this);
|
| + return;
|
| + }
|
| +
|
| PA_LOG(INFO) << "Initializing CryptAuth managers.";
|
| // Initialize GCM manager.
|
| gcm_manager_.reset(new proximity_auth::CryptAuthGCMManagerImpl(
|
| @@ -625,24 +557,13 @@
|
| proximity_auth_client()->CreateSecureMessageDelegate(),
|
| GetGcmDeviceInfo(), gcm_manager_.get(),
|
| proximity_auth_client()->GetPrefService()));
|
| + enrollment_manager_->Start();
|
|
|
| // Initialize device manager.
|
| device_manager_.reset(new proximity_auth::CryptAuthDeviceManager(
|
| make_scoped_ptr(new base::DefaultClock()),
|
| proximity_auth_client()->CreateCryptAuthClientFactory(),
|
| gcm_manager_.get(), proximity_auth_client()->GetPrefService()));
|
| -
|
| - OAuth2TokenService* token_service =
|
| - ProfileOAuth2TokenServiceFactory::GetForProfile(profile());
|
| - if (!token_service->RefreshTokenIsAvailable(
|
| - proximity_auth_client()->GetAccountId())) {
|
| - PA_LOG(INFO) << "Refresh token not yet available, "
|
| - << "waiting before starting CryptAuth managers";
|
| - token_service->AddObserver(this);
|
| - }
|
| -
|
| - device_manager_->AddObserver(this);
|
| - enrollment_manager_->Start();
|
| device_manager_->Start();
|
| }
|
| #endif
|
|
|