Merge pull request #15991 from Snuffleupagus/PDFViewerApplication-open-loops

Remove a couple of manual loops in the `PDFViewerApplication.open` method
This commit is contained in:
Jonas Jenwald 2023-02-03 15:43:30 +01:00 committed by GitHub
commit cbe4912a16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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) => {