Chromium Code Reviews| Index: ash/wm/lock_state_controller.cc |
| diff --git a/ash/wm/lock_state_controller.cc b/ash/wm/lock_state_controller.cc |
| index 09a46afa2a1436404485a642a920205f69a4cad8..754d4b68eacd050d43832215092f849f1288359c 100644 |
| --- a/ash/wm/lock_state_controller.cc |
| +++ b/ash/wm/lock_state_controller.cc |
| @@ -16,6 +16,7 @@ |
| #include "ash/wm/session_state_animator.h" |
| #include "base/bind_helpers.h" |
| #include "base/command_line.h" |
| +#include "base/strings/string_util.h" |
| #include "base/timer/timer.h" |
| #include "ui/aura/window_tree_host.h" |
| #include "ui/compositor/layer_animation_sequence.h" |
| @@ -584,9 +585,12 @@ void LockStateController::LockAnimationCancelled() { |
| } |
| void LockStateController::PreLockAnimationFinished(bool request_lock) { |
| - can_cancel_lock_animation_ = false; |
| VLOG(1) << "PreLockAnimationFinished"; |
| + can_cancel_lock_animation_ = false; |
| + |
| if (request_lock) { |
| + DCHECK(!system_is_locked_) << "Got request to lock already-locked system " |
| + << "at completion of pre-lock animation"; |
| Shell::GetInstance()->metrics()->RecordUserMetricsAction( |
| shutdown_after_lock_ ? |
| UMA_ACCEL_LOCK_SCREEN_POWER_BUTTON : |
| @@ -594,24 +598,23 @@ void LockStateController::PreLockAnimationFinished(bool request_lock) { |
| delegate_->RequestLockScreen(); |
| } |
| - int lock_timeout = kLockFailTimeoutMs; |
| - |
| + // Don't start the lock-fail timer if the screen was already locked while the |
| + // animation was going. |
| + if (!system_is_locked_) { |
|
stevenjb
2014/08/01 23:23:56
nit: Early exit
Daniel Erat
2014/08/01 23:52:06
Done.
|
| + base::TimeDelta timeout = |
| + base::TimeDelta::FromMilliseconds(kLockFailTimeoutMs); |
| #if defined(OS_CHROMEOS) |
| - std::string board = base::SysInfo::GetLsbReleaseBoard(); |
| - |
| - // Increase lock timeout for slower hardware, see http://crbug.com/350628 |
| - if (board == "x86-mario" || |
| - board.substr(0, 8) == "x86-alex" || |
| - board.substr(0, 7) == "x86-zgb") { |
| - lock_timeout *= 2; |
| - } |
| + // Increase lock timeout for slower hardware, see http://crbug.com/350628 |
| + const std::string board = base::SysInfo::GetLsbReleaseBoard(); |
| + if (board == "x86-mario" || |
| + StartsWithASCII(board, "x86-alex", true) || |
| + StartsWithASCII(board, "x86-zgb", true)) { |
|
stevenjb
2014/08/01 23:23:56
nit: what is "true"?
Daniel Erat
2014/08/01 23:52:06
done (but just because it still fits without wrapp
|
| + timeout *= 2; |
| + } |
| #endif |
| - |
| - lock_fail_timer_.Start( |
| - FROM_HERE, |
| - base::TimeDelta::FromMilliseconds(lock_timeout), |
| - this, |
| - &LockStateController::OnLockFailTimeout); |
| + lock_fail_timer_.Start( |
| + FROM_HERE, timeout, this, &LockStateController::OnLockFailTimeout); |
| + } |
| } |
| void LockStateController::PostLockAnimationFinished() { |