Refactor printing: startPrint -> performPrint

- Renamed startPrint to performPrint to emphasize that the method
  does not start the print process (preparing pages for the printer),
  but that it does the actual printing (sending pages off to the
  printer).

- Put performPrint in the PDFPrintService, so that it can be
  overridden if needed.
This commit is contained in:
Rob Wu 2016-10-19 11:47:54 +02:00
parent d3b13e36d3
commit 594592216c

View File

@ -187,6 +187,24 @@
});
},
performPrint: function () {
this.throwIfInactive();
return new Promise(function (resolve) {
// Push window.print in the macrotask queue to avoid being affected by
// the deprecation of running print() code in a microtask, see
// https://github.com/mozilla/pdf.js/issues/7547.
setTimeout(function () {
if (!this.active) {
resolve();
return;
}
print.call(window);
// Delay promise resolution in case print() was not synchronous.
setTimeout(resolve, 20); // Tidy-up.
}.bind(this), 0);
}.bind(this));
},
get active() {
return this === activeService;
},
@ -223,8 +241,7 @@
}
var activeServiceOnEntry = activeService;
activeService.renderPages().then(function () {
activeServiceOnEntry.throwIfInactive();
return startPrint(activeServiceOnEntry);
return activeServiceOnEntry.performPrint();
}).catch(function () {
// Ignore any error messages.
}).then(function () {
@ -246,23 +263,6 @@
window.dispatchEvent(event);
}
function startPrint(activeServiceOnEntry) {
return new Promise(function (resolve) {
// Push window.print in the macrotask queue to avoid being affected by
// the deprecation of running print() code in a microtask, see
// https://github.com/mozilla/pdf.js/issues/7547.
setTimeout(function () {
if (!activeServiceOnEntry.active) {
resolve();
return;
}
print.call(window);
// Delay promise resolution in case print() was not synchronous.
setTimeout(resolve, 20); // Tidy-up.
}, 0);
});
}
function abort() {
if (activeService) {
activeService.destroy();