summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Lerman <mlerman@chromium.org>2014-11-10 15:24:22 -0500
committerMike Lerman <mlerman@chromium.org>2014-11-10 20:26:09 +0000
commit891f05c298219bc767c3f2a8c9039a8e2bf02ca9 (patch)
tree337c7fd187dde9ff7ba782148893652d9d9abb27
parent13bde0d765f6a2ae6fa8e8f8b5ca33ff4dddbb27 (diff)
downloadchromium_src-891f05c298219bc767c3f2a8c9039a8e2bf02ca9.zip
chromium_src-891f05c298219bc767c3f2a8c9039a8e2bf02ca9.tar.gz
chromium_src-891f05c298219bc767c3f2a8c9039a8e2bf02ca9.tar.bz2
Check window still exists before closing, after processing beforeunload handlers.
BUG=423229 Review URL: https://codereview.chromium.org/711533002 Cr-Commit-Position: refs/heads/master@{#303088} (cherry picked from commit 20db4f3b305540751e0db3d7360e0e7e5a8a478a) Conflicts: chrome/browser/ui/browser_list.cc R=pkasting@chromium.org Review URL: https://codereview.chromium.org/690713006 Cr-Commit-Position: refs/branch-heads/2171@{#393} Cr-Branched-From: 267aeeb8d85c8503a7fd12bd14654b8ea78d3974-refs/heads/master@{#297060}
-rw-r--r--chrome/browser/ui/browser_list.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/chrome/browser/ui/browser_list.cc b/chrome/browser/ui/browser_list.cc
index 851a9f8..b9d6317 100644
--- a/chrome/browser/ui/browser_list.cc
+++ b/chrome/browser/ui/browser_list.cc
@@ -162,9 +162,12 @@ void BrowserList::TryToCloseBrowserList(const BrowserVector& browsers_to_close,
on_close_success.Run(profile_path);
- for (BrowserVector::const_iterator it = browsers_to_close.begin();
- it != browsers_to_close.end(); ++it)
- (*it)->window()->Close();
+ for (Browser* b : browsers_to_close) {
+ // BeforeUnload handlers may close browser windows, so we need to explicitly
+ // check whether they still exist.
+ if (b->window())
+ b->window()->Close();
+ }
}
// static