Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / views / frame / desktop_browser_frame_aura.cc
index 8b5bb71..9374e1d 100644 (file)
@@ -5,7 +5,8 @@
 #include "chrome/browser/ui/views/frame/desktop_browser_frame_aura.h"
 
 #include "chrome/app/chrome_command_ids.h"
-#include "chrome/browser/ui/views/frame/browser_desktop_root_window_host.h"
+#include "chrome/browser/ui/views/frame/browser_desktop_window_tree_host.h"
+#include "chrome/browser/ui/views/frame/browser_shutdown.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
 #include "chrome/browser/ui/views/frame/desktop_user_action_handler_aura.h"
 #include "grit/chromium_strings.h"
@@ -32,7 +33,7 @@ DesktopBrowserFrameAura::DesktopBrowserFrameAura(
     : views::DesktopNativeWidgetAura(browser_frame),
       browser_view_(browser_view),
       browser_frame_(browser_frame),
-      browser_desktop_root_window_host_(NULL) {
+      browser_desktop_window_tree_host_(NULL) {
   GetNativeWindow()->SetName("BrowserFrameAura");
 }
 
@@ -46,21 +47,25 @@ DesktopBrowserFrameAura::~DesktopBrowserFrameAura() {
 // DesktopBrowserFrameAura, views::DesktopNativeWidgetAura overrides:
 
 void DesktopBrowserFrameAura::OnHostClosed() {
+  // 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_view_->browser());
   aura::client::SetVisibilityClient(GetNativeView()->GetRootWindow(), NULL);
   DesktopNativeWidgetAura::OnHostClosed();
 }
 
 void DesktopBrowserFrameAura::InitNativeWidget(
     const views::Widget::InitParams& params) {
-  browser_desktop_root_window_host_ =
+  browser_desktop_window_tree_host_ =
       BrowserDesktopWindowTreeHost::CreateBrowserDesktopWindowTreeHost(
           browser_frame_,
           this,
           browser_view_,
           browser_frame_);
   views::Widget::InitParams modified_params = params;
-  modified_params.desktop_root_window_host =
-      browser_desktop_root_window_host_->AsDesktopWindowTreeHost();
+  modified_params.desktop_window_tree_host =
+      browser_desktop_window_tree_host_->AsDesktopWindowTreeHost();
   DesktopNativeWidgetAura::InitNativeWidget(modified_params);
 
   user_action_client_.reset(
@@ -87,9 +92,9 @@ const views::NativeWidget* DesktopBrowserFrameAura::AsNativeWidget() const {
 }
 
 bool DesktopBrowserFrameAura::UsesNativeSystemMenu() const {
-  return browser_desktop_root_window_host_->UsesNativeSystemMenu();
+  return browser_desktop_window_tree_host_->UsesNativeSystemMenu();
 }
 
 int DesktopBrowserFrameAura::GetMinimizeButtonOffset() const {
-  return browser_desktop_root_window_host_->GetMinimizeButtonOffset();
+  return browser_desktop_window_tree_host_->GetMinimizeButtonOffset();
 }