pdfjs-dist 2.0.487 → 2.1.266

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 (161) hide show
  1. package/bower.json +1 -1
  2. package/build/pdf.js +15564 -9476
  3. package/build/pdf.js.map +1 -1
  4. package/build/pdf.min.js +1 -1
  5. package/build/pdf.worker.js +46644 -36309
  6. package/build/pdf.worker.js.map +1 -1
  7. package/build/pdf.worker.min.js +1 -1
  8. package/external/url/url-lib.js +627 -0
  9. package/image_decoders/pdf.image_decoders.js +11430 -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 +406 -131
  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 +376 -53
  18. package/lib/core/charsets.js +5 -4
  19. package/lib/core/chunked_stream.js +387 -149
  20. package/lib/core/cmap.js +310 -75
  21. package/lib/core/colorspace.js +874 -594
  22. package/lib/core/crypto.js +290 -45
  23. package/lib/core/document.js +545 -260
  24. package/lib/core/encodings.js +19 -10
  25. package/lib/core/evaluator.js +725 -147
  26. package/lib/core/font_renderer.js +360 -91
  27. package/lib/core/fonts.js +791 -186
  28. package/lib/core/function.js +284 -71
  29. package/lib/core/glyphlist.js +3 -2
  30. package/lib/core/image.js +168 -61
  31. package/lib/core/jbig2.js +479 -66
  32. package/lib/core/jbig2_stream.js +19 -8
  33. package/lib/core/jpeg_stream.js +38 -13
  34. package/lib/core/jpg.js +252 -29
  35. package/lib/core/jpx.js +396 -6
  36. package/lib/core/jpx_stream.js +18 -6
  37. package/lib/core/metrics.js +4 -4
  38. package/lib/core/murmurhash3.js +24 -6
  39. package/lib/core/obj.js +1137 -475
  40. package/lib/core/operator_list.js +108 -6
  41. package/lib/core/parser.js +321 -68
  42. package/lib/core/pattern.js +145 -13
  43. package/lib/core/pdf_manager.js +321 -133
  44. package/lib/core/primitives.js +75 -22
  45. package/lib/core/ps_parser.js +134 -45
  46. package/lib/core/standard_fonts.js +10 -10
  47. package/lib/core/stream.js +313 -34
  48. package/lib/core/type1_parser.js +143 -13
  49. package/lib/core/unicode.js +31 -4
  50. package/lib/core/worker.js +210 -66
  51. package/lib/display/annotation_layer.js +361 -123
  52. package/lib/display/api.js +1454 -729
  53. package/lib/display/api_compatibility.js +11 -13
  54. package/lib/display/canvas.js +324 -29
  55. package/lib/display/content_disposition.js +83 -32
  56. package/lib/display/dom_utils.js +226 -41
  57. package/lib/display/fetch_stream.js +208 -84
  58. package/lib/display/font_loader.js +465 -236
  59. package/lib/display/metadata.js +38 -16
  60. package/lib/display/network.js +216 -51
  61. package/lib/display/network_utils.js +32 -19
  62. package/lib/display/node_stream.js +352 -169
  63. package/lib/display/pattern_helper.js +58 -7
  64. package/lib/display/svg.js +242 -29
  65. package/lib/display/text_layer.js +132 -18
  66. package/lib/display/transport_stream.js +171 -42
  67. package/lib/display/webgl.js +64 -18
  68. package/lib/display/worker_options.js +5 -4
  69. package/lib/display/xml_parser.js +166 -53
  70. package/lib/examples/node/domstubs.js +57 -4
  71. package/lib/pdf.js +21 -4
  72. package/lib/pdf.worker.js +5 -3
  73. package/lib/shared/compatibility.js +158 -564
  74. package/lib/shared/global_scope.js +2 -2
  75. package/lib/shared/is_node.js +4 -4
  76. package/lib/shared/message_handler.js +521 -0
  77. package/lib/shared/streams_polyfill.js +21 -17
  78. package/lib/shared/url_polyfill.js +56 -0
  79. package/lib/shared/util.js +295 -650
  80. package/lib/test/unit/annotation_spec.js +629 -345
  81. package/lib/test/unit/api_spec.js +555 -253
  82. package/lib/test/unit/bidi_spec.js +7 -7
  83. package/lib/test/unit/cff_parser_spec.js +40 -11
  84. package/lib/test/unit/clitests_helper.js +9 -7
  85. package/lib/test/unit/cmap_spec.js +80 -26
  86. package/lib/test/unit/colorspace_spec.js +99 -52
  87. package/lib/test/unit/crypto_spec.js +17 -5
  88. package/lib/test/unit/custom_spec.js +41 -53
  89. package/lib/test/unit/display_svg_spec.js +33 -17
  90. package/lib/test/unit/document_spec.js +3 -3
  91. package/lib/test/unit/dom_utils_spec.js +9 -9
  92. package/lib/test/unit/encodings_spec.js +25 -45
  93. package/lib/test/unit/evaluator_spec.js +34 -9
  94. package/lib/test/unit/function_spec.js +17 -5
  95. package/lib/test/unit/jasmine-boot.js +31 -18
  96. package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
  97. package/lib/test/unit/metadata_spec.js +71 -11
  98. package/lib/test/unit/murmurhash3_spec.js +3 -3
  99. package/lib/test/unit/network_spec.js +20 -5
  100. package/lib/test/unit/network_utils_spec.js +41 -14
  101. package/lib/test/unit/node_stream_spec.js +51 -27
  102. package/lib/test/unit/parser_spec.js +35 -8
  103. package/lib/test/unit/pdf_find_controller_spec.js +230 -0
  104. package/lib/test/unit/pdf_find_utils_spec.js +63 -0
  105. package/lib/test/unit/pdf_history_spec.js +21 -9
  106. package/lib/test/unit/primitives_spec.js +24 -4
  107. package/lib/test/unit/stream_spec.js +12 -4
  108. package/lib/test/unit/test_utils.js +90 -27
  109. package/lib/test/unit/testreporter.js +21 -3
  110. package/lib/test/unit/type1_parser_spec.js +8 -6
  111. package/lib/test/unit/ui_utils_spec.js +452 -14
  112. package/lib/test/unit/unicode_spec.js +14 -11
  113. package/lib/test/unit/util_spec.js +131 -9
  114. package/lib/web/annotation_layer_builder.js +39 -22
  115. package/lib/web/app.js +1240 -582
  116. package/lib/web/app_options.js +71 -41
  117. package/lib/web/base_viewer.js +508 -179
  118. package/lib/web/chromecom.js +261 -117
  119. package/lib/web/debugger.js +166 -22
  120. package/lib/web/download_manager.js +31 -13
  121. package/lib/web/firefox_print_service.js +17 -9
  122. package/lib/web/firefoxcom.js +283 -79
  123. package/lib/web/genericcom.js +89 -30
  124. package/lib/web/genericl10n.js +142 -30
  125. package/lib/web/grab_to_pan.js +26 -4
  126. package/lib/web/interfaces.js +170 -47
  127. package/lib/web/overlay_manager.js +235 -85
  128. package/lib/web/password_prompt.js +21 -13
  129. package/lib/web/pdf_attachment_viewer.js +38 -18
  130. package/lib/web/pdf_cursor_tools.js +39 -16
  131. package/lib/web/pdf_document_properties.js +80 -30
  132. package/lib/web/pdf_find_bar.js +84 -40
  133. package/lib/web/pdf_find_controller.js +495 -184
  134. package/lib/web/pdf_find_utils.js +111 -0
  135. package/lib/web/pdf_history.js +190 -53
  136. package/lib/web/pdf_link_service.js +137 -76
  137. package/lib/web/pdf_outline_viewer.js +73 -22
  138. package/lib/web/pdf_page_view.js +196 -63
  139. package/lib/web/pdf_presentation_mode.js +99 -34
  140. package/lib/web/pdf_print_service.js +57 -11
  141. package/lib/web/pdf_rendering_queue.js +27 -5
  142. package/lib/web/pdf_sidebar.js +120 -67
  143. package/lib/web/pdf_sidebar_resizer.js +42 -16
  144. package/lib/web/pdf_single_page_viewer.js +74 -66
  145. package/lib/web/pdf_thumbnail_view.js +103 -32
  146. package/lib/web/pdf_thumbnail_viewer.js +64 -24
  147. package/lib/web/pdf_viewer.component.js +112 -32
  148. package/lib/web/pdf_viewer.js +91 -52
  149. package/lib/web/preferences.js +275 -80
  150. package/lib/web/secondary_toolbar.js +165 -40
  151. package/lib/web/text_layer_builder.js +162 -65
  152. package/lib/web/toolbar.js +78 -43
  153. package/lib/web/ui_utils.js +462 -136
  154. package/lib/web/view_history.js +215 -67
  155. package/lib/web/viewer_compatibility.js +4 -13
  156. package/package.json +5 -4
  157. package/web/pdf_viewer.css +58 -1
  158. package/web/pdf_viewer.js +6346 -3919
  159. package/web/pdf_viewer.js.map +1 -1
  160. package/lib/test/unit/fonts_spec.js +0 -81
  161. 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 2018 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,14 +19,22 @@
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.PDFDataTransportStream = undefined;
27
+ exports.PDFDataTransportStream = void 0;
28
28
 
