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

Unified Diff: chrome/browser/signin/easy_unlock_service.cc

Issue 585213002: [Easy signin] Wire up userClick auth attempt to easy unlock app and back (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@easy_signin_focused_user_changed_observer
Patch Set: fix screenlock private test Created 6 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 | « chrome/browser/signin/easy_unlock_service.h ('k') | chrome/browser/signin/easy_unlock_service_regular.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/signin/easy_unlock_service.cc
diff --git a/chrome/browser/signin/easy_unlock_service.cc b/chrome/browser/signin/easy_unlock_service.cc
index dbeb2d4322b05d3c841aae32b36f590e7b500700..8d205f2e8f612dbe0022e6adedd418e2fd96bb1f 100644
--- a/chrome/browser/signin/easy_unlock_service.cc
+++ b/chrome/browser/signin/easy_unlock_service.cc
@@ -13,7 +13,7 @@
#include "chrome/browser/extensions/component_loader.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/signin/easy_unlock_screenlock_state_handler.h"
+#include "chrome/browser/signin/easy_unlock_auth_attempt.h"
#include "chrome/browser/signin/easy_unlock_service_factory.h"
#include "chrome/browser/signin/easy_unlock_service_observer.h"
#include "chrome/browser/signin/screenlock_bridge.h"
@@ -203,6 +203,44 @@ EasyUnlockScreenlockStateHandler*
return screenlock_state_handler_.get();
}
+bool EasyUnlockService::UpdateScreenlockState(
+ EasyUnlockScreenlockStateHandler::State state) {
+ EasyUnlockScreenlockStateHandler* handler = GetScreenlockStateHandler();
+ if (!handler)
+ return false;
+
+ handler->ChangeState(state);
+
+ if (state != EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED)
+ auth_attempt_.reset();
+ return true;
+}
+
+void EasyUnlockService::AttemptAuth(const std::string& user_id) {
+ auth_attempt_.reset(new EasyUnlockAuthAttempt(
+ profile_,
+ GetUserEmail(),
+ GetType() == TYPE_REGULAR ? EasyUnlockAuthAttempt::TYPE_UNLOCK
+ : EasyUnlockAuthAttempt::TYPE_SIGNIN));
+ if (!auth_attempt_->Start(user_id))
+ auth_attempt_.reset();
+}
+
+void EasyUnlockService::FinalizeUnlock(bool success) {
+ if (auth_attempt_)
+ auth_attempt_->FinalizeUnlock(GetUserEmail(), success);
+ auth_attempt_.reset();
+}
+
+void EasyUnlockService::FinalizeSignin(const std::string& key) {
+ if (!auth_attempt_)
+ return;
+ std::string wrapped_secret = GetWrappedSecret();
+ if (!wrapped_secret.empty())
+ auth_attempt_->FinalizeSignin(GetUserEmail(), wrapped_secret, key);
+ auth_attempt_.reset();
+}
+
void EasyUnlockService::AddObserver(EasyUnlockServiceObserver* observer) {
observers_.AddObserver(observer);
}
@@ -220,7 +258,7 @@ void EasyUnlockService::Shutdown() {
weak_ptr_factory_.InvalidateWeakPtrs();
- ResetScreenlockStateHandler();
+ ResetScreenlockState();
bluetooth_detector_.reset();
#if defined(OS_CHROMEOS)
power_monitor_.reset();
@@ -261,7 +299,7 @@ void EasyUnlockService::LoadApp() {
void EasyUnlockService::DisableAppIfLoaded() {
// Make sure lock screen state set by the extension gets reset.
- ResetScreenlockStateHandler();
+ ResetScreenlockState();
extensions::ComponentLoader* loader = GetComponentLoader(profile_);
if (!loader->Exists(extension_misc::kEasyUnlockAppId))
@@ -279,7 +317,7 @@ void EasyUnlockService::UnloadApp() {
void EasyUnlockService::ReloadApp() {
// Make sure lock screen state set by the extension gets reset.
- ResetScreenlockStateHandler();
+ ResetScreenlockState();
if (!GetComponentLoader(profile_)->Exists(extension_misc::kEasyUnlockAppId))
return;
@@ -315,7 +353,7 @@ void EasyUnlockService::NotifyUserUpdated() {
extensions::api::easy_unlock_private::UserInfo info;
info.user_id = user_id;
info.logged_in = GetType() == TYPE_REGULAR;
- info.data_ready = GetRemoteDevices() != NULL;
+ info.data_ready = info.logged_in || GetRemoteDevices() != NULL;
scoped_ptr<base::ListValue> args(new base::ListValue());
args->Append(info.ToValue().release());
@@ -333,8 +371,9 @@ void EasyUnlockService::NotifyTurnOffOperationStatusChanged() {
EasyUnlockServiceObserver, observers_, OnTurnOffOperationStatusChanged());
}
-void EasyUnlockService::ResetScreenlockStateHandler() {
+void EasyUnlockService::ResetScreenlockState() {
screenlock_state_handler_.reset();
+ auth_attempt_.reset();
}
void EasyUnlockService::Initialize() {
« no previous file with comments | « chrome/browser/signin/easy_unlock_service.h ('k') | chrome/browser/signin/easy_unlock_service_regular.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698