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

Unified Diff: chrome/browser/chromeos/login/screen_locker.cc

Issue 16002004: Added login screen mode for adding users into session. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: WebUI test fixed. Created 7 years, 7 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: chrome/browser/chromeos/login/screen_locker.cc
diff --git a/chrome/browser/chromeos/login/screen_locker.cc b/chrome/browser/chromeos/login/screen_locker.cc
index 3abd60b211947b9355dcd245cf89d111be2ffb28..e319b5234c8085ed2e160b3fae0b48191aa64b69 100644
--- a/chrome/browser/chromeos/login/screen_locker.cc
+++ b/chrome/browser/chromeos/login/screen_locker.cc
@@ -23,6 +23,7 @@
#include "chrome/browser/chromeos/login/authenticator.h"
#include "chrome/browser/chromeos/login/login_performer.h"
#include "chrome/browser/chromeos/login/login_utils.h"
+#include "chrome/browser/chromeos/login/user_adding_screen.h"
#include "chrome/browser/chromeos/login/user_manager.h"
#include "chrome/browser/chromeos/login/webui_screen_locker.h"
#include "chrome/browser/lifetime/application_lifetime.h"
@@ -59,7 +60,8 @@ const int kUnlockGuardTimeoutMs = 400;
// Observer to start ScreenLocker when the screen lock
class ScreenLockObserver : public chromeos::SessionManagerClient::Observer,
- public content::NotificationObserver {
+ public content::NotificationObserver,
+ public chromeos::UserAddingScreen::Observer {
public:
ScreenLockObserver() : session_started_(false) {
registrar_.Add(this,
@@ -96,6 +98,12 @@ class ScreenLockObserver : public chromeos::SessionManagerClient::Observer,
virtual void LockScreen() OVERRIDE {
VLOG(1) << "Received LockScreen D-Bus signal from session manager";
+ if (chromeos::UserAddingScreen::Get()->IsRunning()) {
+ VLOG(1) << "Waiting for user adding screen to stop";
+ chromeos::UserAddingScreen::Get()->AddObserver(this);
+ chromeos::UserAddingScreen::Get()->Cancel();
+ return;
+ }
if (session_started_ &&
chromeos::UserManager::Get()->CanCurrentUserLock()) {
chromeos::ScreenLocker::Show();
@@ -116,6 +124,11 @@ class ScreenLockObserver : public chromeos::SessionManagerClient::Observer,
chromeos::ScreenLocker::Hide();
}
+ virtual void OnUserAddingFinished() OVERRIDE {
+ chromeos::UserAddingScreen::Get()->RemoveObserver(this);
+ LockScreen();
+ }
+
private:
bool session_started_;
content::NotificationRegistrar registrar_;
« no previous file with comments | « chrome/browser/chromeos/login/mock_user_manager.h ('k') | chrome/browser/chromeos/login/user_adding_screen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698