Initialize the networkStream synchronously in getDocument

This is fairly old code, and at some point the need for this to be asynchronous disappeared.
This commit is contained in:
Jonas Jenwald 2024-05-14 17:04:25 +02:00
parent cbb8748a22
commit 6b171540b7

View File

@ -407,77 +407,69 @@ function getDocument(src) {
docParams, docParams,
data ? [data.buffer] : null data ? [data.buffer] : null
); );
const networkStreamPromise = new Promise(resolve => {
let networkStream; let networkStream;
if (rangeTransport) { if (rangeTransport) {
networkStream = new PDFDataTransportStream(rangeTransport, { networkStream = new PDFDataTransportStream(rangeTransport, {
disableRange, disableRange,
disableStream, disableStream,
}); });
} else if (!data) { } else if (!data) {
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) { if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) {
throw new Error("Not implemented: createPDFNetworkStream"); throw new Error("Not implemented: createPDFNetworkStream");
} }
const createPDFNetworkStream = params => { const createPDFNetworkStream = params => {
if ( if (
typeof PDFJSDev !== "undefined" && typeof PDFJSDev !== "undefined" &&
PDFJSDev.test("GENERIC") && PDFJSDev.test("GENERIC") &&
isNodeJS isNodeJS
) { ) {
const isFetchSupported = function () { const isFetchSupported = function () {
return ( return (
typeof fetch !== "undefined" && typeof fetch !== "undefined" &&
typeof Response !== "undefined" && typeof Response !== "undefined" &&
"body" in Response.prototype "body" in Response.prototype
); );
}; };
return isFetchSupported() && isValidFetchUrl(params.url) return isFetchSupported() && isValidFetchUrl(params.url)
? new PDFFetchStream(params)
: new PDFNodeStream(params);
}
return isValidFetchUrl(params.url)
? new PDFFetchStream(params) ? new PDFFetchStream(params)
: new PDFNetworkStream(params); : new PDFNodeStream(params);
}; }
return isValidFetchUrl(params.url)
? new PDFFetchStream(params)
: new PDFNetworkStream(params);
};
networkStream = createPDFNetworkStream({ networkStream = createPDFNetworkStream({
url, url,
length, length,
httpHeaders, httpHeaders,
withCredentials, withCredentials,
rangeChunkSize, rangeChunkSize,
disableRange, disableRange,
disableStream, disableStream,
}); });
}
return workerIdPromise.then(workerId => {
if (task.destroyed) {
throw new Error("Loading aborted");
} }
resolve(networkStream); if (worker.destroyed) {
throw new Error("Worker was destroyed");
}
const messageHandler = new MessageHandler(docId, workerId, worker.port);
const transport = new WorkerTransport(
messageHandler,
task,
networkStream,
transportParams,
transportFactory
);
task._transport = transport;
messageHandler.send("Ready", null);
}); });
return Promise.all([workerIdPromise, networkStreamPromise]).then(
function ([workerId, networkStream]) {
if (task.destroyed) {
throw new Error("Loading aborted");
}
if (worker.destroyed) {
throw new Error("Worker was destroyed");
}
const messageHandler = new MessageHandler(
docId,
workerId,
worker.port
);
const transport = new WorkerTransport(
messageHandler,
task,
networkStream,
transportParams,
transportFactory
);
task._transport = transport;
messageHandler.send("Ready", null);
}
);
}) })
.catch(task._capability.reject); .catch(task._capability.reject);