pdfjs-dist 2.0.550 → 2.3.200

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pdfjs-dist might be problematic. Click here for more details.

Files changed (168) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +21618 -14369
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +1 -1
  6. package/build/pdf.worker.js +22758 -11399
  7. package/build/pdf.worker.js.map +1 -1
  8. package/build/pdf.worker.min.js +1 -1
  9. package/image_decoders/pdf.image_decoders.js +11500 -0
  10. package/image_decoders/pdf.image_decoders.js.map +1 -0
  11. package/image_decoders/pdf.image_decoders.min.js +1 -0
  12. package/lib/core/annotation.js +767 -258
  13. package/lib/core/arithmetic_decoder.js +275 -245
  14. package/lib/core/bidi.js +65 -6
  15. package/lib/core/ccitt.js +173 -18
  16. package/lib/core/ccitt_stream.js +15 -6
  17. package/lib/core/cff_parser.js +433 -61
  18. package/lib/core/charsets.js +5 -4
  19. package/lib/core/chunked_stream.js +428 -157
  20. package/lib/core/cmap.js +326 -87
  21. package/lib/core/colorspace.js +874 -594
  22. package/lib/core/core_utils.js +173 -0
  23. package/lib/core/crypto.js +290 -45
  24. package/lib/core/document.js +575 -272
  25. package/lib/core/encodings.js +19 -10
  26. package/lib/core/evaluator.js +1032 -351
  27. package/lib/core/font_renderer.js +331 -97
  28. package/lib/core/fonts.js +813 -196
  29. package/lib/core/function.js +253 -27
  30. package/lib/core/glyphlist.js +5 -3
  31. package/lib/core/image.js +169 -62
  32. package/lib/core/image_utils.js +111 -0
  33. package/lib/core/jbig2.js +502 -72
  34. package/lib/core/jbig2_stream.js +19 -8
  35. package/lib/core/jpeg_stream.js +38 -13
  36. package/lib/core/jpg.js +293 -52
  37. package/lib/core/jpx.js +419 -12
  38. package/lib/core/jpx_stream.js +18 -6
  39. package/lib/core/metrics.js +15 -15
  40. package/lib/core/murmurhash3.js +56 -34
  41. package/lib/core/obj.js +1368 -500
  42. package/lib/core/operator_list.js +159 -43
  43. package/lib/core/parser.js +544 -199
  44. package/lib/core/pattern.js +170 -21
  45. package/lib/core/pdf_manager.js +324 -134
  46. package/lib/core/primitives.js +169 -61
  47. package/lib/core/ps_parser.js +134 -45
  48. package/lib/core/standard_fonts.js +17 -17
  49. package/lib/core/stream.js +327 -34
  50. package/lib/core/type1_parser.js +148 -8
  51. package/lib/core/unicode.js +32 -5
  52. package/lib/core/worker.js +215 -229
  53. package/lib/core/worker_stream.js +277 -0
  54. package/lib/display/annotation_layer.js +618 -192
  55. package/lib/display/api.js +1798 -882
  56. package/lib/display/api_compatibility.js +5 -10
  57. package/lib/display/canvas.js +366 -45
  58. package/lib/display/content_disposition.js +71 -24
  59. package/lib/display/display_utils.js +777 -0
  60. package/lib/display/fetch_stream.js +205 -87
  61. package/lib/display/font_loader.js +468 -236
  62. package/lib/display/metadata.js +38 -16
  63. package/lib/display/network.js +635 -428
  64. package/lib/display/network_utils.js +38 -19
  65. package/lib/display/node_stream.js +367 -175
  66. package/lib/display/pattern_helper.js +103 -36
  67. package/lib/display/svg.js +1232 -519
  68. package/lib/display/text_layer.js +208 -75
  69. package/lib/display/transport_stream.js +345 -94
  70. package/lib/display/webgl.js +64 -18
  71. package/lib/display/worker_options.js +5 -4
  72. package/lib/display/xml_parser.js +166 -53
  73. package/lib/examples/node/domstubs.js +60 -4
  74. package/lib/pdf.js +35 -14
  75. package/lib/pdf.worker.js +5 -3
  76. package/lib/shared/compatibility.js +170 -572
  77. package/lib/shared/global_scope.js +2 -2
  78. package/lib/shared/is_node.js +4 -4
  79. package/lib/shared/message_handler.js +216 -163
  80. package/lib/shared/streams_polyfill.js +21 -17
  81. package/lib/shared/util.js +495 -385
  82. package/lib/test/unit/annotation_spec.js +1464 -401
  83. package/lib/test/unit/api_spec.js +718 -361
  84. package/lib/test/unit/bidi_spec.js +7 -7
  85. package/lib/test/unit/cff_parser_spec.js +54 -11
  86. package/lib/test/unit/clitests_helper.js +9 -10
  87. package/lib/test/unit/cmap_spec.js +95 -41
  88. package/lib/test/unit/colorspace_spec.js +115 -63
  89. package/lib/test/unit/core_utils_spec.js +191 -0
  90. package/lib/test/unit/crypto_spec.js +17 -5
  91. package/lib/test/unit/custom_spec.js +43 -55
  92. package/lib/test/unit/display_svg_spec.js +34 -18
  93. package/lib/test/unit/display_utils_spec.js +273 -0
  94. package/lib/test/unit/document_spec.js +8 -13
  95. package/lib/test/unit/encodings_spec.js +25 -45
  96. package/lib/test/unit/evaluator_spec.js +59 -20
  97. package/lib/test/unit/fetch_stream_spec.js +111 -0
  98. package/lib/test/unit/function_spec.js +17 -5
  99. package/lib/test/unit/jasmine-boot.js +33 -20
  100. package/lib/test/unit/message_handler_spec.js +30 -13
  101. package/lib/test/unit/metadata_spec.js +71 -11
  102. package/lib/test/unit/murmurhash3_spec.js +3 -3
  103. package/lib/test/unit/network_spec.js +22 -55
  104. package/lib/test/unit/network_utils_spec.js +105 -14
  105. package/lib/test/unit/node_stream_spec.js +58 -34
  106. package/lib/test/unit/parser_spec.js +162 -71
  107. package/lib/test/unit/pdf_find_controller_spec.js +230 -0
  108. package/lib/test/unit/pdf_find_utils_spec.js +63 -0
  109. package/lib/test/unit/pdf_history_spec.js +21 -9
  110. package/lib/test/unit/primitives_spec.js +55 -22
  111. package/lib/test/unit/stream_spec.js +12 -4
  112. package/lib/test/unit/test_utils.js +273 -56
  113. package/lib/test/unit/testreporter.js +21 -3
  114. package/lib/test/unit/type1_parser_spec.js +9 -7
  115. package/lib/test/unit/ui_utils_spec.js +236 -36
  116. package/lib/test/unit/unicode_spec.js +18 -15
  117. package/lib/test/unit/util_spec.js +87 -128
  118. package/lib/web/annotation_layer_builder.js +39 -22
  119. package/lib/web/app.js +1252 -609
  120. package/lib/web/app_options.js +103 -65
  121. package/lib/web/base_viewer.js +522 -242
  122. package/lib/web/chromecom.js +259 -117
  123. package/lib/web/debugger.js +166 -22
  124. package/lib/web/download_manager.js +31 -12
  125. package/lib/web/firefox_print_service.js +27 -14
  126. package/lib/web/firefoxcom.js +318 -78
  127. package/lib/web/genericcom.js +89 -30
  128. package/lib/web/genericl10n.js +142 -30
  129. package/lib/web/grab_to_pan.js +28 -4
  130. package/lib/web/interfaces.js +174 -47
  131. package/lib/web/overlay_manager.js +235 -85
  132. package/lib/web/password_prompt.js +22 -14
  133. package/lib/web/pdf_attachment_viewer.js +38 -18
  134. package/lib/web/pdf_cursor_tools.js +39 -16
  135. package/lib/web/pdf_document_properties.js +255 -136
  136. package/lib/web/pdf_find_bar.js +84 -40
  137. package/lib/web/pdf_find_controller.js +495 -184
  138. package/lib/web/pdf_find_utils.js +111 -0
  139. package/lib/web/pdf_history.js +190 -53
  140. package/lib/web/pdf_link_service.js +144 -79
  141. package/lib/web/pdf_outline_viewer.js +124 -47
  142. package/lib/web/pdf_page_view.js +194 -74
  143. package/lib/web/pdf_presentation_mode.js +99 -34
  144. package/lib/web/pdf_print_service.js +59 -13
  145. package/lib/web/pdf_rendering_queue.js +28 -9
  146. package/lib/web/pdf_sidebar.js +144 -81
  147. package/lib/web/pdf_sidebar_resizer.js +42 -16
  148. package/lib/web/pdf_single_page_viewer.js +74 -66
  149. package/lib/web/pdf_thumbnail_view.js +104 -33
  150. package/lib/web/pdf_thumbnail_viewer.js +66 -26
  151. package/lib/web/pdf_viewer.component.js +112 -32
  152. package/lib/web/pdf_viewer.js +82 -87
  153. package/lib/web/preferences.js +284 -91
  154. package/lib/web/secondary_toolbar.js +132 -59
  155. package/lib/web/text_layer_builder.js +134 -59
  156. package/lib/web/toolbar.js +80 -43
  157. package/lib/web/ui_utils.js +400 -134
  158. package/lib/web/view_history.js +215 -67
  159. package/lib/web/viewer_compatibility.js +3 -8
  160. package/package.json +3 -2
  161. package/web/pdf_viewer.css +23 -15
  162. package/web/pdf_viewer.js +3429 -1245
  163. package/web/pdf_viewer.js.map +1 -1
  164. package/external/streams/streams-lib.js +0 -3962
  165. package/lib/display/dom_utils.js +0 -429
  166. package/lib/test/unit/dom_utils_spec.js +0 -89
  167. package/lib/test/unit/fonts_spec.js +0 -81
  168. package/lib/web/dom_events.js +0 -137
