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); + } } }