Combine the pdfjsFilePath
and fallback workerSrc
handling in src/display/api.js
With the way that the `getWorkerSrc()` helper function is implemented now, there's no longer a particularly strong reason for keeping the global `pdfjsFilePath` variable around. With this patch the fallback `workerSrc` will thus, assuming is wasn't already set, be set to the "pdfjsFilePath" which simplifies the `getWorkerSrc()` function and reduces the amount of global state. Finally, the global `workerSrc` variable was renamed to prevent shadowing.
This commit is contained in:
parent
f45e46d7ad
commit
21c8dd4842
@ -34,16 +34,10 @@ import { Metadata } from './metadata';
|
|||||||
import { PDFDataTransportStream } from './transport_stream';
|
import { PDFDataTransportStream } from './transport_stream';
|
||||||
import { WebGLContext } from './webgl';
|
import { WebGLContext } from './webgl';
|
||||||
|
|
||||||
var DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536
|
const DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536
|
||||||
|
|
||||||
let isWorkerDisabled = false;
|
let isWorkerDisabled = false;
|
||||||
let workerSrc;
|
let fallbackWorkerSrc;
|
||||||
|
|
||||||
const pdfjsFilePath =
|
|
||||||
typeof PDFJSDev !== 'undefined' &&
|
|
||||||
PDFJSDev.test('PRODUCTION && !(MOZCENTRAL || FIREFOX)') &&
|
|
||||||
typeof document !== 'undefined' && document.currentScript ?
|
|
||||||
document.currentScript.src : null;
|
|
||||||
|
|
||||||
let fakeWorkerFilesLoader = null;
|
let fakeWorkerFilesLoader = null;
|
||||||
if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) {
|
if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) {
|
||||||
@ -62,7 +56,7 @@ if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) {
|
|||||||
useRequireEnsure = true;
|
useRequireEnsure = true;
|
||||||
}
|
}
|
||||||
if (typeof requirejs !== 'undefined' && requirejs.toUrl) {
|
if (typeof requirejs !== 'undefined' && requirejs.toUrl) {
|
||||||
workerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');
|
fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');
|
||||||
}
|
}
|
||||||
const dynamicLoaderSupported =
|
const dynamicLoaderSupported =
|
||||||
typeof requirejs !== 'undefined' && requirejs.load;
|
typeof requirejs !== 'undefined' && requirejs.load;
|
||||||
@ -93,6 +87,14 @@ if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) {
|
|||||||
}, reject);
|
}, reject);
|
||||||
});
|
});
|
||||||
}) : null;
|
}) : null;
|
||||||
|
|
||||||
|
if (!fallbackWorkerSrc && typeof document !== 'undefined') {
|
||||||
|
const pdfjsFilePath = document.currentScript && document.currentScript.src;
|
||||||
|
if (pdfjsFilePath) {
|
||||||
|
fallbackWorkerSrc =
|
||||||
|
pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2');
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1346,13 +1348,8 @@ var PDFWorker = (function PDFWorkerClosure() {
|
|||||||
if (GlobalWorkerOptions.workerSrc) {
|
if (GlobalWorkerOptions.workerSrc) {
|
||||||
return GlobalWorkerOptions.workerSrc;
|
return GlobalWorkerOptions.workerSrc;
|
||||||
}
|
}
|
||||||
if (typeof workerSrc !== 'undefined') {
|
if (typeof fallbackWorkerSrc !== 'undefined') {
|
||||||
return workerSrc;
|
return fallbackWorkerSrc;
|
||||||
}
|
|
||||||
if (typeof PDFJSDev !== 'undefined' &&
|
|
||||||
PDFJSDev.test('PRODUCTION && !(MOZCENTRAL || FIREFOX)') &&
|
|
||||||
pdfjsFilePath) {
|
|
||||||
return pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2');
|
|
||||||
}
|
}
|
||||||
throw new Error('No "GlobalWorkerOptions.workerSrc" specified.');
|
throw new Error('No "GlobalWorkerOptions.workerSrc" specified.');
|
||||||
}
|
}
|
||||||
@ -1480,7 +1477,7 @@ var PDFWorker = (function PDFWorkerClosure() {
|
|||||||
// Uint8Array as it arrives on the worker. (Chrome added this with v.15.)
|
// Uint8Array as it arrives on the worker. (Chrome added this with v.15.)
|
||||||
if (typeof Worker !== 'undefined' && !isWorkerDisabled &&
|
if (typeof Worker !== 'undefined' && !isWorkerDisabled &&
|
||||||
!getMainThreadWorkerMessageHandler()) {
|
!getMainThreadWorkerMessageHandler()) {
|
||||||
var workerSrc = getWorkerSrc();
|
let workerSrc = getWorkerSrc();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Wraps workerSrc path into blob URL, if the former does not belong
|
// Wraps workerSrc path into blob URL, if the former does not belong
|
||||||
|
Loading…
x
Reference in New Issue
Block a user