Commit e78efab9 authored by Jacob Dufault's avatar Jacob Dufault Committed by Commit Bot

cros: Fix crash when showing user-add screen.

Bug: 855650
Change-Id: Ib9abc4447eb81365439611953e641d30f97cc58d
Reviewed-on: https://chromium-review.googlesource.com/1112344Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Commit-Queue: Jacob Dufault <jdufault@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569695}
parent 57b856f8
......@@ -135,7 +135,7 @@ class LoginDisplay {
protected:
// Login UI delegate (controller).
Delegate* delegate_;
Delegate* delegate_ = nullptr;
// Parent window, might be used to create dialog windows.
gfx::NativeWindow parent_window_ = nullptr;
......
......@@ -647,8 +647,7 @@ void LoginDisplayHostWebUI::OnStartUserAdding() {
NOTIMPLEMENTED();
}
existing_user_controller_.reset(); // Only one controller in a time.
existing_user_controller_.reset(new ExistingUserController(this));
CreateExistingUserController();
if (!signin_screen_controller_.get()) {
signin_screen_controller_.reset(new SignInScreenController(GetOobeUI()));
......@@ -698,9 +697,7 @@ void LoginDisplayHostWebUI::OnStartSignInScreen(
}
DVLOG(1) << "Starting sign in screen";
existing_user_controller_.reset(); // Only one controller in a time.
existing_user_controller_.reset(new ExistingUserController(this));
login_display_->set_delegate(existing_user_controller_.get());
CreateExistingUserController();
if (!signin_screen_controller_.get()) {
signin_screen_controller_.reset(new SignInScreenController(GetOobeUI()));
......@@ -1138,6 +1135,13 @@ void LoginDisplayHostWebUI::OnLoginPromptVisible() {
TryToPlayOobeStartupSound();
}
void LoginDisplayHostWebUI::CreateExistingUserController() {
// There can only be one |ExistingUserController| instance at a time.
existing_user_controller_.reset();
existing_user_controller_.reset(new ExistingUserController(this));
login_display_->set_delegate(existing_user_controller_.get());
}
// static
void LoginDisplayHostWebUI::DisableRestrictiveProxyCheckForTest() {
default_host()
......
......@@ -177,6 +177,9 @@ class LoginDisplayHostWebUI : public LoginDisplayHostCommon,
// Called when login-prompt-visible signal is caught.
void OnLoginPromptVisible();
// Creates or recreates |existing_user_controller_|.
void CreateExistingUserController();
// Sign in screen controller.
std::unique_ptr<ExistingUserController> existing_user_controller_;
......
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