@@ -2,7 +2,7 @@
2
2
  * @licstart The following is the entire license notice for the
3
3
  * Javascript code in this page
4
4
  *
5
- * Copyright 2017 Mozilla Foundation
5
+ * Copyright 2019 Mozilla Foundation
6
6
  *
7
7
  * Licensed under the Apache License, Version 2.0 (the "License");
8
8
  * you may not use this file except in compliance with the License.
@@ -19,22 +19,25 @@
19
19
  * @licend The above is the entire license notice for the
20
20
  * Javascript code in this page
21
21
  */
22
- 'use strict';
22
+ "use strict";
23
23
 
24
24
  Object.defineProperty(exports, "__esModule", {
25
25
  value: true
26
26
  });
27
- exports.PDFPrintService = undefined;
27
+ exports.PDFPrintService = PDFPrintService;
28
28
 
29
- var _ui_utils = require('./ui_utils');
29
+ var _ui_utils = require("./ui_utils");
30
30
 
31
- var _app = require('./app');
31
+ var _app = require("./app");
32
+
33
+ var _app_options = require("./app_options");
32
34
 
33
35
  var activeService = null;
34
36
  var overlayManager = null;
37
+
35
38
  function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size) {
36
39
  var scratchCanvas = activeService.scratchCanvas;
37
- var PRINT_RESOLUTION = 150;
40
+ var PRINT_RESOLUTION = _app_options.AppOptions.get('printResolution') || 150;
38
41
  var PRINT_UNITS = PRINT_RESOLUTION / 72.0;
39
42
  scratchCanvas.width = Math.floor(size.width * PRINT_UNITS);
40
43
  scratchCanvas.height = Math.floor(size.height * PRINT_UNITS);
@@ -49,7 +52,10 @@ function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size) {
49
52
  var renderContext = {
50
53
  canvasContext: ctx,
51
54
  transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0],
52
- viewport: pdfPage.getViewport(1, size.rotation),
55
+ viewport: pdfPage.getViewport({
56
+ scale: 1,
57
+ rotation: size.rotation
58
+ }),
53
59
  intent: 'print'
54
60
  };
