diff options
author | Mike Lerman <mlerman@chromium.org> | 2014-11-10 15:24:22 -0500 |
---|---|---|
committer | Mike Lerman <mlerman@chromium.org> | 2014-11-10 20:26:09 +0000 |
commit | 891f05c298219bc767c3f2a8c9039a8e2bf02ca9 (patch) | |
tree | 337c7fd187dde9ff7ba782148893652d9d9abb27 | |
parent | 13bde0d765f6a2ae6fa8e8f8b5ca33ff4dddbb27 (diff) | |
download | chromium_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.cc | 9 |
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 |