From 10ed5d699f149d579c38580c25156dec6aad09c9 Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Fri, 4 Jan 2013 12:36:39 +0000 Subject: [PATCH] Fix an assertion when exiting the browser after a popup window has been canceled (issue #830). git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@975 5089003a-bbd8-11dd-ad1f-f1f9622dbc98 --- libcef/browser/content_browser_client.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libcef/browser/content_browser_client.cc b/libcef/browser/content_browser_client.cc index 42ef672df..4b4ea7d4b 100644 --- a/libcef/browser/content_browser_client.cc +++ b/libcef/browser/content_browser_client.cc @@ -319,8 +319,15 @@ void CefContentBrowserClient::DestroyAllBrowsers() { BrowserInfoList::iterator it = list.begin(); for (; it != list.end(); ++it) { CefRefPtr browser = (*it)->browser(); - if (browser.get()) + if (browser.get()) { + // DestroyBrowser will call RemoveBrowserInfo. browser->DestroyBrowser(); + } else { + // Canceled popup windows may have browser info but no browser because + // CefBrowserMessageFilter::OnGetNewBrowserInfo is still called. + DCHECK((*it)->is_popup()); + RemoveBrowserInfo(*it); + } } }