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:
parent
cbb8748a22
commit
6b171540b7
@ -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);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user