pdfjs-dist 2.0.489 → 2.2.228

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 (169) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +18515 -11402
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +1 -1
  6. package/build/pdf.worker.js +48266 -37137
  7. package/build/pdf.worker.js.map +1 -1
  8. package/build/pdf.worker.min.js +1 -1
  9. package/external/url/url-lib.js +627 -0
  10. package/image_decoders/pdf.image_decoders.js +11350 -0
  11. package/image_decoders/pdf.image_decoders.js.map +1 -0
  12. package/image_decoders/pdf.image_decoders.min.js +1 -0
  13. package/lib/core/annotation.js +587 -242
  14. package/lib/core/arithmetic_decoder.js +275 -245
  15. package/lib/core/bidi.js +65 -6
  16. package/lib/core/ccitt.js +173 -18
  17. package/lib/core/ccitt_stream.js +15 -6
  18. package/lib/core/cff_parser.js +433 -61
  19. package/lib/core/charsets.js +5 -4
  20. package/lib/core/chunked_stream.js +400 -152
  21. package/lib/core/cmap.js +326 -87
  22. package/lib/core/colorspace.js +874 -594
  23. package/lib/core/core_utils.js +147 -0
  24. package/lib/core/crypto.js +290 -45
  25. package/lib/core/document.js +560 -268
  26. package/lib/core/encodings.js +19 -10
  27. package/lib/core/evaluator.js +1005 -360
  28. package/lib/core/font_renderer.js +331 -97
  29. package/lib/core/fonts.js +812 -195
  30. package/lib/core/function.js +284 -71
  31. package/lib/core/glyphlist.js +4 -3
  32. package/lib/core/image.js +169 -62
  33. package/lib/core/image_utils.js +111 -0
  34. package/lib/core/jbig2.js +479 -66
  35. package/lib/core/jbig2_stream.js +19 -8
  36. package/lib/core/jpeg_stream.js +38 -13
  37. package/lib/core/jpg.js +253 -29
  38. package/lib/core/jpx.js +396 -6
  39. package/lib/core/jpx_stream.js +18 -6
  40. package/lib/core/metrics.js +15 -15
  41. package/lib/core/murmurhash3.js +56 -34
  42. package/lib/core/obj.js +1354 -488
  43. package/lib/core/operator_list.js +144 -31
  44. package/lib/core/parser.js +539 -191
  45. package/lib/core/pattern.js +148 -14
  46. package/lib/core/pdf_manager.js +323 -133
  47. package/lib/core/primitives.js +111 -24
  48. package/lib/core/ps_parser.js +134 -45
  49. package/lib/core/standard_fonts.js +17 -17
  50. package/lib/core/stream.js +313 -34
  51. package/lib/core/type1_parser.js +143 -13
  52. package/lib/core/unicode.js +32 -5
  53. package/lib/core/worker.js +217 -190
  54. package/lib/core/worker_stream.js +277 -0
  55. package/lib/display/annotation_layer.js +450 -133
  56. package/lib/display/api.js +1597 -784
  57. package/lib/display/api_compatibility.js +11 -13
  58. package/lib/display/canvas.js +360 -44
  59. package/lib/display/content_disposition.js +83 -32
  60. package/lib/display/display_utils.js +747 -0
  61. package/lib/display/fetch_stream.js +221 -90
  62. package/lib/display/font_loader.js +468 -236
  63. package/lib/display/metadata.js +38 -16
  64. package/lib/display/network.js +635 -428
  65. package/lib/display/network_utils.js +32 -19
  66. package/lib/display/node_stream.js +367 -175
  67. package/lib/display/pattern_helper.js +81 -31
  68. package/lib/display/svg.js +1235 -519
  69. package/lib/display/text_layer.js +153 -29
  70. package/lib/display/transport_stream.js +345 -94
  71. package/lib/display/webgl.js +64 -18
  72. package/lib/display/worker_options.js +5 -4
  73. package/lib/display/xml_parser.js +166 -53
  74. package/lib/examples/node/domstubs.js +60 -4
  75. package/lib/pdf.js +36 -14
  76. package/lib/pdf.worker.js +5 -3
  77. package/lib/shared/compatibility.js +158 -564
  78. package/lib/shared/global_scope.js +2 -2
  79. package/lib/shared/is_node.js +4 -4
  80. package/lib/shared/message_handler.js +521 -0
  81. package/lib/shared/streams_polyfill.js +21 -17
  82. package/lib/shared/url_polyfill.js +56 -0
  83. package/lib/shared/util.js +243 -710
  84. package/lib/test/unit/annotation_spec.js +870 -401
  85. package/lib/test/unit/api_spec.js +657 -345
  86. package/lib/test/unit/bidi_spec.js +7 -7
  87. package/lib/test/unit/cff_parser_spec.js +54 -11
  88. package/lib/test/unit/clitests_helper.js +10 -8
  89. package/lib/test/unit/cmap_spec.js +95 -41
  90. package/lib/test/unit/colorspace_spec.js +115 -63
  91. package/lib/test/unit/core_utils_spec.js +191 -0
  92. package/lib/test/unit/crypto_spec.js +17 -5
  93. package/lib/test/unit/custom_spec.js +43 -55
  94. package/lib/test/unit/display_svg_spec.js +34 -18
  95. package/lib/test/unit/display_utils_spec.js +273 -0
  96. package/lib/test/unit/document_spec.js +8 -13
  97. package/lib/test/unit/encodings_spec.js +25 -45
  98. package/lib/test/unit/evaluator_spec.js +38 -15
  99. package/lib/test/unit/fetch_stream_spec.js +109 -0
  100. package/lib/test/unit/function_spec.js +17 -5
  101. package/lib/test/unit/jasmine-boot.js +33 -20
  102. package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
  103. package/lib/test/unit/metadata_spec.js +71 -11
  104. package/lib/test/unit/murmurhash3_spec.js +3 -3
  105. package/lib/test/unit/network_spec.js +19 -54
  106. package/lib/test/unit/network_utils_spec.js +91 -14
  107. package/lib/test/unit/node_stream_spec.js +56 -32
  108. package/lib/test/unit/parser_spec.js +162 -71
  109. package/lib/test/unit/pdf_find_controller_spec.js +230 -0
  110. package/lib/test/unit/pdf_find_utils_spec.js +63 -0
  111. package/lib/test/unit/pdf_history_spec.js +21 -9
  112. package/lib/test/unit/primitives_spec.js +53 -20
  113. package/lib/test/unit/stream_spec.js +12 -4
  114. package/lib/test/unit/test_utils.js +273 -56
  115. package/lib/test/unit/testreporter.js +21 -3
  116. package/lib/test/unit/type1_parser_spec.js +8 -6
  117. package/lib/test/unit/ui_utils_spec.js +454 -16
  118. package/lib/test/unit/unicode_spec.js +18 -15
  119. package/lib/test/unit/util_spec.js +87 -128
  120. package/lib/web/annotation_layer_builder.js +39 -22
  121. package/lib/web/app.js +1290 -588
  122. package/lib/web/app_options.js +100 -62
  123. package/lib/web/base_viewer.js +511 -182
  124. package/lib/web/chromecom.js +261 -117
  125. package/lib/web/debugger.js +166 -22
  126. package/lib/web/download_manager.js +32 -13
  127. package/lib/web/firefox_print_service.js +20 -10
  128. package/lib/web/firefoxcom.js +315 -80
  129. package/lib/web/genericcom.js +89 -30
  130. package/lib/web/genericl10n.js +142 -30
  131. package/lib/web/grab_to_pan.js +28 -4
  132. package/lib/web/interfaces.js +170 -47
  133. package/lib/web/overlay_manager.js +235 -85
  134. package/lib/web/password_prompt.js +22 -14
  135. package/lib/web/pdf_attachment_viewer.js +38 -18
  136. package/lib/web/pdf_cursor_tools.js +39 -16
  137. package/lib/web/pdf_document_properties.js +255 -136
  138. package/lib/web/pdf_find_bar.js +84 -40
  139. package/lib/web/pdf_find_controller.js +495 -184
  140. package/lib/web/pdf_find_utils.js +111 -0
  141. package/lib/web/pdf_history.js +190 -53
  142. package/lib/web/pdf_link_service.js +138 -77
  143. package/lib/web/pdf_outline_viewer.js +122 -46
  144. package/lib/web/pdf_page_view.js +191 -67
  145. package/lib/web/pdf_presentation_mode.js +99 -34
  146. package/lib/web/pdf_print_service.js +61 -13
  147. package/lib/web/pdf_rendering_queue.js +28 -9
  148. package/lib/web/pdf_sidebar.js +141 -81
  149. package/lib/web/pdf_sidebar_resizer.js +42 -16
  150. package/lib/web/pdf_single_page_viewer.js +74 -66
  151. package/lib/web/pdf_thumbnail_view.js +104 -33
  152. package/lib/web/pdf_thumbnail_viewer.js +66 -26
  153. package/lib/web/pdf_viewer.component.js +112 -32
  154. package/lib/web/pdf_viewer.js +91 -52
  155. package/lib/web/preferences.js +284 -89
  156. package/lib/web/secondary_toolbar.js +165 -40
  157. package/lib/web/text_layer_builder.js +134 -59
  158. package/lib/web/toolbar.js +78 -43
  159. package/lib/web/ui_utils.js +462 -136
  160. package/lib/web/view_history.js +215 -67
  161. package/lib/web/viewer_compatibility.js +4 -13
  162. package/package.json +5 -4
  163. package/web/pdf_viewer.css +79 -11
  164. package/web/pdf_viewer.js +6107 -3748
  165. package/web/pdf_viewer.js.map +1 -1
  166. package/lib/display/dom_utils.js +0 -309
  167. package/lib/test/unit/dom_utils_spec.js +0 -89
  168. package/lib/test/unit/fonts_spec.js +0 -81
  169. 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,27 @@
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");
34
+
35
+ var _pdf = require("../pdf");
32
36
 
