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(listener) {
addRangeListener:
function PDFDataRangeTransport_addRangeListener(listener) {
this._rangeListeners.push(listener); this._rangeListeners.push(listener);
}, }
addProgressListener: addProgressListener(listener) {
function PDFDataRangeTransport_addProgressListener(listener) {
this._progressListeners.push(listener); this._progressListeners.push(listener);
}, }
addProgressiveReadListener: addProgressiveReadListener(listener) {
function PDFDataRangeTransport_addProgressiveReadListener(listener) {
this._progressiveReadListeners.push(listener); this._progressiveReadListeners.push(listener);
},
onDataRange: function PDFDataRangeTransport_onDataRange(begin, chunk) {
var listeners = this._rangeListeners;
for (var i = 0, n = listeners.length; i < n; ++i) {
listeners[i](begin, chunk);
} }
},
onDataProgress: function PDFDataRangeTransport_onDataProgress(loaded) { onDataRange(begin, chunk) {
for (const listener of this._rangeListeners) {
listener(begin, chunk);
}
}
onDataProgress(loaded) {
this._readyCapability.promise.then(() => { this._readyCapability.promise.then(() => {
var listeners = this._progressListeners; for (const listener of this._progressListeners) {
for (var i = 0, n = listeners.length; i < n; ++i) { listener(loaded);
listeners[i](loaded);
} }
}); });
}, }
onDataProgressiveRead: onDataProgressiveRead(chunk) {
function PDFDataRangeTransport_onDataProgress(chunk) {
this._readyCapability.promise.then(() => { this._readyCapability.promise.then(() => {
var listeners = this._progressiveReadListeners; for (const listener of this._progressiveReadListeners) {
for (var i = 0, n = listeners.length; i < n; ++i) { listener(chunk);
listeners[i](chunk);
} }
}); });
}, }
transportReady: function PDFDataRangeTransport_transportReady() { transportReady() {
this._readyCapability.resolve(); this._readyCapability.resolve();
}, }
requestDataRange: requestDataRange(begin, end) {
function PDFDataRangeTransport_requestDataRange(begin, end) {
unreachable('Abstract method PDFDataRangeTransport.requestDataRange'); unreachable('Abstract method PDFDataRangeTransport.requestDataRange');
}, }
abort: function PDFDataRangeTransport_abort() { 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) {
}
FirefoxComDataRangeTransport.prototype =
Object.create(PDFDataRangeTransport.prototype);
FirefoxComDataRangeTransport.prototype.requestDataRange =
function FirefoxComDataRangeTransport_requestDataRange(begin, end) {
FirefoxCom.request('requestDataRange', { begin, end, }); FirefoxCom.request('requestDataRange', { begin, end, });
}; }
FirefoxComDataRangeTransport.prototype.abort =
function FirefoxComDataRangeTransport_abort() { abort() {
// Sync call to ensure abort is really started. // Sync call to ensure abort is really started.
FirefoxCom.requestSync('abortLoading', null); FirefoxCom.requestSync('abortLoading', null);
}; }
}
PDFViewerApplication.externalServices = { PDFViewerApplication.externalServices = {
updateFindControlState(data) { updateFindControlState(data) {