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

Side by Side Diff: chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc

Issue 608693006: [Easy Unlock] When hardlocking, show a different icon on user (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 6 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" 5 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 1079 matching lines...) Expand 10 before | Expand all | Expand 10 after
1090 void SigninScreenHandler::HandleAuthenticateUser(const std::string& username, 1090 void SigninScreenHandler::HandleAuthenticateUser(const std::string& username,
1091 const std::string& password) { 1091 const std::string& password) {
1092 if (!delegate_) 1092 if (!delegate_)
1093 return; 1093 return;
1094 UserContext user_context(username); 1094 UserContext user_context(username);
1095 user_context.SetKey(Key(password)); 1095 user_context.SetKey(Key(password));
1096 delegate_->Login(user_context, SigninSpecifics()); 1096 delegate_->Login(user_context, SigninSpecifics());
1097 } 1097 }
1098 1098
1099 void SigninScreenHandler::HandleAttemptUnlock(const std::string& username) { 1099 void SigninScreenHandler::HandleAttemptUnlock(const std::string& username) {
1100 if (!ScreenLocker::default_screen_locker()) { 1100 EasyUnlockService* service = GetEasyUnlockServiceForUser(username);
1101 OobeUI* oobe_ui = static_cast<OobeUI*>(web_ui()->GetController()); 1101 if (!service)
1102 if (oobe_ui->display_type() != OobeUI::kLoginDisplay)
1103 return;
1104 }
1105
1106 const user_manager::User* unlock_user = NULL;
1107 const user_manager::UserList& users = delegate_->GetUsers();
1108 for (user_manager::UserList::const_iterator it = users.begin();
1109 it != users.end();
1110 ++it) {
1111 if ((*it)->email() == username) {
1112 unlock_user = *it;
1113 break;
1114 }
1115 }
1116 if (!unlock_user)
1117 return; 1102 return;
1118 1103 service->AttemptAuth(username);
1119 ProfileHelper* profile_helper = ProfileHelper::Get();
1120 Profile* profile = profile_helper->GetProfileByUser(unlock_user);
1121
1122 // The user profile should exists if and only if this is lock screen.
1123 DCHECK_NE(!profile, !ScreenLocker::default_screen_locker());
1124
1125 if (!profile)
1126 profile = profile_helper->GetSigninProfile();
1127
1128 EasyUnlockService::Get(profile)->AttemptAuth(username);
1129 } 1104 }
1130 1105
1131 void SigninScreenHandler::HandleLaunchDemoUser() { 1106 void SigninScreenHandler::HandleLaunchDemoUser() {
1132 UserContext context(user_manager::USER_TYPE_RETAIL_MODE, std::string()); 1107 UserContext context(user_manager::USER_TYPE_RETAIL_MODE, std::string());
1133 if (delegate_) 1108 if (delegate_)
1134 delegate_->Login(context, SigninSpecifics()); 1109 delegate_->Login(context, SigninSpecifics());
1135 } 1110 }
1136 1111
1137 void SigninScreenHandler::HandleLaunchIncognito() { 1112 void SigninScreenHandler::HandleLaunchIncognito() {
1138 UserContext context(user_manager::USER_TYPE_GUEST, std::string()); 1113 UserContext context(user_manager::USER_TYPE_GUEST, std::string());
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
1385 // TODO(dpolukhin): crbug.com/408734. 1360 // TODO(dpolukhin): crbug.com/408734.
1386 WallpaperManager::Get()->SetUserWallpaperDelayed(user_id); 1361 WallpaperManager::Get()->SetUserWallpaperDelayed(user_id);
1387 #endif 1362 #endif
1388 ScreenlockBridge::Get()->SetFocusedUser(user_id); 1363 ScreenlockBridge::Get()->SetFocusedUser(user_id);
1389 if (!test_focus_pod_callback_.is_null()) 1364 if (!test_focus_pod_callback_.is_null())
1390 test_focus_pod_callback_.Run(); 1365 test_focus_pod_callback_.Run();
1391 } 1366 }
1392 1367
1393 void SigninScreenHandler::HandleHardlockPod(const std::string& user_id) { 1368 void SigninScreenHandler::HandleHardlockPod(const std::string& user_id) {
1394 SetAuthType(user_id, 1369 SetAuthType(user_id,
1395 ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD, 1370 ScreenlockBridge::LockHandler::OFFLINE_PASSWORD,
1396 base::string16()); 1371 base::string16());
1397 HideUserPodCustomIcon(user_id); 1372 EasyUnlockService* service = GetEasyUnlockServiceForUser(user_id);
1373 if (!service)
1374 return;
1375 service->SetHardlocked(true);
1398 } 1376 }
1399 1377
1400 void SigninScreenHandler::HandleRetrieveAuthenticatedUserEmail( 1378 void SigninScreenHandler::HandleRetrieveAuthenticatedUserEmail(
1401 double attempt_token) { 1379 double attempt_token) {
1402 // TODO(antrim) : move GaiaSigninScreen dependency to GaiaSigninScreen. 1380 // TODO(antrim) : move GaiaSigninScreen dependency to GaiaSigninScreen.
1403 email_retriever_.reset(new AuthenticatedUserEmailRetriever( 1381 email_retriever_.reset(new AuthenticatedUserEmailRetriever(
1404 base::Bind(&SigninScreenHandler::CallJS<double, std::string>, 1382 base::Bind(&SigninScreenHandler::CallJS<double, std::string>,
1405 base::Unretained(this), 1383 base::Unretained(this),
1406 "login.GaiaSigninScreen.setAuthenticatedUserEmail", 1384 "login.GaiaSigninScreen.setAuthenticatedUserEmail",
1407 attempt_token), 1385 attempt_token),
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
1485 if (delegate_) { 1463 if (delegate_) {
1486 ShowImpl(); 1464 ShowImpl();
1487 delegate_->CancelPasswordChangedFlow(); 1465 delegate_->CancelPasswordChangedFlow();
1488 } 1466 }
1489 } 1467 }
1490 1468
1491 OobeUI* SigninScreenHandler::GetOobeUI() const { 1469 OobeUI* SigninScreenHandler::GetOobeUI() const {
1492 return static_cast<OobeUI*>(web_ui()->GetController()); 1470 return static_cast<OobeUI*>(web_ui()->GetController());
1493 } 1471 }
1494 1472
1473 EasyUnlockService* SigninScreenHandler::GetEasyUnlockServiceForUser(
1474 const std::string& username) const {
1475 if (!ScreenLocker::default_screen_locker() &&
1476 GetOobeUI()->display_type() != OobeUI::kLoginDisplay)
1477 return NULL;
1478
1479 const user_manager::User* unlock_user = NULL;
1480 const user_manager::UserList& users = delegate_->GetUsers();
1481 for (user_manager::UserList::const_iterator it = users.begin();
1482 it != users.end();
1483 ++it) {
1484 if ((*it)->email() == username) {
1485 unlock_user = *it;
1486 break;
1487 }
1488 }
1489 if (!unlock_user)
1490 return NULL;
1491
1492 ProfileHelper* profile_helper = ProfileHelper::Get();
1493 Profile* profile = profile_helper->GetProfileByUser(unlock_user);
1494
1495 // The user profile should exists if and only if this is lock screen.
1496 DCHECK_NE(!profile, !ScreenLocker::default_screen_locker());
1497
1498 if (!profile)
1499 profile = profile_helper->GetSigninProfile();
1500
1501 return EasyUnlockService::Get(profile);
1502 }
1503
1495 OobeUI::Screen SigninScreenHandler::GetCurrentScreen() const { 1504 OobeUI::Screen SigninScreenHandler::GetCurrentScreen() const {
1496 OobeUI::Screen screen = OobeUI::SCREEN_UNKNOWN; 1505 OobeUI::Screen screen = OobeUI::SCREEN_UNKNOWN;
1497 OobeUI* oobe_ui = GetOobeUI(); 1506 OobeUI* oobe_ui = GetOobeUI();
1498 if (oobe_ui) 1507 if (oobe_ui)
1499 screen = oobe_ui->current_screen(); 1508 screen = oobe_ui->current_screen();
1500 return screen; 1509 return screen;
1501 } 1510 }
1502 1511
1503 bool SigninScreenHandler::IsGaiaVisible() const { 1512 bool SigninScreenHandler::IsGaiaVisible() const {
1504 return IsSigninScreen(GetCurrentScreen()) && 1513 return IsSigninScreen(GetCurrentScreen()) &&
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1578 return gaia_screen_handler_->frame_error(); 1587 return gaia_screen_handler_->frame_error();
1579 } 1588 }
1580 1589
1581 void SigninScreenHandler::OnCapsLockChanged(bool enabled) { 1590 void SigninScreenHandler::OnCapsLockChanged(bool enabled) {
1582 caps_lock_enabled_ = enabled; 1591 caps_lock_enabled_ = enabled;
1583 if (page_is_ready()) 1592 if (page_is_ready())
1584 CallJS("login.AccountPickerScreen.setCapsLockState", caps_lock_enabled_); 1593 CallJS("login.AccountPickerScreen.setCapsLockState", caps_lock_enabled_);
1585 } 1594 }
1586 1595
1587 } // namespace chromeos 1596 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698