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

Unified Diff: chrome/browser/chromeos/login/screens/user_selection_screen.cc

Issue 2015413002: Enable the PIN keyboard on the lockscreen. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Address comments Created 4 years, 6 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
Index: chrome/browser/chromeos/login/screens/user_selection_screen.cc
diff --git a/chrome/browser/chromeos/login/screens/user_selection_screen.cc b/chrome/browser/chromeos/login/screens/user_selection_screen.cc
index 942fa2ac9f28d84e261d925dde5bab803710c07f..c4d6a6f02fb203326beec0e9b62fb3e92ec60424 100644
--- a/chrome/browser/chromeos/login/screens/user_selection_screen.cc
+++ b/chrome/browser/chromeos/login/screens/user_selection_screen.cc
@@ -12,6 +12,8 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/browser_process_platform_part.h"
#include "chrome/browser/chromeos/login/lock/screen_locker.h"
+#include "chrome/browser/chromeos/login/quick_unlock/pin_storage.h"
+#include "chrome/browser/chromeos/login/quick_unlock/pin_storage_factory.h"
#include "chrome/browser/chromeos/login/reauth_stats.h"
#include "chrome/browser/chromeos/login/ui/login_display_host.h"
#include "chrome/browser/chromeos/login/ui/views/user_board_view.h"
@@ -44,6 +46,7 @@ const char kKeyPublicAccount[] = "publicAccount";
const char kKeyLegacySupervisedUser[] = "legacySupervisedUser";
const char kKeyChildUser[] = "childUser";
const char kKeyDesktopUser[] = "isDesktopUser";
+const char kKeyShowPin[] = "showPin";
const char kKeySignedIn[] = "signedIn";
const char kKeyCanRemove[] = "canRemove";
const char kKeyIsOwner[] = "isOwner";
@@ -111,6 +114,18 @@ void AddPublicSessionDetailsToUserDictionaryEntry(
GetCurrentKeyboardLayout().release());
}
+// Returns true if the PIN keyboard should be displayed for the given |user|.
+bool CanShowPinForUser(user_manager::User* user) {
+ if (!user->is_logged_in())
+ return false;
+
+ PinStorage* pin_storage = PinStorageFactory::GetForUser(user);
+ if (!pin_storage)
+ return false;
+
+ return pin_storage->IsPinAuthenticationAvailable();
+}
+
} // namespace
UserSelectionScreen::UserSelectionScreen(const std::string& display_type)
@@ -159,6 +174,7 @@ void UserSelectionScreen::FillUserDictionary(
user_dict->SetBoolean(kKeyChildUser, is_child_user);
user_dict->SetBoolean(kKeyDesktopUser, false);
user_dict->SetInteger(kKeyInitialAuthType, auth_type);
+ user_dict->SetBoolean(kKeyShowPin, CanShowPinForUser(user));
user_dict->SetBoolean(kKeySignedIn, user->is_logged_in());
user_dict->SetBoolean(kKeyIsOwner, is_owner);

Powered by Google App Engine
This is Rietveld 408576698