33
37
  var activeService = null;
34
38
  var overlayManager = null;
39
+
35
40
  function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size) {
36
41
  var scratchCanvas = activeService.scratchCanvas;
37
- var PRINT_RESOLUTION = 150;
42
+ var PRINT_RESOLUTION = _app_options.AppOptions.get('printResolution') || 150;
38
43
  var PRINT_UNITS = PRINT_RESOLUTION / 72.0;
39
44
  scratchCanvas.width = Math.floor(size.width * PRINT_UNITS);
40
45
  scratchCanvas.height = Math.floor(size.height * PRINT_UNITS);
@@ -49,7 +54,10 @@ function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size) {
49
54
  var renderContext = {
50
55
  canvasContext: ctx,
51
56
  transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0],
52
- viewport: pdfPage.getViewport(1, size.rotation),
57
+ viewport: pdfPage.getViewport({
58
+ scale: 1,
59
+ rotation: size.rotation
60
+ }),
53
61
  intent: 'print'
54
62
  };
55
63
  return pdfPage.render(renderContext).promise;
@@ -60,6 +68,7 @@ function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size) {
60
68
  };
61
69
  });
62
70
  }
71
+
63
72
  function PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n) {
64
73
  this.pdfDocument = pdfDocument;
65
74
  this.pagesOverview = pagesOverview;
@@ -69,6 +78,7 @@ function PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n) {
69
78
  this.currentPage = -1;
70
79
  this.scratchCanvas = document.createElement('canvas');
71
80
  }
