Index: views/widget/native_widget_aura.cc |
diff --git a/views/widget/native_widget_aura.cc b/views/widget/native_widget_aura.cc |
index ee23f426f26c5b6a1d6c38078c1d2759ddc09c7a..cfa5a6a8de8b7c2496cf8a3edbfb8e2030c0f798 100644 |
--- a/views/widget/native_widget_aura.cc |
+++ b/views/widget/native_widget_aura.cc |
@@ -350,7 +350,13 @@ void NativeWidgetAura::SetShape(gfx::NativeRegion region) { |
} |
void NativeWidgetAura::Close() { |
- Hide(); |
+ // |window_| may already be deleted by parent window. This can happen |
+ // when this widget is child widget or has transient parent |
+ // and ownership is WIDGET_OWNS_NATIVE_WIDGET. |
+ DCHECK(window_ || |
+ ownership_ == Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET); |
+ if (window_) |
+ Hide(); |
if (!close_widget_factory_.HasWeakPtrs()) { |
MessageLoop::current()->PostTask( |