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 |