pdfjs-dist 2.1.266 → 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 (166) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +3349 -2324
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +1 -1
  6. package/build/pdf.worker.js +2804 -1975
  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 +431 -511
  10. package/image_decoders/pdf.image_decoders.js.map +1 -1
  11. package/image_decoders/pdf.image_decoders.min.js +1 -1
  12. package/lib/core/annotation.js +294 -224
  13. package/lib/core/arithmetic_decoder.js +1 -1
  14. package/lib/core/bidi.js +1 -1
  15. package/lib/core/ccitt.js +1 -1
  16. package/lib/core/ccitt_stream.js +1 -1
  17. package/lib/core/cff_parser.js +61 -12
  18. package/lib/core/charsets.js +1 -1
  19. package/lib/core/chunked_stream.js +24 -14
  20. package/lib/core/cmap.js +17 -13
  21. package/lib/core/colorspace.js +1 -1
  22. package/lib/core/core_utils.js +147 -0
  23. package/lib/core/crypto.js +1 -1
  24. package/lib/core/document.js +47 -40
  25. package/lib/core/encodings.js +1 -1
  26. package/lib/core/evaluator.js +346 -279
  27. package/lib/core/font_renderer.js +1 -1
  28. package/lib/core/fonts.js +23 -11
  29. package/lib/core/function.js +1 -1
  30. package/lib/core/glyphlist.js +2 -2
  31. package/lib/core/image.js +2 -2
  32. package/lib/core/image_utils.js +111 -0
  33. package/lib/core/jbig2.js +1 -1
  34. package/lib/core/jbig2_stream.js +1 -1
  35. package/lib/core/jpeg_stream.js +1 -1
  36. package/lib/core/jpg.js +2 -1
  37. package/lib/core/jpx.js +1 -1
  38. package/lib/core/jpx_stream.js +1 -1
  39. package/lib/core/metrics.js +13 -13
  40. package/lib/core/murmurhash3.js +37 -33
  41. package/lib/core/obj.js +245 -41
  42. package/lib/core/operator_list.js +43 -32
  43. package/lib/core/parser.js +228 -133
  44. package/lib/core/pattern.js +4 -2
  45. package/lib/core/pdf_manager.js +17 -15
  46. package/lib/core/primitives.js +40 -6
  47. package/lib/core/ps_parser.js +1 -1
  48. package/lib/core/standard_fonts.js +9 -9
  49. package/lib/core/stream.js +1 -1
  50. package/lib/core/type1_parser.js +1 -1
  51. package/lib/core/unicode.js +2 -2
  52. package/lib/core/worker.js +54 -171
  53. package/lib/core/worker_stream.js +277 -0
  54. package/lib/display/annotation_layer.js +112 -33
  55. package/lib/display/api.js +211 -123
  56. package/lib/display/api_compatibility.js +1 -1
  57. package/lib/display/canvas.js +40 -19
  58. package/lib/display/content_disposition.js +1 -1
  59. package/lib/display/display_utils.js +747 -0
  60. package/lib/display/fetch_stream.js +19 -12
  61. package/lib/display/font_loader.js +11 -8
  62. package/lib/display/metadata.js +1 -1
  63. package/lib/display/network.js +563 -521
  64. package/lib/display/network_utils.js +1 -1
  65. package/lib/display/node_stream.js +21 -12
  66. package/lib/display/pattern_helper.js +24 -25
  67. package/lib/display/svg.js +1068 -565
  68. package/lib/display/text_layer.js +24 -14
  69. package/lib/display/transport_stream.js +192 -70
  70. package/lib/display/webgl.js +1 -1
  71. package/lib/display/worker_options.js +1 -1
  72. package/lib/display/xml_parser.js +1 -1
  73. package/lib/examples/node/domstubs.js +4 -1
  74. package/lib/pdf.js +20 -15
  75. package/lib/pdf.worker.js +3 -3
  76. package/lib/shared/compatibility.js +6 -6
  77. package/lib/shared/global_scope.js +1 -1
  78. package/lib/shared/is_node.js +2 -2
  79. package/lib/shared/message_handler.js +7 -7
  80. package/lib/shared/streams_polyfill.js +1 -1
  81. package/lib/shared/url_polyfill.js +1 -1
  82. package/lib/shared/util.js +13 -125
  83. package/lib/test/unit/annotation_spec.js +278 -93
  84. package/lib/test/unit/api_spec.js +198 -188
  85. package/lib/test/unit/bidi_spec.js +1 -1
  86. package/lib/test/unit/cff_parser_spec.js +15 -1
  87. package/lib/test/unit/clitests_helper.js +3 -3
  88. package/lib/test/unit/cmap_spec.js +20 -20
  89. package/lib/test/unit/colorspace_spec.js +17 -12
  90. package/lib/test/unit/core_utils_spec.js +191 -0
  91. package/lib/test/unit/crypto_spec.js +1 -1
  92. package/lib/test/unit/custom_spec.js +8 -8
  93. package/lib/test/unit/display_svg_spec.js +8 -8
  94. package/lib/test/unit/display_utils_spec.js +273 -0
  95. package/lib/test/unit/document_spec.js +7 -12
  96. package/lib/test/unit/encodings_spec.js +5 -5
  97. package/lib/test/unit/evaluator_spec.js +8 -10
  98. package/lib/test/unit/fetch_stream_spec.js +109 -0
  99. package/lib/test/unit/function_spec.js +1 -1
  100. package/lib/test/unit/jasmine-boot.js +4 -4
  101. package/lib/test/unit/message_handler_spec.js +1 -1
  102. package/lib/test/unit/metadata_spec.js +1 -1
  103. package/lib/test/unit/murmurhash3_spec.js +1 -1
  104. package/lib/test/unit/network_spec.js +5 -55
  105. package/lib/test/unit/network_utils_spec.js +51 -1
  106. package/lib/test/unit/node_stream_spec.js +8 -8
  107. package/lib/test/unit/parser_spec.js +150 -86
  108. package/lib/test/unit/pdf_find_controller_spec.js +1 -1
  109. package/lib/test/unit/pdf_find_utils_spec.js +1 -1
  110. package/lib/test/unit/pdf_history_spec.js +1 -1
  111. package/lib/test/unit/primitives_spec.js +30 -17
  112. package/lib/test/unit/stream_spec.js +1 -1
  113. package/lib/test/unit/test_utils.js +197 -43
  114. package/lib/test/unit/testreporter.js +1 -1
  115. package/lib/test/unit/type1_parser_spec.js +1 -1
  116. package/lib/test/unit/ui_utils_spec.js +20 -20
  117. package/lib/test/unit/unicode_spec.js +5 -5
  118. package/lib/test/unit/util_spec.js +1 -164
  119. package/lib/web/annotation_layer_builder.js +1 -1
  120. package/lib/web/app.js +104 -60
  121. package/lib/web/app_options.js +45 -37
  122. package/lib/web/base_viewer.js +7 -7
  123. package/lib/web/chromecom.js +8 -8
  124. package/lib/web/debugger.js +7 -7
  125. package/lib/web/download_manager.js +3 -2
  126. package/lib/web/firefox_print_service.js +4 -2
  127. package/lib/web/firefoxcom.js +50 -19
  128. package/lib/web/genericcom.js +8 -8
  129. package/lib/web/genericl10n.js +10 -10
  130. package/lib/web/grab_to_pan.js +3 -1
  131. package/lib/web/interfaces.js +13 -13
  132. package/lib/web/overlay_manager.js +10 -10
  133. package/lib/web/password_prompt.js +2 -2
  134. package/lib/web/pdf_attachment_viewer.js +1 -1
  135. package/lib/web/pdf_cursor_tools.js +1 -1
  136. package/lib/web/pdf_document_properties.js +188 -119
  137. package/lib/web/pdf_find_bar.js +1 -1
  138. package/lib/web/pdf_find_controller.js +3 -3
  139. package/lib/web/pdf_find_utils.js +1 -1
  140. package/lib/web/pdf_history.js +1 -1
  141. package/lib/web/pdf_link_service.js +2 -2
  142. package/lib/web/pdf_outline_viewer.js +53 -28
  143. package/lib/web/pdf_page_view.js +9 -18
  144. package/lib/web/pdf_presentation_mode.js +1 -1
  145. package/lib/web/pdf_print_service.js +5 -3
  146. package/lib/web/pdf_rendering_queue.js +4 -7
  147. package/lib/web/pdf_sidebar.js +24 -17
  148. package/lib/web/pdf_sidebar_resizer.js +1 -1
  149. package/lib/web/pdf_single_page_viewer.js +1 -1
  150. package/lib/web/pdf_thumbnail_view.js +2 -2
  151. package/lib/web/pdf_thumbnail_viewer.js +3 -3
  152. package/lib/web/pdf_viewer.component.js +3 -3
  153. package/lib/web/pdf_viewer.js +3 -3
  154. package/lib/web/preferences.js +30 -30
  155. package/lib/web/secondary_toolbar.js +1 -1
  156. package/lib/web/text_layer_builder.js +23 -45
  157. package/lib/web/toolbar.js +1 -1
  158. package/lib/web/ui_utils.js +14 -14
  159. package/lib/web/view_history.js +15 -15
  160. package/lib/web/viewer_compatibility.js +1 -1
  161. package/package.json +1 -1
  162. package/web/pdf_viewer.css +21 -10
  163. package/web/pdf_viewer.js +126 -194
  164. package/web/pdf_viewer.js.map +1 -1
  165. package/lib/display/dom_utils.js +0 -494
  166. package/lib/test/unit/dom_utils_spec.js +0 -89
