Move the postMessageTransfers
option from the global PDFJS
object and into getDocument
/PDFWorker
instead
Given the purpose of this option, it doesn't seem necessary to make it available through `GlobalWorkerOptions`.
This commit is contained in:
parent
83d52518da
commit
fdd2376170
@ -36,7 +36,6 @@ var DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536
|
|||||||
|
|
||||||
let isWorkerDisabled = false;
|
let isWorkerDisabled = false;
|
||||||
let workerSrc;
|
let workerSrc;
|
||||||
var isPostMessageTransfersDisabled = false;
|
|
||||||
|
|
||||||
const pdfjsFilePath =
|
const pdfjsFilePath =
|
||||||
typeof PDFJSDev !== 'undefined' &&
|
typeof PDFJSDev !== 'undefined' &&
|
||||||
@ -127,6 +126,8 @@ function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {
|
|||||||
* 2^16 = 65536.
|
* 2^16 = 65536.
|
||||||
* @property {PDFWorker} worker - (optional) The worker that will be used for
|
* @property {PDFWorker} worker - (optional) The worker that will be used for
|
||||||
* the loading and parsing of the PDF data.
|
* the loading and parsing of the PDF data.
|
||||||
|
* @property {boolean} postMessageTransfers - (optional) Enables transfer usage
|
||||||
|
* in postMessage for ArrayBuffers. The default value is `true`.
|
||||||
* @property {string} docBaseUrl - (optional) The base URL of the document,
|
* @property {string} docBaseUrl - (optional) The base URL of the document,
|
||||||
* used when attempting to recover valid absolute URLs for annotations, and
|
* used when attempting to recover valid absolute URLs for annotations, and
|
||||||
* outline items, that (incorrectly) only specify relative URLs.
|
* outline items, that (incorrectly) only specify relative URLs.
|
||||||
@ -241,6 +242,7 @@ function getDocument(src) {
|
|||||||
|
|
||||||
if (!worker) {
|
if (!worker) {
|
||||||
const workerParams = {
|
const workerParams = {
|
||||||
|
postMessageTransfers: params.postMessageTransfers,
|
||||||
};
|
};
|
||||||
// Worker was not provided -- creating and owning our own. If message port
|
// Worker was not provided -- creating and owning our own. If message port
|
||||||
// is specified in global worker options, using it.
|
// is specified in global worker options, using it.
|
||||||
@ -321,8 +323,7 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
|
|||||||
maxImageSize: getDefaultSetting('maxImageSize'),
|
maxImageSize: getDefaultSetting('maxImageSize'),
|
||||||
disableFontFace: getDefaultSetting('disableFontFace'),
|
disableFontFace: getDefaultSetting('disableFontFace'),
|
||||||
disableCreateObjectURL: getDefaultSetting('disableCreateObjectURL'),
|
disableCreateObjectURL: getDefaultSetting('disableCreateObjectURL'),
|
||||||
postMessageTransfers: getDefaultSetting('postMessageTransfers') &&
|
postMessageTransfers: worker.postMessageTransfers,
|
||||||
!isPostMessageTransfersDisabled,
|
|
||||||
docBaseUrl: source.docBaseUrl,
|
docBaseUrl: source.docBaseUrl,
|
||||||
nativeImageDecoderSupport: source.nativeImageDecoderSupport,
|
nativeImageDecoderSupport: source.nativeImageDecoderSupport,
|
||||||
ignoreErrors: source.ignoreErrors,
|
ignoreErrors: source.ignoreErrors,
|
||||||
@ -1203,6 +1204,8 @@ class LoopbackPort {
|
|||||||
* @typedef {Object} PDFWorkerParameters
|
* @typedef {Object} PDFWorkerParameters
|
||||||
* @property {string} name - (optional) The name of the worker.
|
* @property {string} name - (optional) The name of the worker.
|
||||||
* @property {Object} port - (optional) The `workerPort`.
|
* @property {Object} port - (optional) The `workerPort`.
|
||||||
|
* @property {boolean} postMessageTransfers - (optional) Enables transfer usage
|
||||||
|
* in postMessage for ArrayBuffers. The default value is `true`.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1296,14 +1299,15 @@ var PDFWorker = (function PDFWorkerClosure() {
|
|||||||
/**
|
/**
|
||||||
* @param {PDFWorkerParameters} params - The worker initialization parameters.
|
* @param {PDFWorkerParameters} params - The worker initialization parameters.
|
||||||
*/
|
*/
|
||||||
function PDFWorker({ name = null, port = null, } = {}) {
|
function PDFWorker({ name = null, port = null,
|
||||||
|
postMessageTransfers = true, } = {}) {
|
||||||
if (port && pdfWorkerPorts.has(port)) {
|
if (port && pdfWorkerPorts.has(port)) {
|
||||||
throw new Error('Cannot use more than one PDFWorker per port');
|
throw new Error('Cannot use more than one PDFWorker per port');
|
||||||
}
|
}
|
||||||
|
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.destroyed = false;
|
this.destroyed = false;
|
||||||
this.postMessageTransfers = true;
|
this.postMessageTransfers = postMessageTransfers !== false;
|
||||||
|
|
||||||
this._readyCapability = createPromiseCapability();
|
this._readyCapability = createPromiseCapability();
|
||||||
this._port = null;
|
this._port = null;
|
||||||
@ -1400,7 +1404,6 @@ var PDFWorker = (function PDFWorkerClosure() {
|
|||||||
this._webWorker = worker;
|
this._webWorker = worker;
|
||||||
if (!data.supportTransfers) {
|
if (!data.supportTransfers) {
|
||||||
this.postMessageTransfers = false;
|
this.postMessageTransfers = false;
|
||||||
isPostMessageTransfersDisabled = true;
|
|
||||||
}
|
}
|
||||||
this._readyCapability.resolve();
|
this._readyCapability.resolve();
|
||||||
// Send global setting, e.g. verbosity level.
|
// Send global setting, e.g. verbosity level.
|
||||||
@ -1428,11 +1431,8 @@ var PDFWorker = (function PDFWorkerClosure() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var sendTest = function () {
|
const sendTest = () => {
|
||||||
var postMessageTransfers =
|
let testObj = new Uint8Array([this.postMessageTransfers ? 255 : 0]);
|
||||||
getDefaultSetting('postMessageTransfers') &&
|
|
||||||
!isPostMessageTransfersDisabled;
|
|
||||||
var testObj = new Uint8Array([postMessageTransfers ? 255 : 0]);
|
|
||||||
// Some versions of Opera throw a DATA_CLONE_ERR on serializing the
|
// Some versions of Opera throw a DATA_CLONE_ERR on serializing the
|
||||||
// typed array. Also, checking if we can use transfers.
|
// typed array. Also, checking if we can use transfers.
|
||||||
try {
|
try {
|
||||||
|
@ -349,8 +349,6 @@ function getDefaultSetting(id) {
|
|||||||
return globalSettings ? globalSettings.cMapUrl : null;
|
return globalSettings ? globalSettings.cMapUrl : null;
|
||||||
case 'cMapPacked':
|
case 'cMapPacked':
|
||||||
return globalSettings ? globalSettings.cMapPacked : false;
|
return globalSettings ? globalSettings.cMapPacked : false;
|
||||||
case 'postMessageTransfers':
|
|
||||||
return globalSettings ? globalSettings.postMessageTransfers : true;
|
|
||||||
case 'maxImageSize':
|
case 'maxImageSize':
|
||||||
return globalSettings ? globalSettings.maxImageSize : -1;
|
return globalSettings ? globalSettings.maxImageSize : -1;
|
||||||
case 'isEvalSupported':
|
case 'isEvalSupported':
|
||||||
|
@ -147,13 +147,6 @@ PDFJS.disableAutoFetch = (PDFJS.disableAutoFetch === undefined ?
|
|||||||
*/
|
*/
|
||||||
PDFJS.pdfBug = (PDFJS.pdfBug === undefined ? false : PDFJS.pdfBug);
|
PDFJS.pdfBug = (PDFJS.pdfBug === undefined ? false : PDFJS.pdfBug);
|
||||||
|
|
||||||
/**
|
|
||||||
* Enables transfer usage in postMessage for ArrayBuffers.
|
|
||||||
* @var {boolean}
|
|
||||||
*/
|
|
||||||
PDFJS.postMessageTransfers = (PDFJS.postMessageTransfers === undefined ?
|
|
||||||
true : PDFJS.postMessageTransfers);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Disables URL.createObjectURL usage.
|
* Disables URL.createObjectURL usage.
|
||||||
* @var {boolean}
|
* @var {boolean}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user