Remove a couple of manual loops in the PDFViewerApplication.open method

Some of the code in this method is *very* old, and we could thus modernize it a little bit by removing a couple of the loops used to build the `getDocument` argument.
This commit is contained in:
Jonas Jenwald 2023-02-01 11:13:28 +01:00
parent 2d87a2eb1c
commit d906a383ca

View File

@ -919,12 +919,9 @@ const PDFViewerApplication = {
await this.close(); await this.close();
} }
// Set the necessary global worker parameters, using the available options. // Set the necessary global worker parameters, using the available options.
const workerParameters = AppOptions.getAll(OptionKind.WORKER); const workerParams = AppOptions.getAll(OptionKind.WORKER);
for (const key in workerParameters) { Object.assign(GlobalWorkerOptions, workerParams);
GlobalWorkerOptions[key] = workerParameters[key];
}
const parameters = Object.create(null);
if ( if (
(typeof PDFJSDev === "undefined" || !PDFJSDev.test("MOZCENTRAL")) && (typeof PDFJSDev === "undefined" || !PDFJSDev.test("MOZCENTRAL")) &&
args.url args.url
@ -938,26 +935,16 @@ const PDFViewerApplication = {
this.setTitleUsingUrl(args.url, /* downloadUrl = */ args.url); this.setTitleUsingUrl(args.url, /* downloadUrl = */ args.url);
} }
} }
// Set the necessary API parameters, using the available options. // Set the necessary API parameters, using all the available options.
const apiParameters = AppOptions.getAll(OptionKind.API); const apiParams = AppOptions.getAll(OptionKind.API);
for (const key in apiParameters) { const params = { ...apiParams, ...args };
let value = apiParameters[key];
if (key === "docBaseUrl") { if (typeof PDFJSDev === "undefined" || !PDFJSDev.test("PRODUCTION")) {
if (typeof PDFJSDev === "undefined" || !PDFJSDev.test("PRODUCTION")) { params.docBaseUrl ||= document.URL.split("#")[0];
value ||= document.URL.split("#")[0]; } else if (PDFJSDev.test("MOZCENTRAL || CHROME")) {
} else if (PDFJSDev.test("MOZCENTRAL || CHROME")) { params.docBaseUrl ||= this.baseUrl;
value ||= this.baseUrl;
}
}
parameters[key] = value;
} }
// Finally, update the API parameters with the arguments. const loadingTask = getDocument(params);
for (const key in args) {
parameters[key] = args[key];
}
const loadingTask = getDocument(parameters);
this.pdfLoadingTask = loadingTask; this.pdfLoadingTask = loadingTask;
loadingTask.onPassword = (updateCallback, reason) => { loadingTask.onPassword = (updateCallback, reason) => {