OLD | NEW |
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 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 static const int kTimeoutMultiplier = 2; | 68 static const int kTimeoutMultiplier = 2; |
69 #else | 69 #else |
70 static const int kTimeoutMultiplier = 1; | 70 static const int kTimeoutMultiplier = 1; |
71 #endif | 71 #endif |
72 | 72 |
73 const int LockStateController::kLockFailTimeoutMs = 8000 * kTimeoutMultiplier; | 73 const int LockStateController::kLockFailTimeoutMs = 8000 * kTimeoutMultiplier; |
74 const int LockStateController::kLockToShutdownTimeoutMs = 150; | 74 const int LockStateController::kLockToShutdownTimeoutMs = 150; |
75 const int LockStateController::kShutdownRequestDelayMs = 50; | 75 const int LockStateController::kShutdownRequestDelayMs = 50; |
76 | 76 |
77 LockStateController::TestApi::TestApi(LockStateController* controller) | 77 LockStateController::TestApi::TestApi(LockStateController* controller) |
78 : controller_(controller) { | 78 : controller_(controller) {} |
79 } | |
80 | 79 |
81 LockStateController::TestApi::~TestApi() { | 80 LockStateController::TestApi::~TestApi() {} |
82 } | |
83 | 81 |
84 LockStateController::LockStateController() | 82 LockStateController::LockStateController() |
85 : animator_(new SessionStateAnimatorImpl()), | 83 : animator_(new SessionStateAnimatorImpl()), |
86 login_status_(LoginStatus::NOT_LOGGED_IN), | 84 login_status_(LoginStatus::NOT_LOGGED_IN), |
87 system_is_locked_(false), | 85 system_is_locked_(false), |
88 shutting_down_(false), | 86 shutting_down_(false), |
89 shutdown_after_lock_(false), | 87 shutdown_after_lock_(false), |
90 animating_lock_(false), | 88 animating_lock_(false), |
91 can_cancel_lock_animation_(false), | 89 can_cancel_lock_animation_(false), |
92 weak_ptr_factory_(this) { | 90 weak_ptr_factory_(this) { |
(...skipping 14 matching lines...) Expand all Loading... |
107 } | 105 } |
108 | 106 |
109 void LockStateController::RemoveObserver(LockStateObserver* observer) { | 107 void LockStateController::RemoveObserver(LockStateObserver* observer) { |
110 observers_.RemoveObserver(observer); | 108 observers_.RemoveObserver(observer); |
111 } | 109 } |
112 | 110 |
113 bool LockStateController::HasObserver(const LockStateObserver* observer) const { | 111 bool LockStateController::HasObserver(const LockStateObserver* observer) const { |
114 return observers_.HasObserver(observer); | 112 return observers_.HasObserver(observer); |
115 } | 113 } |
116 | 114 |
117 void LockStateController::StartLockAnimation( | 115 void LockStateController::StartLockAnimation(bool shutdown_after_lock) { |
118 bool shutdown_after_lock) { | |
119 if (animating_lock_) | 116 if (animating_lock_) |
120 return; | 117 return; |
121 shutdown_after_lock_ = shutdown_after_lock; | 118 shutdown_after_lock_ = shutdown_after_lock; |
122 can_cancel_lock_animation_ = true; | 119 can_cancel_lock_animation_ = true; |
123 | 120 |
124 StartCancellablePreLockAnimation(); | 121 StartCancellablePreLockAnimation(); |
125 } | 122 } |
126 | 123 |
127 void LockStateController::StartShutdownAnimation() { | 124 void LockStateController::StartShutdownAnimation() { |
128 StartCancellableShutdownAnimation(); | 125 StartCancellableShutdownAnimation(); |
(...skipping 21 matching lines...) Expand all Loading... |
150 | 147 |
151 void LockStateController::CancelLockAnimation() { | 148 void LockStateController::CancelLockAnimation() { |
152 if (!CanCancelLockAnimation()) | 149 if (!CanCancelLockAnimation()) |
153 return; | 150 return; |
154 shutdown_after_lock_ = false; | 151 shutdown_after_lock_ = false; |
155 animating_lock_ = false; | 152 animating_lock_ = false; |
156 CancelPreLockAnimation(); | 153 CancelPreLockAnimation(); |
157 } | 154 } |
158 | 155 |
159 bool LockStateController::CanCancelShutdownAnimation() { | 156 bool LockStateController::CanCancelShutdownAnimation() { |
160 return pre_shutdown_timer_.IsRunning() || | 157 return pre_shutdown_timer_.IsRunning() || shutdown_after_lock_ || |
161 shutdown_after_lock_ || | |
162 lock_to_shutdown_timer_.IsRunning(); | 158 lock_to_shutdown_timer_.IsRunning(); |
163 } | 159 } |
164 | 160 |
165 void LockStateController::CancelShutdownAnimation() { | 161 void LockStateController::CancelShutdownAnimation() { |
166 if (!CanCancelShutdownAnimation()) | 162 if (!CanCancelShutdownAnimation()) |
167 return; | 163 return; |
168 if (lock_to_shutdown_timer_.IsRunning()) { | 164 if (lock_to_shutdown_timer_.IsRunning()) { |
169 lock_to_shutdown_timer_.Stop(); | 165 lock_to_shutdown_timer_.Stop(); |
170 return; | 166 return; |
171 } | 167 } |
(...skipping 28 matching lines...) Expand all Loading... |
200 shell->cursor_manager()->LockCursor(); | 196 shell->cursor_manager()->LockCursor(); |
201 | 197 |
202 animator_->StartAnimation( | 198 animator_->StartAnimation( |
203 SessionStateAnimator::ROOT_CONTAINER, | 199 SessionStateAnimator::ROOT_CONTAINER, |
204 SessionStateAnimator::ANIMATION_GRAYSCALE_BRIGHTNESS, | 200 SessionStateAnimator::ANIMATION_GRAYSCALE_BRIGHTNESS, |
205 SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN); | 201 SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN); |
206 StartRealShutdownTimer(true); | 202 StartRealShutdownTimer(true); |
207 } | 203 } |
208 | 204 |
209 void LockStateController::OnLockScreenHide( | 205 void LockStateController::OnLockScreenHide( |
210 base::Callback<void(void)>& callback) { | 206 base::Callback<void(void)>& callback) { |
211 StartUnlockAnimationBeforeUIDestroyed(callback); | 207 StartUnlockAnimationBeforeUIDestroyed(callback); |
212 } | 208 } |
213 | 209 |
214 void LockStateController::SetLockScreenDisplayedCallback( | 210 void LockStateController::SetLockScreenDisplayedCallback( |
215 const base::Closure& callback) { | 211 const base::Closure& callback) { |
216 lock_screen_displayed_callback_ = callback; | 212 lock_screen_displayed_callback_ = callback; |
217 } | 213 } |
218 | 214 |
219 void LockStateController::OnHostCloseRequested( | 215 void LockStateController::OnHostCloseRequested( |
220 const aura::WindowTreeHost* host) { | 216 const aura::WindowTreeHost* host) { |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 lock_duration_timer_.reset(); | 272 lock_duration_timer_.reset(); |
277 DCHECK(!system_is_locked_); | 273 DCHECK(!system_is_locked_); |
278 | 274 |
279 LOG(FATAL) << "Screen lock took too long; crashing intentionally"; | 275 LOG(FATAL) << "Screen lock took too long; crashing intentionally"; |
280 } | 276 } |
281 | 277 |
282 void LockStateController::StartLockToShutdownTimer() { | 278 void LockStateController::StartLockToShutdownTimer() { |
283 shutdown_after_lock_ = false; | 279 shutdown_after_lock_ = false; |
284 lock_to_shutdown_timer_.Stop(); | 280 lock_to_shutdown_timer_.Stop(); |
285 lock_to_shutdown_timer_.Start( | 281 lock_to_shutdown_timer_.Start( |
286 FROM_HERE, | 282 FROM_HERE, base::TimeDelta::FromMilliseconds(kLockToShutdownTimeoutMs), |
287 base::TimeDelta::FromMilliseconds(kLockToShutdownTimeoutMs), | |
288 this, &LockStateController::OnLockToShutdownTimeout); | 283 this, &LockStateController::OnLockToShutdownTimeout); |
289 } | 284 } |
290 | 285 |
291 void LockStateController::OnLockToShutdownTimeout() { | 286 void LockStateController::OnLockToShutdownTimeout() { |
292 DCHECK(system_is_locked_); | 287 DCHECK(system_is_locked_); |
293 StartCancellableShutdownAnimation(); | 288 StartCancellableShutdownAnimation(); |
294 } | 289 } |
295 | 290 |
296 void LockStateController::StartPreShutdownAnimationTimer() { | 291 void LockStateController::StartPreShutdownAnimationTimer() { |
297 pre_shutdown_timer_.Stop(); | 292 pre_shutdown_timer_.Stop(); |
298 pre_shutdown_timer_.Start( | 293 pre_shutdown_timer_.Start( |
299 FROM_HERE, | 294 FROM_HERE, |
300 animator_->GetDuration(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN), | 295 animator_->GetDuration(SessionStateAnimator::ANIMATION_SPEED_SHUTDOWN), |
301 this, | 296 this, &LockStateController::OnPreShutdownAnimationTimeout); |
302 &LockStateController::OnPreShutdownAnimationTimeout); | |
303 } | 297 } |
304 | 298 |
305 void LockStateController::OnPreShutdownAnimationTimeout() { | 299 void LockStateController::OnPreShutdownAnimationTimeout() { |
306 VLOG(1) << "OnPreShutdownAnimationTimeout"; | 300 VLOG(1) << "OnPreShutdownAnimationTimeout"; |
307 shutting_down_ = true; | 301 shutting_down_ = true; |
308 | 302 |
309 Shell* shell = Shell::GetInstance(); | 303 Shell* shell = Shell::GetInstance(); |
310 shell->cursor_manager()->HideCursor(); | 304 shell->cursor_manager()->HideCursor(); |
311 | 305 |
312 StartRealShutdownTimer(false); | 306 StartRealShutdownTimer(false); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
364 } | 358 } |
365 | 359 |
366 void LockStateController::StartImmediatePreLockAnimation( | 360 void LockStateController::StartImmediatePreLockAnimation( |
367 bool request_lock_on_completion) { | 361 bool request_lock_on_completion) { |
368 VLOG(1) << "StartImmediatePreLockAnimation " << request_lock_on_completion; | 362 VLOG(1) << "StartImmediatePreLockAnimation " << request_lock_on_completion; |
369 animating_lock_ = true; | 363 animating_lock_ = true; |
370 StoreUnlockedProperties(); | 364 StoreUnlockedProperties(); |
371 | 365 |
372 base::Closure next_animation_starter = | 366 base::Closure next_animation_starter = |
373 base::Bind(&LockStateController::PreLockAnimationFinished, | 367 base::Bind(&LockStateController::PreLockAnimationFinished, |
374 weak_ptr_factory_.GetWeakPtr(), | 368 weak_ptr_factory_.GetWeakPtr(), request_lock_on_completion); |
375 request_lock_on_completion); | |
376 SessionStateAnimator::AnimationSequence* animation_sequence = | 369 SessionStateAnimator::AnimationSequence* animation_sequence = |
377 animator_->BeginAnimationSequence(next_animation_starter); | 370 animator_->BeginAnimationSequence(next_animation_starter); |
378 | 371 |
379 animation_sequence->StartAnimation( | 372 animation_sequence->StartAnimation( |
380 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS, | 373 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS, |
381 SessionStateAnimator::ANIMATION_LIFT, | 374 SessionStateAnimator::ANIMATION_LIFT, |
382 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); | 375 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); |
383 animation_sequence->StartAnimation( | 376 animation_sequence->StartAnimation( |
384 SessionStateAnimator::LAUNCHER, | 377 SessionStateAnimator::LAUNCHER, SessionStateAnimator::ANIMATION_FADE_OUT, |
385 SessionStateAnimator::ANIMATION_FADE_OUT, | |
386 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); | 378 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); |
387 // Hide the screen locker containers so we can raise them later. | 379 // Hide the screen locker containers so we can raise them later. |
388 animator_->StartAnimation(SessionStateAnimator::LOCK_SCREEN_CONTAINERS, | 380 animator_->StartAnimation(SessionStateAnimator::LOCK_SCREEN_CONTAINERS, |
389 SessionStateAnimator::ANIMATION_HIDE_IMMEDIATELY, | 381 SessionStateAnimator::ANIMATION_HIDE_IMMEDIATELY, |
390 SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE); | 382 SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE); |
391 AnimateBackgroundAppearanceIfNecessary( | 383 AnimateBackgroundAppearanceIfNecessary( |
392 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, animation_sequence); | 384 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, animation_sequence); |
393 | 385 |
394 animation_sequence->EndSequence(); | 386 animation_sequence->EndSequence(); |
395 | 387 |
396 DispatchCancelMode(); | 388 DispatchCancelMode(); |
397 FOR_EACH_OBSERVER(LockStateObserver, observers_, | 389 FOR_EACH_OBSERVER( |
| 390 LockStateObserver, observers_, |
398 OnLockStateEvent(LockStateObserver::EVENT_LOCK_ANIMATION_STARTED)); | 391 OnLockStateEvent(LockStateObserver::EVENT_LOCK_ANIMATION_STARTED)); |
399 } | 392 } |
400 | 393 |
401 void LockStateController::StartCancellablePreLockAnimation() { | 394 void LockStateController::StartCancellablePreLockAnimation() { |
402 animating_lock_ = true; | 395 animating_lock_ = true; |
403 StoreUnlockedProperties(); | 396 StoreUnlockedProperties(); |
404 VLOG(1) << "StartCancellablePreLockAnimation"; | 397 VLOG(1) << "StartCancellablePreLockAnimation"; |
405 base::Closure next_animation_starter = | 398 base::Closure next_animation_starter = |
406 base::Bind(&LockStateController::PreLockAnimationFinished, | 399 base::Bind(&LockStateController::PreLockAnimationFinished, |
407 weak_ptr_factory_.GetWeakPtr(), | 400 weak_ptr_factory_.GetWeakPtr(), true /* request_lock */); |
408 true /* request_lock */); | |
409 SessionStateAnimator::AnimationSequence* animation_sequence = | 401 SessionStateAnimator::AnimationSequence* animation_sequence = |
410 animator_->BeginAnimationSequence(next_animation_starter); | 402 animator_->BeginAnimationSequence(next_animation_starter); |
411 | 403 |
412 animation_sequence->StartAnimation( | 404 animation_sequence->StartAnimation( |
413 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS, | 405 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS, |
414 SessionStateAnimator::ANIMATION_LIFT, | 406 SessionStateAnimator::ANIMATION_LIFT, |
415 SessionStateAnimator::ANIMATION_SPEED_UNDOABLE); | 407 SessionStateAnimator::ANIMATION_SPEED_UNDOABLE); |
416 animation_sequence->StartAnimation( | 408 animation_sequence->StartAnimation( |
417 SessionStateAnimator::LAUNCHER, | 409 SessionStateAnimator::LAUNCHER, SessionStateAnimator::ANIMATION_FADE_OUT, |
418 SessionStateAnimator::ANIMATION_FADE_OUT, | |
419 SessionStateAnimator::ANIMATION_SPEED_UNDOABLE); | 410 SessionStateAnimator::ANIMATION_SPEED_UNDOABLE); |
420 // Hide the screen locker containers so we can raise them later. | 411 // Hide the screen locker containers so we can raise them later. |
421 animator_->StartAnimation(SessionStateAnimator::LOCK_SCREEN_CONTAINERS, | 412 animator_->StartAnimation(SessionStateAnimator::LOCK_SCREEN_CONTAINERS, |
422 SessionStateAnimator::ANIMATION_HIDE_IMMEDIATELY, | 413 SessionStateAnimator::ANIMATION_HIDE_IMMEDIATELY, |
423 SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE); | 414 SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE); |
424 AnimateBackgroundAppearanceIfNecessary( | 415 AnimateBackgroundAppearanceIfNecessary( |
425 SessionStateAnimator::ANIMATION_SPEED_UNDOABLE, animation_sequence); | 416 SessionStateAnimator::ANIMATION_SPEED_UNDOABLE, animation_sequence); |
426 | 417 |
427 DispatchCancelMode(); | 418 DispatchCancelMode(); |
428 FOR_EACH_OBSERVER(LockStateObserver, observers_, | 419 FOR_EACH_OBSERVER( |
| 420 LockStateObserver, observers_, |
429 OnLockStateEvent(LockStateObserver::EVENT_PRELOCK_ANIMATION_STARTED)); | 421 OnLockStateEvent(LockStateObserver::EVENT_PRELOCK_ANIMATION_STARTED)); |
430 animation_sequence->EndSequence(); | 422 animation_sequence->EndSequence(); |
431 } | 423 } |
432 | 424 |
433 void LockStateController::CancelPreLockAnimation() { | 425 void LockStateController::CancelPreLockAnimation() { |
434 VLOG(1) << "CancelPreLockAnimation"; | 426 VLOG(1) << "CancelPreLockAnimation"; |
435 base::Closure next_animation_starter = | 427 base::Closure next_animation_starter = |
436 base::Bind(&LockStateController::LockAnimationCancelled, | 428 base::Bind(&LockStateController::LockAnimationCancelled, |
437 weak_ptr_factory_.GetWeakPtr()); | 429 weak_ptr_factory_.GetWeakPtr()); |
438 SessionStateAnimator::AnimationSequence* animation_sequence = | 430 SessionStateAnimator::AnimationSequence* animation_sequence = |
439 animator_->BeginAnimationSequence(next_animation_starter); | 431 animator_->BeginAnimationSequence(next_animation_starter); |
440 | 432 |
441 animation_sequence->StartAnimation( | 433 animation_sequence->StartAnimation( |
442 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS, | 434 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS, |
443 SessionStateAnimator::ANIMATION_UNDO_LIFT, | 435 SessionStateAnimator::ANIMATION_UNDO_LIFT, |
444 SessionStateAnimator::ANIMATION_SPEED_UNDO_MOVE_WINDOWS); | 436 SessionStateAnimator::ANIMATION_SPEED_UNDO_MOVE_WINDOWS); |
445 animation_sequence->StartAnimation( | 437 animation_sequence->StartAnimation( |
446 SessionStateAnimator::LAUNCHER, | 438 SessionStateAnimator::LAUNCHER, SessionStateAnimator::ANIMATION_FADE_IN, |
447 SessionStateAnimator::ANIMATION_FADE_IN, | |
448 SessionStateAnimator::ANIMATION_SPEED_UNDO_MOVE_WINDOWS); | 439 SessionStateAnimator::ANIMATION_SPEED_UNDO_MOVE_WINDOWS); |
449 AnimateBackgroundHidingIfNecessary( | 440 AnimateBackgroundHidingIfNecessary( |
450 SessionStateAnimator::ANIMATION_SPEED_UNDO_MOVE_WINDOWS, | 441 SessionStateAnimator::ANIMATION_SPEED_UNDO_MOVE_WINDOWS, |
451 animation_sequence); | 442 animation_sequence); |
452 | 443 |
453 animation_sequence->EndSequence(); | 444 animation_sequence->EndSequence(); |
454 } | 445 } |
455 | 446 |
456 void LockStateController::StartPostLockAnimation() { | 447 void LockStateController::StartPostLockAnimation() { |
457 VLOG(1) << "StartPostLockAnimation"; | 448 VLOG(1) << "StartPostLockAnimation"; |
458 base::Closure next_animation_starter = | 449 base::Closure next_animation_starter = |
459 base::Bind(&LockStateController::PostLockAnimationFinished, | 450 base::Bind(&LockStateController::PostLockAnimationFinished, |
460 weak_ptr_factory_.GetWeakPtr()); | 451 weak_ptr_factory_.GetWeakPtr()); |
461 SessionStateAnimator::AnimationSequence* animation_sequence = | 452 SessionStateAnimator::AnimationSequence* animation_sequence = |
462 animator_->BeginAnimationSequence(next_animation_starter); | 453 animator_->BeginAnimationSequence(next_animation_starter); |
463 | 454 |
464 animation_sequence->StartAnimation( | 455 animation_sequence->StartAnimation( |
465 SessionStateAnimator::LOCK_SCREEN_CONTAINERS, | 456 SessionStateAnimator::LOCK_SCREEN_CONTAINERS, |
466 SessionStateAnimator::ANIMATION_RAISE_TO_SCREEN, | 457 SessionStateAnimator::ANIMATION_RAISE_TO_SCREEN, |
467 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); | 458 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); |
468 animation_sequence->EndSequence(); | 459 animation_sequence->EndSequence(); |
469 } | 460 } |
470 | 461 |
471 void LockStateController::StartUnlockAnimationBeforeUIDestroyed( | 462 void LockStateController::StartUnlockAnimationBeforeUIDestroyed( |
472 base::Closure& callback) { | 463 base::Closure& callback) { |
473 VLOG(1) << "StartUnlockAnimationBeforeUIDestroyed"; | 464 VLOG(1) << "StartUnlockAnimationBeforeUIDestroyed"; |
474 animator_->StartAnimationWithCallback( | 465 animator_->StartAnimationWithCallback( |
475 SessionStateAnimator::LOCK_SCREEN_CONTAINERS, | 466 SessionStateAnimator::LOCK_SCREEN_CONTAINERS, |
476 SessionStateAnimator::ANIMATION_LIFT, | 467 SessionStateAnimator::ANIMATION_LIFT, |
477 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, | 468 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, callback); |
478 callback); | |
479 } | 469 } |
480 | 470 |
481 void LockStateController::StartUnlockAnimationAfterUIDestroyed() { | 471 void LockStateController::StartUnlockAnimationAfterUIDestroyed() { |
482 VLOG(1) << "StartUnlockAnimationAfterUIDestroyed"; | 472 VLOG(1) << "StartUnlockAnimationAfterUIDestroyed"; |
483 base::Closure next_animation_starter = | 473 base::Closure next_animation_starter = |
484 base::Bind(&LockStateController::UnlockAnimationAfterUIDestroyedFinished, | 474 base::Bind(&LockStateController::UnlockAnimationAfterUIDestroyedFinished, |
485 weak_ptr_factory_.GetWeakPtr()); | 475 weak_ptr_factory_.GetWeakPtr()); |
486 SessionStateAnimator::AnimationSequence* animation_sequence = | 476 SessionStateAnimator::AnimationSequence* animation_sequence = |
487 animator_->BeginAnimationSequence(next_animation_starter); | 477 animator_->BeginAnimationSequence(next_animation_starter); |
488 | 478 |
489 animation_sequence->StartAnimation( | 479 animation_sequence->StartAnimation( |
490 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS, | 480 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS, |
491 SessionStateAnimator::ANIMATION_DROP, | 481 SessionStateAnimator::ANIMATION_DROP, |
492 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); | 482 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); |
493 animation_sequence->StartAnimation( | 483 animation_sequence->StartAnimation( |
494 SessionStateAnimator::LAUNCHER, | 484 SessionStateAnimator::LAUNCHER, SessionStateAnimator::ANIMATION_FADE_IN, |
495 SessionStateAnimator::ANIMATION_FADE_IN, | |
496 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); | 485 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS); |
497 AnimateBackgroundHidingIfNecessary( | 486 AnimateBackgroundHidingIfNecessary( |
498 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, animation_sequence); | 487 SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, animation_sequence); |
499 animation_sequence->EndSequence(); | 488 animation_sequence->EndSequence(); |
500 } | 489 } |
501 | 490 |
502 void LockStateController::LockAnimationCancelled() { | 491 void LockStateController::LockAnimationCancelled() { |
503 can_cancel_lock_animation_ = false; | 492 can_cancel_lock_animation_ = false; |
504 RestoreUnlockedProperties(); | 493 RestoreUnlockedProperties(); |
505 } | 494 } |
(...skipping 22 matching lines...) Expand all Loading... |
528 #if defined(OS_CHROMEOS) | 517 #if defined(OS_CHROMEOS) |
529 // Increase lock timeout for slower hardware, see http://crbug.com/350628 | 518 // Increase lock timeout for slower hardware, see http://crbug.com/350628 |
530 const std::string board = base::SysInfo::GetLsbReleaseBoard(); | 519 const std::string board = base::SysInfo::GetLsbReleaseBoard(); |
531 if (board == "x86-mario" || | 520 if (board == "x86-mario" || |
532 base::StartsWith(board, "x86-alex", base::CompareCase::SENSITIVE) || | 521 base::StartsWith(board, "x86-alex", base::CompareCase::SENSITIVE) || |
533 base::StartsWith(board, "x86-zgb", base::CompareCase::SENSITIVE) || | 522 base::StartsWith(board, "x86-zgb", base::CompareCase::SENSITIVE) || |
534 base::StartsWith(board, "daisy", base::CompareCase::SENSITIVE)) { | 523 base::StartsWith(board, "daisy", base::CompareCase::SENSITIVE)) { |
535 timeout *= 2; | 524 timeout *= 2; |
536 } | 525 } |
537 #endif | 526 #endif |
538 lock_fail_timer_.Start( | 527 lock_fail_timer_.Start(FROM_HERE, timeout, this, |
539 FROM_HERE, timeout, this, &LockStateController::OnLockFailTimeout); | 528 &LockStateController::OnLockFailTimeout); |
540 | 529 |
541 lock_duration_timer_.reset(new base::ElapsedTimer()); | 530 lock_duration_timer_.reset(new base::ElapsedTimer()); |
542 } | 531 } |
543 | 532 |
544 void LockStateController::PostLockAnimationFinished() { | 533 void LockStateController::PostLockAnimationFinished() { |
545 animating_lock_ = false; | 534 animating_lock_ = false; |
546 VLOG(1) << "PostLockAnimationFinished"; | 535 VLOG(1) << "PostLockAnimationFinished"; |
547 FOR_EACH_OBSERVER(LockStateObserver, observers_, | 536 FOR_EACH_OBSERVER( |
| 537 LockStateObserver, observers_, |
548 OnLockStateEvent(LockStateObserver::EVENT_LOCK_ANIMATION_FINISHED)); | 538 OnLockStateEvent(LockStateObserver::EVENT_LOCK_ANIMATION_FINISHED)); |
549 if (!lock_screen_displayed_callback_.is_null()) { | 539 if (!lock_screen_displayed_callback_.is_null()) { |
550 lock_screen_displayed_callback_.Run(); | 540 lock_screen_displayed_callback_.Run(); |
551 lock_screen_displayed_callback_.Reset(); | 541 lock_screen_displayed_callback_.Reset(); |
552 } | 542 } |
553 CHECK(!views::MenuController::GetActiveInstance()); | 543 CHECK(!views::MenuController::GetActiveInstance()); |
554 if (shutdown_after_lock_) { | 544 if (shutdown_after_lock_) { |
555 shutdown_after_lock_ = false; | 545 shutdown_after_lock_ = false; |
556 StartLockToShutdownTimer(); | 546 StartLockToShutdownTimer(); |
557 } | 547 } |
(...skipping 29 matching lines...) Expand all Loading... |
587 SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE); | 577 SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE); |
588 } | 578 } |
589 unlocked_properties_.reset(); | 579 unlocked_properties_.reset(); |
590 } | 580 } |
591 | 581 |
592 void LockStateController::AnimateBackgroundAppearanceIfNecessary( | 582 void LockStateController::AnimateBackgroundAppearanceIfNecessary( |
593 SessionStateAnimator::AnimationSpeed speed, | 583 SessionStateAnimator::AnimationSpeed speed, |
594 SessionStateAnimator::AnimationSequence* animation_sequence) { | 584 SessionStateAnimator::AnimationSequence* animation_sequence) { |
595 if (unlocked_properties_.get() && | 585 if (unlocked_properties_.get() && |
596 unlocked_properties_->background_is_hidden) { | 586 unlocked_properties_->background_is_hidden) { |
597 animation_sequence->StartAnimation( | 587 animation_sequence->StartAnimation(SessionStateAnimator::DESKTOP_BACKGROUND, |
598 SessionStateAnimator::DESKTOP_BACKGROUND, | 588 SessionStateAnimator::ANIMATION_FADE_IN, |
599 SessionStateAnimator::ANIMATION_FADE_IN, | 589 speed); |
600 speed); | |
601 } | 590 } |
602 } | 591 } |
603 | 592 |
604 void LockStateController::AnimateBackgroundHidingIfNecessary( | 593 void LockStateController::AnimateBackgroundHidingIfNecessary( |
605 SessionStateAnimator::AnimationSpeed speed, | 594 SessionStateAnimator::AnimationSpeed speed, |
606 SessionStateAnimator::AnimationSequence* animation_sequence) { | 595 SessionStateAnimator::AnimationSequence* animation_sequence) { |
607 if (unlocked_properties_.get() && | 596 if (unlocked_properties_.get() && |
608 unlocked_properties_->background_is_hidden) { | 597 unlocked_properties_->background_is_hidden) { |
609 animation_sequence->StartAnimation( | 598 animation_sequence->StartAnimation(SessionStateAnimator::DESKTOP_BACKGROUND, |
610 SessionStateAnimator::DESKTOP_BACKGROUND, | 599 SessionStateAnimator::ANIMATION_FADE_OUT, |
611 SessionStateAnimator::ANIMATION_FADE_OUT, | 600 speed); |
612 speed); | |
613 } | 601 } |
614 } | 602 } |
615 | 603 |
616 } // namespace ash | 604 } // namespace ash |
OLD | NEW |