Bug 1088070 - Move saving nsIPrintSettings after a print job to browser-content.js. r=Mossop.

This commit is contained in:
Mike Conley 2015-03-05 13:16:35 -05:00
parent 92b8f73890
commit d8cac7d1d2
2 changed files with 19 additions and 24 deletions

View File

@ -168,28 +168,6 @@ var PrintUtils = {
let mm = aBrowser.messageManager;
mm.addMessageListener("Printing:Print:Done", function onPrintingDone(msg) {
mm.removeMessageListener("Printing:Print:Done", onPrintingDone);
let rv = msg.data.rv;
let printSettings = msg.objects.printSettings;
if (rv != Components.results.NS_OK &&
rv != Components.results.NS_ERROR_ABORT) {
Cu.reportError(`In Printing:Print:Done handler, got unexpected rv
${rv}.`);
}
if (gPrintSettingsAreGlobal && gSavePrintSettings) {
let PSSVC =
Components.classes["@mozilla.org/gfx/printsettings-service;1"]
.getService(Components.interfaces.nsIPrintSettingsService);
PSSVC.savePrintSettingsToPrefs(printSettings, true,
printSettings.kInitSaveAll);
PSSVC.savePrintSettingsToPrefs(printSettings, false,
printSettings.kInitSavePrinterName);
}
});
mm.sendAsyncMessage("Printing:Print", null, {
contentWindow: aWindow,
});

View File

@ -379,6 +379,11 @@ let Printing = {
this.MESSAGES.forEach(msgName => addMessageListener(msgName, this));
},
get shouldSavePrintSettings() {
return Services.prefs.getBoolPref("print.use_global_printsettings", false) &&
Services.prefs.getBoolPref("print.save_print_settings", false);
},
receiveMessage(message) {
let objects = message.objects;
let data = message.data;
@ -481,9 +486,21 @@ let Printing = {
} catch(e) {
// Pressing cancel is expressed as an NS_ERROR_ABORT return value,
// causing an exception to be thrown which we catch here.
rv = e.result;
if (e.result != Cr.NS_ERROR_ABORT) {
Cu.reportError(`In Printing:Print:Done handler, got unexpected rv
${e.result}.`);
}
}
if (this.shouldSavePrintSettings) {
let PSSVC = Cc["@mozilla.org/gfx/printsettings-service;1"]
.getService(Ci.nsIPrintSettingsService);
PSSVC.savePrintSettingsToPrefs(printSettings, true,
printSettings.kInitSaveAll);
PSSVC.savePrintSettingsToPrefs(printSettings, false,
printSettings.kInitSavePrinterName);
}
sendAsyncMessage("Printing:Print:Done", { rv }, { printSettings });
},
updatePageCount() {