Index: chrome/browser/lifetime/application_lifetime.cc |
diff --git a/chrome/browser/lifetime/application_lifetime.cc b/chrome/browser/lifetime/application_lifetime.cc |
index d7d2e58089f28c607e51c4a941908729bf25c8d8..15d701d5981d6c6cee8ae1275e7dde55e0b304dd 100644 |
--- a/chrome/browser/lifetime/application_lifetime.cc |
+++ b/chrome/browser/lifetime/application_lifetime.cc |
@@ -307,6 +307,13 @@ void SessionEnding() { |
browser_shutdown::OnShutdownStarting(browser_shutdown::END_SESSION); |
+ // In a clean shutdown, browser_shutdown::OnShutdownStarting sets |
+ // g_shutdown_type, and browser_shutdown::ShutdownPreThreadsStop calls |
+ // RecordShutdownInfoPrefs to update the pref with the value. However, here |
+ // the process is going to exit without calling ShutdownPreThreadsStop. |
+ // Instead, here we call RecordShutdownInfoPrefs to record the shutdown info. |
+ browser_shutdown::RecordShutdownInfoPrefs(); |
+ |
content::NotificationService::current()->Notify( |
chrome::NOTIFICATION_CLOSE_ALL_BROWSERS_REQUEST, |
content::NotificationService::AllSources(), |