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

Unified Diff: chrome/browser/chromeos/chrome_browser_main_chromeos.cc

Issue 363613004: [cros] Define session_manager component with SessionManager base class (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 5 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/chrome_browser_main_chromeos.cc
diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
index 04b761370f78d61d60ac80b5c31d7e05e67f54f0..88028bc25a03bf336524f48e8a1e81f5b257e600 100644
--- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
+++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
@@ -103,6 +103,7 @@
#include "chromeos/system/statistics_provider.h"
#include "chromeos/tpm_token_loader.h"
#include "components/metrics/metrics_service.h"
+#include "components/session_manager/core/session_manager.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/power_save_blocker.h"
@@ -130,9 +131,7 @@ void ChromeOSVersionCallback(const std::string& version) {
base::SetLinuxDistro(std::string("CrOS ") + version);
}
-// Login -----------------------------------------------------------------------
-
-bool ShouldAutoLaunchKioskApp(const CommandLine& command_line) {
+bool ShouldAutoLaunchKioskApp(const base::CommandLine& command_line) {
KioskAppManager* app_manager = KioskAppManager::Get();
return command_line.HasSwitch(switches::kLoginManager) &&
!command_line.HasSwitch(switches::kForceLoginManagerInTests) &&
@@ -140,52 +139,6 @@ bool ShouldAutoLaunchKioskApp(const CommandLine& command_line) {
KioskAppLaunchError::Get() == KioskAppLaunchError::NONE;
}
-void RunAutoLaunchKioskApp() {
- ShowLoginWizard(chromeos::WizardController::kAppLaunchSplashScreenName);
-
- // Login screen is skipped but 'login-prompt-visible' signal is still needed.
- VLOG(1) << "Kiosk app auto launch >> login-prompt-visible";
- DBusThreadManager::Get()->GetSessionManagerClient()->
- EmitLoginPromptVisible();
-}
-
-void OptionallyRunChromeOSLoginManager(const CommandLine& parsed_command_line,
- Profile* profile) {
- std::string login_user = parsed_command_line.
- GetSwitchValueASCII(chromeos::switches::kLoginUser);
- if (!base::SysInfo::IsRunningOnChromeOS() &&
- login_user == chromeos::login::kStubUser) {
- return;
- }
-
- if (ShouldAutoLaunchKioskApp(parsed_command_line)) {
- RunAutoLaunchKioskApp();
- } else if (parsed_command_line.HasSwitch(switches::kLoginManager)) {
- ShowLoginWizard(std::string());
-
- if (KioskModeSettings::Get()->IsKioskModeEnabled())
- InitializeKioskModeScreensaver();
-
- // Reset reboot after update flag when login screen is shown.
- policy::BrowserPolicyConnectorChromeOS* connector =
- g_browser_process->platform_part()->browser_policy_connector_chromeos();
- if (!connector->IsEnterpriseManaged()) {
- PrefService* local_state = g_browser_process->local_state();
- local_state->ClearPref(prefs::kRebootAfterUpdate);
- }
- } else {
- if (!parsed_command_line.HasSwitch(::switches::kTestName)) {
- // Enable CrasAudioHandler logging when chrome restarts after crashing.
- if (chromeos::CrasAudioHandler::IsInitialized())
- chromeos::CrasAudioHandler::Get()->LogErrors();
-
- // We did not log in (we crashed or are debugging), so we need to
- // restore Sync.
- UserSessionManager::GetInstance()->RestoreAuthenticationSession(profile);
- }
- }
-}
-
} // namespace
namespace internal {
@@ -557,48 +510,11 @@ void ChromeBrowserMainPartsChromeos::PostProfileInit() {
BootTimesLoader::Get()->OnChromeProcessStart();
- // Restarting Chrome inside existing user session. Possible cases:
- // 1. Chrome is restarted after crash.
- // 2. Chrome is started in browser_tests skipping the login flow.
- // 3. Chrome is started on dev machine i.e. not on Chrome OS device w/o
- // login flow. In that case --login-user=[chromeos::login::kStubUser] is
- // added.
- // See PreEarlyInitialization().
- if (parsed_command_line().HasSwitch(switches::kLoginUser)) {
- std::string login_user = login::CanonicalizeUserID(
- parsed_command_line().GetSwitchValueASCII(
- chromeos::switches::kLoginUser));
- if (!base::SysInfo::IsRunningOnChromeOS() &&
- login_user == chromeos::login::kStubUser) {
- // For dev machines and stub user emulate as if sync has been initialized.
- profile()->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
- login_user);
- }
-
- // This is done in SessionManager::OnProfileCreated during normal login.
- UserSessionManager::GetInstance()->InitRlz(profile());
-
- // Send the PROFILE_PREPARED notification and call SessionStarted()
- // so that the Launcher and other Profile dependent classes are created.
- content::NotificationService::current()->Notify(
- chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED,
- content::NotificationService::AllSources(),
- content::Details<Profile>(profile()));
- UserManager::Get()->SessionStarted();
-
- // Now is the good time to retrieve other logged in users for this session.
- // First user has been already marked as logged in and active in
- // PreProfileInit(). Chrome should tread other user in a session as active
- // in the background.
- UserSessionManager::GetInstance()->RestoreActiveSessions();
- }
-
// Initialize the network portal detector for Chrome OS. The network
// portal detector starts to listen for notifications from
// NetworkStateHandler and initiates captive portal detection for
- // active networks. Shoule be called before call to
- // OptionallyRunChromeOSLoginManager, because it depends on
- // NetworkPortalDetector.
+ // active networks. Should be called before call to CreateSessionManager,
+ // because it depends on NetworkPortalDetector.
NetworkPortalDetectorImpl::Initialize(
g_browser_process->system_request_context());
{
@@ -614,12 +530,10 @@ void ChromeBrowserMainPartsChromeos::PostProfileInit() {
detector->Enable(true);
}
- // Tests should be able to tune login manager before showing it.
- // Thus only show login manager in normal (non-testing) mode.
- if (!parameters().ui_task ||
- parsed_command_line().HasSwitch(switches::kForceLoginManagerInTests)) {
- OptionallyRunChromeOSLoginManager(parsed_command_line(), profile());
- }
+ bool is_running_test = parameters().ui_task != NULL;
+ g_browser_process->platform_part()->InitializeSessionManager(
+ parsed_command_line(), profile(), is_running_test);
+ g_browser_process->platform_part()->SessionManager()->Start();
// Guest user profile is never initialized with locale settings,
// so we need special handling for Guest session.
@@ -810,6 +724,8 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() {
NetworkPortalDetector::Shutdown();
UserManager::Destroy();
+
+ g_browser_process->platform_part()->ShutdownSessionManager();
}
void ChromeBrowserMainPartsChromeos::PostDestroyThreads() {
« no previous file with comments | « chrome/browser/chromeos/chrome_browser_main_chromeos.h ('k') | chrome/browser/chromeos/login/login_utils_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698