Merge pull request #16810 from Snuffleupagus/_initializeAutoPrint-refactor

Re-factor `PDFViewerApplication._initializeAutoPrint` slightly (PR 16779 follow-up)
This commit is contained in:
Jonas Jenwald 2023-08-11 08:49:45 +02:00 committed by GitHub
commit d57e3ebbe4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1545,29 +1545,32 @@ const PDFViewerApplication = {
async _initializeAutoPrint(pdfDocument, openActionPromise) {
const [openAction, jsActions] = await Promise.all([
openActionPromise,
!this.pdfViewer.enableScripting ? pdfDocument.getJSActions() : null,
this.pdfViewer.enableScripting ? null : pdfDocument.getJSActions(),
]);
if (pdfDocument !== this.pdfDocument) {
return; // The document was closed while the auto print data resolved.
}
let triggerAutoPrint = false;
let triggerAutoPrint = openAction?.action === "Print";
if (openAction?.action === "Print") {
triggerAutoPrint = true;
}
if (jsActions) {
for (const name in jsActions) {
if (jsActions[name]) {
console.warn("Warning: JavaScript support is not enabled");
break;
}
}
console.warn("Warning: JavaScript support is not enabled");
// Hack to support auto printing.
triggerAutoPrint ||= !!(
jsActions.OpenAction && AutoPrintRegExp.test(jsActions.OpenAction)
);
for (const name in jsActions) {
if (triggerAutoPrint) {
break;
}
switch (name) {
case "WillClose":
case "WillSave":
case "DidSave":
case "WillPrint":
case "DidPrint":
continue;
}
triggerAutoPrint = jsActions[name].some(js => AutoPrintRegExp.test(js));
}
}
if (triggerAutoPrint) {