diff --git a/docs/api/browser-window.md b/docs/api/browser-window.md index 8e3798806a64..338d83ddf0db 100644 --- a/docs/api/browser-window.md +++ b/docs/api/browser-window.md @@ -369,6 +369,8 @@ It creates a new `BrowserWindow` with native properties as set by the `options`. consecutive dialog protection is triggered. If not defined the default message would be used, note that currently the default message is in English and not localized. + * `disableDialogs` Boolean (optional) - Whether to disable dialogs + completely. Overrides `safeDialogs`. Default is `false`. * `navigateOnDragDrop` Boolean (optional) - Whether dragging and dropping a file or link onto the page causes a navigation. Default is `false`. * `autoplayPolicy` String (optional) - Autoplay policy to apply to diff --git a/shell/browser/electron_javascript_dialog_manager.cc b/shell/browser/electron_javascript_dialog_manager.cc index 307ffd6b5e54..1aa1247d1b71 100644 --- a/shell/browser/electron_javascript_dialog_manager.cc +++ b/shell/browser/electron_javascript_dialog_manager.cc @@ -61,6 +61,12 @@ void ElectronJavaScriptDialogManager::RunJavaScriptDialog( return; } + auto* web_preferences = WebContentsPreferences::From(web_contents); + + if (web_preferences && web_preferences->IsEnabled("disableDialogs")) { + return std::move(callback).Run(false, base::string16()); + } + // No default button int default_id = -1; int cancel_id = 0; @@ -75,7 +81,6 @@ void ElectronJavaScriptDialogManager::RunJavaScriptDialog( origin_counts_[origin]++; - auto* web_preferences = WebContentsPreferences::From(web_contents); std::string checkbox; if (origin_counts_[origin] > 1 && web_preferences && web_preferences->IsEnabled("safeDialogs") &&