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

Side by Side Diff: chrome/browser/chromeos/login/webui_screen_locker.cc

Issue 16278003: Made possible to lock and unlock with several logged in users. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 6 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 (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/webui_screen_locker.h" 5 #include "chrome/browser/chromeos/login/webui_screen_locker.h"
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/wm/session_state_controller.h" 8 #include "ash/wm/session_state_controller.h"
9 #include "ash/wm/session_state_observer.h" 9 #include "ash/wm/session_state_observer.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 WebUIScreenLocker::WebUIScreenLocker(ScreenLocker* screen_locker) 47 WebUIScreenLocker::WebUIScreenLocker(ScreenLocker* screen_locker)
48 : ScreenLockerDelegate(screen_locker), 48 : ScreenLockerDelegate(screen_locker),
49 lock_ready_(false), 49 lock_ready_(false),
50 webui_ready_(false), 50 webui_ready_(false),
51 weak_factory_(this) { 51 weak_factory_(this) {
52 set_should_emit_login_prompt_visible(false); 52 set_should_emit_login_prompt_visible(false);
53 ash::Shell::GetInstance()->session_state_controller()->AddObserver(this); 53 ash::Shell::GetInstance()->session_state_controller()->AddObserver(this);
54 DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); 54 DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this);
55 } 55 }
56 56
57 void WebUIScreenLocker::LockScreen(bool unlock_on_input) { 57 void WebUIScreenLocker::LockScreen() {
58 gfx::Rect bounds(ash::Shell::GetScreen()->GetPrimaryDisplay().bounds()); 58 gfx::Rect bounds(ash::Shell::GetScreen()->GetPrimaryDisplay().bounds());
59 59
60 lock_time_ = base::TimeTicks::Now(); 60 lock_time_ = base::TimeTicks::Now();
61 LockWindow* lock_window = LockWindow::Create(); 61 LockWindow* lock_window = LockWindow::Create();
62 lock_window->set_observer(this); 62 lock_window->set_observer(this);
63 lock_window_ = lock_window->GetWidget(); 63 lock_window_ = lock_window->GetWidget();
64 lock_window_->AddObserver(this); 64 lock_window_->AddObserver(this);
65 WebUILoginView::Init(lock_window_); 65 WebUILoginView::Init(lock_window_);
66 lock_window_->SetContentsView(this); 66 lock_window_->SetContentsView(this);
67 lock_window_->Show(); 67 lock_window_->Show();
68 OnWindowCreated(); 68 OnWindowCreated();
69 LoadURL(GURL(kLoginURL)); 69 LoadURL(GURL(kLoginURL));
70 lock_window->Grab(); 70 lock_window->Grab();
71 71
72 // Subscribe to crash events. 72 // Subscribe to crash events.
73 content::WebContentsObserver::Observe(GetWebContents()); 73 content::WebContentsObserver::Observe(GetWebContents());
74 74
75 // User list consisting of a single logged-in user.
76 UserList users(1, chromeos::UserManager::Get()->GetLoggedInUser());
77 login_display_.reset(new WebUILoginDisplay(this)); 75 login_display_.reset(new WebUILoginDisplay(this));
78 login_display_->set_background_bounds(bounds); 76 login_display_->set_background_bounds(bounds);
79 login_display_->set_parent_window(GetNativeWindow()); 77 login_display_->set_parent_window(GetNativeWindow());
80 login_display_->Init(users, false, true, false); 78 login_display_->Init(screen_locker()->users(), false, true, false);
81 79
82 static_cast<OobeUI*>(GetWebUI()->GetController())->ShowSigninScreen( 80 static_cast<OobeUI*>(GetWebUI()->GetController())->ShowSigninScreen(
83 login_display_.get(), login_display_.get()); 81 login_display_.get(), login_display_.get());
84 82
85 registrar_.Add(this, 83 registrar_.Add(this,
86 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, 84 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED,
87 content::NotificationService::AllSources()); 85 content::NotificationService::AllSources());
88 registrar_.Add(this, 86 registrar_.Add(this,
89 chrome::NOTIFICATION_LOCK_WEBUI_READY, 87 chrome::NOTIFICATION_LOCK_WEBUI_READY,
90 content::NotificationService::AllSources()); 88 content::NotificationService::AllSources());
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 return GetCurrentNetworkName(); 202 return GetCurrentNetworkName();
205 } 203 }
206 204
207 bool WebUIScreenLocker::IsSigninInProgress() const { 205 bool WebUIScreenLocker::IsSigninInProgress() const {
208 // The way how screen locker is implemented right now there's no 206 // The way how screen locker is implemented right now there's no
209 // GAIA sign in in progress in any case. 207 // GAIA sign in in progress in any case.
210 return false; 208 return false;
211 } 209 }
212 210
213 void WebUIScreenLocker::Login(const UserContext& user_context) { 211 void WebUIScreenLocker::Login(const UserContext& user_context) {
214 chromeos::ScreenLocker::default_screen_locker()->Authenticate( 212 chromeos::ScreenLocker::default_screen_locker()->Authenticate(user_context);
215 ASCIIToUTF16(user_context.password));
216 } 213 }
217 214
218 void WebUIScreenLocker::LoginAsRetailModeUser() { 215 void WebUIScreenLocker::LoginAsRetailModeUser() {
219 NOTREACHED(); 216 NOTREACHED();
220 } 217 }
221 218
222 void WebUIScreenLocker::LoginAsGuest() { 219 void WebUIScreenLocker::LoginAsGuest() {
223 NOTREACHED(); 220 NOTREACHED();
224 } 221 }
225 222
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 312
316 void WebUIScreenLocker::RenderViewGone(base::TerminationStatus status) { 313 void WebUIScreenLocker::RenderViewGone(base::TerminationStatus status) {
317 if (browser_shutdown::GetShutdownType() == browser_shutdown::NOT_VALID && 314 if (browser_shutdown::GetShutdownType() == browser_shutdown::NOT_VALID &&
318 status != base::TERMINATION_STATUS_NORMAL_TERMINATION) { 315 status != base::TERMINATION_STATUS_NORMAL_TERMINATION) {
319 LOG(ERROR) << "Renderer crash on lock screen"; 316 LOG(ERROR) << "Renderer crash on lock screen";
320 Signout(); 317 Signout();
321 } 318 }
322 } 319 }
323 320
324 } // namespace chromeos 321 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/webui_screen_locker.h ('k') | chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698