| Index: ui/views/widget/desktop_aura/desktop_root_window_host_x11.cc
|
| diff --git a/ui/views/widget/desktop_aura/desktop_root_window_host_x11.cc b/ui/views/widget/desktop_aura/desktop_root_window_host_x11.cc
|
| index 71d690f918eccbe2b3b23f909b9f6516d8085537..5b1c88866007860e7ad910d866a170dd799211ac 100644
|
| --- a/ui/views/widget/desktop_aura/desktop_root_window_host_x11.cc
|
| +++ b/ui/views/widget/desktop_aura/desktop_root_window_host_x11.cc
|
| @@ -142,7 +142,6 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11(
|
| }
|
|
|
| DesktopWindowTreeHostX11::~DesktopWindowTreeHostX11() {
|
| - DestroyCompositor();
|
| root_window_->window()->ClearProperty(kHostForRootWindow);
|
| aura::client::SetWindowMoveClient(root_window_->window(), NULL);
|
| desktop_native_widget_aura_->OnDesktopWindowTreeHostDestroyed(root_window_);
|
| @@ -320,6 +319,11 @@ void DesktopWindowTreeHostX11::CloseNow() {
|
| desktop_native_widget_aura_->root_window_event_filter()->RemoveHandler(
|
| x11_window_event_filter_.get());
|
|
|
| + // Destroy the compositor before destroying the |xwindow_| since shutdown
|
| + // may try to swap, and the swap without a window causes an X error, which
|
| + // causes a crash with in-process renderer.
|
| + DestroyCompositor();
|
| +
|
| open_windows().remove(xwindow_);
|
| // Actually free our native resources.
|
| base::MessagePumpX11::Current()->RemoveDispatcherForWindow(xwindow_);
|
|
|