OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/chromeos/login/lock/screen_locker.h" | 5 #include "chrome/browser/chromeos/login/lock/screen_locker.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "ash/ash_switches.h" | 10 #include "ash/ash_switches.h" |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
199 } else { | 199 } else { |
200 base::TimeDelta delta = base::Time::Now() - authentication_start_time_; | 200 base::TimeDelta delta = base::Time::Now() - authentication_start_time_; |
201 VLOG(1) << "Authentication success: " << delta.InSecondsF() << " second(s)"; | 201 VLOG(1) << "Authentication success: " << delta.InSecondsF() << " second(s)"; |
202 UMA_HISTOGRAM_TIMES("ScreenLocker.AuthenticationSuccessTime", delta); | 202 UMA_HISTOGRAM_TIMES("ScreenLocker.AuthenticationSuccessTime", delta); |
203 } | 203 } |
204 | 204 |
205 const user_manager::User* user = | 205 const user_manager::User* user = |
206 user_manager::UserManager::Get()->FindUser(user_context.GetUserID()); | 206 user_manager::UserManager::Get()->FindUser(user_context.GetUserID()); |
207 if (user) { | 207 if (user) { |
208 if (user->is_active()) { | 208 if (user->is_active()) { |
209 DCHECK(saved_ime_state_); | 209 saved_ime_state_ = NULL; |
Alexander Alekseev
2014/09/01 13:57:06
If user is active, we actually _need_ to set activ
| |
210 input_method::InputMethodManager::Get()->SetState(saved_ime_state_); | |
211 } else { | 210 } else { |
212 user_manager::UserManager::Get()->SwitchActiveUser( | 211 user_manager::UserManager::Get()->SwitchActiveUser( |
213 user_context.GetUserID()); | 212 user_context.GetUserID()); |
214 } | 213 } |
215 } else { | 214 } else { |
216 NOTREACHED() << "Logged in user not found."; | 215 NOTREACHED() << "Logged in user not found."; |
217 } | 216 } |
218 saved_ime_state_ = NULL; | |
219 | 217 |
220 authentication_capture_.reset(new AuthenticationParametersCapture()); | 218 authentication_capture_.reset(new AuthenticationParametersCapture()); |
221 authentication_capture_->user_context = user_context; | 219 authentication_capture_->user_context = user_context; |
222 | 220 |
223 // Add guard for case when something get broken in call chain to unlock | 221 // Add guard for case when something get broken in call chain to unlock |
224 // for sure. | 222 // for sure. |
225 base::MessageLoop::current()->PostDelayedTask( | 223 base::MessageLoop::current()->PostDelayedTask( |
226 FROM_HERE, | 224 FROM_HERE, |
227 base::Bind(&ScreenLocker::UnlockOnLoginSuccess, | 225 base::Bind(&ScreenLocker::UnlockOnLoginSuccess, |
228 weak_factory_.GetWeakPtr()), | 226 weak_factory_.GetWeakPtr()), |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
456 bool state = false; | 454 bool state = false; |
457 VLOG(1) << "Emitting SCREEN_LOCK_STATE_CHANGED with state=" << state; | 455 VLOG(1) << "Emitting SCREEN_LOCK_STATE_CHANGED with state=" << state; |
458 content::NotificationService::current()->Notify( | 456 content::NotificationService::current()->Notify( |
459 chrome::NOTIFICATION_SCREEN_LOCK_STATE_CHANGED, | 457 chrome::NOTIFICATION_SCREEN_LOCK_STATE_CHANGED, |
460 content::Source<ScreenLocker>(this), | 458 content::Source<ScreenLocker>(this), |
461 content::Details<bool>(&state)); | 459 content::Details<bool>(&state)); |
462 | 460 |
463 VLOG(1) << "Calling session manager's HandleLockScreenDismissed D-Bus method"; | 461 VLOG(1) << "Calling session manager's HandleLockScreenDismissed D-Bus method"; |
464 DBusThreadManager::Get()->GetSessionManagerClient()-> | 462 DBusThreadManager::Get()->GetSessionManagerClient()-> |
465 NotifyLockScreenDismissed(); | 463 NotifyLockScreenDismissed(); |
464 | |
465 if (saved_ime_state_) { | |
466 input_method::InputMethodManager::Get()->SetState(saved_ime_state_); | |
467 } | |
466 } | 468 } |
467 | 469 |
468 void ScreenLocker::SetAuthenticator(Authenticator* authenticator) { | 470 void ScreenLocker::SetAuthenticator(Authenticator* authenticator) { |
469 authenticator_ = authenticator; | 471 authenticator_ = authenticator; |
470 } | 472 } |
471 | 473 |
472 void ScreenLocker::ScreenLockReady() { | 474 void ScreenLocker::ScreenLockReady() { |
473 locked_ = true; | 475 locked_ = true; |
474 base::TimeDelta delta = base::Time::Now() - start_time_; | 476 base::TimeDelta delta = base::Time::Now() - start_time_; |
475 VLOG(1) << "ScreenLocker " << this << " is ready after " | 477 VLOG(1) << "ScreenLocker " << this << " is ready after " |
(...skipping 28 matching lines...) Expand all Loading... | |
504 for (user_manager::UserList::const_iterator it = users_.begin(); | 506 for (user_manager::UserList::const_iterator it = users_.begin(); |
505 it != users_.end(); | 507 it != users_.end(); |
506 ++it) { | 508 ++it) { |
507 if ((*it)->email() == username) | 509 if ((*it)->email() == username) |
508 return true; | 510 return true; |
509 } | 511 } |
510 return false; | 512 return false; |
511 } | 513 } |
512 | 514 |
513 } // namespace chromeos | 515 } // namespace chromeos |
OLD | NEW |