Browse Source

PDF.js version 1.8.252 - See mozilla/pdf.js@5fe26bb9da4fca7c9f8424734f99b353ba96ff39

pdfjsbot 8 years ago
parent
commit
c039c5001c

+ 1 - 1
bower.json

@@ -1,6 +1,6 @@
 {
   "name": "pdfjs-dist",
-  "version": "1.8.241",
+  "version": "1.8.252",
   "main": [
     "build/pdf.js",
     "build/pdf.worker.js"

+ 6 - 6
build/pdf.combined.js

@@ -12722,8 +12722,8 @@ var _UnsupportedManager = function UnsupportedManagerClosure() {
 }();
 var version, build;
 {
-  exports.version = version = '1.8.241';
-  exports.build = build = 'c44fd3d6';
+  exports.version = version = '1.8.252';
+  exports.build = build = '5fe26bb9';
 }
 exports.getDocument = getDocument;
 exports.PDFDataRangeTransport = PDFDataRangeTransport;
@@ -28016,8 +28016,8 @@ if (!_util.globalScope.PDFJS) {
 }
 var PDFJS = _util.globalScope.PDFJS;
 {
-  PDFJS.version = '1.8.241';
-  PDFJS.build = 'c44fd3d6';
+  PDFJS.version = '1.8.252';
+  PDFJS.build = '5fe26bb9';
 }
 PDFJS.pdfBug = false;
 if (PDFJS.verbosity !== undefined) {
@@ -43534,8 +43534,8 @@ exports.TilingPattern = TilingPattern;
 "use strict";
 
 
-var pdfjsVersion = '1.8.241';
-var pdfjsBuild = 'c44fd3d6';
+var pdfjsVersion = '1.8.252';
+var pdfjsBuild = '5fe26bb9';
 var pdfjsSharedUtil = __w_pdfjs_require__(0);
 var pdfjsDisplayGlobal = __w_pdfjs_require__(26);
 var pdfjsDisplayAPI = __w_pdfjs_require__(10);

+ 6 - 6
build/pdf.js

@@ -3431,8 +3431,8 @@ var _UnsupportedManager = function UnsupportedManagerClosure() {
 }();
 var version, build;
 {
-  exports.version = version = '1.8.241';
-  exports.build = build = 'c44fd3d6';
+  exports.version = version = '1.8.252';
+  exports.build = build = '5fe26bb9';
 }
 exports.getDocument = getDocument;
 exports.PDFDataRangeTransport = PDFDataRangeTransport;
@@ -5399,8 +5399,8 @@ if (!_util.globalScope.PDFJS) {
 }
 var PDFJS = _util.globalScope.PDFJS;
 {
-  PDFJS.version = '1.8.241';
-  PDFJS.build = 'c44fd3d6';
+  PDFJS.version = '1.8.252';
+  PDFJS.build = '5fe26bb9';
 }
 PDFJS.pdfBug = false;
 if (PDFJS.verbosity !== undefined) {
@@ -7889,8 +7889,8 @@ exports.TilingPattern = TilingPattern;
 "use strict";
 
 
-var pdfjsVersion = '1.8.241';
-var pdfjsBuild = 'c44fd3d6';
+var pdfjsVersion = '1.8.252';
+var pdfjsBuild = '5fe26bb9';
 var pdfjsSharedUtil = __w_pdfjs_require__(0);
 var pdfjsDisplayGlobal = __w_pdfjs_require__(9);
 var pdfjsDisplayAPI = __w_pdfjs_require__(3);

File diff suppressed because it is too large
+ 0 - 0
build/pdf.min.js


+ 2 - 2
build/pdf.worker.js

@@ -36956,8 +36956,8 @@ exports.Type1Parser = Type1Parser;
 "use strict";
 
 
-var pdfjsVersion = '1.8.241';
-var pdfjsBuild = 'c44fd3d6';
+var pdfjsVersion = '1.8.252';
+var pdfjsBuild = '5fe26bb9';
 var pdfjsCoreWorker = __w_pdfjs_require__(8);
 {
   __w_pdfjs_require__(19);

+ 2 - 2
lib/display/api.js

@@ -1362,8 +1362,8 @@ var _UnsupportedManager = function UnsupportedManagerClosure() {
 }();
 var version, build;
 {
-  exports.version = version = '1.8.241';
-  exports.build = build = 'c44fd3d6';
+  exports.version = version = '1.8.252';
+  exports.build = build = '5fe26bb9';
 }
 exports.getDocument = getDocument;
 exports.PDFDataRangeTransport = PDFDataRangeTransport;

+ 2 - 2
lib/display/global.js

@@ -39,8 +39,8 @@ if (!_util.globalScope.PDFJS) {
 }
 var PDFJS = _util.globalScope.PDFJS;
 {
-  PDFJS.version = '1.8.241';
-  PDFJS.build = 'c44fd3d6';
+  PDFJS.version = '1.8.252';
+  PDFJS.build = '5fe26bb9';
 }
 PDFJS.pdfBug = false;
 if (PDFJS.verbosity !== undefined) {

+ 2 - 2
lib/pdf.js

@@ -14,8 +14,8 @@
  */
 'use strict';
 
-var pdfjsVersion = '1.8.241';
-var pdfjsBuild = 'c44fd3d6';
+var pdfjsVersion = '1.8.252';
+var pdfjsBuild = '5fe26bb9';
 var pdfjsSharedUtil = require('./shared/util.js');
 var pdfjsDisplayGlobal = require('./display/global.js');
 var pdfjsDisplayAPI = require('./display/api.js');

+ 2 - 2
lib/pdf.worker.js

@@ -14,8 +14,8 @@
  */
 'use strict';
 
-var pdfjsVersion = '1.8.241';
-var pdfjsBuild = 'c44fd3d6';
+var pdfjsVersion = '1.8.252';
+var pdfjsBuild = '5fe26bb9';
 var pdfjsCoreWorker = require('./core/worker.js');
 {
   require('./core/network.js');

+ 52 - 42
lib/web/app.js

@@ -55,8 +55,6 @@ var _pdf_presentation_mode = require('./pdf_presentation_mode');
 
 var _pdf_thumbnail_viewer = require('./pdf_thumbnail_viewer');
 
-var _preferences = require('./preferences');
-
 var _secondary_toolbar = require('./secondary_toolbar');
 
 var _toolbar = require('./toolbar');
@@ -79,6 +77,10 @@ var DefaultExternalServices = {
   createDownloadManager: function createDownloadManager() {
     throw new Error('Not implemented: createDownloadManager');
   },
+  createPreferences: function createPreferences() {
+    throw new Error('Not implemented: createPreferences');
+  },
+
   supportsIntegratedFind: false,
   supportsDocumentFonts: true,
   supportsDocumentColors: true,
@@ -108,6 +110,7 @@ var PDFViewerApplication = {
   pdfAttachmentViewer: null,
   store: null,
   downloadManager: null,
+  preferences: null,
   toolbar: null,
   secondaryToolbar: null,
   eventBus: null,
@@ -129,79 +132,83 @@ var PDFViewerApplication = {
   baseUrl: '',
   externalServices: DefaultExternalServices,
   initialize: function pdfViewInitialize(appConfig) {
-    var self = this;
-    _preferences.Preferences.initialize();
-    this.preferences = _preferences.Preferences;
+    var _this = this;
+
+    this.preferences = this.externalServices.createPreferences();
     configure(_pdfjs.PDFJS);
     this.appConfig = appConfig;
     return this._readPreferences().then(function () {
-      return self._initializeViewerComponents();
+      return _this._initializeViewerComponents();
     }).then(function () {
-      self.bindEvents();
-      self.bindWindowEvents();
+      _this.bindEvents();
+      _this.bindWindowEvents();
       _ui_utils.localized.then(function () {
-        self.eventBus.dispatch('localized');
+        _this.eventBus.dispatch('localized');
       });
-      if (self.isViewerEmbedded && !_pdfjs.PDFJS.isExternalLinkTargetSet()) {
+      if (_this.isViewerEmbedded && !_pdfjs.PDFJS.isExternalLinkTargetSet()) {
         _pdfjs.PDFJS.externalLinkTarget = _pdfjs.PDFJS.LinkTarget.TOP;
       }
-      self.initialized = true;
+      _this.initialized = true;
     });
   },
   _readPreferences: function _readPreferences() {
-    var self = this;
-    return Promise.all([_preferences.Preferences.get('enableWebGL').then(function resolved(value) {
+    var preferences = this.preferences,
+        viewerPrefs = this.viewerPrefs;
+
+    return Promise.all([preferences.get('enableWebGL').then(function resolved(value) {
       _pdfjs.PDFJS.disableWebGL = !value;
-    }), _preferences.Preferences.get('sidebarViewOnLoad').then(function resolved(value) {
-      self.viewerPrefs['sidebarViewOnLoad'] = value;
-    }), _preferences.Preferences.get('pdfBugEnabled').then(function resolved(value) {
-      self.viewerPrefs['pdfBugEnabled'] = value;
-    }), _preferences.Preferences.get('showPreviousViewOnLoad').then(function resolved(value) {
-      self.viewerPrefs['showPreviousViewOnLoad'] = value;
-    }), _preferences.Preferences.get('defaultZoomValue').then(function resolved(value) {
-      self.viewerPrefs['defaultZoomValue'] = value;
-    }), _preferences.Preferences.get('enhanceTextSelection').then(function resolved(value) {
-      self.viewerPrefs['enhanceTextSelection'] = value;
-    }), _preferences.Preferences.get('disableTextLayer').then(function resolved(value) {
+    }), preferences.get('sidebarViewOnLoad').then(function resolved(value) {
+      viewerPrefs['sidebarViewOnLoad'] = value;
+    }), preferences.get('pdfBugEnabled').then(function resolved(value) {
+      viewerPrefs['pdfBugEnabled'] = value;
+    }), preferences.get('showPreviousViewOnLoad').then(function resolved(value) {
+      viewerPrefs['showPreviousViewOnLoad'] = value;
+    }), preferences.get('defaultZoomValue').then(function resolved(value) {
+      viewerPrefs['defaultZoomValue'] = value;
+    }), preferences.get('enhanceTextSelection').then(function resolved(value) {
+      viewerPrefs['enhanceTextSelection'] = value;
+    }), preferences.get('disableTextLayer').then(function resolved(value) {
       if (_pdfjs.PDFJS.disableTextLayer === true) {
         return;
       }
       _pdfjs.PDFJS.disableTextLayer = value;
-    }), _preferences.Preferences.get('disableRange').then(function resolved(value) {
+    }), preferences.get('disableRange').then(function resolved(value) {
       if (_pdfjs.PDFJS.disableRange === true) {
         return;
       }
       _pdfjs.PDFJS.disableRange = value;
-    }), _preferences.Preferences.get('disableStream').then(function resolved(value) {
+    }), preferences.get('disableStream').then(function resolved(value) {
       if (_pdfjs.PDFJS.disableStream === true) {
         return;
       }
       _pdfjs.PDFJS.disableStream = value;
-    }), _preferences.Preferences.get('disableAutoFetch').then(function resolved(value) {
+    }), preferences.get('disableAutoFetch').then(function resolved(value) {
       _pdfjs.PDFJS.disableAutoFetch = value;
-    }), _preferences.Preferences.get('disableFontFace').then(function resolved(value) {
+    }), preferences.get('disableFontFace').then(function resolved(value) {
       if (_pdfjs.PDFJS.disableFontFace === true) {
         return;
       }
       _pdfjs.PDFJS.disableFontFace = value;
-    }), _preferences.Preferences.get('useOnlyCssZoom').then(function resolved(value) {
+    }), preferences.get('useOnlyCssZoom').then(function resolved(value) {
       _pdfjs.PDFJS.useOnlyCssZoom = value;
-    }), _preferences.Preferences.get('externalLinkTarget').then(function resolved(value) {
+    }), preferences.get('externalLinkTarget').then(function resolved(value) {
       if (_pdfjs.PDFJS.isExternalLinkTargetSet()) {
         return;
       }
       _pdfjs.PDFJS.externalLinkTarget = value;
-    }), _preferences.Preferences.get('renderer').then(function resolved(value) {
-      self.viewerPrefs['renderer'] = value;
-    }), _preferences.Preferences.get('renderInteractiveForms').then(function resolved(value) {
-      self.viewerPrefs['renderInteractiveForms'] = value;
-    }), _preferences.Preferences.get('disablePageLabels').then(function resolved(value) {
-      self.viewerPrefs['disablePageLabels'] = value;
-    }), _preferences.Preferences.get('enablePrintAutoRotate').then(function resolved(value) {
-      self.viewerPrefs['enablePrintAutoRotate'] = value;
+    }), preferences.get('renderer').then(function resolved(value) {
+      viewerPrefs['renderer'] = value;
+    }), preferences.get('renderInteractiveForms').then(function resolved(value) {
+      viewerPrefs['renderInteractiveForms'] = value;
+    }), preferences.get('disablePageLabels').then(function resolved(value) {
+      viewerPrefs['disablePageLabels'] = value;
+    }), preferences.get('enablePrintAutoRotate').then(function resolved(value) {
+      viewerPrefs['enablePrintAutoRotate'] = value;
     })]).catch(function (reason) {});
   },
   _initializeViewerComponents: function _initializeViewerComponents() {
+    var _this2 = this;
+
     var self = this;
     var appConfig = this.appConfig;
     return new Promise(function (resolve, reject) {
@@ -267,7 +274,8 @@ var PDFViewerApplication = {
       self.overlayManager = _overlay_manager.OverlayManager;
       self.handTool = new _hand_tool.HandTool({
         container: container,
-        eventBus: eventBus
+        eventBus: eventBus,
+        preferences: _this2.preferences
       });
       self.pdfDocumentProperties = new _pdf_document_properties.PDFDocumentProperties(appConfig.documentProperties);
       self.toolbar = new _toolbar.Toolbar(appConfig.toolbar, container, eventBus);
@@ -417,14 +425,16 @@ var PDFViewerApplication = {
     return promise;
   },
   open: function pdfViewOpen(file, args) {
+    var _this3 = this;
+
     if (arguments.length > 2 || typeof args === 'number') {
       return Promise.reject(new Error('Call of open() with obsolete signature.'));
     }
     if (this.pdfLoadingTask) {
       return this.close().then(function () {
-        _preferences.Preferences.reload();
-        return this.open(file, args);
-      }.bind(this));
+        _this3.preferences.reload();
+        return _this3.open(file, args);
+      });
     }
     var parameters = Object.create(null),
         scale;

+ 62 - 28
lib/web/chromecom.js

@@ -19,15 +19,23 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.ChromeCom = undefined;
 
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
 var _app = require('./app');
 
+var _preferences = require('./preferences');
+
 var _download_manager = require('./download_manager');
 
 var _overlay_manager = require('./overlay_manager');
 
 var _pdfjs = require('./pdfjs');
 
-var _preferences = require('./preferences');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
 
 {
   throw new Error('Module "pdfjs-web/chromecom" shall not be used outside ' + 'CHROME build.');
@@ -236,37 +244,60 @@ function setReferer(url, callback) {
   }
 }
 var storageArea = chrome.storage.sync || chrome.storage.local;
-_preferences.Preferences._writeToStorage = function (prefObj) {
-  return new Promise(function (resolve) {
-    if (prefObj === _preferences.Preferences.defaults) {
-      var keysToRemove = Object.keys(_preferences.Preferences.defaults);
-      storageArea.remove(keysToRemove, function () {
-        resolve();
-      });
-    } else {
-      storageArea.set(prefObj, function () {
-        resolve();
+
+var ChromePreferences = function (_BasePreferences) {
+  _inherits(ChromePreferences, _BasePreferences);
+
+  function ChromePreferences() {
+    _classCallCheck(this, ChromePreferences);
+
+    return _possibleConstructorReturn(this, (ChromePreferences.__proto__ || Object.getPrototypeOf(ChromePreferences)).apply(this, arguments));
+  }
+
+  _createClass(ChromePreferences, [{
+    key: '_writeToStorage',
+    value: function _writeToStorage(prefObj) {
+      var _this2 = this;
+
+      return new Promise(function (resolve) {
+        if (prefObj === _this2.defaults) {
+          var keysToRemove = Object.keys(_this2.defaults);
+          storageArea.remove(keysToRemove, function () {
+            resolve();
+          });
+        } else {
+          storageArea.set(prefObj, function () {
+            resolve();
+          });
+        }
       });
     }
-  });
-};
-_preferences.Preferences._readFromStorage = function (prefObj) {
-  return new Promise(function (resolve) {
-    if (chrome.storage.managed) {
-      chrome.storage.managed.get(_preferences.Preferences.defaults, getPreferences);
-    } else {
-      getPreferences(_preferences.Preferences.defaults);
-    }
-    function getPreferences(defaultPrefs) {
-      if (chrome.runtime.lastError) {
-        defaultPrefs = _preferences.Preferences.defaults;
-      }
-      storageArea.get(defaultPrefs, function (readPrefs) {
-        resolve(readPrefs);
+  }, {
+    key: '_readFromStorage',
+    value: function _readFromStorage(prefObj) {
+      var _this3 = this;
+
+      return new Promise(function (resolve) {
+        var getPreferences = function getPreferences(defaultPrefs) {
+          if (chrome.runtime.lastError) {
+            defaultPrefs = _this3.defaults;
+          }
+          storageArea.get(defaultPrefs, function (readPrefs) {
+            resolve(readPrefs);
+          });
+        };
+        if (chrome.storage.managed) {
+          chrome.storage.managed.get(_this3.defaults, getPreferences);
+        } else {
+          getPreferences(_this3.defaults);
+        }
       });
     }
-  });
-};
+  }]);
+
+  return ChromePreferences;
+}(_preferences.BasePreferences);
+
 var ChromeExternalServices = Object.create(_app.DefaultExternalServices);
 ChromeExternalServices.initPassiveLoading = function (callbacks) {
   var appConfig = _app.PDFViewerApplication.appConfig;
@@ -277,5 +308,8 @@ ChromeExternalServices.initPassiveLoading = function (callbacks) {
 ChromeExternalServices.createDownloadManager = function () {
   return new _download_manager.DownloadManager();
 };
+ChromeExternalServices.createPreferences = function () {
+  return new ChromePreferences();
+};
 _app.PDFViewerApplication.externalServices = ChromeExternalServices;
 exports.ChromeCom = ChromeCom;

+ 45 - 14
lib/web/firefoxcom.js

@@ -21,11 +21,19 @@ exports.FirefoxCom = exports.DownloadManager = undefined;
 
 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
 
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
 var _pdfjs = require('./pdfjs');
 
+var _preferences = require('./preferences');
+
 var _app = require('./app');
 
-var _preferences = require('./preferences');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
 
 {
   throw new Error('Module "pdfjs-web/firefoxcom" shall not be used outside ' + 'FIREFOX and MOZCENTRAL builds.');
@@ -103,19 +111,38 @@ var DownloadManager = function DownloadManagerClosure() {
   };
   return DownloadManager;
 }();
-_preferences.Preferences._writeToStorage = function (prefObj) {
-  return new Promise(function (resolve) {
-    FirefoxCom.request('setPreferences', prefObj, resolve);
-  });
-};
-_preferences.Preferences._readFromStorage = function (prefObj) {
-  return new Promise(function (resolve) {
-    FirefoxCom.request('getPreferences', prefObj, function (prefStr) {
-      var readPrefs = JSON.parse(prefStr);
-      resolve(readPrefs);
-    });
-  });
-};
+
+var FirefoxPreferences = function (_BasePreferences) {
+  _inherits(FirefoxPreferences, _BasePreferences);
+
+  function FirefoxPreferences() {
+    _classCallCheck(this, FirefoxPreferences);
+
+    return _possibleConstructorReturn(this, (FirefoxPreferences.__proto__ || Object.getPrototypeOf(FirefoxPreferences)).apply(this, arguments));
+  }
+
+  _createClass(FirefoxPreferences, [{
+    key: '_writeToStorage',
+    value: function _writeToStorage(prefObj) {
+      return new Promise(function (resolve) {
+        FirefoxCom.request('setPreferences', prefObj, resolve);
+      });
+    }
+  }, {
+    key: '_readFromStorage',
+    value: function _readFromStorage(prefObj) {
+      return new Promise(function (resolve) {
+        FirefoxCom.request('getPreferences', prefObj, function (prefStr) {
+          var readPrefs = JSON.parse(prefStr);
+          resolve(readPrefs);
+        });
+      });
+    }
+  }]);
+
+  return FirefoxPreferences;
+}(_preferences.BasePreferences);
+
 (function listenFindEvents() {
   var events = ['find', 'findagain', 'findhighlightallchange', 'findcasesensitivitychange'];
   var handleEvent = function handleEvent(evt) {
@@ -201,6 +228,10 @@ _app.PDFViewerApplication.externalServices = {
   createDownloadManager: function createDownloadManager() {
     return new DownloadManager();
   },
+  createPreferences: function createPreferences() {
+    return new FirefoxPreferences();
+  },
+
   get supportsIntegratedFind() {
     var support = FirefoxCom.requestSync('supportsIntegratedFind');
     return (0, _pdfjs.shadow)(this, 'supportsIntegratedFind', support);

+ 44 - 0
lib/web/genericcom.js

@@ -19,15 +19,59 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.GenericCom = undefined;
 
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
 var _app = require('./app');
 
+var _preferences = require('./preferences');
+
 var _download_manager = require('./download_manager');
 
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
 ;
 var GenericCom = {};
+
+var GenericPreferences = function (_BasePreferences) {
+  _inherits(GenericPreferences, _BasePreferences);
+
+  function GenericPreferences() {
+    _classCallCheck(this, GenericPreferences);
+
+    return _possibleConstructorReturn(this, (GenericPreferences.__proto__ || Object.getPrototypeOf(GenericPreferences)).apply(this, arguments));
+  }
+
+  _createClass(GenericPreferences, [{
+    key: '_writeToStorage',
+    value: function _writeToStorage(prefObj) {
+      return new Promise(function (resolve) {
+        localStorage.setItem('pdfjs.preferences', JSON.stringify(prefObj));
+        resolve();
+      });
+    }
+  }, {
+    key: '_readFromStorage',
+    value: function _readFromStorage(prefObj) {
+      return new Promise(function (resolve) {
+        var readPrefs = JSON.parse(localStorage.getItem('pdfjs.preferences'));
+        resolve(readPrefs);
+      });
+    }
+  }]);
+
+  return GenericPreferences;
+}(_preferences.BasePreferences);
+
 var GenericExternalServices = Object.create(_app.DefaultExternalServices);
 GenericExternalServices.createDownloadManager = function () {
   return new _download_manager.DownloadManager();
 };
+GenericExternalServices.createPreferences = function () {
+  return new GenericPreferences();
+};
 _app.PDFViewerApplication.externalServices = GenericExternalServices;
 exports.GenericCom = GenericCom;

+ 6 - 5
lib/web/hand_tool.js

@@ -23,12 +23,13 @@ var _grab_to_pan = require('./grab_to_pan');
 
 var _ui_utils = require('./ui_utils');
 
-var _preferences = require('./preferences');
-
 var HandTool = function HandToolClosure() {
   function HandTool(options) {
+    var _this = this;
+
     this.container = options.container;
     this.eventBus = options.eventBus;
+    var preferences = options.preferences;
     this.wasActive = false;
     this.handTool = new _grab_to_pan.GrabToPan({
       element: this.container,
@@ -37,11 +38,11 @@ var HandTool = function HandToolClosure() {
       }.bind(this)
     });
     this.eventBus.on('togglehandtool', this.toggle.bind(this));
-    Promise.all([_ui_utils.localized, _preferences.Preferences.get('enableHandToolOnLoad')]).then(function resolved(values) {
+    Promise.all([_ui_utils.localized, preferences.get('enableHandToolOnLoad')]).then(function (values) {
       if (values[1] === true) {
-        this.handTool.activate();
+        _this.handTool.activate();
       }
-    }.bind(this)).catch(function rejected(reason) {});
+    }).catch(function rejected(reason) {});
     this.eventBus.on('presentationmodechanged', function (e) {
       if (e.switchInProgress) {
         return;

+ 42 - 18
lib/web/pdf_attachment_viewer.js

@@ -19,10 +19,16 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.PDFAttachmentViewer = undefined;
 
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
 var _pdfjs = require('./pdfjs');
 
-var PDFAttachmentViewer = function PDFAttachmentViewerClosure() {
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+var PDFAttachmentViewer = function () {
   function PDFAttachmentViewer(options) {
+    _classCallCheck(this, PDFAttachmentViewer);
+
     this.attachments = null;
     this.container = options.container;
     this.eventBus = options.eventBus;
@@ -30,22 +36,30 @@ var PDFAttachmentViewer = function PDFAttachmentViewerClosure() {
     this._renderedCapability = (0, _pdfjs.createPromiseCapability)();
     this.eventBus.on('fileattachmentannotation', this._appendAttachment.bind(this));
   }
-  PDFAttachmentViewer.prototype = {
-    reset: function PDFAttachmentViewer_reset(keepRenderedCapability) {
+
+  _createClass(PDFAttachmentViewer, [{
+    key: 'reset',
+    value: function reset() {
+      var keepRenderedCapability = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+
       this.attachments = null;
       this.container.textContent = '';
       if (!keepRenderedCapability) {
         this._renderedCapability = (0, _pdfjs.createPromiseCapability)();
       }
-    },
-    _dispatchEvent: function PDFAttachmentViewer_dispatchEvent(attachmentsCount) {
+    }
+  }, {
+    key: '_dispatchEvent',
+    value: function _dispatchEvent(attachmentsCount) {
       this.eventBus.dispatch('attachmentsloaded', {
         source: this,
         attachmentsCount: attachmentsCount
       });
       this._renderedCapability.resolve();
-    },
-    _bindPdfLink: function _bindPdfLink(button, content, filename) {
+    }
+  }, {
+    key: '_bindPdfLink',
+    value: function _bindPdfLink(button, content, filename) {
       if (_pdfjs.PDFJS.disableCreateObjectURL) {
         throw new Error('bindPdfLink: ' + 'Unsupported "PDFJS.disableCreateObjectURL" value.');
       }
@@ -59,16 +73,22 @@ var PDFAttachmentViewer = function PDFAttachmentViewerClosure() {
         window.open(viewerUrl);
         return false;
       };
-    },
+    }
+  }, {
+    key: '_bindLink',
+    value: function _bindLink(button, content, filename) {
+      var _this = this;
 
-    _bindLink: function PDFAttachmentViewer_bindLink(button, content, filename) {
-      button.onclick = function downloadFile(e) {
-        this.downloadManager.downloadData(content, filename, '');
+      button.onclick = function () {
+        _this.downloadManager.downloadData(content, filename, '');
         return false;
-      }.bind(this);
-    },
-    render: function PDFAttachmentViewer_render(params) {
-      params = params || {};
+      };
+    }
+  }, {
+    key: 'render',
+    value: function render() {
+      var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
       var attachments = params.attachments || null;
       var attachmentsCount = 0;
       if (this.attachments) {
@@ -100,8 +120,10 @@ var PDFAttachmentViewer = function PDFAttachmentViewerClosure() {
         this.container.appendChild(div);
       }
       this._dispatchEvent(attachmentsCount);
-    },
-    _appendAttachment: function PDFAttachmentViewer_appendAttachment(item) {
+    }
+  }, {
+    key: '_appendAttachment',
+    value: function _appendAttachment(item) {
       this._renderedCapability.promise.then(function (id, filename, content) {
         var attachments = this.attachments;
         if (!attachments) {
@@ -123,7 +145,9 @@ var PDFAttachmentViewer = function PDFAttachmentViewerClosure() {
         });
       }.bind(this, item.id, item.filename, item.content));
     }
-  };
+  }]);
+
   return PDFAttachmentViewer;
 }();
+
 exports.PDFAttachmentViewer = PDFAttachmentViewer;

+ 58 - 28
lib/web/pdf_outline_viewer.js

@@ -19,31 +19,46 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.PDFOutlineViewer = undefined;
 
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
 var _pdfjs = require('./pdfjs');
 
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
 var DEFAULT_TITLE = '\u2013';
-var PDFOutlineViewer = function PDFOutlineViewerClosure() {
+
+var PDFOutlineViewer = function () {
   function PDFOutlineViewer(options) {
+    _classCallCheck(this, PDFOutlineViewer);
+
     this.outline = null;
     this.lastToggleIsShow = true;
     this.container = options.container;
     this.linkService = options.linkService;
     this.eventBus = options.eventBus;
   }
-  PDFOutlineViewer.prototype = {
-    reset: function PDFOutlineViewer_reset() {
+
+  _createClass(PDFOutlineViewer, [{
+    key: 'reset',
+    value: function reset() {
       this.outline = null;
       this.lastToggleIsShow = true;
       this.container.textContent = '';
       this.container.classList.remove('outlineWithDeepNesting');
-    },
-    _dispatchEvent: function PDFOutlineViewer_dispatchEvent(outlineCount) {
+    }
+  }, {
+    key: '_dispatchEvent',
+    value: function _dispatchEvent(outlineCount) {
       this.eventBus.dispatch('outlineloaded', {
         source: this,
         outlineCount: outlineCount
       });
-    },
-    _bindLink: function PDFOutlineViewer_bindLink(element, item) {
+    }
+  }, {
+    key: '_bindLink',
+    value: function _bindLink(element, item) {
+      var _this = this;
+
       if (item.url) {
         (0, _pdfjs.addLinkAttributes)(element, {
           url: item.url,
@@ -51,17 +66,18 @@ var PDFOutlineViewer = function PDFOutlineViewerClosure() {
         });
         return;
       }
-      var self = this,
-          destination = item.dest;
-      element.href = self.linkService.getDestinationHash(destination);
+      var destination = item.dest;
+      element.href = this.linkService.getDestinationHash(destination);
       element.onclick = function () {
         if (destination) {
-          self.linkService.navigateTo(destination);
+          _this.linkService.navigateTo(destination);
         }
         return false;
       };
-    },
-    _setStyles: function PDFOutlineViewer_setStyles(element, item) {
+    }
+  }, {
+    key: '_setStyles',
+    value: function _setStyles(element, item) {
       var styleStr = '';
       if (item.bold) {
         styleStr += 'font-weight: bold;';
@@ -72,35 +88,47 @@ var PDFOutlineViewer = function PDFOutlineViewerClosure() {
       if (styleStr) {
         element.setAttribute('style', styleStr);
       }
-    },
-    _addToggleButton: function PDFOutlineViewer_addToggleButton(div) {
+    }
+  }, {
+    key: '_addToggleButton',
+    value: function _addToggleButton(div) {
+      var _this2 = this;
+
       var toggler = document.createElement('div');
       toggler.className = 'outlineItemToggler';
-      toggler.onclick = function (event) {
-        event.stopPropagation();
+      toggler.onclick = function (evt) {
+        evt.stopPropagation();
         toggler.classList.toggle('outlineItemsHidden');
-        if (event.shiftKey) {
+        if (evt.shiftKey) {
           var shouldShowAll = !toggler.classList.contains('outlineItemsHidden');
-          this._toggleOutlineItem(div, shouldShowAll);
+          _this2._toggleOutlineItem(div, shouldShowAll);
         }
-      }.bind(this);
+      };
       div.insertBefore(toggler, div.firstChild);
-    },
-    _toggleOutlineItem: function PDFOutlineViewer_toggleOutlineItem(root, show) {
+    }
+  }, {
+    key: '_toggleOutlineItem',
+    value: function _toggleOutlineItem(root, show) {
       this.lastToggleIsShow = show;
       var togglers = root.querySelectorAll('.outlineItemToggler');
       for (var i = 0, ii = togglers.length; i < ii; ++i) {
         togglers[i].classList[show ? 'remove' : 'add']('outlineItemsHidden');
       }
-    },
-    toggleOutlineTree: function PDFOutlineViewer_toggleOutlineTree() {
+    }
+  }, {
+    key: 'toggleOutlineTree',
+    value: function toggleOutlineTree() {
       if (!this.outline) {
         return;
       }
       this._toggleOutlineItem(this.container, !this.lastToggleIsShow);
-    },
-    render: function PDFOutlineViewer_render(params) {
-      var outline = params && params.outline || null;
+    }
+  }, {
+    key: 'render',
+    value: function render() {
+      var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+
+      var outline = params.outline || null;
       var outlineCount = 0;
       if (this.outline) {
         this.reset();
@@ -148,7 +176,9 @@ var PDFOutlineViewer = function PDFOutlineViewerClosure() {
       this.container.appendChild(fragment);
       this._dispatchEvent(outlineCount);
     }
-  };
+  }]);
+
   return PDFOutlineViewer;
 }();
+
 exports.PDFOutlineViewer = PDFOutlineViewer;

+ 115 - 69
lib/web/pdf_sidebar.js

@@ -19,10 +19,14 @@ Object.defineProperty(exports, "__esModule", {
 });
 exports.PDFSidebar = exports.SidebarView = undefined;
 
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
 var _ui_utils = require('./ui_utils');
 
 var _pdf_rendering_queue = require('./pdf_rendering_queue');
 
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
 var UI_NOTIFICATION_CLASS = 'pdfSidebarNotification';
 var SidebarView = {
   NONE: 0,
@@ -30,8 +34,11 @@ var SidebarView = {
   OUTLINE: 2,
   ATTACHMENTS: 3
 };
-var PDFSidebar = function PDFSidebarClosure() {
+
+var PDFSidebar = function () {
   function PDFSidebar(options) {
+    _classCallCheck(this, PDFSidebar);
+
     this.isOpen = false;
     this.active = SidebarView.THUMBS;
     this.isInitialViewSet = false;
@@ -52,27 +59,19 @@ var PDFSidebar = function PDFSidebarClosure() {
     this.disableNotification = options.disableNotification || false;
     this._addEventListeners();
   }
-  PDFSidebar.prototype = {
-    reset: function PDFSidebar_reset() {
+
+  _createClass(PDFSidebar, [{
+    key: 'reset',
+    value: function reset() {
       this.isInitialViewSet = false;
       this._hideUINotification(null);
       this.switchView(SidebarView.THUMBS);
       this.outlineButton.disabled = false;
       this.attachmentsButton.disabled = false;
-    },
-    get visibleView() {
-      return this.isOpen ? this.active : SidebarView.NONE;
-    },
-    get isThumbnailViewVisible() {
-      return this.isOpen && this.active === SidebarView.THUMBS;
-    },
-    get isOutlineViewVisible() {
-      return this.isOpen && this.active === SidebarView.OUTLINE;
-    },
-    get isAttachmentsViewVisible() {
-      return this.isOpen && this.active === SidebarView.ATTACHMENTS;
-    },
-    setInitialView: function PDFSidebar_setInitialView(view) {
+    }
+  }, {
+    key: 'setInitialView',
+    value: function setInitialView(view) {
       if (this.isInitialViewSet) {
         return;
       }
@@ -86,8 +85,12 @@ var PDFSidebar = function PDFSidebarClosure() {
       if (isViewPreserved) {
         this._dispatchEvent();
       }
-    },
-    switchView: function PDFSidebar_switchView(view, forceOpen) {
+    }
+  }, {
+    key: 'switchView',
+    value: function switchView(view) {
+      var forceOpen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
       if (view === SidebarView.NONE) {
         this.close();
         return;
@@ -145,8 +148,10 @@ var PDFSidebar = function PDFSidebarClosure() {
         this._dispatchEvent();
       }
       this._hideUINotification(this.active);
-    },
-    open: function PDFSidebar_open() {
+    }
+  }, {
+    key: 'open',
+    value: function open() {
       if (this.isOpen) {
         return;
       }
@@ -160,8 +165,10 @@ var PDFSidebar = function PDFSidebarClosure() {
       this._forceRendering();
       this._dispatchEvent();
       this._hideUINotification(this.active);
-    },
-    close: function PDFSidebar_close() {
+    }
+  }, {
+    key: 'close',
+    value: function close() {
       if (!this.isOpen) {
         return;
       }
@@ -171,29 +178,37 @@ var PDFSidebar = function PDFSidebarClosure() {
       this.outerContainer.classList.remove('sidebarOpen');
       this._forceRendering();
       this._dispatchEvent();
-    },
-    toggle: function PDFSidebar_toggle() {
+    }
+  }, {
+    key: 'toggle',
+    value: function toggle() {
       if (this.isOpen) {
         this.close();
       } else {
         this.open();
       }
-    },
-    _dispatchEvent: function PDFSidebar_dispatchEvent() {
+    }
+  }, {
+    key: '_dispatchEvent',
+    value: function _dispatchEvent() {
       this.eventBus.dispatch('sidebarviewchanged', {
         source: this,
         view: this.visibleView
       });
-    },
-    _forceRendering: function PDFSidebar_forceRendering() {
+    }
+  }, {
+    key: '_forceRendering',
+    value: function _forceRendering() {
       if (this.onToggled) {
         this.onToggled();
       } else {
         this.pdfViewer.forceRendering();
         this.pdfThumbnailViewer.forceRendering();
       }
-    },
-    _updateThumbnailViewer: function PDFSidebar_updateThumbnailViewer() {
+    }
+  }, {
+    key: '_updateThumbnailViewer',
+    value: function _updateThumbnailViewer() {
       var pdfViewer = this.pdfViewer;
       var thumbnailViewer = this.pdfThumbnailViewer;
       var pagesCount = pdfViewer.pagesCount;
@@ -205,8 +220,10 @@ var PDFSidebar = function PDFSidebarClosure() {
         }
       }
       thumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber);
-    },
-    _showUINotification: function _showUINotification(view) {
+    }
+  }, {
+    key: '_showUINotification',
+    value: function _showUINotification(view) {
       if (this.disableNotification) {
         return;
       }
@@ -224,21 +241,25 @@ var PDFSidebar = function PDFSidebarClosure() {
           this.attachmentsButton.classList.add(UI_NOTIFICATION_CLASS);
           break;
       }
-    },
-    _hideUINotification: function _hideUINotification(view) {
+    }
+  }, {
+    key: '_hideUINotification',
+    value: function _hideUINotification(view) {
+      var _this = this;
+
       if (this.disableNotification) {
         return;
       }
-      var removeNotification = function (view) {
+      var removeNotification = function removeNotification(view) {
         switch (view) {
           case SidebarView.OUTLINE:
-            this.outlineButton.classList.remove(UI_NOTIFICATION_CLASS);
+            _this.outlineButton.classList.remove(UI_NOTIFICATION_CLASS);
             break;
           case SidebarView.ATTACHMENTS:
-            this.attachmentsButton.classList.remove(UI_NOTIFICATION_CLASS);
+            _this.attachmentsButton.classList.remove(UI_NOTIFICATION_CLASS);
             break;
         }
-      }.bind(this);
+      };
       if (!this.isOpen && view !== null) {
         return;
       }
@@ -251,52 +272,77 @@ var PDFSidebar = function PDFSidebarClosure() {
         removeNotification(SidebarView[view]);
       }
       this.toggleButton.title = _ui_utils.mozL10n.get('toggle_sidebar.title', null, 'Toggle Sidebar');
-    },
-    _addEventListeners: function PDFSidebar_addEventListeners() {
-      var self = this;
-      self.mainContainer.addEventListener('transitionend', function (evt) {
-        if (evt.target === this) {
-          self.outerContainer.classList.remove('sidebarMoving');
+    }
+  }, {
+    key: '_addEventListeners',
+    value: function _addEventListeners() {
+      var _this2 = this;
+
+      this.mainContainer.addEventListener('transitionend', function (evt) {
+        if (evt.target === _this2.mainContainer) {
+          _this2.outerContainer.classList.remove('sidebarMoving');
         }
       });
-      self.thumbnailButton.addEventListener('click', function () {
-        self.switchView(SidebarView.THUMBS);
+      this.thumbnailButton.addEventListener('click', function () {
+        _this2.switchView(SidebarView.THUMBS);
       });
-      self.outlineButton.addEventListener('click', function () {
-        self.switchView(SidebarView.OUTLINE);
+      this.outlineButton.addEventListener('click', function () {
+        _this2.switchView(SidebarView.OUTLINE);
       });
-      self.outlineButton.addEventListener('dblclick', function () {
-        self.pdfOutlineViewer.toggleOutlineTree();
+      this.outlineButton.addEventListener('dblclick', function () {
+        _this2.pdfOutlineViewer.toggleOutlineTree();
       });
-      self.attachmentsButton.addEventListener('click', function () {
-        self.switchView(SidebarView.ATTACHMENTS);
+      this.attachmentsButton.addEventListener('click', function () {
+        _this2.switchView(SidebarView.ATTACHMENTS);
       });
-      self.eventBus.on('outlineloaded', function (e) {
-        var outlineCount = e.outlineCount;
-        self.outlineButton.disabled = !outlineCount;
+      this.eventBus.on('outlineloaded', function (evt) {
+        var outlineCount = evt.outlineCount;
+        _this2.outlineButton.disabled = !outlineCount;
         if (outlineCount) {
-          self._showUINotification(SidebarView.OUTLINE);
-        } else if (self.active === SidebarView.OUTLINE) {
-          self.switchView(SidebarView.THUMBS);
+          _this2._showUINotification(SidebarView.OUTLINE);
+        } else if (_this2.active === SidebarView.OUTLINE) {
+          _this2.switchView(SidebarView.THUMBS);
         }
       });
-      self.eventBus.on('attachmentsloaded', function (e) {
-        var attachmentsCount = e.attachmentsCount;
-        self.attachmentsButton.disabled = !attachmentsCount;
+      this.eventBus.on('attachmentsloaded', function (evt) {
+        var attachmentsCount = evt.attachmentsCount;
+        _this2.attachmentsButton.disabled = !attachmentsCount;
         if (attachmentsCount) {
-          self._showUINotification(SidebarView.ATTACHMENTS);
-        } else if (self.active === SidebarView.ATTACHMENTS) {
-          self.switchView(SidebarView.THUMBS);
+          _this2._showUINotification(SidebarView.ATTACHMENTS);
+        } else if (_this2.active === SidebarView.ATTACHMENTS) {
+          _this2.switchView(SidebarView.THUMBS);
         }
       });
-      self.eventBus.on('presentationmodechanged', function (e) {
-        if (!e.active && !e.switchInProgress && self.isThumbnailViewVisible) {
-          self._updateThumbnailViewer();
+      this.eventBus.on('presentationmodechanged', function (evt) {
+        if (!evt.active && !evt.switchInProgress && _this2.isThumbnailViewVisible) {
+          _this2._updateThumbnailViewer();
         }
       });
     }
-  };
+  }, {
+    key: 'visibleView',
+    get: function get() {
+      return this.isOpen ? this.active : SidebarView.NONE;
+    }
+  }, {
+    key: 'isThumbnailViewVisible',
+    get: function get() {
+      return this.isOpen && this.active === SidebarView.THUMBS;
+    }
+  }, {
+    key: 'isOutlineViewVisible',
+    get: function get() {
+      return this.isOpen && this.active === SidebarView.OUTLINE;
+    }
+  }, {
+    key: 'isAttachmentsViewVisible',
+    get: function get() {
+      return this.isOpen && this.active === SidebarView.ATTACHMENTS;
+    }
+  }]);
+
   return PDFSidebar;
 }();
+
 exports.SidebarView = SidebarView;
 exports.PDFSidebar = PDFSidebar;

+ 104 - 84
lib/web/preferences.js

@@ -20,6 +20,10 @@ Object.defineProperty(exports, "__esModule", {
 
 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
 
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
 var defaultPreferences = null;
 function getDefaultPreferences() {
   if (!defaultPreferences) {
@@ -55,99 +59,115 @@ function cloneObj(obj) {
   }
   return result;
 }
-var Preferences = {
-  prefs: null,
-  isInitializedPromiseResolved: false,
-  initializedPromise: null,
-  initialize: function preferencesInitialize() {
-    return this.initializedPromise = getDefaultPreferences().then(function (defaults) {
-      Object.defineProperty(this, 'defaults', {
+
+var BasePreferences = function () {
+  function BasePreferences() {
+    var _this = this;
+
+    _classCallCheck(this, BasePreferences);
+
+    if (this.constructor === BasePreferences) {
+      throw new Error('Cannot initialize BasePreferences.');
+    }
+    this.prefs = null;
+    this._initializedPromise = getDefaultPreferences().then(function (defaults) {
+      Object.defineProperty(_this, 'defaults', {
         value: Object.freeze(defaults),
         writable: false,
         enumerable: true,
         configurable: false
       });
-      this.prefs = cloneObj(defaults);
-      return this._readFromStorage(defaults);
-    }.bind(this)).then(function (prefObj) {
-      this.isInitializedPromiseResolved = true;
+      _this.prefs = cloneObj(defaults);
+      return _this._readFromStorage(defaults);
+    }).then(function (prefObj) {
       if (prefObj) {
-        this.prefs = prefObj;
+        _this.prefs = prefObj;
       }
-    }.bind(this));
-  },
-  _writeToStorage: function preferences_writeToStorage(prefObj) {
-    return Promise.resolve();
-  },
-  _readFromStorage: function preferences_readFromStorage(prefObj) {
-    return Promise.resolve();
-  },
-  reset: function preferencesReset() {
-    return this.initializedPromise.then(function () {
-      this.prefs = cloneObj(this.defaults);
-      return this._writeToStorage(this.defaults);
-    }.bind(this));
-  },
-  reload: function preferencesReload() {
-    return this.initializedPromise.then(function () {
-      this._readFromStorage(this.defaults).then(function (prefObj) {
+    });
+  }
+
+  _createClass(BasePreferences, [{
+    key: "_writeToStorage",
+    value: function _writeToStorage(prefObj) {
+      return Promise.reject(new Error('Not implemented: _writeToStorage'));
+    }
+  }, {
+    key: "_readFromStorage",
+    value: function _readFromStorage(prefObj) {
+      return Promise.reject(new Error('Not implemented: _readFromStorage'));
+    }
+  }, {
+    key: "reset",
+    value: function reset() {
+      var _this2 = this;
+
+      return this._initializedPromise.then(function () {
+        _this2.prefs = cloneObj(_this2.defaults);
+        return _this2._writeToStorage(_this2.defaults);
+      });
+    }
+  }, {
+    key: "reload",
+    value: function reload() {
+      var _this3 = this;
+
+      return this._initializedPromise.then(function () {
+        return _this3._readFromStorage(_this3.defaults);
+      }).then(function (prefObj) {
         if (prefObj) {
-          this.prefs = prefObj;
+          _this3.prefs = prefObj;
         }
-      }.bind(this));
-    }.bind(this));
-  },
-  set: function preferencesSet(name, value) {
-    return this.initializedPromise.then(function () {
-      if (this.defaults[name] === undefined) {
-        throw new Error('preferencesSet: \'' + name + '\' is undefined.');
-      } else if (value === undefined) {
-        throw new Error('preferencesSet: no value is specified.');
-      }
-      var valueType = typeof value === "undefined" ? "undefined" : _typeof(value);
-      var defaultType = _typeof(this.defaults[name]);
-      if (valueType !== defaultType) {
-        if (valueType === 'number' && defaultType === 'string') {
-          value = value.toString();
-        } else {
-          throw new Error('Preferences_set: \'' + value + '\' is a \"' + valueType + '\", expected \"' + defaultType + '\".');
+      });
+    }
+  }, {
+    key: "set",
+    value: function set(name, value) {
+      var _this4 = this;
+
+      return this._initializedPromise.then(function () {
+        if (_this4.defaults[name] === undefined) {
+          throw new Error("Set preference: \"" + name + "\" is undefined.");
+        } else if (value === undefined) {
+          throw new Error('Set preference: no value is specified.');
         }
-      } else {
-        if (valueType === 'number' && (value | 0) !== value) {
-          throw new Error('Preferences_set: \'' + value + '\' must be an \"integer\".');
+        var valueType = typeof value === "undefined" ? "undefined" : _typeof(value);
+        var defaultType = _typeof(_this4.defaults[name]);
+        if (valueType !== defaultType) {
+          if (valueType === 'number' && defaultType === 'string') {
+            value = value.toString();
+          } else {
+            throw new Error("Set preference: \"" + value + "\" is a " + valueType + ", " + ("expected a " + defaultType + "."));
+          }
+        } else {
+          if (valueType === 'number' && (value | 0) !== value) {
+            throw new Error("Set preference: \"" + value + "\" must be an integer.");
+          }
         }
-      }
-      this.prefs[name] = value;
-      return this._writeToStorage(this.prefs);
-    }.bind(this));
-  },
-  get: function preferencesGet(name) {
-    return this.initializedPromise.then(function () {
-      var defaultValue = this.defaults[name];
-      if (defaultValue === undefined) {
-        throw new Error('preferencesGet: \'' + name + '\' is undefined.');
-      } else {
-        var prefValue = this.prefs[name];
-        if (prefValue !== undefined) {
-          return prefValue;
+        _this4.prefs[name] = value;
+        return _this4._writeToStorage(_this4.prefs);
+      });
+    }
+  }, {
+    key: "get",
+    value: function get(name) {
+      var _this5 = this;
+
+      return this._initializedPromise.then(function () {
+        var defaultValue = _this5.defaults[name];
+        if (defaultValue === undefined) {
+          throw new Error("Get preference: \"" + name + "\" is undefined.");
+        } else {
+          var prefValue = _this5.prefs[name];
+          if (prefValue !== undefined) {
+            return prefValue;
+          }
         }
-      }
-      return defaultValue;
-    }.bind(this));
-  }
-};
-{
-  Preferences._writeToStorage = function (prefObj) {
-    return new Promise(function (resolve) {
-      localStorage.setItem('pdfjs.preferences', JSON.stringify(prefObj));
-      resolve();
-    });
-  };
-  Preferences._readFromStorage = function (prefObj) {
-    return new Promise(function (resolve) {
-      var readPrefs = JSON.parse(localStorage.getItem('pdfjs.preferences'));
-      resolve(readPrefs);
-    });
-  };
-}
-exports.Preferences = Preferences;
+        return defaultValue;
+      });
+    }
+  }]);
+
+  return BasePreferences;
+}();
+
+exports.BasePreferences = BasePreferences;

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "pdfjs-dist",
-  "version": "1.8.241",
+  "version": "1.8.252",
   "main": "build/pdf.js",
   "description": "Generic build of Mozilla's PDF.js library.",
   "keywords": [

Some files were not shown because too many files changed in this diff