| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 | 
							- /**
 
-  * @licstart The following is the entire license notice for the
 
-  * Javascript code in this page
 
-  *
 
-  * Copyright 2017 Mozilla Foundation
 
-  *
 
-  * Licensed under the Apache License, Version 2.0 (the "License");
 
-  * you may not use this file except in compliance with the License.
 
-  * You may obtain a copy of the License at
 
-  *
 
-  *     http://www.apache.org/licenses/LICENSE-2.0
 
-  *
 
-  * Unless required by applicable law or agreed to in writing, software
 
-  * distributed under the License is distributed on an "AS IS" BASIS,
 
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
-  * See the License for the specific language governing permissions and
 
-  * limitations under the License.
 
-  *
 
-  * @licend The above is the entire license notice for the
 
-  * Javascript code in this page
 
-  */
 
- 'use strict';
 
- Object.defineProperty(exports, "__esModule", {
 
-   value: true
 
- });
 
- exports.PDFDataTransportStream = undefined;
 
- var _util = require('../shared/util');
 
- var PDFDataTransportStream = function PDFDataTransportStreamClosure() {
 
-   function PDFDataTransportStream(params, pdfDataRangeTransport) {
 
-     var _this = this;
 
-     (0, _util.assert)(pdfDataRangeTransport);
 
-     this._queuedChunks = [];
 
-     var initialData = params.initialData;
 
-     if (initialData && initialData.length > 0) {
 
-       var buffer = new Uint8Array(initialData).buffer;
 
-       this._queuedChunks.push(buffer);
 
-     }
 
-     this._pdfDataRangeTransport = pdfDataRangeTransport;
 
-     this._isStreamingSupported = !params.disableStream;
 
-     this._isRangeSupported = !params.disableRange;
 
-     this._contentLength = params.length;
 
-     this._fullRequestReader = null;
 
-     this._rangeReaders = [];
 
-     this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) {
 
-       _this._onReceiveData({
 
-         begin: begin,
 
-         chunk: chunk
 
-       });
 
-     });
 
-     this._pdfDataRangeTransport.addProgressListener(function (loaded) {
 
-       _this._onProgress({ loaded: loaded });
 
-     });
 
-     this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) {
 
-       _this._onReceiveData({ chunk: chunk });
 
-     });
 
-     this._pdfDataRangeTransport.transportReady();
 
-   }
 
-   PDFDataTransportStream.prototype = {
 
-     _onReceiveData: function PDFDataTransportStream_onReceiveData(args) {
 
-       var buffer = new Uint8Array(args.chunk).buffer;
 
-       if (args.begin === undefined) {
 
-         if (this._fullRequestReader) {
 
-           this._fullRequestReader._enqueue(buffer);
 
-         } else {
 
-           this._queuedChunks.push(buffer);
 
-         }
 
-       } else {
 
-         var found = this._rangeReaders.some(function (rangeReader) {
 
-           if (rangeReader._begin !== args.begin) {
 
-             return false;
 
-           }
 
-           rangeReader._enqueue(buffer);
 
-           return true;
 
-         });
 
-         (0, _util.assert)(found);
 
-       }
 
-     },
 
-     _onProgress: function PDFDataTransportStream_onDataProgress(evt) {
 
-       if (this._rangeReaders.length > 0) {
 
-         var firstReader = this._rangeReaders[0];
 
-         if (firstReader.onProgress) {
 
-           firstReader.onProgress({ loaded: evt.loaded });
 
-         }
 
-       }
 
-     },
 
-     _removeRangeReader: function PDFDataTransportStream_removeRangeReader(reader) {
 
-       var i = this._rangeReaders.indexOf(reader);
 
-       if (i >= 0) {
 
-         this._rangeReaders.splice(i, 1);
 
-       }
 
-     },
 
-     getFullReader: function PDFDataTransportStream_getFullReader() {
 
-       (0, _util.assert)(!this._fullRequestReader);
 
-       var queuedChunks = this._queuedChunks;
 
-       this._queuedChunks = null;
 
-       return new PDFDataTransportStreamReader(this, queuedChunks);
 
-     },
 
-     getRangeReader: function PDFDataTransportStream_getRangeReader(begin, end) {
 
-       var reader = new PDFDataTransportStreamRangeReader(this, begin, end);
 
-       this._pdfDataRangeTransport.requestDataRange(begin, end);
 
-       this._rangeReaders.push(reader);
 
-       return reader;
 
-     },
 
-     cancelAllRequests: function PDFDataTransportStream_cancelAllRequests(reason) {
 
-       if (this._fullRequestReader) {
 
-         this._fullRequestReader.cancel(reason);
 
-       }
 
-       var readers = this._rangeReaders.slice(0);
 
-       readers.forEach(function (rangeReader) {
 
-         rangeReader.cancel(reason);
 
-       });
 
-       this._pdfDataRangeTransport.abort();
 
-     }
 
-   };
 