29
- var _util = require('../shared/util');
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); }); }; }
30
38
 
31
39
  var PDFDataTransportStream = function PDFDataTransportStreamClosure() {
32
40
  function PDFDataTransportStream(params, pdfDataRangeTransport) {
@@ -35,33 +43,46 @@ var PDFDataTransportStream = function PDFDataTransportStreamClosure() {
35
43
  (0, _util.assert)(pdfDataRangeTransport);
36
44
  this._queuedChunks = [];
37
45
  var initialData = params.initialData;
46
+
38
47
  if (initialData && initialData.length > 0) {
39
48
  var buffer = new Uint8Array(initialData).buffer;
49
+
40
50
  this._queuedChunks.push(buffer);
41
51
  }
52
+
42
53
  this._pdfDataRangeTransport = pdfDataRangeTransport;
43
54
  this._isStreamingSupported = !params.disableStream;
44
55
  this._isRangeSupported = !params.disableRange;
45
56
  this._contentLength = params.length;
46
57
  this._fullRequestReader = null;
47
58
  this._rangeReaders = [];
59
+
48
60
  this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) {
49
61
  _this._onReceiveData({
50
62
  begin: begin,
51
63
  chunk: chunk
52
64
  });
53
65
  });
66
+
54
67
  this._pdfDataRangeTransport.addProgressListener(function (loaded) {
55
- _this._onProgress({ loaded: loaded });
68
+ _this._onProgress({
69
+ loaded: loaded
70
+ });
56
71
  });
72
+
57
73
  this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) {
58
- _this._onReceiveData({ chunk: chunk });
74
+ _this._onReceiveData({
75
+ chunk: chunk
76
+ });
59
77
  });