@@ -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 2018 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.
@@ -30,15 +30,19 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
30
30
 
31
31
  var _util = require("../shared/util");
32
32
 
33
+ var _primitives = require("./primitives");
34
+
33
35
  var _pdf_manager = require("./pdf_manager");
34
36
 
35
37
  var _is_node = _interopRequireDefault(require("../shared/is_node"));
36
38
 
37
39
  var _message_handler = require("../shared/message_handler");
38
40
 
39
- var _primitives = require("./primitives");
41
+ var _worker_stream = require("./worker_stream");
40
42
 
41
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
43
+ var _core_utils = require("./core_utils");
44
+
45
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
42
46
 
43
47
  function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
44
48
 
@@ -82,141 +86,6 @@ var WorkerTask = function WorkerTaskClosure() {
82
86
  }();
83
87
 
84
88
  exports.WorkerTask = WorkerTask;
85
-
86
- var PDFWorkerStream = function PDFWorkerStreamClosure() {
87
- function PDFWorkerStream(msgHandler) {
88
- this._msgHandler = msgHandler;
89
- this._contentLength = null;
90
- this._fullRequestReader = null;
91
- this._rangeRequestReaders = [];
92
- }
93
-
94
- PDFWorkerStream.prototype = {
95
- getFullReader: function getFullReader() {
96
- (0, _util.assert)(!this._fullRequestReader);
97
- this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);
98
- return this._fullRequestReader;
99
- },
100
- getRangeReader: function getRangeReader(begin, end) {
101
- var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);
102
-
103
- this._rangeRequestReaders.push(reader);
104
-
105
- return reader;
106
- },
107
- cancelAllRequests: function cancelAllRequests(reason) {
108
- if (this._fullRequestReader) {
109
- this._fullRequestReader.cancel(reason);
110
- }
111
-
112
- var readers = this._rangeRequestReaders.slice(0);
113
-
114
- readers.forEach(function (reader) {
115
- reader.cancel(reason);
116
- });
117
- }
118
- };
119
-
120
- function PDFWorkerStreamReader(msgHandler) {
121
- var _this = this;
122
-
123
- this._msgHandler = msgHandler;
124
- this._contentLength = null;
125
- this._isRangeSupported = false;
126
- this._isStreamingSupported = false;
127
-
128
- var readableStream = this._msgHandler.sendWithStream('GetReader');
129
-
130
- this._reader = readableStream.getReader();
131
- this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) {
132
- _this._isStreamingSupported = data.isStreamingSupported;
133
- _this._isRangeSupported = data.isRangeSupported;
134
- _this._contentLength = data.contentLength;
135
- });
136
- }
137
-
138
- PDFWorkerStreamReader.prototype = {
139
- get headersReady() {
140
- return this._headersReady;
141
- },
142
-
143
- get contentLength() {
144
- return this._contentLength;
145
- },
146
-
147
- get isStreamingSupported() {
148
- return this._isStreamingSupported;
149
- },
150
-
151
- get isRangeSupported() {
152
- return this._isRangeSupported;
153
- },
154
-
155
- read: function read() {
156
- return this._reader.read().then(function (_ref) {
157
- var value = _ref.value,
158
- done = _ref.done;
159
-
160
- if (done) {
161
- return {
162
- value: undefined,
163
- done: true
164
- };
165
- }
166
-
167
- return {
168
- value: value.buffer,
169
- done: false
170
- };
171
- });
172
- },
173
- cancel: function cancel(reason) {
174
- this._reader.cancel(reason);
175
- }
176
- };
177
-
178
- function PDFWorkerStreamRangeReader(begin, end, msgHandler) {
179
- this._msgHandler = msgHandler;
180
- this.onProgress = null;
181
-
182
- var readableStream = this._msgHandler.sendWithStream('GetRangeReader', {
183
- begin: begin,
184
- end: end
185
- });
186
-
187
- this._reader = readableStream.getReader();
188
- }
189
-
190
- PDFWorkerStreamRangeReader.prototype = {
191
- get isStreamingSupported() {
192
- return false;
193
- },
194
-
195
- read: function read() {
196
- return this._reader.read().then(function (_ref2) {
197
- var value = _ref2.value,
198
- done = _ref2.done;
199
-
200
- if (done) {
201
- return {
202
- value: undefined,
203
- done: true
204
- };
205
- }
206
-
207
- return {
208
- value: value.buffer,
209
- done: false
210
- };
211
- });
212
- },
213
- cancel: function cancel(reason) {
214
- this._reader.cancel(reason);
215
- }
216
- };
217
- return PDFWorkerStream;
218
- }();
219
-
220
89
  var WorkerMessageHandler = {
221
90
  setup: function setup(handler, port) {
222
91
  var testMessageProcessed = false;
@@ -265,8 +134,9 @@ var WorkerMessageHandler = {
265
134
  var terminated = false;
266
135
  var cancelXHRs = null;
267
136
  var WorkerTasks = [];
137
+ var verbosity = (0, _util.getVerbosityLevel)();
268
138
  var apiVersion = docParams.apiVersion;
269
- var workerVersion = '2.1.266';
139
+ var workerVersion = '2.2.228';
270
140
 
271
141
  if (apiVersion !== workerVersion) {
272
142
  throw new Error("The API version \"".concat(apiVersion, "\" does not match ") + "the Worker version \"".concat(workerVersion, "\"."));
@@ -301,10 +171,10 @@ var WorkerMessageHandler = {
301
171
  function _loadDocument() {
302
172
  _loadDocument = _asyncToGenerator(
303
173
  /*#__PURE__*/
304
- _regenerator.default.mark(function _callee(recoveryMode) {
305
- var _ref6, _ref7, numPages, fingerprint;
174
+ _regenerator["default"].mark(function _callee(recoveryMode) {
175
+ var _ref4, _ref5, numPages, fingerprint;
306
176
 
307
- return _regenerator.default.wrap(function _callee$(_context) {
177
+ return _regenerator["default"].wrap(function _callee$(_context) {
308
178
  while (1) {
309
179
  switch (_context.prev = _context.next) {
310
180
  case 0:
@@ -333,10 +203,10 @@ var WorkerMessageHandler = {
333
203
  return Promise.all([pdfManager.ensureDoc('numPages'), pdfManager.ensureDoc('fingerprint')]);
334
204
 
335
205
  case 11:
336
- _ref6 = _context.sent;
337
- _ref7 = _slicedToArray(_ref6, 2);
338
- numPages = _ref7[0];
339
- fingerprint = _ref7[1];
206
+ _ref4 = _context.sent;
207
+ _ref5 = _slicedToArray(_ref4, 2);
208
+ numPages = _ref5[0];
209
+ fingerprint = _ref5[1];
340
210
  return _context.abrupt("return", {
341
211
  numPages: numPages,
342
212
  fingerprint: fingerprint
@@ -347,7 +217,7 @@ var WorkerMessageHandler = {
347
217
  return _context.stop();
348
218
  }
349
219
  }
350
- }, _callee, this);
220
+ }, _callee);
351
221
  }));
352
222
  return _loadDocument.apply(this, arguments);
353
223
  }
@@ -372,7 +242,7 @@ var WorkerMessageHandler = {
372
242
  cachedChunks = [];
373
243
 
374
244
  try {
375
- pdfStream = new PDFWorkerStream(handler);
245
+ pdfStream = new _worker_stream.PDFWorkerStream(handler);
376
246
  } catch (ex) {
377
247
  pdfManagerCapability.reject(ex);
378
248
  return pdfManagerCapability.promise;
@@ -400,7 +270,7 @@ var WorkerMessageHandler = {
400
270
  cachedChunks = [];
401
271
  pdfManagerCapability.resolve(pdfManager);
402
272
  cancelXHRs = null;
403
- }).catch(function (reason) {
273
+ })["catch"](function (reason) {
404
274
  pdfManagerCapability.reject(reason);
405
275
  cancelXHRs = null;
406
276
  });
@@ -461,7 +331,7 @@ var WorkerMessageHandler = {
461
331
 
462
332
  fullRequest.read().then(readChunk, reject);
463
333
  });
464
- readPromise.catch(function (e) {
334
+ readPromise["catch"](function (e) {
465
335
  pdfManagerCapability.reject(e);
466
336
  cancelXHRs = null;
467
337
  });
@@ -491,7 +361,7 @@ var WorkerMessageHandler = {
491
361
  finishWorkerTask(task);
492
362
  pdfManager.updatePassword(data.password);
493
363
  pdfManagerReady();
494
- }).catch(function (boundException) {
364
+ })["catch"](function (boundException) {
495
365
  finishWorkerTask(task);
496
366
  handler.send('PasswordException', boundException);
497
367
  }.bind(null, e));
@@ -511,7 +381,7 @@ var WorkerMessageHandler = {
511
381
  loadDocument(false).then(onSuccess, function loadFailure(ex) {
512
382
  ensureNotTerminated();
513
383
 
514
- if (!(ex instanceof _util.XRefParseException)) {
384
+ if (!(ex instanceof _core_utils.XRefParseException)) {
515
385
  onFailure(ex);
516
386
  return;
517
387
  }
@@ -550,12 +420,12 @@ var WorkerMessageHandler = {
550
420
 
551
421
  handler.on('GetPage', function wphSetupGetPage(data) {
552
422
  return pdfManager.getPage(data.pageIndex).then(function (page) {
553
- return Promise.all([pdfManager.ensure(page, 'rotate'), pdfManager.ensure(page, 'ref'), pdfManager.ensure(page, 'userUnit'), pdfManager.ensure(page, 'view')]).then(function (_ref3) {
554
- var _ref4 = _slicedToArray(_ref3, 4),
555
- rotate = _ref4[0],
556
- ref = _ref4[1],
557
- userUnit = _ref4[2],
558
- view = _ref4[3];
423
+ return Promise.all([pdfManager.ensure(page, 'rotate'), pdfManager.ensure(page, 'ref'), pdfManager.ensure(page, 'userUnit'), pdfManager.ensure(page, 'view')]).then(function (_ref) {
424
+ var _ref2 = _slicedToArray(_ref, 4),
425
+ rotate = _ref2[0],
426
+ ref = _ref2[1],
427
+ userUnit = _ref2[2],
428
+ view = _ref2[3];
559
429
 
560
430
  return {
561
431
  rotate: rotate,
@@ -567,7 +437,8 @@ var WorkerMessageHandler = {
567
437
  });
568
438
  });
569
439
  handler.on('GetPageIndex', function wphSetupGetPageIndex(data) {
570
- var ref = new _primitives.Ref(data.ref.num, data.ref.gen);
440
+ var ref = _primitives.Ref.get(data.ref.num, data.ref.gen);
441
+
571
442
  var catalog = pdfManager.pdfDocument.catalog;
572
443
  return catalog.getPageIndex(ref);
573
444
  });
@@ -580,10 +451,16 @@ var WorkerMessageHandler = {
580
451
  handler.on('GetPageLabels', function wphSetupGetPageLabels(data) {
581
452
  return pdfManager.ensureCatalog('pageLabels');
582
453
  });
454
+ handler.on('GetPageLayout', function wphSetupGetPageLayout(data) {
455
+ return pdfManager.ensureCatalog('pageLayout');
456
+ });
583
457
  handler.on('GetPageMode', function wphSetupGetPageMode(data) {
584
458
  return pdfManager.ensureCatalog('pageMode');
585
459
  });
586
- handler.on('getOpenActionDestination', function (data) {
460
+ handler.on('GetViewerPreferences', function (data) {
461
+ return pdfManager.ensureCatalog('viewerPreferences');
462
+ });
463
+ handler.on('GetOpenActionDestination', function (data) {
587
464
  return pdfManager.ensureCatalog('openActionDestination');
588
465
  });
589
466
  handler.on('GetAttachments', function wphSetupGetAttachments(data) {
@@ -610,9 +487,9 @@ var WorkerMessageHandler = {
610
487
  handler.on('GetStats', function wphSetupGetStats(data) {
611
488
  return pdfManager.pdfDocument.xref.stats;
612
489
  });
613
- handler.on('GetAnnotations', function (_ref5) {
614
- var pageIndex = _ref5.pageIndex,
615
- intent = _ref5.intent;
490
+ handler.on('GetAnnotations', function (_ref3) {
491
+ var pageIndex = _ref3.pageIndex,
492
+ intent = _ref3.intent;
616
493
  return pdfManager.getPage(pageIndex).then(function (page) {
617
494
  return page.getAnnotationsData(intent);
618
495
  });
@@ -622,8 +499,7 @@ var WorkerMessageHandler = {
622
499
  pdfManager.getPage(pageIndex).then(function (page) {
623
500
  var task = new WorkerTask('RenderPageRequest: page ' + pageIndex);
624
501
  startWorkerTask(task);
625
- var pageNum = pageIndex + 1;
626
- var start = Date.now();
502
+ var start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
627
503
  page.getOperatorList({
628
504
  handler: handler,
629
505
  task: task,
@@ -631,7 +507,10 @@ var WorkerMessageHandler = {
631
507
  renderInteractiveForms: data.renderInteractiveForms
632
508
  }).then(function (operatorList) {
633
509
  finishWorkerTask(task);
634
- (0, _util.info)('page=' + pageNum + ' - getOperatorList: time=' + (Date.now() - start) + 'ms, len=' + operatorList.totalLength);
510
+
511
+ if (start) {
512
+ (0, _util.info)("page=".concat(pageIndex + 1, " - getOperatorList: time=") + "".concat(Date.now() - start, "ms, len=").concat(operatorList.totalLength));
513
+ }
635
514
  }, function (e) {
636
515
  finishWorkerTask(task);
637
516
 
@@ -663,7 +542,7 @@ var WorkerMessageHandler = {
663
542
  }
664
543
 
665
544
  handler.send('PageError', {
666
- pageNum: pageNum,
545
+ pageIndex: pageIndex,
667
546
  error: wrappedException,
668
547
  intent: data.intent
669
548
  });
@@ -680,8 +559,7 @@ var WorkerMessageHandler = {
680
559
  pdfManager.getPage(pageIndex).then(function (page) {
681
560
  var task = new WorkerTask('GetTextContent: page ' + pageIndex);
682
561
  startWorkerTask(task);
683
- var pageNum = pageIndex + 1;
684
- var start = Date.now();
562
+ var start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
685
563
  page.extractTextContent({
686
564
  handler: handler,
687
565
  task: task,
@@ -690,7 +568,11 @@ var WorkerMessageHandler = {
690
568
  combineTextItems: data.combineTextItems
691
569
  }).then(function () {
692
570
  finishWorkerTask(task);
693
- (0, _util.info)('text indexing: page=' + pageNum + ' - time=' + (Date.now() - start) + 'ms');
571
+
572
+ if (start) {
573
+ (0, _util.info)("page=".concat(pageIndex + 1, " - getTextContent: time=") + "".concat(Date.now() - start, "ms"));
574
+ }
575
+
694
576
  sink.close();
695
577
  }, function (reason) {
696
578
  finishWorkerTask(task);
@@ -722,6 +604,7 @@ var WorkerMessageHandler = {
722
604
  cancelXHRs();
723
605
  }
724
606
 
607
+ (0, _primitives.clearPrimitiveCaches)();
725
608
  var waitOn = [];
726
609
  WorkerTasks.forEach(function (task) {
727
610
  waitOn.push(task.finished);
@@ -750,6 +633,6 @@ function isMessagePort(maybePort) {
750
633
  return typeof maybePort.postMessage === 'function' && 'onmessage' in maybePort;
751
634
  }
752
635
 
753
- if (typeof window === 'undefined' && !(0, _is_node.default)() && typeof self !== 'undefined' && isMessagePort(self)) {
636
+ if (typeof window === 'undefined' && !(0, _is_node["default"])() && typeof self !== 'undefined' && isMessagePort(self)) {
754
637
  WorkerMessageHandler.initializeFromPort(self);
755
638
  }
@@ -0,0 +1,277 @@
1
+ /**
2
+ * @licstart The following is the entire license notice for the
3
+ * Javascript code in this page
4
+ *
5
+ * Copyright 2019 Mozilla Foundation
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ *
19
+ * @licend The above is the entire license notice for the
20
+ * Javascript code in this page
21
+ */
22
+ "use strict";
23
+
24
+ Object.defineProperty(exports, "__esModule", {
25
+ value: true
26
+ });
27
+ exports.PDFWorkerStream = void 0;
28
+
29
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
30
+
31
+ var _util = require("../shared/util");
32
+
33
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
34
+
35
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
36
+
37
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
38
+
39
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
40
+
41
+ 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); } }
42
+
43
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
44
+
45
+ var PDFWorkerStream =
46
+ /*#__PURE__*/
47
+ function () {
48
+ function PDFWorkerStream(msgHandler) {
49
+ _classCallCheck(this, PDFWorkerStream);
50
+
51
+ this._msgHandler = msgHandler;
52
+ this._contentLength = null;
53
+ this._fullRequestReader = null;
54
+ this._rangeRequestReaders = [];
55
+ }
56
+
57
+ _createClass(PDFWorkerStream, [{
58
+ key: "getFullReader",
59
+ value: function getFullReader() {
60
+ (0, _util.assert)(!this._fullRequestReader);
61
+ this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);
62
+ return this._fullRequestReader;
63
+ }
64
+ }, {
65
+ key: "getRangeReader",
66
+ value: function getRangeReader(begin, end) {
67
+ var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);
68
+
69
+ this._rangeRequestReaders.push(reader);
70
+
71
+ return reader;
72
+ }
73
+ }, {
74
+ key: "cancelAllRequests",
75
+ value: function cancelAllRequests(reason) {
76
+ if (this._fullRequestReader) {
77
+ this._fullRequestReader.cancel(reason);
78
+ }
79
+
80
+ var readers = this._rangeRequestReaders.slice(0);
81
+
82
+ readers.forEach(function (reader) {
83
+ reader.cancel(reason);
84
+ });
85
+ }
86
+ }]);
87
+
88
+ return PDFWorkerStream;
89
+ }();
90
+
91
+ exports.PDFWorkerStream = PDFWorkerStream;
92
+
93
+ var PDFWorkerStreamReader =
94
+ /*#__PURE__*/
95
+ function () {
96
+ function PDFWorkerStreamReader(msgHandler) {
97
+ var _this = this;
98
+
99
+ _classCallCheck(this, PDFWorkerStreamReader);
100
+
101
+ this._msgHandler = msgHandler;
102
+ this.onProgress = null;
103
+ this._contentLength = null;
104
+ this._isRangeSupported = false;
105
+ this._isStreamingSupported = false;
106
+
107
+ var readableStream = this._msgHandler.sendWithStream('GetReader');
108
+
109
+ this._reader = readableStream.getReader();
110
+ this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) {
111
+ _this._isStreamingSupported = data.isStreamingSupported;
112
+ _this._isRangeSupported = data.isRangeSupported;
113
+ _this._contentLength = data.contentLength;
114
+ });
115
+ }
116
+
117
+ _createClass(PDFWorkerStreamReader, [{
118
+ key: "read",
119
+ value: function () {
120
+ var _read = _asyncToGenerator(
121
+ /*#__PURE__*/
122
+ _regenerator["default"].mark(function _callee() {
123
+ var _ref, value, done;
124
+
125
+ return _regenerator["default"].wrap(function _callee$(_context) {
126
+ while (1) {
127
+ switch (_context.prev = _context.next) {
128
+ case 0:
129
+ _context.next = 2;
130
+ return this._reader.read();
131
+
132
+ case 2:
133
+ _ref = _context.sent;
134
+ value = _ref.value;
135
+ done = _ref.done;
136
+
137
+ if (!done) {
138
+ _context.next = 7;
139
+ break;
140
+ }
141
+
142
+ return _context.abrupt("return", {
143
+ value: undefined,
144
+ done: true
145
+ });
146
+
147
+ case 7:
148
+ return _context.abrupt("return", {
149
+ value: value.buffer,
150
+ done: false
151
+ });
152
+
153
+ case 8:
154
+ case "end":
155
+ return _context.stop();
156
+ }
157
+ }
158
+ }, _callee, this);
159
+ }));
160
+
161
+ function read() {
162
+ return _read.apply(this, arguments);
163
+ }
164
+
165
+ return read;
166
+ }()
167
+ }, {
168
+ key: "cancel",
169
+ value: function cancel(reason) {
170
+ this._reader.cancel(reason);
171
+ }
172
+ }, {
173
+ key: "headersReady",
174
+ get: function get() {
175
+ return this._headersReady;
176
+ }
177
+ }, {
178
+ key: "contentLength",
179
+ get: function get() {
180
+ return this._contentLength;
181
+ }
182
+ }, {
183
+ key: "isStreamingSupported",
184
+ get: function get() {
185
+ return this._isStreamingSupported;
186
+ }
187
+ }, {
188
+ key: "isRangeSupported",
189
+ get: function get() {
190
+ return this._isRangeSupported;
191
+ }
192
+ }]);
193
+
194
+ return PDFWorkerStreamReader;
195
+ }();
196
+
197
+ var PDFWorkerStreamRangeReader =
198
+ /*#__PURE__*/
199
+ function () {
200
+ function PDFWorkerStreamRangeReader(begin, end, msgHandler) {
201
+ _classCallCheck(this, PDFWorkerStreamRangeReader);
202
+
203
+ this._msgHandler = msgHandler;
204
+ this.onProgress = null;
205
+
206
+ var readableStream = this._msgHandler.sendWithStream('GetRangeReader', {
207
+ begin: begin,
208
+ end: end
209
+ });
210
+
211
+ this._reader = readableStream.getReader();
212
+ }
213
+
214
+ _createClass(PDFWorkerStreamRangeReader, [{
215
+ key: "read",
216
+ value: function () {
217
+ var _read2 = _asyncToGenerator(
218
+ /*#__PURE__*/
219
+ _regenerator["default"].mark(function _callee2() {
220
+ var _ref2, value, done;
221
+
222
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
223
+ while (1) {
224
+ switch (_context2.prev = _context2.next) {
225
+ case 0:
226
+ _context2.next = 2;
227
+ return this._reader.read();
228
+
229
+ case 2:
230
+ _ref2 = _context2.sent;
231
+ value = _ref2.value;
232
+ done = _ref2.done;
233
+
234
+ if (!done) {
235
+ _context2.next = 7;
236
+ break;
237
+ }
238
+
239
+ return _context2.abrupt("return", {
240
+ value: undefined,
241
+ done: true
242
+ });
243
+
244
+ case 7:
245
+ return _context2.abrupt("return", {
246
+ value: value.buffer,
247
+ done: false
248
+ });
249
+
250
+ case 8:
251
+ case "end":
252
+ return _context2.stop();
253
+ }
254
+ }
255
+ }, _callee2, this);
256
+ }));
257
+
258
+ function read() {
259
+ return _read2.apply(this, arguments);
260
+ }
261
+
262
+ return read;
263
+ }()
264
+ }, {
265
+ key: "cancel",
266
+ value: function cancel(reason) {
267
+ this._reader.cancel(reason);
268
+ }
269
+ }, {
270
+ key: "isStreamingSupported",
271
+ get: function get() {
272
+ return false;
273
+ }
274
+ }]);
275
+
276
+ return PDFWorkerStreamRangeReader;
277
+ }();