55
61
  return pdfPage.render(renderContext).promise;
@@ -60,6 +66,7 @@ function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size) {
60
66
  };
61
67
  });
62
68
  }
69
+
63
70
  function PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n) {
64
71
  this.pdfDocument = pdfDocument;
65
72
  this.pagesOverview = pagesOverview;
@@ -69,6 +76,7 @@ function PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n) {
69
76
  this.currentPage = -1;
70
77
  this.scratchCanvas = document.createElement('canvas');
71
78
  }
79
+
72
80
  PDFPrintService.prototype = {
73
81
  layout: function layout() {
74
82
  this.throwIfInactive();
@@ -77,9 +85,11 @@ PDFPrintService.prototype = {
77
85
  var hasEqualPageSizes = this.pagesOverview.every(function (size) {
78
86
  return size.width === this.pagesOverview[0].width && size.height === this.pagesOverview[0].height;
79
87
  }, this);
88
+
80
89
  if (!hasEqualPageSizes) {
81
90
  console.warn('Not all pages have the same size. The printed ' + 'result may be incorrect!');
82
91
  }
92
+
83
93
  this.pageStyleSheet = document.createElement('style');
84
94
  var pageSize = this.pagesOverview[0];
85
95
  this.pageStyleSheet.textContent = '@supports ((size:A4) and (size:1pt 1pt)) {' + '@page { size: ' + pageSize.width + 'pt ' + pageSize.height + 'pt;}' + '}';
@@ -89,11 +99,16 @@ PDFPrintService.prototype = {
89
99
  if (activeService !== this) {
90
100
  return;
91
101
  }
102
+
92
103
  this.printContainer.textContent = '';
104
+ var body = document.querySelector('body');
105
+ body.removeAttribute('data-pdfjsprinting');
106
+
93
107
  if (this.pageStyleSheet) {
94
108
  this.pageStyleSheet.remove();
95
109
  this.pageStyleSheet = null;
96
110
  }
111
+
97
112
  this.scratchCanvas.width = this.scratchCanvas.height = 0;
98
113
  this.scratchCanvas = null;
99
114
  activeService = null;
@@ -101,6 +116,7 @@ PDFPrintService.prototype = {
101
116
  if (overlayManager.active !== 'printServiceOverlay') {
102
117
  return;
103
118
  }
119
+
104
120
  overlayManager.close('printServiceOverlay');
105
121
  });
106
122
  },
@@ -108,19 +124,23 @@ PDFPrintService.prototype = {
108
124
  var _this = this;
109
125
 
110
126
  var pageCount = this.pagesOverview.length;
127
+
111
128
  var renderNextPage = function renderNextPage(resolve, reject) {
112
129
  _this.throwIfInactive();
130
+
113
131
  if (++_this.currentPage >= pageCount) {
114
132
  renderProgress(pageCount, pageCount, _this.l10n);
115
133
  resolve();
116
134
  return;
117
135
  }
136
+
118
137
  var index = _this.currentPage;
119
138
  renderProgress(index, pageCount, _this.l10n);
120
139
  renderPage(_this, _this.pdfDocument, index + 1, _this.pagesOverview[index]).then(_this.useRenderedPage.bind(_this)).then(function () {
121
140
  renderNextPage(resolve, reject);
122
141
  }, reject);
123
142
  };
143
+
124
144
  return new Promise(renderNextPage);
125
145
  },
126
146
  useRenderedPage: function useRenderedPage(printItem) {
@@ -129,6 +149,7 @@ PDFPrintService.prototype = {
129
149
  img.style.width = printItem.width;
130
150
  img.style.height = printItem.height;
131
151
  var scratchCanvas = this.scratchCanvas;
152
+
132
153
  if ('toBlob' in scratchCanvas && !this.disableCreateObjectURL) {
133
154
  scratchCanvas.toBlob(function (blob) {
134
155
  img.src = URL.createObjectURL(blob);
@@ -136,6 +157,7 @@ PDFPrintService.prototype = {
136
157
  } else {
137
158
  img.src = scratchCanvas.toDataURL();
138
159
  }
160
+
139
161
  var wrapper = document.createElement('div');
140
162
  wrapper.appendChild(img);
141
163
  this.printContainer.appendChild(wrapper);
@@ -154,6 +176,7 @@ PDFPrintService.prototype = {
154
176
  resolve();
155
177
  return;
156
178
  }
179
+
157
180
  print.call(window);
158
181
  setTimeout(resolve, 20);
159
182
  }, 0);
@@ -163,6 +186,7 @@ PDFPrintService.prototype = {
163
186
  get active() {
164
187
  return this === activeService;
165
188
  },
189
+
166
190
  throwIfInactive: function throwIfInactive() {
167
191
  if (!this.active) {
168
192
  throw new Error('This print request was cancelled or completed.');
@@ -170,16 +194,19 @@ PDFPrintService.prototype = {
170
194
  }
171
195
  };
172
196
  var print = window.print;
197
+
173
198
  window.print = function print() {
174
199
  if (activeService) {
175
200
  console.warn('Ignored window.print() because of a pending print job.');
176
201
  return;
177
202
  }
203
+
178
204
  ensureOverlay().then(function () {
179
205
  if (activeService) {
180
206
  overlayManager.open('printServiceOverlay');
181
207
  }
182
208
  });
209
+
183
210
  try {
184
211
  dispatchEvent('beforeprint');
185
212
  } finally {
@@ -192,91 +219,110 @@ window.print = function print() {
192
219
  });
193
220
  return;
194
221
  }
222
+
195
223
  var activeServiceOnEntry = activeService;
196
224
  activeService.renderPages().then(function () {
197
225
  return activeServiceOnEntry.performPrint();
198
- }).catch(function () {}).then(function () {
226
+ })["catch"](function () {}).then(function () {
199
227
  if (activeServiceOnEntry.active) {
200
228
  abort();
201
229
  }
202
230
  });
203
231
  }
204
232
  };
233
+
205
234
  function dispatchEvent(eventType) {
206
235
  var event = document.createEvent('CustomEvent');
207
236
  event.initCustomEvent(eventType, false, false, 'custom');
208
237
  window.dispatchEvent(event);
209
238
  }
239
+
210
240
  function abort() {
211
241
  if (activeService) {
212
242
  activeService.destroy();
213
243
  dispatchEvent('afterprint');
214
244
  }
215
245
  }
246
+
216
247
  function renderProgress(index, total, l10n) {
217
248
  var progressContainer = document.getElementById('printServiceOverlay');
218
249
  var progress = Math.round(100 * index / total);
219
250
  var progressBar = progressContainer.querySelector('progress');
220
251
  var progressPerc = progressContainer.querySelector('.relative-progress');
221
252
  progressBar.value = progress;
222
- l10n.get('print_progress_percent', { progress: progress }, progress + '%').then(function (msg) {
253
+ l10n.get('print_progress_percent', {
254
+ progress: progress
255
+ }, progress + '%').then(function (msg) {
223
256
  progressPerc.textContent = msg;
224
257
  });
225
258
  }
259
+
226
260
  var hasAttachEvent = !!document.attachEvent;
227
261
  window.addEventListener('keydown', function (event) {
228
262
  if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) {
229
263
  window.print();
264
+
230
265
  if (hasAttachEvent) {
231
266
  return;
232
267
  }
268
+
233
269
  event.preventDefault();
270
+
234
271
  if (event.stopImmediatePropagation) {
235
272
  event.stopImmediatePropagation();
236
273
  } else {
237
274
  event.stopPropagation();
238
275
  }
239
- return;
240
276
  }
241
277
  }, true);
278
+
242
279
  if (hasAttachEvent) {
243
280
  document.attachEvent('onkeydown', function (event) {
244
281
  event = event || window.event;
282
+
245
283
  if (event.keyCode === 80 && event.ctrlKey) {
246
284
  event.keyCode = 0;
247
285
  return false;
248
286
  }
249
287
  });
250
288
  }
289
+
251
290
  if ('onbeforeprint' in window) {
252
291
  var stopPropagationIfNeeded = function stopPropagationIfNeeded(event) {
253
292
  if (event.detail !== 'custom' && event.stopImmediatePropagation) {
254
293
  event.stopImmediatePropagation();
255
294
  }
256
295
  };
296
+
257
297
  window.addEventListener('beforeprint', stopPropagationIfNeeded);
258
298
  window.addEventListener('afterprint', stopPropagationIfNeeded);
259
299
  }
260
- var overlayPromise = void 0;
300
+
301
+ var overlayPromise;
302
+
261
303
  function ensureOverlay() {
262
304
  if (!overlayPromise) {
263
305
  overlayManager = _app.PDFViewerApplication.overlayManager;
306
+
264
307
  if (!overlayManager) {
265
308
  throw new Error('The overlay manager has not yet been initialized.');
266
309
  }
310
+
267
311
  overlayPromise = overlayManager.register('printServiceOverlay', document.getElementById('printServiceOverlay'), abort, true);
268
312
  document.getElementById('printCancel').onclick = abort;
269
313
  }
314
+
270
315
  return overlayPromise;
271
316
  }
317
+
272
318
  _app.PDFPrintServiceFactory.instance = {
273
319
  supportsPrinting: true,
274
320
  createPrintService: function createPrintService(pdfDocument, pagesOverview, printContainer, l10n) {
275
321
  if (activeService) {
276
322
  throw new Error('The print service is created and active.');
277
323
  }
324
+
278
325
  activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n);
279
326
  return activeService;
280
327
  }
281
- };
282
- exports.PDFPrintService = PDFPrintService;
328
+ };
@@ -2,7 +2,7 @@
2
2
  * @licstart The following is the entire license notice for the
3
3
  * Javascript code in this page
4
4
  *
5
- * Copyright 2017 Mozilla Foundation
5
+ * Copyright 2019 Mozilla Foundation
6
6
  *
7
7
  * Licensed under the Apache License, Version 2.0 (the "License");
8
8
  * you may not use this file except in compliance with the License.
@@ -24,11 +24,14 @@
24
24
  Object.defineProperty(exports, "__esModule", {
25
25
  value: true
26
26
  });
27
-
28
- 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; }; }();
27
+ exports.PDFRenderingQueue = exports.RenderingStates = void 0;
29
28
 
30
29
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
31
30
 
31
+ 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); } }
32
+
33
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
34
+
32
35
  var CLEANUP_TIMEOUT = 30000;
