[PALEMOON] Bug 480242 - "Always ask" doesn't work for Plugins

This commit is contained in:
janekptacijarabaci 2018-07-25 15:28:56 +02:00 • committed by Roy Tam
commit aea38aa0e7

View file

@ -288,6 +288,14 @@ HandlerInfoWrapper.prototype = {
}, },
set preferredAction(aNewValue) { set preferredAction(aNewValue) {
// If the action is to use the plugin,
// we must set the preferred action to "save to disk".
// But only if it's not currently the preferred action.
if ((aNewValue == kActionUsePlugin) &&
(this.preferredAction != Ci.nsIHandlerInfo.saveToDisk)) {
aNewValue = Ci.nsIHandlerInfo.saveToDisk;
}
// We don't modify the preferred action if the new action is to use a plugin // We don't modify the preferred action if the new action is to use a plugin
// because handler info objects don't understand our custom "use plugin" // because handler info objects don't understand our custom "use plugin"
// value. Also, leaving it untouched means that we can automatically revert // value. Also, leaving it untouched means that we can automatically revert
@ -1616,10 +1624,6 @@ var gApplicationsPane = {
var typeItem = this._list.selectedItem; var typeItem = this._list.selectedItem;
var handlerInfo = this._handledTypes[typeItem.type]; var handlerInfo = this._handledTypes[typeItem.type];
if (aActionItem.hasAttribute("alwaysAsk")) {
handlerInfo.alwaysAskBeforeHandling = true;
}
else if (aActionItem.hasAttribute("action")) {
let action = parseInt(aActionItem.getAttribute("action")); let action = parseInt(aActionItem.getAttribute("action"));
// Set the plugin state if we're enabling or disabling a plugin. // Set the plugin state if we're enabling or disabling a plugin.
@ -1638,11 +1642,13 @@ var gApplicationsPane = {
handlerInfo.preferredApplicationHandler = aActionItem.handlerApp; handlerInfo.preferredApplicationHandler = aActionItem.handlerApp;
// Set the "always ask" flag. // Set the "always ask" flag.
if (action == Ci.nsIHandlerInfo.alwaysAsk)
handlerInfo.alwaysAskBeforeHandling = true;
else
handlerInfo.alwaysAskBeforeHandling = false; handlerInfo.alwaysAskBeforeHandling = false;
// Set the preferred action. // Set the preferred action.
handlerInfo.preferredAction = action; handlerInfo.preferredAction = action;
}
handlerInfo.store(); handlerInfo.store();