| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/screen_locker.h" | 5 #include "chrome/browser/chromeos/login/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 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 // for sure. | 240 // for sure. |
| 241 base::MessageLoop::current()->PostDelayedTask( | 241 base::MessageLoop::current()->PostDelayedTask( |
| 242 FROM_HERE, | 242 FROM_HERE, |
| 243 base::Bind(&ScreenLocker::UnlockOnLoginSuccess, | 243 base::Bind(&ScreenLocker::UnlockOnLoginSuccess, |
| 244 weak_factory_.GetWeakPtr()), | 244 weak_factory_.GetWeakPtr()), |
| 245 base::TimeDelta::FromMilliseconds(kUnlockGuardTimeoutMs)); | 245 base::TimeDelta::FromMilliseconds(kUnlockGuardTimeoutMs)); |
| 246 delegate_->AnimateAuthenticationSuccess(); | 246 delegate_->AnimateAuthenticationSuccess(); |
| 247 } | 247 } |
| 248 | 248 |
| 249 void ScreenLocker::UnlockOnLoginSuccess() { | 249 void ScreenLocker::UnlockOnLoginSuccess() { |
| 250 DCHECK(base::MessageLoop::current()->type() == base::MessageLoop::TYPE_UI); | 250 DCHECK(base::MessageLoopForUI::IsCurrent()); |
| 251 if (!authentication_capture_.get()) { | 251 if (!authentication_capture_.get()) { |
| 252 LOG(WARNING) << "Call to UnlockOnLoginSuccess without previous " << | 252 LOG(WARNING) << "Call to UnlockOnLoginSuccess without previous " << |
| 253 "authentication success."; | 253 "authentication success."; |
| 254 return; | 254 return; |
| 255 } | 255 } |
| 256 | 256 |
| 257 if (login_status_consumer_) { | 257 if (login_status_consumer_) { |
| 258 login_status_consumer_->OnLoginSuccess( | 258 login_status_consumer_->OnLoginSuccess( |
| 259 UserContext(authentication_capture_->user_context.username, | 259 UserContext(authentication_capture_->user_context.username, |
| 260 authentication_capture_->user_context.password, | 260 authentication_capture_->user_context.password, |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 } | 332 } |
| 333 | 333 |
| 334 void ScreenLocker::SetLoginStatusConsumer( | 334 void ScreenLocker::SetLoginStatusConsumer( |
| 335 chromeos::LoginStatusConsumer* consumer) { | 335 chromeos::LoginStatusConsumer* consumer) { |
| 336 login_status_consumer_ = consumer; | 336 login_status_consumer_ = consumer; |
| 337 } | 337 } |
| 338 | 338 |
| 339 // static | 339 // static |
| 340 void ScreenLocker::Show() { | 340 void ScreenLocker::Show() { |
| 341 content::RecordAction(UserMetricsAction("ScreenLocker_Show")); | 341 content::RecordAction(UserMetricsAction("ScreenLocker_Show")); |
| 342 DCHECK(base::MessageLoop::current()->type() == base::MessageLoop::TYPE_UI); | 342 DCHECK(base::MessageLoopForUI::IsCurrent()); |
| 343 | 343 |
| 344 // Check whether the currently logged in user is a guest account and if so, | 344 // Check whether the currently logged in user is a guest account and if so, |
| 345 // refuse to lock the screen (crosbug.com/23764). | 345 // refuse to lock the screen (crosbug.com/23764). |
| 346 // For a demo user, we should never show the lock screen (crosbug.com/27647). | 346 // For a demo user, we should never show the lock screen (crosbug.com/27647). |
| 347 if (UserManager::Get()->IsLoggedInAsGuest() || | 347 if (UserManager::Get()->IsLoggedInAsGuest() || |
| 348 UserManager::Get()->IsLoggedInAsDemoUser()) { | 348 UserManager::Get()->IsLoggedInAsDemoUser()) { |
| 349 VLOG(1) << "Refusing to lock screen for guest/demo account"; | 349 VLOG(1) << "Refusing to lock screen for guest/demo account"; |
| 350 return; | 350 return; |
| 351 } | 351 } |
| 352 | 352 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 369 } else { | 369 } else { |
| 370 VLOG(1) << "ScreenLocker " << screen_locker_ << " already exists; " | 370 VLOG(1) << "ScreenLocker " << screen_locker_ << " already exists; " |
| 371 << " calling session manager's HandleLockScreenShown D-Bus method"; | 371 << " calling session manager's HandleLockScreenShown D-Bus method"; |
| 372 DBusThreadManager::Get()->GetSessionManagerClient()-> | 372 DBusThreadManager::Get()->GetSessionManagerClient()-> |
| 373 NotifyLockScreenShown(); | 373 NotifyLockScreenShown(); |
| 374 } | 374 } |
| 375 } | 375 } |
| 376 | 376 |
| 377 // static | 377 // static |
| 378 void ScreenLocker::Hide() { | 378 void ScreenLocker::Hide() { |
| 379 DCHECK(base::MessageLoop::current()->type() == base::MessageLoop::TYPE_UI); | 379 DCHECK(base::MessageLoopForUI::IsCurrent()); |
| 380 // For a guest/demo user, screen_locker_ would have never been initialized. | 380 // For a guest/demo user, screen_locker_ would have never been initialized. |
| 381 if (UserManager::Get()->IsLoggedInAsGuest() || | 381 if (UserManager::Get()->IsLoggedInAsGuest() || |
| 382 UserManager::Get()->IsLoggedInAsDemoUser()) { | 382 UserManager::Get()->IsLoggedInAsDemoUser()) { |
| 383 VLOG(1) << "Refusing to hide lock screen for guest/demo account"; | 383 VLOG(1) << "Refusing to hide lock screen for guest/demo account"; |
| 384 return; | 384 return; |
| 385 } | 385 } |
| 386 | 386 |
| 387 DCHECK(screen_locker_); | 387 DCHECK(screen_locker_); |
| 388 base::Callback<void(void)> callback = | 388 base::Callback<void(void)> callback = |
| 389 base::Bind(&ScreenLocker::ScheduleDeletion); | 389 base::Bind(&ScreenLocker::ScheduleDeletion); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 406 // static | 406 // static |
| 407 void ScreenLocker::InitClass() { | 407 void ScreenLocker::InitClass() { |
| 408 g_screen_lock_observer.Get(); | 408 g_screen_lock_observer.Get(); |
| 409 } | 409 } |
| 410 | 410 |
| 411 //////////////////////////////////////////////////////////////////////////////// | 411 //////////////////////////////////////////////////////////////////////////////// |
| 412 // ScreenLocker, private: | 412 // ScreenLocker, private: |
| 413 | 413 |
| 414 ScreenLocker::~ScreenLocker() { | 414 ScreenLocker::~ScreenLocker() { |
| 415 VLOG(1) << "Destroying ScreenLocker " << this; | 415 VLOG(1) << "Destroying ScreenLocker " << this; |
| 416 DCHECK(base::MessageLoop::current()->type() == base::MessageLoop::TYPE_UI); | 416 DCHECK(base::MessageLoopForUI::IsCurrent()); |
| 417 | 417 |
| 418 if (authenticator_.get()) | 418 if (authenticator_.get()) |
| 419 authenticator_->SetConsumer(NULL); | 419 authenticator_->SetConsumer(NULL); |
| 420 ClearErrors(); | 420 ClearErrors(); |
| 421 | 421 |
| 422 VLOG(1) << "Moving desktop background to unlocked container"; | 422 VLOG(1) << "Moving desktop background to unlocked container"; |
| 423 ash::Shell::GetInstance()-> | 423 ash::Shell::GetInstance()-> |
| 424 desktop_background_controller()->MoveDesktopToUnlockedContainer(); | 424 desktop_background_controller()->MoveDesktopToUnlockedContainer(); |
| 425 | 425 |
| 426 screen_locker_ = NULL; | 426 screen_locker_ = NULL; |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 466 | 466 |
| 467 bool ScreenLocker::IsUserLoggedIn(const std::string& username) { | 467 bool ScreenLocker::IsUserLoggedIn(const std::string& username) { |
| 468 for (UserList::const_iterator it = users_.begin(); it != users_.end(); ++it) { | 468 for (UserList::const_iterator it = users_.begin(); it != users_.end(); ++it) { |
| 469 if ((*it)->email() == username) | 469 if ((*it)->email() == username) |
| 470 return true; | 470 return true; |
| 471 } | 471 } |
| 472 return false; | 472 return false; |
| 473 } | 473 } |
| 474 | 474 |
| 475 } // namespace chromeos | 475 } // namespace chromeos |
| OLD | NEW |