• nkostylev@chromium.org's avatar
    Introduce SessionManager that will contain code to start user session on Chrome OS · 02c84017
    nkostylev@chromium.org authored
    Move profile creation / session initialization (prefs/RLZ) as well as some of OAuth session init
    related code from LoginUtils to SessionManager. LoginUtils will temporarily implement
    SessionManager::Delegate interface till existing test coverage is migrated from LoginUtils interface.
    SessionManager will later use concept of UserSession (see design proposal at http://goto/cros-login-c14n).
    
    LoginUtils::OnPrepareProfile() is split into
    StartSession()
    --PreStartSession() - things like switching logging dest
    --CreateUserSession() - will eventually create UserSession instance
    --StartCrosSession() - notify cros::SessionManager
    --NotifyUserLoggedIn() - UserManager::UserLoggedIn()
    --PrepareProfile()
    
    PrepareProfile() - calls PM::CreateProfileAsync()
    --OnProfileCreated()
    ----InitProfilePreferences() - early initialization
    ----UserProfileInitialized()
    ------transfer signin profile auth date (cookies/proxy auth/certs)
    ------RestoreAuthSessionImpl() - OAuth2LoginManager::RestoreSession()
    ----FinalizePrepareProfile(()
    ------Own TPM (if it didn't happen for some reason)
    ------Notify SAML offline signin limiter
    ------Notify ProfileImpl
    ------chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED
    ------InitRLZ (for primary user)
      
    
    Minor cleanup
    * Unify DemoApp profile initialization flow with regular one
    * Don't pass display_email to LoginUtils::PrepareProfile
    * Move powerwash related prefs registration to ResetScreenHandler
    * Cleanup M31 migration code for |prefs::kProfileIsManaged| in LoginUtilsImpl::InitProfilePreferences()
    
    BUG=370175,276163
    
    Review URL: https://codereview.chromium.org/318853004
    
    git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276626 0039d316-1c4b-4281-b951-d872f2087c98
    02c84017
session_manager.h 5.94 KB