mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-10 10:15:37 +02:00
Merge pull request #18091 from Snuffleupagus/rm-_fetchDocument
Inline the `_fetchDocument` helper function in `getDocument`
This commit is contained in:
commit
7e5e06b886
1 changed files with 71 additions and 94 deletions
|
@ -357,7 +357,7 @@ function getDocument(src) {
|
||||||
task._worker = worker;
|
task._worker = worker;
|
||||||
}
|
}
|
||||||
|
|
||||||
const fetchDocParams = {
|
const docParams = {
|
||||||
docId,
|
docId,
|
||||||
apiVersion:
|
apiVersion:
|
||||||
typeof PDFJSDev !== "undefined" && !PDFJSDev.test("TESTING")
|
typeof PDFJSDev !== "undefined" && !PDFJSDev.test("TESTING")
|
||||||
|
@ -398,107 +398,84 @@ function getDocument(src) {
|
||||||
if (task.destroyed) {
|
if (task.destroyed) {
|
||||||
throw new Error("Loading aborted");
|
throw new Error("Loading aborted");
|
||||||
}
|
}
|
||||||
|
if (worker.destroyed) {
|
||||||
|
throw new Error("Worker was destroyed");
|
||||||
|
}
|
||||||
|
|
||||||
const workerIdPromise = _fetchDocument(worker, fetchDocParams);
|
const workerIdPromise = worker.messageHandler.sendWithPromise(
|
||||||
const networkStreamPromise = new Promise(function (resolve) {
|
"GetDocRequest",
|
||||||
let networkStream;
|
docParams,
|
||||||
if (rangeTransport) {
|
data ? [data.buffer] : null
|
||||||
networkStream = new PDFDataTransportStream(rangeTransport, {
|
|
||||||
disableRange,
|
|
||||||
disableStream,
|
|
||||||
});
|
|
||||||
} else if (!data) {
|
|
||||||
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) {
|
|
||||||
throw new Error("Not implemented: createPDFNetworkStream");
|
|
||||||
}
|
|
||||||
const createPDFNetworkStream = params => {
|
|
||||||
if (
|
|
||||||
typeof PDFJSDev !== "undefined" &&
|
|
||||||
PDFJSDev.test("GENERIC") &&
|
|
||||||
isNodeJS
|
|
||||||
) {
|
|
||||||
const isFetchSupported = function () {
|
|
||||||
return (
|
|
||||||
typeof fetch !== "undefined" &&
|
|
||||||
typeof Response !== "undefined" &&
|
|
||||||
"body" in Response.prototype
|
|
||||||
);
|
|
||||||
};
|
|
||||||
return isFetchSupported() && isValidFetchUrl(params.url)
|
|
||||||
? new PDFFetchStream(params)
|
|
||||||
: new PDFNodeStream(params);
|
|
||||||
}
|
|
||||||
return isValidFetchUrl(params.url)
|
|
||||||
? new PDFFetchStream(params)
|
|
||||||
: new PDFNetworkStream(params);
|
|
||||||
};
|
|
||||||
|
|
||||||
networkStream = createPDFNetworkStream({
|
|
||||||
url,
|
|
||||||
length,
|
|
||||||
httpHeaders,
|
|
||||||
withCredentials,
|
|
||||||
rangeChunkSize,
|
|
||||||
disableRange,
|
|
||||||
disableStream,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
resolve(networkStream);
|
|
||||||
});
|
|
||||||
|
|
||||||
return Promise.all([workerIdPromise, networkStreamPromise]).then(
|
|
||||||
function ([workerId, networkStream]) {
|
|
||||||
if (task.destroyed) {
|
|
||||||
throw new Error("Loading aborted");
|
|
||||||
}
|
|
||||||
|
|
||||||
const messageHandler = new MessageHandler(
|
|
||||||
docId,
|
|
||||||
workerId,
|
|
||||||
worker.port
|
|
||||||
);
|
|
||||||
const transport = new WorkerTransport(
|
|
||||||
messageHandler,
|
|
||||||
task,
|
|
||||||
networkStream,
|
|
||||||
transportParams,
|
|
||||||
transportFactory
|
|
||||||
);
|
|
||||||
task._transport = transport;
|
|
||||||
messageHandler.send("Ready", null);
|
|
||||||
}
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
let networkStream;
|
||||||
|
if (rangeTransport) {
|
||||||
|
networkStream = new PDFDataTransportStream(rangeTransport, {
|
||||||
|
disableRange,
|
||||||
|
disableStream,
|
||||||
|
});
|
||||||
|
} else if (!data) {
|
||||||
|
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) {
|
||||||
|
throw new Error("Not implemented: createPDFNetworkStream");
|
||||||
|
}
|
||||||
|
const createPDFNetworkStream = params => {
|
||||||
|
if (
|
||||||
|
typeof PDFJSDev !== "undefined" &&
|
||||||
|
PDFJSDev.test("GENERIC") &&
|
||||||
|
isNodeJS
|
||||||
|
) {
|
||||||
|
const isFetchSupported = function () {
|
||||||
|
return (
|
||||||
|
typeof fetch !== "undefined" &&
|
||||||
|
typeof Response !== "undefined" &&
|
||||||
|
"body" in Response.prototype
|
||||||
|
);
|
||||||
|
};
|
||||||
|
return isFetchSupported() && isValidFetchUrl(params.url)
|
||||||
|
? new PDFFetchStream(params)
|
||||||
|
: new PDFNodeStream(params);
|
||||||
|
}
|
||||||
|
return isValidFetchUrl(params.url)
|
||||||
|
? new PDFFetchStream(params)
|
||||||
|
: new PDFNetworkStream(params);
|
||||||
|
};
|
||||||
|
|
||||||
|
networkStream = createPDFNetworkStream({
|
||||||
|
url,
|
||||||
|
length,
|
||||||
|
httpHeaders,
|
||||||
|
withCredentials,
|
||||||
|
rangeChunkSize,
|
||||||
|
disableRange,
|
||||||
|
disableStream,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return workerIdPromise.then(workerId => {
|
||||||
|
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);
|
||||||
|
|
||||||
return task;
|
return task;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Starts fetching of specified PDF document/data.
|
|
||||||
*
|
|
||||||
* @param {PDFWorker} worker
|
|
||||||
* @param {Object} source
|
|
||||||
* @returns {Promise<string>} A promise that is resolved when the worker ID of
|
|
||||||
* the `MessageHandler` is known.
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
async function _fetchDocument(worker, source) {
|
|
||||||
if (worker.destroyed) {
|
|
||||||
throw new Error("Worker was destroyed");
|
|
||||||
}
|
|
||||||
const workerId = await worker.messageHandler.sendWithPromise(
|
|
||||||
"GetDocRequest",
|
|
||||||
source,
|
|
||||||
source.data ? [source.data.buffer] : null
|
|
||||||
);
|
|
||||||
|
|
||||||
if (worker.destroyed) {
|
|
||||||
throw new Error("Worker was destroyed");
|
|
||||||
}
|
|
||||||
return workerId;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getUrlProp(val) {
|
function getUrlProp(val) {
|
||||||
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) {
|
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) {
|
||||||
return null; // The 'url' is unused with `PDFDataRangeTransport`.
|
return null; // The 'url' is unused with `PDFDataRangeTransport`.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue