Skip to content

Commit

Permalink
Merge pull request #10168 from Snuffleupagus/PDFDataRangeTransport-class
Browse files Browse the repository at this point in the history
Convert `PDFDataRangeTransport` to an ES6 class
  • Loading branch information
timvandermeij authored Oct 21, 2018
2 parents d218929 + 5bb7f4b commit aa728aa
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 66 deletions.
92 changes: 39 additions & 53 deletions src/display/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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);
}

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);
}
});
},
onDataRange(begin, chunk) {
for (const listener of this._rangeListeners) {
listener(begin, 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);
}
});
},
onDataProgress(loaded) {
this._readyCapability.promise.then(() => {
for (const listener of this._progressListeners) {
listener(loaded);
}
});
}

transportReady: function PDFDataRangeTransport_transportReady() {
this._readyCapability.resolve();
},
onDataProgressiveRead(chunk) {
this._readyCapability.promise.then(() => {
for (const listener of this._progressiveReadListeners) {
listener(chunk);
}
});
}

requestDataRange:
function PDFDataRangeTransport_requestDataRange(begin, end) {
unreachable('Abstract method PDFDataRangeTransport.requestDataRange');
},
transportReady() {
this._readyCapability.resolve();
}

abort: function PDFDataRangeTransport_abort() {
},
};
return PDFDataRangeTransport;
})();
requestDataRange(begin, end) {
unreachable('Abstract method PDFDataRangeTransport.requestDataRange');
}

abort() {}
}

/**
* Proxy to a PDFDocument in the worker thread. Also, contains commonly used
Expand Down
22 changes: 9 additions & 13 deletions web/firefoxcom.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down

0 comments on commit aa728aa

Please sign in to comment.