-   function PDFDataTransportStreamReader(stream, queuedChunks) {
 
-     this._stream = stream;
 
-     this._done = false;
 
-     this._filename = null;
 
-     this._queuedChunks = queuedChunks || [];
 
-     this._requests = [];
 
-     this._headersReady = Promise.resolve();
 
-     stream._fullRequestReader = this;
 
-     this.onProgress = null;
 
-   }
 
-   PDFDataTransportStreamReader.prototype = {
 
-     _enqueue: function PDFDataTransportStreamReader_enqueue(chunk) {
 
-       if (this._done) {
 
-         return;
 
-       }
 
-       if (this._requests.length > 0) {
 
-         var requestCapability = this._requests.shift();
 
-         requestCapability.resolve({
 
-           value: chunk,
 
-           done: false
 
-         });
 
-         return;
 
-       }
 
-       this._queuedChunks.push(chunk);
 
-     },
 
-     get headersReady() {
 
-       return this._headersReady;
 
-     },
 
-     get filename() {
 
-       return this._filename;
 
-     },
 
-     get isRangeSupported() {
 
-       return this._stream._isRangeSupported;
 
-     },
 
-     get isStreamingSupported() {
 
-       return this._stream._isStreamingSupported;
 
-     },
 
-     get contentLength() {
 
-       return this._stream._contentLength;
 
-     },
 
-     read: function PDFDataTransportStreamReader_read() {
 
-       if (this._queuedChunks.length > 0) {
 
-         var chunk = this._queuedChunks.shift();
 
-         return Promise.resolve({
 
-           value: chunk,
 
-           done: false
 
-         });
 
-       }
 
-       if (this._done) {
 
-         return Promise.resolve({
 
-           value: undefined,
 
-           done: true
 
-         });
 
-       }
 
-       var requestCapability = (0, _util.createPromiseCapability)();
 
-       this._requests.push(requestCapability);
 
-       return requestCapability.promise;
 
-     },
 
-     cancel: function PDFDataTransportStreamReader_cancel(reason) {
 
-       this._done = true;
 
-       this._requests.forEach(function (requestCapability) {
 
-         requestCapability.resolve({
 
-           value: undefined,
 
-           done: true
 
-         });
 
-       });
 
-       this._requests = [];
 
-     }
 
-   };
 
-   function PDFDataTransportStreamRangeReader(stream, begin, end) {
 
-     this._stream = stream;
 
-     this._begin = begin;
 
-     this._end = end;
 
-     this._queuedChunk = null;
 
-     this._requests = [];
 
-     this._done = false;
 
-     this.onProgress = null;
 
-   }
 
-   PDFDataTransportStreamRangeReader.prototype = {
 
-     _enqueue: function PDFDataTransportStreamRangeReader_enqueue(chunk) {
 
-       if (this._done) {
 
-         return;
 
-       }
 
-       if (this._requests.length === 0) {
 
-         this._queuedChunk = chunk;
 
-       } else {
 
-         var requestsCapability = this._requests.shift();
 
-         requestsCapability.resolve({
 
-           value: chunk,
 
-           done: false
 
-         });
 
-         this._requests.forEach(function (requestCapability) {
 
-           requestCapability.resolve({
 
-             value: undefined,
 
-             done: true
 
-           });
 
-         });
 
-         this._requests = [];
 
-       }
 
-       this._done = true;
 
-       this._stream._removeRangeReader(this);
 
-     },
 
-     get isStreamingSupported() {
 
-       return false;
 
-     },
 
-     read: function PDFDataTransportStreamRangeReader_read() {
 
-       if (this._queuedChunk) {
 
-         var chunk = this._queuedChunk;
 
-         this._queuedChunk = null;
 
-         return Promise.resolve({
 
-           value: chunk,
 
-           done: false
 
-         });
 
-       }
 
-       if (this._done) {
 
-         return Promise.resolve({
 
-           value: undefined,
 
-           done: true
 
-         });
 
-       }
 
-       var requestCapability = (0, _util.createPromiseCapability)();
 
-       this._requests.push(requestCapability);
 
-       return requestCapability.promise;
 
-     },
 
-     cancel: function PDFDataTransportStreamRangeReader_cancel(reason) {
 
-       this._done = true;
 
-       this._requests.forEach(function (requestCapability) {
 
-         requestCapability.resolve({
 
-           value: undefined,
 
-           done: true
 
-         });
 
-       });
 
-       this._requests = [];
 
-       this._stream._removeRangeReader(this);
 
-     }
 
-   };
 
-   return PDFDataTransportStream;
 
- }();
 
- exports.PDFDataTransportStream = PDFDataTransportStream;
 
 
  |