78
+
60
79
  this._pdfDataRangeTransport.transportReady();
61
80
  }
81
+
62
82
  PDFDataTransportStream.prototype = {
63
83
  _onReceiveData: function PDFDataTransportStream_onReceiveData(args) {
64
84
  var buffer = new Uint8Array(args.chunk).buffer;
85
+
65
86
  if (args.begin === undefined) {
66
87
  if (this._fullRequestReader) {
67
88
  this._fullRequestReader._enqueue(buffer);
@@ -73,22 +94,29 @@ var PDFDataTransportStream = function PDFDataTransportStreamClosure() {
73
94
  if (rangeReader._begin !== args.begin) {
74
95
  return false;
75
96
  }
97
+
76
98
  rangeReader._enqueue(buffer);
99
+
77
100
  return true;
78
101
  });
102
+
79
103
  (0, _util.assert)(found);
80
104
  }
81
105
  },
82
106
  _onProgress: function PDFDataTransportStream_onDataProgress(evt) {
83
107
  if (this._rangeReaders.length > 0) {
84
108
  var firstReader = this._rangeReaders[0];
109
+
85
110
  if (firstReader.onProgress) {
86
- firstReader.onProgress({ loaded: evt.loaded });
111
+ firstReader.onProgress({
112
+ loaded: evt.loaded
113
+ });
87
114
  }
88
115
  }
89
116
  },
90
117
  _removeRangeReader: function PDFDataTransportStream_removeRangeReader(reader) {
91
118
  var i = this._rangeReaders.indexOf(reader);
119
+
92
120
  if (i >= 0) {
93
121
  this._rangeReaders.splice(i, 1);
94
122
  }
@@ -101,21 +129,28 @@ var PDFDataTransportStream = function PDFDataTransportStreamClosure() {
101
129
  },
102
130
  getRangeReader: function PDFDataTransportStream_getRangeReader(begin, end) {
103
131
  var reader = new PDFDataTransportStreamRangeReader(this, begin, end);
132
+
104
133
  this._pdfDataRangeTransport.requestDataRange(begin, end);
134
+
105
135
  this._rangeReaders.push(reader);
136
+
106
137
  return reader;
107
138
  },
108
139
  cancelAllRequests: function PDFDataTransportStream_cancelAllRequests(reason) {
109
140
  if (this._fullRequestReader) {
110
141
  this._fullRequestReader.cancel(reason);
111
142
  }
143
+
112
144
  var readers = this._rangeReaders.slice(0);
145
+
113
146
  readers.forEach(function (rangeReader) {
114
147
  rangeReader.cancel(reason);
115
148
  });
149
+
116
150
  this._pdfDataRangeTransport.abort();
117
151
  }
118
152
  };
153
+
119
154
  function PDFDataTransportStreamReader(stream, queuedChunks) {
120
155
  this._stream = stream;
121
156
  this._done = false;
@@ -126,65 +161,112 @@ var PDFDataTransportStream = function PDFDataTransportStreamClosure() {
126
161
  stream._fullRequestReader = this;
127
162
  this.onProgress = null;
128
163
  }
164
+
129
165
  PDFDataTransportStreamReader.prototype = {
130
166
  _enqueue: function PDFDataTransportStreamReader_enqueue(chunk) {
131
167
  if (this._done) {
132
168
  return;
133
169
  }
170
+
134
171
  if (this._requests.length > 0) {
135
172
  var requestCapability = this._requests.shift();
173
+
136
174
  requestCapability.resolve({
137
175
  value: chunk,
138
176
  done: false
139
177
  });
140
178
  return;
141
179
  }
180
+
142
181
  this._queuedChunks.push(chunk);
143
182
  },
183
+
144
184
  get headersReady() {
145
185
  return this._headersReady;
146
186
  },
187
+
147
188
  get filename() {
148
189
  return this._filename;
149
190
  },
191
+
150
192
  get isRangeSupported() {
151
193
  return this._stream._isRangeSupported;
152
194
  },
195
+
153
196
  get isStreamingSupported() {
154
197
  return this._stream._isStreamingSupported;
155
198
  },
199
+
156
200
  get contentLength() {
157
201
  return this._stream._contentLength;
158
202
  },
159
- read: function PDFDataTransportStreamReader_read() {
160
- if (this._queuedChunks.length > 0) {
161
- var chunk = this._queuedChunks.shift();
162
- return Promise.resolve({
163
- value: chunk,
164
- done: false
165
- });
166
- }
167
- if (this._done) {
168
- return Promise.resolve({
169
- value: undefined,
170
- done: true
171
- });
203
+
204
+ read: function () {
205
+ var _read = _asyncToGenerator(
206
+ /*#__PURE__*/
207
+ _regenerator.default.mark(function _callee() {
208
+ var chunk, requestCapability;
209
+ return _regenerator.default.wrap(function _callee$(_context) {
210
+ while (1) {
211
+ switch (_context.prev = _context.next) {
212
+ case 0:
213
+ if (!(this._queuedChunks.length > 0)) {
214
+ _context.next = 3;
215
+ break;
216
+ }
217
+
218
+ chunk = this._queuedChunks.shift();
219
+ return _context.abrupt("return", {
220
+ value: chunk,
221
+ done: false
222
+ });
223
+
224
+ case 3:
225
+ if (!this._done) {
226
+ _context.next = 5;
227
+ break;
228
+ }
229
+
230
+ return _context.abrupt("return", {
231
+ value: undefined,
232
+ done: true
233
+ });
234
+
235
+ case 5:
236
+ requestCapability = (0, _util.createPromiseCapability)();
237
+
238
+ this._requests.push(requestCapability);
239
+
240
+ return _context.abrupt("return", requestCapability.promise);
241
+
242
+ case 8:
243
+ case "end":
244
+ return _context.stop();
245
+ }
246
+ }
247
+ }, _callee, this);
248
+ }));
249
+
250
+ function read() {
251
+ return _read.apply(this, arguments);
172
252
  }
173
- var requestCapability = (0, _util.createPromiseCapability)();
174
- this._requests.push(requestCapability);
175
- return requestCapability.promise;
176
- },
253
+
254
+ return read;
255
+ }(),
177
256
  cancel: function PDFDataTransportStreamReader_cancel(reason) {
178
257
  this._done = true;
258
+
179
259
  this._requests.forEach(function (requestCapability) {
180
260
  requestCapability.resolve({
181
261
  value: undefined,
182
262
  done: true
183
263
  });
184
264
  });
265
+
185
266
  this._requests = [];
186
267
  }
187
268
  };
269
+
188
270
  function PDFDataTransportStreamRangeReader(stream, begin, end) {
189
271
  this._stream = stream;
190
272
  this._begin = begin;
@@ -194,64 +276,111 @@ var PDFDataTransportStream = function PDFDataTransportStreamClosure() {
194
276
  this._done = false;
195
277
  this.onProgress = null;
196
278
  }
279
+
197
280
  PDFDataTransportStreamRangeReader.prototype = {
198
281
  _enqueue: function PDFDataTransportStreamRangeReader_enqueue(chunk) {
199
282
  if (this._done) {
200
283
  return;
201
284
  }
285
+
202
286
  if (this._requests.length === 0) {
203
287
  this._queuedChunk = chunk;
204
288
  } else {
205
289
  var requestsCapability = this._requests.shift();
290
+
206
291
  requestsCapability.resolve({
207
292
  value: chunk,
208
293
  done: false
209
294
  });
295
+
210
296
  this._requests.forEach(function (requestCapability) {
211
297
  requestCapability.resolve({
212
298
  value: undefined,
213
299
  done: true
214
300
  });
215
301
  });
302
+
216
303
  this._requests = [];
217
304
  }
305
+
218
306
  this._done = true;
307
+
219
308
  this._stream._removeRangeReader(this);
220
309
  },
310
+
221
311
  get isStreamingSupported() {
222
312
  return false;
223
313
  },
224
- read: function PDFDataTransportStreamRangeReader_read() {
225
- if (this._queuedChunk) {
226
- var chunk = this._queuedChunk;
227
- this._queuedChunk = null;
228
- return Promise.resolve({
229
- value: chunk,
230
- done: false
231
- });
232
- }
233
- if (this._done) {
234
- return Promise.resolve({
235
- value: undefined,
236
- done: true
237
- });
314
+
315
+ read: function () {
316
+ var _read2 = _asyncToGenerator(
317
+ /*#__PURE__*/
318
+ _regenerator.default.mark(function _callee2() {
319
+ var chunk, requestCapability;
320
+ return _regenerator.default.wrap(function _callee2$(_context2) {
321
+ while (1) {
322
+ switch (_context2.prev = _context2.next) {
323
+ case 0:
324
+ if (!this._queuedChunk) {
325
+ _context2.next = 4;
326
+ break;
327
+ }
328
+
329
+ chunk = this._queuedChunk;
330
+ this._queuedChunk = null;
331
+ return _context2.abrupt("return", {
332
+ value: chunk,
333
+ done: false
334
+ });
335
+
336
+ case 4:
337
+ if (!this._done) {
338
+ _context2.next = 6;
339
+ break;
340
+ }
341
+
342
+ return _context2.abrupt("return", {
343
+ value: undefined,
344
+ done: true
345
+ });
346
+
347
+ case 6:
348
+ requestCapability = (0, _util.createPromiseCapability)();
349
+
350
+ this._requests.push(requestCapability);
351
+
352
+ return _context2.abrupt("return", requestCapability.promise);
353
+
354
+ case 9:
355
+ case "end":
356
+ return _context2.stop();
357
+ }
358
+ }
359
+ }, _callee2, this);
360
+ }));
361
+
362
+ function read() {
363
+ return _read2.apply(this, arguments);
238
364
  }
239
- var requestCapability = (0, _util.createPromiseCapability)();
240
- this._requests.push(requestCapability);
241
- return requestCapability.promise;
242
- },
365
+
366
+ return read;
367
+ }(),
243
368
  cancel: function PDFDataTransportStreamRangeReader_cancel(reason) {
244
369
  this._done = true;
370
+
245
371
  this._requests.forEach(function (requestCapability) {
246
372
  requestCapability.resolve({
247
373
  value: undefined,
248
374
  done: true
249
375
  });
250
376
  });
377
+
251
378
  this._requests = [];
379
+
252
380
  this._stream._removeRangeReader(this);
253
381
  }
254
382
  };
255
383
  return PDFDataTransportStream;
256
384
  }();
385
+
257
386
  exports.PDFDataTransportStream = PDFDataTransportStream;