Browse Source

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.
Rob Wu 9 years ago
parent
commit
594592216c
  1. 38
      web/pdf_print_service.js

38
web/pdf_print_service.js

@ -187,6 +187,24 @@ @@ -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 @@ @@ -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 @@ @@ -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();

Loading…
Cancel
Save