Skip to content

Commit 315491d

Browse files
Merge pull request #20840 from Snuffleupagus/getDocument-rm-length
[api-minor] Remove the `length` parameter from `getDocument`
2 parents b5c5500 + 09a9a7b commit 315491d

7 files changed

Lines changed: 11 additions & 40 deletions

File tree

src/core/worker.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,6 @@ class WorkerMessageHandler {
196196
password,
197197
disableAutoFetch,
198198
rangeChunkSize,
199-
length,
200199
docBaseUrl,
201200
enableXfa,
202201
evaluatorOptions,
@@ -209,7 +208,7 @@ class WorkerMessageHandler {
209208
enableXfa,
210209
evaluatorOptions,
211210
handler,
212-
length,
211+
length: 0,
213212
password,
214213
rangeChunkSize,
215214
};
@@ -287,14 +286,9 @@ class WorkerMessageHandler {
287286
}
288287

289288
if (!newPdfManager) {
290-
const pdfFile = arrayBuffersToBytes(cachedChunks);
289+
pdfManagerArgs.source = arrayBuffersToBytes(cachedChunks);
291290
cachedChunks = null;
292291

293-
if (length && pdfFile.length !== length) {
294-
warn("reported HTTP length is different from actual");
295-
}
296-
pdfManagerArgs.source = pdfFile;
297-
298292
newPdfManager = new LocalPdfManager(pdfManagerArgs);
299293
resolve(newPdfManager);
300294
}

src/display/api.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,6 @@ const RENDERING_CANCELLED_TIMEOUT = 100; // ms
124124
* cross-site Access-Control requests should be made using credentials such
125125
* as cookies or authorization headers. The default is `false`.
126126
* @property {string} [password] - For decrypting password-protected PDFs.
127-
* @property {number} [length] - The PDF file length. It's used for progress
128-
* reports and range requests operations.
129127
* @property {PDFDataRangeTransport} [range] - Allows for using a custom range
130128
* transport implementation.
131129
* @property {number} [rangeChunkSize] - Specify maximum number of bytes fetched
@@ -353,7 +351,6 @@ function getDocument(src = {}) {
353351
const pagesMapper = src.pagesMapper || new PagesMapper();
354352

355353
// Parameters whose default values depend on other parameters.
356-
const length = rangeTransport ? rangeTransport.length : (src.length ?? NaN);
357354
const useSystemFonts =
358355
typeof src.useSystemFonts === "boolean"
359356
? src.useSystemFonts
@@ -425,7 +422,6 @@ function getDocument(src = {}) {
425422
password,
426423
disableAutoFetch,
427424
rangeChunkSize,
428-
length,
429425
docBaseUrl,
430426
enableXfa,
431427
evaluatorOptions: {
@@ -497,7 +493,6 @@ function getDocument(src = {}) {
497493

498494
networkStream = new NetworkStream({
499495
url,
500-
length,
501496
httpHeaders,
502497
withCredentials,
503498
rangeChunkSize,

src/display/fetch_stream.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,15 +86,12 @@ class PDFFetchStreamReader extends BasePDFStreamReader {
8686
const {
8787
disableRange,
8888
disableStream,
89-
length,
9089
rangeChunkSize,
9190
url,
9291
withCredentials,
9392
} = stream._source;
9493

95-
this._contentLength = length;
9694
this._isStreamingSupported = !disableStream;
97-
this._isRangeSupported = !disableRange;
9895
// Always create a copy of the headers.
9996
const headers = new Headers(stream.headers);
10097

@@ -114,10 +111,8 @@ class PDFFetchStreamReader extends BasePDFStreamReader {
114111
rangeChunkSize,
115112
disableRange,
116113
});
117-
114+
this._contentLength = contentLength;
118115
this._isRangeSupported = isRangeSupported;
119-
// Setting right content length.
120-
this._contentLength = contentLength || this._contentLength;
121116

122117
this._filename = extractFilenameFromHeader(responseHeaders);
123118

src/display/network.js

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -187,9 +187,6 @@ class PDFNetworkStreamReader extends BasePDFStreamReader {
187187

188188
constructor(stream) {
189189
super(stream);
190-
const { length } = stream._source;
191-
192-
this._contentLength = length;
193190
// Note that `XMLHttpRequest` doesn't support streaming, and range requests
194191
// will be enabled (if supported) in `this.#onHeadersReceived` below.
195192

@@ -229,12 +226,8 @@ class PDFNetworkStreamReader extends BasePDFStreamReader {
229226
rangeChunkSize,
230227
disableRange,
231228
});
232-
233-
if (isRangeSupported) {
234-
this._isRangeSupported = true;
235-
}
236-
// Setting right content length.
237-
this._contentLength = contentLength || this._contentLength;
229+
this._contentLength = contentLength;
230+
this._isRangeSupported = isRangeSupported;
238231

239232
this._filename = extractFilenameFromHeader(responseHeaders);
240233

src/display/network_utils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function validateRangeRequestCapabilities({
5050
);
5151
}
5252
const rv = {
53-
contentLength: undefined,
53+
contentLength: 0,
5454
isRangeSupported: false,
5555
};
5656

src/display/node_stream.js

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,9 @@ class PDFNodeStreamReader extends BasePDFStreamReader {
6262

6363
constructor(stream) {
6464
super(stream);
65-
const { disableRange, disableStream, length, rangeChunkSize, url } =
66-
stream._source;
65+
const { disableRange, disableStream, rangeChunkSize, url } = stream._source;
6766

68-
this._contentLength = length;
6967
this._isStreamingSupported = !disableStream;
70-
this._isRangeSupported = !disableRange;
7168

7269
const fs = process.getBuiltinModule("fs");
7370
fs.promises
@@ -79,13 +76,10 @@ class PDFNodeStreamReader extends BasePDFStreamReader {
7976
this._reader = readableStream.getReader();
8077

8178
const { size } = stat;
82-
if (size <= 2 * rangeChunkSize) {
83-
// The file size is smaller than the size of two chunks, so it doesn't
84-
// make any sense to abort the request and retry with a range request.
85-
this._isRangeSupported = false;
86-
}
87-
// Setting right content length.
8879
this._contentLength = size;
80+
// When the file size is smaller than the size of two chunks, it doesn't
81+
// make any sense to abort the request and retry with a range request.
82+
this._isRangeSupported = !disableRange && size > 2 * rangeChunkSize;
8983

9084
// We need to stop reading when range is supported and streaming is
9185
// disabled.

test/unit/network_utils_spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ describe("network_utils", function () {
153153
})
154154
).toEqual({
155155
isRangeSupported: false,
156-
contentLength: undefined,
156+
contentLength: 0,
157157
});
158158
});
159159

0 commit comments

Comments
 (0)