mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-23 08:38:06 +02:00
Merge pull request #18992 from Snuffleupagus/getPdfManager-inline-flushChunks
Inline the `flushChunks` helper function, used in `getPdfManager` on the worker-thread
This commit is contained in:
commit
e930f3030c
1 changed files with 13 additions and 22 deletions
|
@ -227,7 +227,8 @@ class WorkerMessageHandler {
|
|||
}
|
||||
|
||||
let pdfStream,
|
||||
cachedChunks = [];
|
||||
cachedChunks = [],
|
||||
loaded = 0;
|
||||
try {
|
||||
pdfStream = new PDFWorkerStream(handler);
|
||||
} catch (ex) {
|
||||
|
@ -263,30 +264,22 @@ class WorkerMessageHandler {
|
|||
cancelXHRs = null;
|
||||
});
|
||||
|
||||
let loaded = 0;
|
||||
const flushChunks = function () {
|
||||
const pdfFile = arrayBuffersToBytes(cachedChunks);
|
||||
if (length && pdfFile.length !== length) {
|
||||
warn("reported HTTP length is different from actual");
|
||||
}
|
||||
// the data is array, instantiating directly from it
|
||||
try {
|
||||
pdfManagerArgs.source = pdfFile;
|
||||
|
||||
newPdfManager = new LocalPdfManager(pdfManagerArgs);
|
||||
pdfManagerCapability.resolve(newPdfManager);
|
||||
} catch (ex) {
|
||||
pdfManagerCapability.reject(ex);
|
||||
}
|
||||
cachedChunks = [];
|
||||
};
|
||||
new Promise(function (resolve, reject) {
|
||||
const readChunk = function ({ value, done }) {
|
||||
try {
|
||||
ensureNotTerminated();
|
||||
if (done) {
|
||||
if (!newPdfManager) {
|
||||
flushChunks();
|
||||
const pdfFile = arrayBuffersToBytes(cachedChunks);
|
||||
cachedChunks = [];
|
||||
|
||||
if (length && pdfFile.length !== length) {
|
||||
warn("reported HTTP length is different from actual");
|
||||
}
|
||||
pdfManagerArgs.source = pdfFile;
|
||||
|
||||
newPdfManager = new LocalPdfManager(pdfManagerArgs);
|
||||
pdfManagerCapability.resolve(newPdfManager);
|
||||
}
|
||||
cancelXHRs = null;
|
||||
return;
|
||||
|
@ -854,9 +847,7 @@ class WorkerMessageHandler {
|
|||
} else {
|
||||
clearGlobalCaches();
|
||||
}
|
||||
if (cancelXHRs) {
|
||||
cancelXHRs(new AbortException("Worker was terminated."));
|
||||
}
|
||||
cancelXHRs?.(new AbortException("Worker was terminated."));
|
||||
|
||||
for (const task of WorkerTasks) {
|
||||
waitOn.push(task.finished);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue