• nkostylev@chromium.org's avatar
    [cros] Define session_manager component with SessionManager base class · b88d2c6e
    nkostylev@chromium.org authored
    SessionManager is responsible for performing Chrome OS-specific steps to re-launch user session (after crash/stub or in tests) or pre-session UI such as out-of-box or login.
    
    ChromeSessionManager is chrome/browser implementation of SessionManager.
    
    SessionManager is initialized with specific delegate that is reponsible for initial behavior. These delegates are introduced, see ChromeSessionManager::CreateSessionManager():
    
    * LoginOobeSessionManagerDelegate - launches either out-of-box or login UI,
    actual branching still happens in ShowLoginWizard()
    
    * RestoreAfterCrashSessionManagerDelegate - responsible for re-launching Chrome into existing user session,
    happens after browser process crash or in "stub user" session.
    
    * StubLoginSessionManagerDelegate - starts "stub user" session, when executed on non-CrOS machine w/o parameters or in tests. Extends RestoreAfterCrashSessionManagerDelegate.
    
    * KioskAutoLauncherSessionManagerDelegate - automatically starts kiosk app session.
    
    Code move in ChromeBrowserMainPartsChromeos:
    * OptionallyRunChromeOSLoginManager() -> ChromeSessionManager::CreateSessionManager()
    * RunAutoLaunchKioskApp() -> KioskAutoLauncherSessionManagerDelegate
    * Session restore code in PostProfileInit() -> RestoreAfterCrashSessionManagerDelegate
    * Blocks in OptionallyRunChromeOSLoginManager -> to delegates.
    
    BUG=387610
    
    Review URL: https://codereview.chromium.org/363613004
    
    git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283437 0039d316-1c4b-4281-b951-d872f2087c98
    b88d2c6e
user_manager_impl.cc 66.4 KB