Introduce SessionManager that will contain code to start user session on Chrome OS

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

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=276626

Review URL: https://codereview.chromium.org/318853004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277238 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 9a241528..a2e5a62 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -144,8 +144,8 @@
 #include "chrome/browser/chromeos/file_system_provider/service.h"
 #include "chrome/browser/chromeos/first_run/first_run.h"
 #include "chrome/browser/chromeos/login/default_pinned_apps_field_trial.h"
-#include "chrome/browser/chromeos/login/login_utils.h"
 #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.h"
+#include "chrome/browser/chromeos/login/session/session_manager.h"
 #include "chrome/browser/chromeos/login/startup_utils.h"
 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h"
 #include "chrome/browser/chromeos/login/users/avatar/user_image_sync_observer.h"
@@ -170,6 +170,7 @@
 #include "chrome/browser/ui/webui/chromeos/charger_replacement_handler.h"
 #include "chrome/browser/ui/webui/chromeos/login/hid_detection_screen_handler.h"
 #include "chrome/browser/ui/webui/chromeos/login/network_screen_handler.h"
+#include "chrome/browser/ui/webui/chromeos/login/reset_screen_handler.h"
 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h"
 #else
 #include "chrome/browser/extensions/default_apps.h"
@@ -296,14 +297,15 @@
   chromeos::default_pinned_apps_field_trial::RegisterPrefs(registry);
   chromeos::language_prefs::RegisterPrefs(registry);
   chromeos::KioskAppManager::RegisterPrefs(registry);
-  chromeos::LoginUtils::RegisterPrefs(registry);
   chromeos::MultiProfileUserController::RegisterPrefs(registry);
   chromeos::HIDDetectionScreenHandler::RegisterPrefs(registry);
   chromeos::NetworkScreenHandler::RegisterPrefs(registry);
   chromeos::Preferences::RegisterPrefs(registry);
   chromeos::proxy_config::RegisterPrefs(registry);
   chromeos::RegisterDisplayLocalStatePrefs(registry);
+  chromeos::ResetScreenHandler::RegisterPrefs(registry);
   chromeos::ServicesCustomizationDocument::RegisterPrefs(registry);
+  chromeos::SessionManager::RegisterPrefs(registry);
   chromeos::SigninScreenHandler::RegisterPrefs(registry);
   chromeos::system::AutomaticRebootManager::RegisterPrefs(registry);
   chromeos::UserImageManager::RegisterPrefs(registry);