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 138e06ff1a435fe887e73dbb1c9891ed4bf1b454..615a30b2479a4eb95b862e3f49611ff639fbf1e0 100644 |
--- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc |
+++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc |
@@ -762,6 +762,7 @@ void SigninScreenHandler::RegisterMessages() { |
AddCallback("updateOfflineLogin", |
&SigninScreenHandler::HandleUpdateOfflineLogin); |
AddCallback("focusPod", &SigninScreenHandler::HandleFocusPod); |
+ AddCallback("hardlockPod", &SigninScreenHandler::HandleHardlockPod); |
AddCallback("retrieveAuthenticatedUserEmail", |
&SigninScreenHandler::HandleRetrieveAuthenticatedUserEmail); |
AddCallback("getPublicSessionKeyboardLayouts", |
@@ -946,6 +947,10 @@ void SigninScreenHandler::SetAuthType( |
const std::string& username, |
ScreenlockBridge::LockHandler::AuthType auth_type, |
const base::string16& initial_value) { |
+ if (delegate_->GetAuthType(username) == |
+ ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD) |
+ return; |
+ |
delegate_->SetAuthType(username, auth_type); |
CallJS("login.AccountPickerScreen.setAuthType", |
@@ -1302,6 +1307,13 @@ void SigninScreenHandler::HandleFocusPod(const std::string& user_id) { |
WallpaperManager::Get()->SetUserWallpaperDelayed(user_id); |
} |
+void SigninScreenHandler::HandleHardlockPod(const std::string& user_id) { |
+ SetAuthType(user_id, |
+ ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD, |
+ base::string16()); |
+ HideUserPodCustomIcon(user_id); |
+} |
+ |
void SigninScreenHandler::HandleRetrieveAuthenticatedUserEmail( |
double attempt_token) { |
// TODO(antrim) : move GaiaSigninScreen dependency to GaiaSigninScreen. |