Commit 123a1041 authored by Sergey Poromov's avatar Sergey Poromov Committed by Commit Bot

Add temporary logging for PS autologin.

Extensive logging during PS autologin is needed to debug
https://crbug.com/902315 which is reproducible only on official builds.
The plan is to temporary enable these logs on canary/dev channel.

Bug: 902315
Test: Manual
Change-Id: Ia4a9ae68e442f1eaa404dbc4408ecb5a8662a8f0
Reviewed-on: https://chromium-review.googlesource.com/c/1349346Reviewed-by: default avatarJacob Dufault <jdufault@chromium.org>
Commit-Queue: Sergey Poromov <poromov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611416}
parent 6113970f
...@@ -1284,6 +1284,7 @@ void ExistingUserController::LoginAsGuest() { ...@@ -1284,6 +1284,7 @@ void ExistingUserController::LoginAsGuest() {
void ExistingUserController::LoginAsPublicSession( void ExistingUserController::LoginAsPublicSession(
const UserContext& user_context) { const UserContext& user_context) {
VLOG(2) << "LoginAsPublicSession";
PerformPreLoginActions(user_context); PerformPreLoginActions(user_context);
// If there is no public account with the given user ID, logging in is not // If there is no public account with the given user ID, logging in is not
...@@ -1291,6 +1292,7 @@ void ExistingUserController::LoginAsPublicSession( ...@@ -1291,6 +1292,7 @@ void ExistingUserController::LoginAsPublicSession(
const user_manager::User* user = const user_manager::User* user =
user_manager::UserManager::Get()->FindUser(user_context.GetAccountId()); user_manager::UserManager::Get()->FindUser(user_context.GetAccountId());
if (!user || user->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT) { if (!user || user->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT) {
VLOG(2) << "Public session user not found";
PerformLoginFinishedActions(true /* start auto login timer */); PerformLoginFinishedActions(true /* start auto login timer */);
return; return;
} }
...@@ -1336,6 +1338,7 @@ void ExistingUserController::LoginAsPublicSession( ...@@ -1336,6 +1338,7 @@ void ExistingUserController::LoginAsPublicSession(
// The list of suitable keyboard layouts is constructed asynchronously. Once // The list of suitable keyboard layouts is constructed asynchronously. Once
// it has been retrieved, |SetPublicSessionKeyboardLayoutAndLogin| will // it has been retrieved, |SetPublicSessionKeyboardLayoutAndLogin| will
// select the first layout from the list and continue login. // select the first layout from the list and continue login.
VLOG(2) << "Requesting keyboard layouts for public session";
GetKeyboardLayoutsForLocale( GetKeyboardLayoutsForLocale(
base::Bind( base::Bind(
&ExistingUserController::SetPublicSessionKeyboardLayoutAndLogin, &ExistingUserController::SetPublicSessionKeyboardLayoutAndLogin,
...@@ -1363,6 +1366,7 @@ void ExistingUserController::ConfigureAutoLogin() { ...@@ -1363,6 +1366,7 @@ void ExistingUserController::ConfigureAutoLogin() {
std::string auto_login_account_id; std::string auto_login_account_id;
cros_settings_->GetString(kAccountsPrefDeviceLocalAccountAutoLoginId, cros_settings_->GetString(kAccountsPrefDeviceLocalAccountAutoLoginId,
&auto_login_account_id); &auto_login_account_id);
VLOG(2) << "Autologin account in prefs: " << auto_login_account_id;
const std::vector<policy::DeviceLocalAccount> device_local_accounts = const std::vector<policy::DeviceLocalAccount> device_local_accounts =
policy::GetDeviceLocalAccounts(cros_settings_); policy::GetDeviceLocalAccounts(cros_settings_);
...@@ -1373,6 +1377,7 @@ void ExistingUserController::ConfigureAutoLogin() { ...@@ -1373,6 +1377,7 @@ void ExistingUserController::ConfigureAutoLogin() {
if (it->account_id == auto_login_account_id) { if (it->account_id == auto_login_account_id) {
public_session_auto_login_account_id_ = public_session_auto_login_account_id_ =
AccountId::FromUserEmail(it->user_id); AccountId::FromUserEmail(it->user_id);
VLOG(2) << "PublicSession autologin found: " << it->user_id;
break; break;
} }
} }
...@@ -1382,6 +1387,7 @@ void ExistingUserController::ConfigureAutoLogin() { ...@@ -1382,6 +1387,7 @@ void ExistingUserController::ConfigureAutoLogin() {
public_session_auto_login_account_id_); public_session_auto_login_account_id_);
if (!public_session_user || public_session_user->GetType() != if (!public_session_user || public_session_user->GetType() !=
user_manager::USER_TYPE_PUBLIC_ACCOUNT) { user_manager::USER_TYPE_PUBLIC_ACCOUNT) {
VLOG(2) << "PublicSession autologin user not found";
public_session_auto_login_account_id_ = EmptyAccountId(); public_session_auto_login_account_id_ = EmptyAccountId();
} }
...@@ -1394,6 +1400,7 @@ void ExistingUserController::ConfigureAutoLogin() { ...@@ -1394,6 +1400,7 @@ void ExistingUserController::ConfigureAutoLogin() {
arc_kiosk_user->GetType() != user_manager::USER_TYPE_ARC_KIOSK_APP || arc_kiosk_user->GetType() != user_manager::USER_TYPE_ARC_KIOSK_APP ||
KioskAppLaunchError::Get() != KioskAppLaunchError::NONE) { KioskAppLaunchError::Get() != KioskAppLaunchError::NONE) {
arc_kiosk_auto_login_account_id_ = EmptyAccountId(); arc_kiosk_auto_login_account_id_ = EmptyAccountId();
VLOG(2) << "ARC Kiosk autologin user not found";
} }
if (!cros_settings_->GetInteger(kAccountsPrefDeviceLocalAccountAutoLoginDelay, if (!cros_settings_->GetInteger(kAccountsPrefDeviceLocalAccountAutoLoginDelay,
...@@ -1419,6 +1426,7 @@ void ExistingUserController::ResetAutoLoginTimer() { ...@@ -1419,6 +1426,7 @@ void ExistingUserController::ResetAutoLoginTimer() {
void ExistingUserController::OnPublicSessionAutoLoginTimerFire() { void ExistingUserController::OnPublicSessionAutoLoginTimerFire() {
CHECK(auto_launch_ready_ && public_session_auto_login_account_id_.is_valid()); CHECK(auto_launch_ready_ && public_session_auto_login_account_id_.is_valid());
VLOG(2) << "Public session autologin fired";
SigninSpecifics signin_specifics; SigninSpecifics signin_specifics;
signin_specifics.is_auto_login = true; signin_specifics.is_auto_login = true;
Login(UserContext(user_manager::USER_TYPE_PUBLIC_ACCOUNT, Login(UserContext(user_manager::USER_TYPE_PUBLIC_ACCOUNT,
...@@ -1428,6 +1436,7 @@ void ExistingUserController::OnPublicSessionAutoLoginTimerFire() { ...@@ -1428,6 +1436,7 @@ void ExistingUserController::OnPublicSessionAutoLoginTimerFire() {
void ExistingUserController::OnArcKioskAutoLoginTimerFire() { void ExistingUserController::OnArcKioskAutoLoginTimerFire() {
CHECK(auto_launch_ready_ && (arc_kiosk_auto_login_account_id_.is_valid())); CHECK(auto_launch_ready_ && (arc_kiosk_auto_login_account_id_.is_valid()));
VLOG(2) << "ARC kiosk autologin fired";
SigninSpecifics signin_specifics; SigninSpecifics signin_specifics;
signin_specifics.is_auto_login = true; signin_specifics.is_auto_login = true;
Login(UserContext(user_manager::USER_TYPE_ARC_KIOSK_APP, Login(UserContext(user_manager::USER_TYPE_ARC_KIOSK_APP,
...@@ -1436,6 +1445,8 @@ void ExistingUserController::OnArcKioskAutoLoginTimerFire() { ...@@ -1436,6 +1445,8 @@ void ExistingUserController::OnArcKioskAutoLoginTimerFire() {
} }
void ExistingUserController::StopAutoLoginTimer() { void ExistingUserController::StopAutoLoginTimer() {
VLOG(2) << "Stopping autologin timer that is "
<< (auto_login_timer_ ? "" : "not ") << "running";
if (auto_login_timer_) if (auto_login_timer_)
auto_login_timer_->Stop(); auto_login_timer_->Stop();
} }
...@@ -1466,8 +1477,15 @@ void ExistingUserController::StartAutoLoginTimer() { ...@@ -1466,8 +1477,15 @@ void ExistingUserController::StartAutoLoginTimer() {
if (!auto_launch_ready_ || is_login_in_progress_ || if (!auto_launch_ready_ || is_login_in_progress_ ||
(!public_session_auto_login_account_id_.is_valid() && (!public_session_auto_login_account_id_.is_valid() &&
!arc_kiosk_auto_login_account_id_.is_valid())) { !arc_kiosk_auto_login_account_id_.is_valid())) {
VLOG(2) << "Not starting autologin timer, because:";
VLOG_IF(2, !auto_launch_ready_) << "* Not ready;";
VLOG_IF(2, is_login_in_progress_) << "* Login is in process;";
VLOG_IF(2, (!public_session_auto_login_account_id_.is_valid() &&
!arc_kiosk_auto_login_account_id_.is_valid()))
<< "* No valid autologin account;";
return; return;
} }
VLOG(2) << "Starting autologin timer with delay: " << auto_login_delay_;
if (auto_login_timer_ && auto_login_timer_->IsRunning()) { if (auto_login_timer_ && auto_login_timer_->IsRunning()) {
StopAutoLoginTimer(); StopAutoLoginTimer();
...@@ -1478,11 +1496,15 @@ void ExistingUserController::StartAutoLoginTimer() { ...@@ -1478,11 +1496,15 @@ void ExistingUserController::StartAutoLoginTimer() {
auto_login_timer_.reset(new base::OneShotTimer); auto_login_timer_.reset(new base::OneShotTimer);
if (public_session_auto_login_account_id_.is_valid()) { if (public_session_auto_login_account_id_.is_valid()) {
VLOG(2) << "Public session autologin will be fired in " << auto_login_delay_
<< "ms";
auto_login_timer_->Start( auto_login_timer_->Start(
FROM_HERE, base::TimeDelta::FromMilliseconds(auto_login_delay_), FROM_HERE, base::TimeDelta::FromMilliseconds(auto_login_delay_),
base::Bind(&ExistingUserController::OnPublicSessionAutoLoginTimerFire, base::Bind(&ExistingUserController::OnPublicSessionAutoLoginTimerFire,
weak_factory_.GetWeakPtr())); weak_factory_.GetWeakPtr()));
} else { } else {
VLOG(2) << "ARC kiosk autologin will be fired in " << auto_login_delay_
<< "ms";
auto_login_timer_->Start( auto_login_timer_->Start(
FROM_HERE, base::TimeDelta::FromMilliseconds(auto_login_delay_), FROM_HERE, base::TimeDelta::FromMilliseconds(auto_login_delay_),
base::Bind(&ExistingUserController::OnArcKioskAutoLoginTimerFire, base::Bind(&ExistingUserController::OnArcKioskAutoLoginTimerFire,
...@@ -1555,6 +1577,8 @@ void ExistingUserController::SetPublicSessionKeyboardLayoutAndLogin( ...@@ -1555,6 +1577,8 @@ void ExistingUserController::SetPublicSessionKeyboardLayoutAndLogin(
void ExistingUserController::LoginAsPublicSessionInternal( void ExistingUserController::LoginAsPublicSessionInternal(
const UserContext& user_context) { const UserContext& user_context) {
// Only one instance of LoginPerformer should exist at a time. // Only one instance of LoginPerformer should exist at a time.
VLOG(2) << "LoginAsPublicSessionInternal for user: "
<< user_context.GetAccountId();
login_performer_.reset(nullptr); login_performer_.reset(nullptr);
login_performer_.reset(new ChromeLoginPerformer(this)); login_performer_.reset(new ChromeLoginPerformer(this));
login_performer_->LoginAsPublicSession(user_context); login_performer_->LoginAsPublicSession(user_context);
...@@ -1688,6 +1712,7 @@ void ExistingUserController::DoCompleteLogin( ...@@ -1688,6 +1712,7 @@ void ExistingUserController::DoCompleteLogin(
void ExistingUserController::DoLogin(const UserContext& user_context, void ExistingUserController::DoLogin(const UserContext& user_context,
const SigninSpecifics& specifics) { const SigninSpecifics& specifics) {
last_login_attempt_was_auto_login_ = specifics.is_auto_login; last_login_attempt_was_auto_login_ = specifics.is_auto_login;
VLOG(2) << "DoLogin with a user type: " << user_context.GetUserType();
if (user_context.GetUserType() == user_manager::USER_TYPE_GUEST) { if (user_context.GetUserType() == user_manager::USER_TYPE_GUEST) {
if (!specifics.guest_mode_url.empty()) { if (!specifics.guest_mode_url.empty()) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment