| Index: chrome/browser/chromeos/chrome_browser_main_chromeos.cc
|
| diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
|
| index cf51aaf94624add6a7e3ec88f26fea70264e56e4..e8e397d56a18cebc5fbb6494e8bebb638bf173bb 100644
|
| --- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
|
| +++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
|
| @@ -78,6 +78,7 @@
|
| #include "chrome/browser/chromeos/status/data_promo_notification.h"
|
| #include "chrome/browser/chromeos/system/input_device_settings.h"
|
| #include "chrome/browser/chromeos/ui/low_disk_notification.h"
|
| +#include "chrome/browser/chromeos/ui/password_echo_controller.h"
|
| #include "chrome/browser/chromeos/upgrade_detector_chromeos.h"
|
| #include "chrome/browser/defaults.h"
|
| #include "chrome/browser/lifetime/application_lifetime.h"
|
| @@ -653,6 +654,10 @@ void ChromeBrowserMainPartsChromeos::PostProfileInit() {
|
|
|
| manager->SetState(session_manager->GetDefaultIMEState(profile()));
|
|
|
| + // Creates PasswordEchoController before SessionManager starts so that
|
| + // the login screen is covered as well.
|
| + password_echo_controller_.reset(new PasswordEchoController);
|
| +
|
| bool is_running_test = parameters().ui_task != nullptr;
|
| g_browser_process->platform_part()->InitializeSessionManager(
|
| parsed_command_line(), profile(), is_running_test);
|
| @@ -842,6 +847,9 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() {
|
| g_browser_process->platform_part()->browser_policy_connector_chromeos()->
|
| PreShutdown();
|
|
|
| + // Resets PasswordEchoController before ash shuts down.
|
| + password_echo_controller_.reset();
|
| +
|
| // We first call PostMainMessageLoopRun and then destroy UserManager, because
|
| // Ash needs to be closed before UserManager is destroyed.
|
| ChromeBrowserMainPartsLinux::PostMainMessageLoopRun();
|
|
|