Index: chrome/browser/ui/views/frame/browser_view.cc |
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc |
index 2eb4e5135e4df4ad6b7d16d114f9312699730ab9..6a4fde72c3cfcdf11791dc75b8fbf128e153ac26 100644 |
--- a/chrome/browser/ui/views/frame/browser_view.cc |
+++ b/chrome/browser/ui/views/frame/browser_view.cc |
@@ -71,6 +71,7 @@ |
#include "chrome/browser/ui/views/extensions/bookmark_app_confirmation_view.h" |
#include "chrome/browser/ui/views/extensions/extension_keybinding_registry_views.h" |
#include "chrome/browser/ui/views/find_bar_host.h" |
+#include "chrome/browser/ui/views/frame/browser_shutdown.h" |
#include "chrome/browser/ui/views/frame/browser_view_layout.h" |
#include "chrome/browser/ui/views/frame/browser_view_layout_delegate.h" |
#include "chrome/browser/ui/views/frame/contents_layout_manager.h" |
@@ -1775,6 +1776,13 @@ void BrowserView::OnWidgetActivationChanged(views::Widget* widget, |
} |
} |
+void BrowserView::OnWidgetDestroying(views::Widget* widget) { |
+ // Destroy any remaining WebContents early on. Doing so may result in |
+ // calling back to one of the Views/LayoutManagers or supporting classes of |
+ // BrowserView. By destroying here we ensure all said classes are valid. |
+ DestroyBrowserWebContents(browser()); |
tapted
2016/05/30 23:43:55
BrowserFrameAsh::OnWindowDestroying() also calls t
kirr
2016/05/31 12:11:44
Done. Thanks.
|
+} |
+ |
void BrowserView::OnWindowBeginUserBoundsChange() { |
WebContents* web_contents = GetActiveWebContents(); |
if (!web_contents) |