This is probably a SystemTrayDelegate issue. We should not be creating a UserView at the login screen at all.
I suspect something is wrong with LoginStatus when creating the system tray bubble.
One clue:
views::View* TrayUser::CreateDefaultView(LoginStatus status) {
if (status == LoginStatus::NOT_LOGGED_IN)
return nullptr;
const SessionStateDelegate* session_state_delegate =
WmShell::Get()->GetSessionStateDelegate();
// If the screen is locked or a system modal dialog box is shown, show only
// the currently active user.
if (user_index_ && (session_state_delegate->IsUserSessionBlocked() ||
WmShell::Get()->IsSystemModalWindowOpen()))
return nullptr;
CHECK(user_ == nullptr);
int logged_in_users = session_state_delegate->NumberOfLoggedInUsers();
// Do not show more UserView's then there are logged in users.
if (user_index_ >= logged_in_users)
return nullptr;
user_ = new tray::UserView(this, status, user_index_);
return user_;
}
This code in system_tray.cc might be the root cause:
LoginStatus login_status =
WmShell::Get()->system_tray_delegate()->GetUserLoginStatus();
bubble_->InitView(anchor, login_status, init_params);
I'll take a look.
Comment 1 by xiy...@chromium.org
, Mar 7 2017