81
+
72
82
  PDFPrintService.prototype = {
73
83
  layout: function layout() {
74
84
  this.throwIfInactive();
@@ -77,9 +87,11 @@ PDFPrintService.prototype = {
77
87
  var hasEqualPageSizes = this.pagesOverview.every(function (size) {
78
88
  return size.width === this.pagesOverview[0].width && size.height === this.pagesOverview[0].height;
79
89
  }, this);
90
+
80
91
  if (!hasEqualPageSizes) {
81
92
  console.warn('Not all pages have the same size. The printed ' + 'result may be incorrect!');
82
93
  }
94
+
83
95
  this.pageStyleSheet = document.createElement('style');
84
96
  var pageSize = this.pagesOverview[0];
85
97
  this.pageStyleSheet.textContent = '@supports ((size:A4) and (size:1pt 1pt)) {' + '@page { size: ' + pageSize.width + 'pt ' + pageSize.height + 'pt;}' + '}';
@@ -89,11 +101,14 @@ PDFPrintService.prototype = {
89
101
  if (activeService !== this) {
90
102
  return;
91
103
  }
104
+
92
105
  this.printContainer.textContent = '';
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,13 +149,15 @@ 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
- img.src = URL.createObjectURL(blob);
155
+ img.src = _pdf.URL.createObjectURL(blob);
135
156
  });
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,112 @@ 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
  }
276
+
239
277
  return;
240
278
  }
241
279
  }, true);
280
+
242
281
  if (hasAttachEvent) {
243
282
  document.attachEvent('onkeydown', function (event) {
244
283
  event = event || window.event;
284
+
245
285
  if (event.keyCode === 80 && event.ctrlKey) {
246
286
  event.keyCode = 0;
247
287
  return false;
248
288
  }
249
289
  });
250
290
  }
291
+
251
292
  if ('onbeforeprint' in window) {
252
293
  var stopPropagationIfNeeded = function stopPropagationIfNeeded(event) {
253
294
  if (event.detail !== 'custom' && event.stopImmediatePropagation) {
254
295
  event.stopImmediatePropagation();
255
296
  }
256
297
  };
298
+
257
299
  window.addEventListener('beforeprint', stopPropagationIfNeeded);
258
300
  window.addEventListener('afterprint', stopPropagationIfNeeded);
259
301
  }
260
- var overlayPromise = void 0;
302
+
303
+ var overlayPromise;
304
+
261
305
  function ensureOverlay() {
262
306
  if (!overlayPromise) {
263
307
  overlayManager = _app.PDFViewerApplication.overlayManager;
308
+
264
309
  if (!overlayManager) {
265
310
  throw new Error('The overlay manager has not yet been initialized.');
266
311
  }
312
+
267
313
  overlayPromise = overlayManager.register('printServiceOverlay', document.getElementById('printServiceOverlay'), abort, true);
268
314
  document.getElementById('printCancel').onclick = abort;
269
315
  }
316
+
270
317
  return overlayPromise;
271
318
  }
319
+
272
320
  _app.PDFPrintServiceFactory.instance = {
273
321
  supportsPrinting: true,
274
322
  createPrintService: function createPrintService(pdfDocument, pagesOverview, printContainer, l10n) {
275
323
  if (activeService) {
276
324
  throw new Error('The print service is created and active.');
277
325
  }
326
+
278
327
  activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n);
279
328
  return activeService;
280
329
  }
281
- };
282
- exports.PDFPrintService = PDFPrintService;
330
+ };
@@ -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;