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

Unified Diff: ash/system/chromeos/power/tablet_power_button_controller.cc

Issue 2620383003: ash: Add one second grace period For LockScreenIfRequired (Closed)
Patch Set: reset |lock_screen_timer_| in SetDisplayForcedOff and add test coverage Created 3 years, 11 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: ash/system/chromeos/power/tablet_power_button_controller.cc
diff --git a/ash/system/chromeos/power/tablet_power_button_controller.cc b/ash/system/chromeos/power/tablet_power_button_controller.cc
index 4600b46b0538b2281b42cdbe0a24bc234e3cf639..1213ef4512b4080b1edc039dd9dea618dbf3078b 100644
--- a/ash/system/chromeos/power/tablet_power_button_controller.cc
+++ b/ash/system/chromeos/power/tablet_power_button_controller.cc
@@ -25,6 +25,10 @@ namespace {
// animation when in tablet mode.
constexpr int kShutdownTimeoutMs = 1000;
+// Amount of time that locking screen needs to be waited to start the actual
Daniel Erat 2017/01/11 23:09:06 this comment is a bit confusing. is it more like:
Qiang(Joe) Xu 2017/01/12 00:04:45 That is not right. This cl is about: "after set di
+// locking screen.
+constexpr int kLockScreenTimeoutMs = 1000;
+
// Amount of time since last SuspendDone() that power button event needs to be
// ignored.
constexpr int kIgnorePowerButtonAfterResumeMs = 2000;
@@ -64,6 +68,16 @@ void TabletPowerButtonController::TestApi::TriggerShutdownTimeout() {
controller_->shutdown_timer_.Stop();
}
+bool TabletPowerButtonController::TestApi::LockScreenTimerIsRunning() const {
+ return controller_->lock_screen_timer_.IsRunning();
+}
+
+void TabletPowerButtonController::TestApi::TriggerLockScreenTimeout() {
+ DCHECK(LockScreenTimerIsRunning());
+ controller_->OnLockScreenTimeout();
+ controller_->lock_screen_timer_.Stop();
+}
+
TabletPowerButtonController::TabletPowerButtonController(
LockStateController* controller)
: tick_clock_(new base::DefaultTickClock()),
@@ -206,6 +220,11 @@ void TabletPowerButtonController::SetDisplayForcedOff(bool forced_off) {
// Send an a11y alert.
WmShell::Get()->accessibility_delegate()->TriggerAccessibilityAlert(
forced_off ? A11Y_ALERT_SCREEN_OFF : A11Y_ALERT_SCREEN_ON);
+
+ // Reset |lock_screen_timer_| when display is not set to forced off since
Daniel Erat 2017/01/11 23:09:06 this doesn't feel like the right place for this co
Qiang(Joe) Xu 2017/01/12 00:04:45 Agree that we should put it in all the places wher
+ // under this case, |lock_screen_timer_| should not timeout.
Daniel Erat 2017/01/11 23:09:06 nit: s/timeout/time out/ ("time out" is verb, "tim
Qiang(Joe) Xu 2017/01/12 00:04:45 done by removing.
+ if (!forced_off)
+ lock_screen_timer_.Stop();
Qiang(Joe) Xu 2017/01/11 22:17:06 Moved here: since besides two quick power button t
}
void TabletPowerButtonController::GetInitialBacklightsForcedOff() {
@@ -238,8 +257,18 @@ void TabletPowerButtonController::LockScreenIfRequired() {
session_state_delegate->CanLockScreen() &&
!session_state_delegate->IsUserSessionBlocked() &&
!controller_->LockRequested()) {
- session_state_delegate->LockScreen();
+ StartLockScreenTimer();
}
}
+void TabletPowerButtonController::StartLockScreenTimer() {
+ lock_screen_timer_.Start(
Daniel Erat 2017/01/11 23:09:06 mind moving this into LockScreenIfRequired since i
Qiang(Joe) Xu 2017/01/12 00:04:45 Done.
+ FROM_HERE, base::TimeDelta::FromMilliseconds(kLockScreenTimeoutMs), this,
+ &TabletPowerButtonController::OnLockScreenTimeout);
+}
+
+void TabletPowerButtonController::OnLockScreenTimeout() {
+ WmShell::Get()->GetSessionStateDelegate()->LockScreen();
+}
+
} // namespace ash

Powered by Google App Engine
This is Rietveld 408576698