| Index: ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc | 
| diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc | 
| index 2b0f75652ed29a0efafe6783f47230401f2bbfc8..7889e4767e34e499cec8cd6f7261607df108e904 100644 | 
| --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc | 
| +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc | 
| @@ -1653,6 +1653,7 @@ void DesktopWindowTreeHostX11::MapWindow(ui::WindowShowState show_state) { | 
| 1); | 
| } | 
|  | 
| +  x_map_window_was_called_ = true; | 
| XMapWindow(xdisplay_, xwindow_); | 
|  | 
| // We now block until our window is mapped. Some X11 APIs will crash and | 
| @@ -1661,6 +1662,7 @@ void DesktopWindowTreeHostX11::MapWindow(ui::WindowShowState show_state) { | 
| if (ui::X11EventSource::GetInstance()) | 
| ui::X11EventSource::GetInstance()->BlockUntilWindowMapped(xwindow_); | 
| window_mapped_ = true; | 
| +  x_map_window_was_called_ = false; | 
|  | 
| UpdateMinAndMaxSize(); | 
|  | 
| @@ -1883,6 +1885,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent( | 
| break; | 
| } | 
| case MapNotify: { | 
| +      CHECK(x_map_window_was_called_) | 
| +          << "Received MapNotify event despite never calling XMapWindow(). " | 
| +          << "(This is debugging state for crbug.com/381732.)"; | 
| + | 
| FOR_EACH_OBSERVER(DesktopWindowTreeHostObserverX11, | 
| observer_list_, | 
| OnWindowMapped(xwindow_)); | 
|  |