From 594592216c9b6c33d48a972c6427a8233fbe5bd3 Mon Sep 17 00:00:00 2001 From: Rob Wu Date: Wed, 19 Oct 2016 11:47:54 +0200 Subject: [PATCH] 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. --- web/pdf_print_service.js | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/web/pdf_print_service.js b/web/pdf_print_service.js index 1f28b2596..392cdaf91 100644 --- a/web/pdf_print_service.js +++ b/web/pdf_print_service.js @@ -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();