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

Side by Side Diff: chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc

Issue 13495003: Add LoginState class to src/chromeos/login (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 8 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 | Annotate | Revision Log
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/kiosk_mode/kiosk_mode_screensaver.h" 5 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.h"
6 6
7 #include "ash/screensaver/screensaver_view.h" 7 #include "ash/screensaver/screensaver_view.h"
8 #include "ash/shell.h" 8 #include "ash/shell.h"
9 #include "ash/wm/user_activity_detector.h" 9 #include "ash/wm/user_activity_detector.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/callback.h" 11 #include "base/callback.h"
12 #include "base/lazy_instance.h" 12 #include "base/lazy_instance.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "chrome/browser/browser_process.h" 14 #include "chrome/browser/browser_process.h"
15 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h" 15 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h"
16 #include "chrome/browser/chromeos/login/existing_user_controller.h" 16 #include "chrome/browser/chromeos/login/existing_user_controller.h"
17 #include "chrome/browser/chromeos/login/user_manager.h"
18 #include "chrome/browser/chromeos/login/webui_login_display_host.h" 17 #include "chrome/browser/chromeos/login/webui_login_display_host.h"
19 #include "chrome/browser/chromeos/policy/app_pack_updater.h" 18 #include "chrome/browser/chromeos/policy/app_pack_updater.h"
20 #include "chrome/browser/extensions/extension_service.h" 19 #include "chrome/browser/extensions/extension_service.h"
21 #include "chrome/browser/extensions/extension_system.h" 20 #include "chrome/browser/extensions/extension_system.h"
22 #include "chrome/browser/extensions/sandboxed_unpacker.h" 21 #include "chrome/browser/extensions/sandboxed_unpacker.h"
23 #include "chrome/browser/policy/browser_policy_connector.h" 22 #include "chrome/browser/policy/browser_policy_connector.h"
24 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" 23 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
25 #include "chrome/common/chrome_notification_types.h" 24 #include "chrome/common/chrome_notification_types.h"
26 #include "chrome/common/extensions/extension.h" 25 #include "chrome/common/extensions/extension.h"
27 #include "chrome/common/extensions/extension_file_util.h" 26 #include "chrome/common/extensions/extension_file_util.h"
27 #include "chromeos/login/login_state.h"
28 #include "content/public/browser/browser_thread.h" 28 #include "content/public/browser/browser_thread.h"
29 #include "content/public/browser/notification_service.h" 29 #include "content/public/browser/notification_service.h"
30 30
31 using extensions::Extension; 31 using extensions::Extension;
32 using extensions::SandboxedUnpacker; 32 using extensions::SandboxedUnpacker;
33 33
34 namespace chromeos { 34 namespace chromeos {
35 35
36 namespace { 36 namespace {
37 37
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 &SandboxedUnpacker::Start, screensaver_unpacker.get())); 205 &SandboxedUnpacker::Start, screensaver_unpacker.get()));
206 } 206 }
207 207
208 void KioskModeScreensaver::SetupScreensaver( 208 void KioskModeScreensaver::SetupScreensaver(
209 scoped_refptr<Extension> extension, 209 scoped_refptr<Extension> extension,
210 const base::FilePath& extension_base_path) { 210 const base::FilePath& extension_base_path) {
211 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 211 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
212 extension_base_path_ = extension_base_path; 212 extension_base_path_ = extension_base_path;
213 213
214 // If the user is already logged in, don't need to display the screensaver. 214 // If the user is already logged in, don't need to display the screensaver.
215 if (chromeos::UserManager::Get()->IsUserLoggedIn()) 215 if (chromeos::LoginState::Get()->IsUserLoggedIn())
216 return; 216 return;
217 217
218 ash::Shell::GetInstance()->user_activity_detector()->AddObserver(this); 218 ash::Shell::GetInstance()->user_activity_detector()->AddObserver(this);
219 219
220 Profile* default_profile = ProfileManager::GetDefaultProfile(); 220 Profile* default_profile = ProfileManager::GetDefaultProfile();
221 // Add the extension to the extension service and display the screensaver. 221 // Add the extension to the extension service and display the screensaver.
222 if (default_profile) { 222 if (default_profile) {
223 extensions::ExtensionSystem::Get(default_profile)->extension_service()-> 223 extensions::ExtensionSystem::Get(default_profile)->extension_service()->
224 AddExtension(extension); 224 AddExtension(extension);
225 ash::ShowScreensaver(extension->GetFullLaunchURL()); 225 ash::ShowScreensaver(extension->GetFullLaunchURL());
(...skipping 18 matching lines...) Expand all
244 // Show the login spinner. 244 // Show the login spinner.
245 if (oobe_ui) 245 if (oobe_ui)
246 oobe_ui->ShowRetailModeLoginSpinner(); 246 oobe_ui->ShowRetailModeLoginSpinner();
247 247
248 // Close the screensaver, our login spinner is already showing. 248 // Close the screensaver, our login spinner is already showing.
249 ash::CloseScreensaver(); 249 ash::CloseScreensaver();
250 250
251 // Log us in. 251 // Log us in.
252 ExistingUserController* controller = 252 ExistingUserController* controller =
253 ExistingUserController::current_controller(); 253 ExistingUserController::current_controller();
254 if (controller && !chromeos::UserManager::Get()->IsUserLoggedIn()) 254 if (controller && !chromeos::LoginState::Get()->IsUserLoggedIn())
255 controller->LoginAsRetailModeUser(); 255 controller->LoginAsRetailModeUser();
256 } else { 256 } else {
257 // No default host for the WebUiLoginDisplay means that we're already in the 257 // No default host for the WebUiLoginDisplay means that we're already in the
258 // process of logging in - shut down screensaver and do nothing else. 258 // process of logging in - shut down screensaver and do nothing else.
259 ash::CloseScreensaver(); 259 ash::CloseScreensaver();
260 } 260 }
261 261
262 ShutdownKioskModeScreensaver(); 262 ShutdownKioskModeScreensaver();
263 } 263 }
264 264
265 static KioskModeScreensaver* g_kiosk_mode_screensaver = NULL; 265 static KioskModeScreensaver* g_kiosk_mode_screensaver = NULL;
266 266
267 void InitializeKioskModeScreensaver() { 267 void InitializeKioskModeScreensaver() {
268 if (g_kiosk_mode_screensaver) { 268 if (g_kiosk_mode_screensaver) {
269 LOG(WARNING) << "Screensaver was already initialized"; 269 LOG(WARNING) << "Screensaver was already initialized";
270 return; 270 return;
271 } 271 }
272 272
273 g_kiosk_mode_screensaver = new KioskModeScreensaver(); 273 g_kiosk_mode_screensaver = new KioskModeScreensaver();
274 } 274 }
275 275
276 void ShutdownKioskModeScreensaver() { 276 void ShutdownKioskModeScreensaver() {
277 delete g_kiosk_mode_screensaver; 277 delete g_kiosk_mode_screensaver;
278 g_kiosk_mode_screensaver = NULL; 278 g_kiosk_mode_screensaver = NULL;
279 } 279 }
280 280
281 } // namespace chromeos 281 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698