Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(96)

Unified Diff: components/proximity_auth/unlock_manager.cc

Issue 1372283002: Hook up ProximityAuthSystem in EasyUnlockService. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bluetooth_connection
Patch Set: remove log Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/proximity_auth/unlock_manager.h ('k') | components/proximity_auth/unlock_manager_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/proximity_auth/unlock_manager.cc
diff --git a/components/proximity_auth/unlock_manager.cc b/components/proximity_auth/unlock_manager.cc
index e55ad50814ff678267ed6b4f73b051e385a6f75f..abce8b40c4a6db7dc000203335e0880f981d7bb6 100644
--- a/components/proximity_auth/unlock_manager.cc
+++ b/components/proximity_auth/unlock_manager.cc
@@ -80,7 +80,6 @@ UnlockManager::UnlockManager(ScreenlockType screenlock_type,
ProximityAuthClient* proximity_auth_client)
: screenlock_type_(screenlock_type),
life_cycle_(nullptr),
- messenger_(nullptr),
proximity_monitor_(proximity_monitor.Pass()),
proximity_auth_client_(proximity_auth_client),
is_locked_(false),
@@ -113,8 +112,8 @@ UnlockManager::UnlockManager(ScreenlockType screenlock_type,
}
UnlockManager::~UnlockManager() {
- if (messenger_)
- messenger_->RemoveObserver(this);
+ if (GetMessenger())
+ GetMessenger()->RemoveObserver(this);
ScreenlockBridge::Get()->RemoveObserver(this);
@@ -134,15 +133,13 @@ bool UnlockManager::IsUnlockAllowed() {
RemoteDeviceLifeCycle::State::SECURE_CHANNEL_ESTABLISHED &&
proximity_monitor_->IsUnlockAllowed() &&
(screenlock_type_ != ScreenlockType::SIGN_IN ||
- (messenger_ && messenger_->SupportsSignIn())));
+ (GetMessenger() && GetMessenger()->SupportsSignIn())));
}
void UnlockManager::SetRemoteDeviceLifeCycle(
RemoteDeviceLifeCycle* life_cycle) {
- if (messenger_) {
- messenger_->RemoveObserver(this);
- messenger_ = nullptr;
- }
+ if (GetMessenger())
+ GetMessenger()->RemoveObserver(this);
life_cycle_ = life_cycle;
if (life_cycle_)
@@ -157,10 +154,8 @@ void UnlockManager::OnLifeCycleStateChanged() {
<< static_cast<int>(state);
remote_screenlock_state_.reset();
- if (state == RemoteDeviceLifeCycle::State::SECURE_CHANNEL_ESTABLISHED) {
- messenger_ = life_cycle_->GetMessenger();
- messenger_->AddObserver(this);
- }
+ if (state == RemoteDeviceLifeCycle::State::SECURE_CHANNEL_ESTABLISHED)
+ GetMessenger()->AddObserver(this);
if (state == RemoteDeviceLifeCycle::State::AUTHENTICATION_FAILED)
SetWakingUpState(false);
@@ -209,7 +204,7 @@ void UnlockManager::OnDecryptResponse(scoped_ptr<std::string> decrypted_bytes) {
AcceptAuthAttempt(false);
} else {
sign_in_secret_ = decrypted_bytes.Pass();
- messenger_->DispatchUnlockEvent();
+ GetMessenger()->DispatchUnlockEvent();
}
}
@@ -223,14 +218,13 @@ void UnlockManager::OnUnlockResponse(bool success) {
PA_LOG(INFO) << "[Unlock] Unlock response from remote device: "
<< (success ? "success" : "failure");
if (success)
- messenger_->DispatchUnlockEvent();
+ GetMessenger()->DispatchUnlockEvent();
else
AcceptAuthAttempt(false);
}
void UnlockManager::OnDisconnected() {
- messenger_->RemoveObserver(this);
- messenger_ = nullptr;
+ GetMessenger()->RemoveObserver(this);
}
void UnlockManager::OnScreenDidLock(
@@ -316,12 +310,12 @@ void UnlockManager::OnAuthAttempted(
if (screenlock_type_ == ScreenlockType::SIGN_IN) {
SendSignInChallenge();
} else {
- if (messenger_->SupportsSignIn()) {
- messenger_->RequestUnlock();
+ if (GetMessenger()->SupportsSignIn()) {
+ GetMessenger()->RequestUnlock();
} else {
PA_LOG(INFO) << "[Unlock] Protocol v3.1 not supported, skipping "
<< "request_unlock.";
- messenger_->DispatchUnlockEvent();
+ GetMessenger()->DispatchUnlockEvent();
}
}
}
@@ -349,8 +343,9 @@ ScreenlockState UnlockManager::GetScreenlockState() {
if (!bluetooth_adapter_ || !bluetooth_adapter_->IsPowered())
return ScreenlockState::NO_BLUETOOTH;
- if (screenlock_type_ == ScreenlockType::SIGN_IN && messenger_ &&
- !messenger_->SupportsSignIn())
+ Messenger* messenger = GetMessenger();
+ if (screenlock_type_ == ScreenlockType::SIGN_IN && messenger &&
+ !messenger->SupportsSignIn())
return ScreenlockState::PHONE_UNSUPPORTED;
// If the RSSI is too low, then the remote device is nowhere near the local
@@ -468,4 +463,12 @@ UnlockManager::GetScreenlockStateFromRemoteUpdate(RemoteStatusUpdate update) {
return RemoteScreenlockState::UNKNOWN;
}
+Messenger* UnlockManager::GetMessenger() {
+ // TODO(tengs): We should use a weak pointer to hold the Messenger instance
+ // instead.
+ if (!life_cycle_)
+ return nullptr;
+ return life_cycle_->GetMessenger();
+}
+
} // namespace proximity_auth
« no previous file with comments | « components/proximity_auth/unlock_manager.h ('k') | components/proximity_auth/unlock_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698