Fixes fetch and node behavior when disableAutoFetch adn disableStream is used.

This commit is contained in:
Yury Delendik 2017-08-30 10:53:38 -05:00
parent 3516a59384
commit 3cff7da0e7
2 changed files with 21 additions and 5 deletions

View file

@ -13,7 +13,9 @@
* limitations under the License.
*/
import { assert, createPromiseCapability } from '../shared/util';
import {
AbortException, assert, createPromiseCapability
} from '../shared/util';
import {
createResponseStatusError, validateRangeRequestCapabilities,
validateResponseStatus
@ -95,8 +97,8 @@ class PDFFetchStreamReader {
if (!validateResponseStatus(response.status, this._stream.isHttp)) {
throw createResponseStatusError(response.status, url);
}
this._headersCapability.resolve();
this._reader = response.body.getReader();
this._headersCapability.resolve();
let { allowRangeRequests, suggestedLength, } =
validateRangeRequestCapabilities({
@ -110,6 +112,12 @@ class PDFFetchStreamReader {
this._contentLength = suggestedLength;
this._isRangeSupported = allowRangeRequests;
// We need to stop reading when range is supported and streaming is
// disabled.
if (!this._isStreamingSupported && this._isRangeSupported) {
this.cancel(new AbortException('streaming is disabled'));
}
}).catch(this._headersCapability.reject);
this.onProgress = null;