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

View File

@ -198,20 +198,16 @@ class MozL10n {
}
})();
function FirefoxComDataRangeTransport(length, initialData) {
PDFDataRangeTransport.call(this, length, initialData);
class FirefoxComDataRangeTransport extends PDFDataRangeTransport {
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 = {
updateFindControlState(data) {