diff options
Diffstat (limited to 'toolkit/components/jsdownloads')
-rw-r--r-- | toolkit/components/jsdownloads/src/DownloadUIHelper.jsm | 51 |
1 files changed, 17 insertions, 34 deletions
diff --git a/toolkit/components/jsdownloads/src/DownloadUIHelper.jsm b/toolkit/components/jsdownloads/src/DownloadUIHelper.jsm index 5bd351ee9..ce165205b 100644 --- a/toolkit/components/jsdownloads/src/DownloadUIHelper.jsm +++ b/toolkit/components/jsdownloads/src/DownloadUIHelper.jsm @@ -124,52 +124,35 @@ this.DownloadPrompter.prototype = { /** * Displays a warning message box that informs that the specified file is - * executable, and asks whether the user wants to launch it. The user is - * given the option of disabling future instances of this warning. + * executable, and asks whether the user wants to launch it. * * @param aPath * String containing the full path to the file to be opened. * - * @return {Promise} * @resolves Boolean indicating whether the launch operation can continue. - * @rejects JavaScript exception. */ - confirmLaunchExecutable: function (aPath) + async confirmLaunchExecutable: function (aPath) { - const kPrefAlertOnEXEOpen = "browser.download.manager.alertOnEXEOpen"; + const kPrefConfirmOpenExe = "browser.download.confirmOpenExecutable"; - try { - // Always launch in case we have no prompter implementation. - if (!this._prompter) { - return Promise.resolve(true); - } - - try { - if (!Services.prefs.getBoolPref(kPrefAlertOnEXEOpen)) { - return Promise.resolve(true); - } - } catch (ex) { - // If the preference does not exist, continue with the prompt. - } - - let leafName = OS.Path.basename(aPath); - - let s = DownloadUIHelper.strings; - let checkState = { value: false }; - let shouldLaunch = this._prompter.confirmCheck( - s.fileExecutableSecurityWarningTitle, - s.fileExecutableSecurityWarning(leafName, leafName), - s.fileExecutableSecurityWarningDontAsk, - checkState); + // Always launch in case we have no prompter implementation. + if (!this._prompter) { + return true; + } - if (shouldLaunch) { - Services.prefs.setBoolPref(kPrefAlertOnEXEOpen, !checkState.value); + try { + if (!Services.prefs.getBoolPref(kPrefConfirmOpenExe)) { + return true; } - - return Promise.resolve(shouldLaunch); } catch (ex) { - return Promise.reject(ex); + // If the preference does not exist, continue with the prompt. } + + let leafName = OS.Path.basename(aPath); + + let s = DownloadUIHelper.strings; + return this._prompter.confirm(s.fileExecutableSecurityWarningTitle, + s.fileExecutableSecurityWarning(leafName, leafName)); }, /** |