Index: ui/views/widget/desktop_aura/desktop_root_window_host_win.cc |
diff --git a/ui/views/widget/desktop_aura/desktop_root_window_host_win.cc b/ui/views/widget/desktop_aura/desktop_root_window_host_win.cc |
index 0a8596d836d1e97a22391e7966aa3e593359284e..c7e005b092e623bce3e0da3abfd9ad68e5746c20 100644 |
--- a/ui/views/widget/desktop_aura/desktop_root_window_host_win.cc |
+++ b/ui/views/widget/desktop_aura/desktop_root_window_host_win.cc |
@@ -88,7 +88,6 @@ DesktopWindowTreeHostWin::DesktopWindowTreeHostWin( |
} |
DesktopWindowTreeHostWin::~DesktopWindowTreeHostWin() { |
- DestroyCompositor(); |
// WARNING: |content_window_| has been destroyed by the time we get here. |
desktop_native_widget_aura_->OnDesktopWindowTreeHostDestroyed( |
root_window_); |
@@ -765,10 +764,15 @@ void DesktopWindowTreeHostWin::HandleCreate() { |
void DesktopWindowTreeHostWin::HandleDestroying() { |
drag_drop_client_->OnNativeWidgetDestroying(GetHWND()); |
native_widget_delegate_->OnNativeWidgetDestroying(); |
+ |
+ // Destroy the compositor before destroying the HWND since shutdown |
+ // may try to swap to the window. |
+ DestroyCompositor(); |
} |
void DesktopWindowTreeHostWin::HandleDestroyed() { |
desktop_native_widget_aura_->OnHostClosed(); |
+ DCHECK_EQ(static_cast<HWND>(NULL), GetHWND()); |
} |
bool DesktopWindowTreeHostWin::HandleInitialFocus() { |