Index: ui/views/controls/webview/web_dialog_view.cc |
diff --git a/ui/views/controls/webview/web_dialog_view.cc b/ui/views/controls/webview/web_dialog_view.cc |
index 079200cfac01d53b2c671055169a1042c178c9be..7f88f022f555aded4b77ba86ed6897e59fcc02f9 100644 |
--- a/ui/views/controls/webview/web_dialog_view.cc |
+++ b/ui/views/controls/webview/web_dialog_view.cc |
@@ -100,6 +100,11 @@ void WebDialogView::ViewHierarchyChanged( |
} |
bool WebDialogView::CanClose() { |
+ // Don't close UI if |delegate_| does not allow users to close it by |
+ // clicking on "x" button or pressing Esc shortcut key on hosting dialog. |
+ if (!delegate_->CanCloseDialog() && !close_contents_called_) |
+ return false; |
+ |
// If CloseContents() is called before CanClose(), which is called by |
// RenderViewHostImpl::ClosePageIgnoringUnloadEvents, it indicates |
// beforeunload event should not be fired during closing. |