Repro steps:
1. Creates a new user data directory to trigger OOBE;
2. Run "chrome --user-data-dir=<new_dir> --login-manager --enable-features=SingleProcessMash";
3. Press Ctrl+C
Chrome crashes on exit because the Ctrl+C code path is different from regular shutdown code path via chrome::AttemptUserExit. It does through chrome::ExitCleanly first. As a result, the underlying aura::Window is closed before the login screen widget. Crash happens when LoginDisplayHostWebUI attempts to close the widget.
Crashing Stack:
====
Received signal 11 SEGV_MAPERR ffffedeaaac5531c
#0 0x7fd6a7f9911f base::debug::StackTrace::StackTrace()
#1 0x7fd6a7f98c21 base::debug::(anonymous namespace)::StackDumpSignalHandler()
#2 0x7fd699eae0c0 <unknown>
#3 0x7fd6a1d80982 views::Widget::CloseWithReason()
#4 0x560fef00d2a2 chromeos::LoginDisplayHostWebUI::ResetLoginWindowAndView()
#5 0x560fef00d11b chromeos::LoginDisplayHostWebUI::~LoginDisplayHostWebUI()
#6 0x560fef00d40e chromeos::LoginDisplayHostWebUI::~LoginDisplayHostWebUI()
#7 0x7fd6a7eaace1 base::debug::TaskAnnotator::RunTask()
#8 0x7fd6a7ed5bf0 base::MessageLoopImpl::RunTask()
#9 0x7fd6a7ed6283 base::MessageLoopImpl::DoWork()
#10 0x7fd6a7fbc949 base::MessagePumpLibevent::Run()
#11 0x7fd6a7ed5798 base::MessageLoopImpl::Run()
#12 0x7fd6a7f07099 base::RunLoop::Run()
#13 0x560fef6112eb ChromeBrowserMainParts::MainMessageLoopRun()
#14 0x7fd6a4df6614 content::BrowserMainLoop::RunMainMessageLoopParts()
#15 0x7fd6a4df8c36 content::BrowserMainRunnerImpl::Run()
#16 0x7fd6a4df3252 content::BrowserMain()
#17 0x7fd6a58c7c11 content::ContentMainRunnerImpl::RunServiceManager()
#18 0x7fd6a58c7824 content::ContentMainRunnerImpl::Run()
#19 0x7fd6980992d9 service_manager::Main()
#20 0x7fd6a58c5d94 content::ContentMain()
#21 0x560fee65e523 ChromeMain
#22 0x7fd6985d42b1 __libc_start_main
#23 0x560fee65e39a _start
Comment 1 by bugdroid1@chromium.org
, Dec 19