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

Side by Side Diff: ash/wm/lock_state_controller.cc

Issue 811033002: Add device policy to disallow shutdown - ash UI modifications (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: reduced scope of CL (ash only now, removed webui changes) Created 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 "ash/wm/lock_state_controller.h" 5 #include "ash/wm/lock_state_controller.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "ash/accessibility_delegate.h" 10 #include "ash/accessibility_delegate.h"
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 } 160 }
161 161
162 void LockStateController::OnStartingLock() { 162 void LockStateController::OnStartingLock() {
163 if (shutting_down_ || system_is_locked_) 163 if (shutting_down_ || system_is_locked_)
164 return; 164 return;
165 if (animating_lock_) 165 if (animating_lock_)
166 return; 166 return;
167 StartImmediatePreLockAnimation(false /* request_lock_on_completion */); 167 StartImmediatePreLockAnimation(false /* request_lock_on_completion */);
168 } 168 }
169 169
170 void LockStateController::RequestShutdown(ShutdownMode mode) { 170 void LockStateController::RequestShutdownOrRestart() {
171 if (shutting_down_) 171 if (shutting_down_)
172 return; 172 return;
173 173
174 shutting_down_ = true; 174 shutting_down_ = true;
175 175
176 Shell* shell = ash::Shell::GetInstance(); 176 Shell* shell = ash::Shell::GetInstance();
177 shell->cursor_manager()->HideCursor(); 177 shell->cursor_manager()->HideCursor();
178 shell->cursor_manager()->LockCursor(); 178 shell->cursor_manager()->LockCursor();
179 179
180 animator_->StartAnimation( 180 animator_->StartAnimation(
181 SessionStateAnimator::ROOT_CONTAINER, 181 SessionStateAnimator::ROOT_CONTAINER,
182 SessionStateAnimator::ANIMATION_GRAYSCALE_BRIGHTNESS, 182 SessionStateAnimator::ANIMATION_GRAYSCALE_BRIGHTNESS,
183 SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN); 183 SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN);
184 StartRealShutdownTimer(true, mode); 184 StartRealShutdownTimer(true);
185 } 185 }
186 186
187 void LockStateController::OnLockScreenHide( 187 void LockStateController::OnLockScreenHide(
188 base::Callback<void(void)>& callback) { 188 base::Callback<void(void)>& callback) {
189 StartUnlockAnimationBeforeUIDestroyed(callback); 189 StartUnlockAnimationBeforeUIDestroyed(callback);
190 } 190 }
191 191
192 void LockStateController::SetLockScreenDisplayedCallback( 192 void LockStateController::SetLockScreenDisplayedCallback(
193 const base::Closure& callback) { 193 const base::Closure& callback) {
194 lock_screen_displayed_callback_ = callback; 194 lock_screen_displayed_callback_ = callback;
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 &LockStateController::OnPreShutdownAnimationTimeout); 265 &LockStateController::OnPreShutdownAnimationTimeout);
266 } 266 }
267 267
268 void LockStateController::OnPreShutdownAnimationTimeout() { 268 void LockStateController::OnPreShutdownAnimationTimeout() {
269 VLOG(1) << "OnPreShutdownAnimationTimeout"; 269 VLOG(1) << "OnPreShutdownAnimationTimeout";
270 shutting_down_ = true; 270 shutting_down_ = true;
271 271
272 Shell* shell = ash::Shell::GetInstance(); 272 Shell* shell = ash::Shell::GetInstance();
273 shell->cursor_manager()->HideCursor(); 273 shell->cursor_manager()->HideCursor();
274 274
275 StartRealShutdownTimer(false, POWER_OFF); 275 StartRealShutdownTimer(false);
276 } 276 }
277 277
278 void LockStateController::StartRealShutdownTimer(bool with_animation_time, 278 void LockStateController::StartRealShutdownTimer(bool with_animation_time) {
279 ShutdownMode shutdown_mode) {
280 base::TimeDelta duration = 279 base::TimeDelta duration =
281 base::TimeDelta::FromMilliseconds(kShutdownRequestDelayMs); 280 base::TimeDelta::FromMilliseconds(kShutdownRequestDelayMs);
282 if (with_animation_time) { 281 if (with_animation_time) {
283 duration += 282 duration +=
284 animator_->GetDuration(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN); 283 animator_->GetDuration(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN);
285 } 284 }
286 285
287 #if defined(OS_CHROMEOS) 286 #if defined(OS_CHROMEOS)
288 const AccessibilityDelegate* const delegate = 287 const AccessibilityDelegate* const delegate =
289 Shell::GetInstance()->accessibility_delegate(); 288 Shell::GetInstance()->accessibility_delegate();
290 base::TimeDelta sound_duration = delegate->PlayShutdownSound(); 289 base::TimeDelta sound_duration = delegate->PlayShutdownSound();
291 sound_duration = 290 sound_duration =
292 std::min(sound_duration, 291 std::min(sound_duration,
293 base::TimeDelta::FromMilliseconds(kMaxShutdownSoundDurationMs)); 292 base::TimeDelta::FromMilliseconds(kMaxShutdownSoundDurationMs));
294 duration = std::max(duration, sound_duration); 293 duration = std::max(duration, sound_duration);
295 #endif 294 #endif
296 295
297 real_shutdown_timer_.Start( 296 real_shutdown_timer_.Start(
298 FROM_HERE, duration, base::Bind(&LockStateController::OnRealPowerTimeout, 297 FROM_HERE, duration, base::Bind(&LockStateController::OnRealPowerTimeout,
299 base::Unretained(this), shutdown_mode)); 298 base::Unretained(this)));
300 } 299 }
301 300
302 void LockStateController::OnRealPowerTimeout(ShutdownMode shutdown_mode) { 301 void LockStateController::OnRealPowerTimeout() {
303 VLOG(1) << "OnRealPowerTimeout"; 302 VLOG(1) << "OnRealPowerTimeout";
304 DCHECK(shutting_down_); 303 DCHECK(shutting_down_);
305 #if defined(OS_CHROMEOS) 304 #if defined(OS_CHROMEOS)
306 if (!base::SysInfo::IsRunningOnChromeOS()) { 305 if (!base::SysInfo::IsRunningOnChromeOS()) {
307 ShellDelegate* delegate = Shell::GetInstance()->delegate(); 306 ShellDelegate* delegate = Shell::GetInstance()->delegate();
308 if (delegate) { 307 if (delegate) {
309 delegate->Exit(); 308 delegate->Exit();
310 return; 309 return;
311 } 310 }
312 } 311 }
313 #endif 312 #endif
314 if (shutdown_mode == POWER_OFF) {
315 Shell::GetInstance()->metrics()->RecordUserMetricsAction(
316 UMA_ACCEL_SHUT_DOWN_POWER_BUTTON);
317 delegate_->RequestShutdown();
318 return;
319 }
320 Shell::GetInstance()->metrics()->RecordUserMetricsAction( 313 Shell::GetInstance()->metrics()->RecordUserMetricsAction(
321 UMA_ACCEL_RESTART_POWER_BUTTON); 314 UMA_ACCEL_SHUT_DOWN_POWER_BUTTON);
322 delegate_->RequestRestart(); 315 delegate_->RequestShutdownOrRestart();
323 } 316 }
324 317
325 void LockStateController::StartCancellableShutdownAnimation() { 318 void LockStateController::StartCancellableShutdownAnimation() {
326 Shell* shell = ash::Shell::GetInstance(); 319 Shell* shell = ash::Shell::GetInstance();
327 // Hide cursor, but let it reappear if the mouse moves. 320 // Hide cursor, but let it reappear if the mouse moves.
328 shell->cursor_manager()->HideCursor(); 321 shell->cursor_manager()->HideCursor();
329 322
330 animator_->StartAnimation( 323 animator_->StartAnimation(
331 SessionStateAnimator::ROOT_CONTAINER, 324 SessionStateAnimator::ROOT_CONTAINER,
332 SessionStateAnimator::ANIMATION_GRAYSCALE_BRIGHTNESS, 325 SessionStateAnimator::ANIMATION_GRAYSCALE_BRIGHTNESS,
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
576 if (unlocked_properties_.get() && 569 if (unlocked_properties_.get() &&
577 unlocked_properties_->background_is_hidden) { 570 unlocked_properties_->background_is_hidden) {
578 animation_sequence->StartAnimation( 571 animation_sequence->StartAnimation(
579 SessionStateAnimator::DESKTOP_BACKGROUND, 572 SessionStateAnimator::DESKTOP_BACKGROUND,
580 SessionStateAnimator::ANIMATION_FADE_OUT, 573 SessionStateAnimator::ANIMATION_FADE_OUT,
581 speed); 574 speed);
582 } 575 }
583 } 576 }
584 577
585 } // namespace ash 578 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698