| Index: chrome/browser/ui/browser_list.cc
|
| diff --git a/chrome/browser/ui/browser_list.cc b/chrome/browser/ui/browser_list.cc
|
| index daaead65e414840c0c2c728f111c15a82183655a..6827139aa6d59fae377489df8bef507e8bfd65df 100644
|
| --- a/chrome/browser/ui/browser_list.cc
|
| +++ b/chrome/browser/ui/browser_list.cc
|
| @@ -20,6 +20,7 @@
|
| #include "chrome/common/chrome_notification_types.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "content/browser/tab_contents/navigation_details.h"
|
| +#include "content/public/browser/browser_shutdown.h"
|
| #include "content/public/browser/notification_registrar.h"
|
| #include "content/public/browser/notification_service.h"
|
| #include "content/public/browser/render_process_host.h"
|
| @@ -548,7 +549,12 @@ void BrowserList::ExitCleanly() {
|
| }
|
| #endif
|
|
|
| -static void TimeLimitedSessionEnding() {
|
| +// static
|
| +void BrowserList::SessionEnding() {
|
| + // This is a time-limited shutdown where we need to write as much to
|
| + // disk as we can as soon as we can, and where we must kill the
|
| + // process within a hang timeout to avoid user prompts.
|
| +
|
| // Start watching for hang during shutdown, and crash it if takes too long.
|
| // We disarm when |shutdown_watcher| object is destroyed, which is when we
|
| // exit this function.
|
| @@ -582,23 +588,8 @@ static void TimeLimitedSessionEnding() {
|
| content::NotificationService::AllSources(),
|
| content::NotificationService::NoDetails());
|
|
|
| - // And shutdown.
|
| - browser_shutdown::Shutdown();
|
| -}
|
| -
|
| -// static
|
| -void BrowserList::SessionEnding() {
|
| - TimeLimitedSessionEnding();
|
| -
|
| -#if defined(OS_WIN)
|
| - // At this point the message loop is still running yet we've shut everything
|
| - // down. If any messages are processed we'll likely crash. Exit now.
|
| - ExitProcess(content::RESULT_CODE_NORMAL_EXIT);
|
| -#elif defined(OS_POSIX) && !defined(OS_MACOSX)
|
| - _exit(content::RESULT_CODE_NORMAL_EXIT);
|
| -#else
|
| - NOTIMPLEMENTED();
|
| -#endif
|
| + // This will end by terminating the process.
|
| + content::ImmediateShutdownAndExitProcess();
|
| }
|
|
|
| // static
|
|
|