Index: chrome/browser/profiles/profile_manager.cc |
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc |
index af82b91d099118b7ebee489a30357e7d602f0dc8..6ed922ec7d0cd9f93e525f80976eae7f409880b3 100644 |
--- a/chrome/browser/profiles/profile_manager.cc |
+++ b/chrome/browser/profiles/profile_manager.cc |
@@ -639,6 +639,13 @@ void ProfileManager::BrowserListObserver::OnBrowserRemoved( |
void ProfileManager::BrowserListObserver::OnBrowserSetLastActive( |
Browser* browser) { |
+ // If all browsers are being closed (e.g. the user is in the process of |
+ // shutting down), this event will be fired after each browser is |
+ // closed. This does not represent a user intention to change the active |
+ // browser so is not handled here. |
+ if (profile_manager_->closing_all_browsers_) |
+ return; |
+ |
Profile* last_active = browser->profile(); |
PrefService* local_state = g_browser_process->local_state(); |
DCHECK(local_state); |