Index: ui/views/window/dialog_delegate.cc |
diff --git a/ui/views/window/dialog_delegate.cc b/ui/views/window/dialog_delegate.cc |
index 33a1b9aac9e8300cf97da4df5867beddf9b0039b..711554d6e3ab87c2425b527834ca9a5f97487256 100644 |
--- a/ui/views/window/dialog_delegate.cc |
+++ b/ui/views/window/dialog_delegate.cc |
@@ -151,7 +151,10 @@ ui::AccessibilityTypes::Role DialogDelegate::GetAccessibleWindowRole() const { |
//////////////////////////////////////////////////////////////////////////////// |
// DialogDelegateView: |
-DialogDelegateView::DialogDelegateView() {} |
+DialogDelegateView::DialogDelegateView() { |
+ // A WidgetDelegate should be deleted on DeleteDelegate. |
+ set_owned_by_client(); |
+} |
DialogDelegateView::~DialogDelegateView() {} |
@@ -162,6 +165,10 @@ Widget* DialogDelegateView::CreateDialogWidget(DialogDelegateView* dialog, |
return CreateDialogWidgetImpl(dialog, context, parent); |
} |
+void DialogDelegateView::DeleteDelegate() { |
+ delete this; |
+} |
+ |
Widget* DialogDelegateView::GetWidget() { |
return View::GetWidget(); |
} |