Convert PDFDataRangeTransport to an ES6 class

This commit is contained in:
Jonas Jenwald 2018-10-20 17:15:27 +02:00
parent d21892933d
commit 5bb7f4b615
2 changed files with 48 additions and 66 deletions

View File

@ -515,13 +515,11 @@ var PDFDocumentLoadingTask = (function PDFDocumentLoadingTaskClosure() {
/** /**
* Abstract class to support range requests file loading. * Abstract class to support range requests file loading.
* @class
* @alias PDFDataRangeTransport
* @param {number} length * @param {number} length
* @param {Uint8Array} initialData * @param {Uint8Array} initialData
*/ */
var PDFDataRangeTransport = (function pdfDataRangeTransportClosure() { class PDFDataRangeTransport {
function PDFDataRangeTransport(length, initialData) { constructor(length, initialData) {
this.length = length; this.length = length;
this.initialData = initialData; this.initialData = initialData;
@ -530,63 +528,51 @@ var PDFDataRangeTransport = (function pdfDataRangeTransportClosure() {
this._progressiveReadListeners = []; this._progressiveReadListeners = [];
this._readyCapability = createPromiseCapability(); this._readyCapability = createPromiseCapability();
} }
PDFDataRangeTransport.prototype =
/** @lends PDFDataRangeTransport.prototype */ {
addRangeListener:
function PDFDataRangeTransport_addRangeListener(listener) {
this._rangeListeners.push(listener);
},
addProgressListener: addRangeListener(listener) {
function PDFDataRangeTransport_addProgressListener(listener) { this._rangeListeners.push(listener);
this._progressListeners.push(listener); }
},
addProgressiveReadListener: addProgressListener(listener) {
function PDFDataRangeTransport_addProgressiveReadListener(listener) { this._progressListeners.push(listener);
this._progressiveReadListeners.push(listener); }
},
onDataRange: function PDFDataRangeTransport_onDataRange(begin, chunk) { addProgressiveReadListener(listener) {
var listeners = this._rangeListeners; this._progressiveReadListeners.push(listener);
for (var i = 0, n = listeners.length; i < n; ++i) { }
listeners[i](begin, chunk);
onDataRange(begin, chunk) {
for (const listener of this._rangeListeners) {
listener(begin, chunk);
}
}
onDataProgress(loaded) {
this._readyCapability.promise.then(() => {
for (const listener of this._progressListeners) {
listener(loaded);
} }
}, });
}
onDataProgress: function PDFDataRangeTransport_onDataProgress(loaded) { onDataProgressiveRead(chunk) {
this._readyCapability.promise.then(() => { this._readyCapability.promise.then(() => {
var listeners = this._progressListeners; for (const listener of this._progressiveReadListeners) {
for (var i = 0, n = listeners.length; i < n; ++i) { listener(chunk);
listeners[i](loaded); }
} });
}); }
},
onDataProgressiveRead: transportReady() {
function PDFDataRangeTransport_onDataProgress(chunk) { this._readyCapability.resolve();
this._readyCapability.promise.then(() => { }
var listeners = this._progressiveReadListeners;
for (var i = 0, n = listeners.length; i < n; ++i) {
listeners[i](chunk);
}
});
},
transportReady: function PDFDataRangeTransport_transportReady() { requestDataRange(begin, end) {
this._readyCapability.resolve(); unreachable('Abstract method PDFDataRangeTransport.requestDataRange');
}, }
requestDataRange: abort() {}
function PDFDataRangeTransport_requestDataRange(begin, end) { }
unreachable('Abstract method PDFDataRangeTransport.requestDataRange');
},
abort: function PDFDataRangeTransport_abort() {
},
};
return PDFDataRangeTransport;
})();
/** /**
* Proxy to a PDFDocument in the worker thread. Also, contains commonly used * Proxy to a PDFDocument in the worker thread. Also, contains commonly used

View File

@ -198,20 +198,16 @@ class MozL10n {
} }
})(); })();
function FirefoxComDataRangeTransport(length, initialData) { class FirefoxComDataRangeTransport extends PDFDataRangeTransport {
PDFDataRangeTransport.call(this, length, initialData); requestDataRange(begin, end) {
FirefoxCom.request('requestDataRange', { begin, end, });
}
abort() {
// Sync call to ensure abort is really started.
FirefoxCom.requestSync('abortLoading', null);
}
} }
FirefoxComDataRangeTransport.prototype =
Object.create(PDFDataRangeTransport.prototype);
FirefoxComDataRangeTransport.prototype.requestDataRange =
function FirefoxComDataRangeTransport_requestDataRange(begin, end) {
FirefoxCom.request('requestDataRange', { begin, end, });
};
FirefoxComDataRangeTransport.prototype.abort =
function FirefoxComDataRangeTransport_abort() {
// Sync call to ensure abort is really started.
FirefoxCom.requestSync('abortLoading', null);
};
PDFViewerApplication.externalServices = { PDFViewerApplication.externalServices = {
updateFindControlState(data) { updateFindControlState(data) {