| Index: chrome/browser/ui/browser_list.cc
|
| diff --git a/chrome/browser/ui/browser_list.cc b/chrome/browser/ui/browser_list.cc
|
| index 52ac775ba1fedcecc87951301519a0d76178b5ab..69f8bec349ab96c1c38b747d69772ba69c0847fc 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::browser_shutdown::ImmediateShutdownAndExitProcess();
|
| }
|
|
|
| // static
|
|
|