mirror of
https://github.com/mozilla/pdf.js.git
synced 2026-04-13 00:34:04 +02:00
Avoid parsing skipped range requests in ChunkedStreamManager (PR 10694 follow-up)
While we don't dispatch the actual range request after PR 10694 we still parse the returned data, which ends up being an *empty* `ArrayBuffer` and thus cannot affect the `ChunkedStream.prototype._loadedChunks` property. Given that no actual data arrived, it's thus pointless[1] to invoke the `ChunkedStreamManager.prototype.onReceiveData` method in this case (and it also avoids sending effectively duplicate "DocProgress" messages). --- [1] With the *possible* exception of `disableAutoFetch === false` being set, seef24768d7b4/src/core/chunked_stream.js (L499-L517)however that never happens when streaming is being used; notef24768d7b4/src/core/worker.js (L237-L238)
This commit is contained in:
parent
f24768d7b4
commit
b3c07f4b3d
@ -301,7 +301,11 @@ class ChunkedStreamManager {
|
||||
const readChunk = ({ value, done }) => {
|
||||
try {
|
||||
if (done) {
|
||||
resolve(arrayBuffersToBytes(chunks));
|
||||
resolve(
|
||||
chunks.length > 0 || !this.disableAutoFetch
|
||||
? arrayBuffersToBytes(chunks)
|
||||
: null
|
||||
);
|
||||
chunks = null;
|
||||
return;
|
||||
}
|
||||
@ -322,6 +326,11 @@ class ChunkedStreamManager {
|
||||
if (this.aborted) {
|
||||
return; // Ignoring any data after abort.
|
||||
}
|
||||
if (!data) {
|
||||
// The range request wasn't dispatched, see the "GetRangeReader" handler
|
||||
// in the `src/display/api.js` file.
|
||||
return;
|
||||
}
|
||||
this.onReceiveData({ chunk: data.buffer, begin });
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user