Index: chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc |
diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc |
index 10bfe44c76e23f9319811f26439e9e9f946bcc2c..b2fedd2f1d8507d4b2d97473d595be79721ac13e 100644 |
--- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc |
+++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc |
@@ -1059,14 +1059,21 @@ void SigninScreenHandler::UpdateAddButtonStatus() { |
} |
void SigninScreenHandler::HandleAuthenticateUser(const AccountId& account_id, |
- const std::string& password) { |
+ const std::string& password, |
+ bool authenticated_by_pin) { |
if (!delegate_) |
return; |
DCHECK_EQ(account_id.GetUserEmail(), |
gaia::SanitizeEmail(account_id.GetUserEmail())); |
+ chromeos::PinStorage* pin_storage = |
+ chromeos::PinStorageFactory::GetForAccountId(account_id); |
+ DCHECK(pin_storage); |
+ // If pin storage is unavailable, authenticated by PIN must be false. |
+ DCHECK(pin_storage->IsPinAuthenticationAvailable() || !authenticated_by_pin); |
UserContext user_context(account_id); |
user_context.SetKey(Key(password)); |
+ user_context.SetIsUsingPin(authenticated_by_pin); |
delegate_->Login(user_context, SigninSpecifics()); |
HidePinKeyboardIfNeeded(account_id); |