33
36
  var RenderingStates = {
34
37
  INITIAL: 0,
@@ -36,8 +39,11 @@ var RenderingStates = {
36
39
  PAUSED: 2,
37
40
  FINISHED: 3
38
41
  };
42
+ exports.RenderingStates = RenderingStates;
39
43
 
40
- var PDFRenderingQueue = function () {
44
+ var PDFRenderingQueue =
45
+ /*#__PURE__*/
46
+ function () {
41
47
  function PDFRenderingQueue() {
42
48
  _classCallCheck(this, PDFRenderingQueue);
43
49
 
@@ -72,17 +78,21 @@ var PDFRenderingQueue = function () {
72
78
  clearTimeout(this.idleTimeout);
73
79
  this.idleTimeout = null;
74
80
  }
81
+
75
82
  if (this.pdfViewer.forceRendering(currentlyVisiblePages)) {
76
83
  return;
77
84
  }
85
+
78
86
  if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) {
79
87
  if (this.pdfThumbnailViewer.forceRendering()) {
80
88
  return;
81
89
  }
82
90
  }
91
+
83
92
  if (this.printing) {
84
93
  return;
85
94
  }
95
+
86
96
  if (this.onIdle) {
87
97
  this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);
88
98
  }
@@ -92,26 +102,33 @@ var PDFRenderingQueue = function () {
92
102
  value: function getHighestPriority(visible, views, scrolledDown) {
93
103
  var visibleViews = visible.views;
94
104
  var numVisible = visibleViews.length;
105
+
95
106
  if (numVisible === 0) {
96
- return false;
107
+ return null;
97
108
  }
109
+
98
110
  for (var i = 0; i < numVisible; ++i) {
99
111
  var view = visibleViews[i].view;
112
+
100
113
  if (!this.isViewFinished(view)) {
101
114
  return view;
102
115
  }
103
116
  }
117
+
104
118
  if (scrolledDown) {
105
119
  var nextPageIndex = visible.last.id;
120
+
106
121
  if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) {
107
122
  return views[nextPageIndex];
108
123
  }
109
124
  } else {
110
125
  var previousPageIndex = visible.first.id - 2;
126
+
111
127
  if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) {
112
128
  return views[previousPageIndex];
113
129
  }
114
130
  }
131
+
115
132
  return null;
116
133
  }
117
134
  }, {
@@ -127,21 +144,24 @@ var PDFRenderingQueue = function () {
127
144
  switch (view.renderingState) {
128
145
  case RenderingStates.FINISHED:
129
146
  return false;
147
+
130
148
  case RenderingStates.PAUSED:
131
149
  this.highestPriorityPage = view.renderingId;
132
150
  view.resume();
133
151
  break;
152
+
134
153
  case RenderingStates.RUNNING:
135
154
  this.highestPriorityPage = view.renderingId;
136
155
  break;
156
+
137
157
  case RenderingStates.INITIAL:
138
158
  this.highestPriorityPage = view.renderingId;
139
- var continueRendering = function continueRendering() {
159
+ view.draw()["finally"](function () {
140
160
  _this.renderHighestPriority();
141
- };
142
- view.draw().then(continueRendering, continueRendering);
161
+ });
143
162
  break;
144
163
  }
164
+
145
165
  return true;
146
166
  }
147
167
  }]);
@@ -149,5 +169,4 @@ var PDFRenderingQueue = function () {
149
169
  return PDFRenderingQueue;
150
170
  }();
151
171
 
152
- exports.RenderingStates = RenderingStates;
153
172
  exports.PDFRenderingQueue = PDFRenderingQueue;