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/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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |