From 5bb7f4b615a8ab1d7d43aaca94a2749498bc792d Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Sat, 20 Oct 2018 17:15:27 +0200 Subject: [PATCH] Convert `PDFDataRangeTransport` to an ES6 class --- src/display/api.js | 92 ++++++++++++++++++++-------------------------- web/firefoxcom.js | 22 +++++------ 2 files changed, 48 insertions(+), 66 deletions(-) diff --git a/src/display/api.js b/src/display/api.js index deaf7d4af..ca192afe4 100644 --- a/src/display/api.js +++ b/src/display/api.js @@ -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 diff --git a/web/firefoxcom.js b/web/firefoxcom.js index 27cf9d4ff..e8432b75a 100644 --- a/web/firefoxcom.js +++ b/web/firefoxcom.js @@ -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) {