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.
- package/bower.json +1 -1
- package/build/pdf.js +15564 -9476
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +46644 -36309
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/external/url/url-lib.js +627 -0
- package/image_decoders/pdf.image_decoders.js +11430 -0
- package/image_decoders/pdf.image_decoders.js.map +1 -0
- package/image_decoders/pdf.image_decoders.min.js +1 -0
- package/lib/core/annotation.js +406 -131
- package/lib/core/arithmetic_decoder.js +275 -245
- package/lib/core/bidi.js +65 -6
- package/lib/core/ccitt.js +173 -18
- package/lib/core/ccitt_stream.js +15 -6
- package/lib/core/cff_parser.js +376 -53
- package/lib/core/charsets.js +5 -4
- package/lib/core/chunked_stream.js +387 -149
- package/lib/core/cmap.js +310 -75
- package/lib/core/colorspace.js +874 -594
- package/lib/core/crypto.js +290 -45
- package/lib/core/document.js +545 -260
- package/lib/core/encodings.js +19 -10
- package/lib/core/evaluator.js +725 -147
- package/lib/core/font_renderer.js +360 -91
- package/lib/core/fonts.js +791 -186
- package/lib/core/function.js +284 -71
- package/lib/core/glyphlist.js +3 -2
- package/lib/core/image.js +168 -61
- package/lib/core/jbig2.js +479 -66
- package/lib/core/jbig2_stream.js +19 -8
- package/lib/core/jpeg_stream.js +38 -13
- package/lib/core/jpg.js +252 -29
- package/lib/core/jpx.js +396 -6
- package/lib/core/jpx_stream.js +18 -6
- package/lib/core/metrics.js +4 -4
- package/lib/core/murmurhash3.js +24 -6
- package/lib/core/obj.js +1137 -475
- package/lib/core/operator_list.js +108 -6
- package/lib/core/parser.js +321 -68
- package/lib/core/pattern.js +145 -13
- package/lib/core/pdf_manager.js +321 -133
- package/lib/core/primitives.js +75 -22
- package/lib/core/ps_parser.js +134 -45
- package/lib/core/standard_fonts.js +10 -10
- package/lib/core/stream.js +313 -34
- package/lib/core/type1_parser.js +143 -13
- package/lib/core/unicode.js +31 -4
- package/lib/core/worker.js +210 -66
- package/lib/display/annotation_layer.js +361 -123
- package/lib/display/api.js +1454 -729
- package/lib/display/api_compatibility.js +11 -13
- package/lib/display/canvas.js +324 -29
- package/lib/display/content_disposition.js +83 -32
- package/lib/display/dom_utils.js +226 -41
- package/lib/display/fetch_stream.js +208 -84
- package/lib/display/font_loader.js +465 -236
- package/lib/display/metadata.js +38 -16
- package/lib/display/network.js +216 -51
- package/lib/display/network_utils.js +32 -19
- package/lib/display/node_stream.js +352 -169
- package/lib/display/pattern_helper.js +58 -7
- package/lib/display/svg.js +242 -29
- package/lib/display/text_layer.js +132 -18
- package/lib/display/transport_stream.js +171 -42
- package/lib/display/webgl.js +64 -18
- package/lib/display/worker_options.js +5 -4
- package/lib/display/xml_parser.js +166 -53
- package/lib/examples/node/domstubs.js +57 -4
- package/lib/pdf.js +21 -4
- package/lib/pdf.worker.js +5 -3
- package/lib/shared/compatibility.js +158 -564
- package/lib/shared/global_scope.js +2 -2
- package/lib/shared/is_node.js +4 -4
- package/lib/shared/message_handler.js +521 -0
- package/lib/shared/streams_polyfill.js +21 -17
- package/lib/shared/url_polyfill.js +56 -0
- package/lib/shared/util.js +295 -650
- package/lib/test/unit/annotation_spec.js +629 -345
- package/lib/test/unit/api_spec.js +555 -253
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +40 -11
- package/lib/test/unit/clitests_helper.js +9 -7
- package/lib/test/unit/cmap_spec.js +80 -26
- package/lib/test/unit/colorspace_spec.js +99 -52
- package/lib/test/unit/crypto_spec.js +17 -5
- package/lib/test/unit/custom_spec.js +41 -53
- package/lib/test/unit/display_svg_spec.js +33 -17
- package/lib/test/unit/document_spec.js +3 -3
- package/lib/test/unit/dom_utils_spec.js +9 -9
- package/lib/test/unit/encodings_spec.js +25 -45
- package/lib/test/unit/evaluator_spec.js +34 -9
- package/lib/test/unit/function_spec.js +17 -5
- package/lib/test/unit/jasmine-boot.js +31 -18
- package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
- package/lib/test/unit/metadata_spec.js +71 -11
- package/lib/test/unit/murmurhash3_spec.js +3 -3
- package/lib/test/unit/network_spec.js +20 -5
- package/lib/test/unit/network_utils_spec.js +41 -14
- package/lib/test/unit/node_stream_spec.js +51 -27
- package/lib/test/unit/parser_spec.js +35 -8
- package/lib/test/unit/pdf_find_controller_spec.js +230 -0
- package/lib/test/unit/pdf_find_utils_spec.js +63 -0
- package/lib/test/unit/pdf_history_spec.js +21 -9
- package/lib/test/unit/primitives_spec.js +24 -4
- package/lib/test/unit/stream_spec.js +12 -4
- package/lib/test/unit/test_utils.js +90 -27
- package/lib/test/unit/testreporter.js +21 -3
- package/lib/test/unit/type1_parser_spec.js +8 -6
- package/lib/test/unit/ui_utils_spec.js +452 -14
- package/lib/test/unit/unicode_spec.js +14 -11
- package/lib/test/unit/util_spec.js +131 -9
- package/lib/web/annotation_layer_builder.js +39 -22
- package/lib/web/app.js +1240 -582
- package/lib/web/app_options.js +71 -41
- package/lib/web/base_viewer.js +508 -179
- package/lib/web/chromecom.js +261 -117
- package/lib/web/debugger.js +166 -22
- package/lib/web/download_manager.js +31 -13
- package/lib/web/firefox_print_service.js +17 -9
- package/lib/web/firefoxcom.js +283 -79
- package/lib/web/genericcom.js +89 -30
- package/lib/web/genericl10n.js +142 -30
- package/lib/web/grab_to_pan.js +26 -4
- package/lib/web/interfaces.js +170 -47
- package/lib/web/overlay_manager.js +235 -85
- package/lib/web/password_prompt.js +21 -13
- package/lib/web/pdf_attachment_viewer.js +38 -18
- package/lib/web/pdf_cursor_tools.js +39 -16
- package/lib/web/pdf_document_properties.js +80 -30
- package/lib/web/pdf_find_bar.js +84 -40
- package/lib/web/pdf_find_controller.js +495 -184
- package/lib/web/pdf_find_utils.js +111 -0
- package/lib/web/pdf_history.js +190 -53
- package/lib/web/pdf_link_service.js +137 -76
- package/lib/web/pdf_outline_viewer.js +73 -22
- package/lib/web/pdf_page_view.js +196 -63
- package/lib/web/pdf_presentation_mode.js +99 -34
- package/lib/web/pdf_print_service.js +57 -11
- package/lib/web/pdf_rendering_queue.js +27 -5
- package/lib/web/pdf_sidebar.js +120 -67
- package/lib/web/pdf_sidebar_resizer.js +42 -16
- package/lib/web/pdf_single_page_viewer.js +74 -66
- package/lib/web/pdf_thumbnail_view.js +103 -32
- package/lib/web/pdf_thumbnail_viewer.js +64 -24
- package/lib/web/pdf_viewer.component.js +112 -32
- package/lib/web/pdf_viewer.js +91 -52
- package/lib/web/preferences.js +275 -80
- package/lib/web/secondary_toolbar.js +165 -40
- package/lib/web/text_layer_builder.js +162 -65
- package/lib/web/toolbar.js +78 -43
- package/lib/web/ui_utils.js +462 -136
- package/lib/web/view_history.js +215 -67
- package/lib/web/viewer_compatibility.js +4 -13
- package/package.json +5 -4
- package/web/pdf_viewer.css +58 -1
- package/web/pdf_viewer.js +6346 -3919
- package/web/pdf_viewer.js.map +1 -1
- package/lib/test/unit/fonts_spec.js +0 -81
- package/lib/web/dom_events.js +0 -137
package/lib/core/worker.js
CHANGED
@@ -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
|
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,39 +19,53 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
-
exports.WorkerMessageHandler = exports.WorkerTask =
|
27
|
+
exports.WorkerMessageHandler = exports.WorkerTask = void 0;
|
28
28
|
|
29
|
-
var
|
29
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
30
30
|
|
31
|
-
var
|
31
|
+
var _util = require("../shared/util");
|
32
32
|
|
33
|
-
var
|
33
|
+
var _pdf_manager = require("./pdf_manager");
|
34
34
|
|
35
|
-
var
|
35
|
+
var _is_node = _interopRequireDefault(require("../shared/is_node"));
|
36
36
|
|
37
|
-
var
|
37
|
+
var _message_handler = require("../shared/message_handler");
|
38
38
|
|
39
|
-
var
|
40
|
-
|
41
|
-
var _primitives = require('./primitives');
|
39
|
+
var _primitives = require("./primitives");
|
42
40
|
|
43
41
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
44
42
|
|
43
|
+
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
|
+
|
45
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
46
|
+
|
47
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
48
|
+
|
49
|
+
function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
50
|
+
|
51
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
52
|
+
|
53
|
+
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); } }
|
54
|
+
|
55
|
+
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); }); }; }
|
56
|
+
|
45
57
|
var WorkerTask = function WorkerTaskClosure() {
|
46
58
|
function WorkerTask(name) {
|
47
59
|
this.name = name;
|
48
60
|
this.terminated = false;
|
49
61
|
this._capability = (0, _util.createPromiseCapability)();
|
50
62
|
}
|
63
|
+
|
51
64
|
WorkerTask.prototype = {
|
52
65
|
get finished() {
|
53
66
|
return this._capability.promise;
|
54
67
|
},
|
68
|
+
|
55
69
|
finish: function finish() {
|
56
70
|
this._capability.resolve();
|
57
71
|
},
|
@@ -66,7 +80,9 @@ var WorkerTask = function WorkerTaskClosure() {
|
|
66
80
|
};
|
67
81
|
return WorkerTask;
|
68
82
|
}();
|
69
|
-
|
83
|
+
|
84
|
+
exports.WorkerTask = WorkerTask;
|
85
|
+
|
70
86
|
var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
71
87
|
function PDFWorkerStream(msgHandler) {
|
72
88
|
this._msgHandler = msgHandler;
|
@@ -74,6 +90,7 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
74
90
|
this._fullRequestReader = null;
|
75
91
|
this._rangeRequestReaders = [];
|
76
92
|
}
|
93
|
+
|
77
94
|
PDFWorkerStream.prototype = {
|
78
95
|
getFullReader: function getFullReader() {
|
79
96
|
(0, _util.assert)(!this._fullRequestReader);
|
@@ -82,19 +99,24 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
82
99
|
},
|
83
100
|
getRangeReader: function getRangeReader(begin, end) {
|
84
101
|
var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);
|
102
|
+
|
85
103
|
this._rangeRequestReaders.push(reader);
|
104
|
+
|
86
105
|
return reader;
|
87
106
|
},
|
88
107
|
cancelAllRequests: function cancelAllRequests(reason) {
|
89
108
|
if (this._fullRequestReader) {
|
90
109
|
this._fullRequestReader.cancel(reason);
|
91
110
|
}
|
111
|
+
|
92
112
|
var readers = this._rangeRequestReaders.slice(0);
|
113
|
+
|
93
114
|
readers.forEach(function (reader) {
|
94
115
|
reader.cancel(reason);
|
95
116
|
});
|
96
117
|
}
|
97
118
|
};
|
119
|
+
|
98
120
|
function PDFWorkerStreamReader(msgHandler) {
|
99
121
|
var _this = this;
|
100
122
|
|
@@ -102,7 +124,9 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
102
124
|
this._contentLength = null;
|
103
125
|
this._isRangeSupported = false;
|
104
126
|
this._isStreamingSupported = false;
|
127
|
+
|
105
128
|
var readableStream = this._msgHandler.sendWithStream('GetReader');
|
129
|
+
|
106
130
|
this._reader = readableStream.getReader();
|
107
131
|
this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) {
|
108
132
|
_this._isStreamingSupported = data.isStreamingSupported;
|
@@ -110,19 +134,24 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
110
134
|
_this._contentLength = data.contentLength;
|
111
135
|
});
|
112
136
|
}
|
137
|
+
|
113
138
|
PDFWorkerStreamReader.prototype = {
|
114
139
|
get headersReady() {
|
115
140
|
return this._headersReady;
|
116
141
|
},
|
142
|
+
|
117
143
|
get contentLength() {
|
118
144
|
return this._contentLength;
|
119
145
|
},
|
146
|
+
|
120
147
|
get isStreamingSupported() {
|
121
148
|
return this._isStreamingSupported;
|
122
149
|
},
|
150
|
+
|
123
151
|
get isRangeSupported() {
|
124
152
|
return this._isRangeSupported;
|
125
153
|
},
|
154
|
+
|
126
155
|
read: function read() {
|
127
156
|
return this._reader.read().then(function (_ref) {
|
128
157
|
var value = _ref.value,
|
@@ -134,6 +163,7 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
134
163
|
done: true
|
135
164
|
};
|
136
165
|
}
|
166
|
+
|
137
167
|
return {
|
138
168
|
value: value.buffer,
|
139
169
|
done: false
|
@@ -144,19 +174,24 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
144
174
|
this._reader.cancel(reason);
|
145
175
|
}
|
146
176
|
};
|
177
|
+
|
147
178
|
function PDFWorkerStreamRangeReader(begin, end, msgHandler) {
|
148
179
|
this._msgHandler = msgHandler;
|
149
180
|
this.onProgress = null;
|
181
|
+
|
150
182
|
var readableStream = this._msgHandler.sendWithStream('GetRangeReader', {
|
151
183
|
begin: begin,
|
152
184
|
end: end
|
153
185
|
});
|
186
|
+
|
154
187
|
this._reader = readableStream.getReader();
|
155
188
|
}
|
189
|
+
|
156
190
|
PDFWorkerStreamRangeReader.prototype = {
|
157
191
|
get isStreamingSupported() {
|
158
192
|
return false;
|
159
193
|
},
|
194
|
+
|
160
195
|
read: function read() {
|
161
196
|
return this._reader.read().then(function (_ref2) {
|
162
197
|
var value = _ref2.value,
|
@@ -168,6 +203,7 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
168
203
|
done: true
|
169
204
|
};
|
170
205
|
}
|
206
|
+
|
171
207
|
return {
|
172
208
|
value: value.buffer,
|
173
209
|
done: false
|
@@ -180,6 +216,7 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
180
216
|
};
|
181
217
|
return PDFWorkerStream;
|
182
218
|
}();
|
219
|
+
|
183
220
|
var WorkerMessageHandler = {
|
184
221
|
setup: function setup(handler, port) {
|
185
222
|
var testMessageProcessed = false;
|
@@ -187,24 +224,30 @@ var WorkerMessageHandler = {
|
|
187
224
|
if (testMessageProcessed) {
|
188
225
|
return;
|
189
226
|
}
|
227
|
+
|
190
228
|
testMessageProcessed = true;
|
229
|
+
|
191
230
|
if (!(data instanceof Uint8Array)) {
|
192
|
-
handler.send('test',
|
231
|
+
handler.send('test', false);
|
193
232
|
return;
|
194
233
|
}
|
234
|
+
|
195
235
|
var supportTransfers = data[0] === 255;
|
196
236
|
handler.postMessageTransfers = supportTransfers;
|
197
237
|
var xhr = new XMLHttpRequest();
|
198
238
|
var responseExists = 'response' in xhr;
|
239
|
+
|
199
240
|
try {
|
200
241
|
xhr.responseType;
|
201
242
|
} catch (e) {
|
202
243
|
responseExists = false;
|
203
244
|
}
|
245
|
+
|
204
246
|
if (!responseExists) {
|
205
247
|
handler.send('test', false);
|
206
248
|
return;
|
207
249
|
}
|
250
|
+
|
208
251
|
handler.send('test', {
|
209
252
|
supportTypedArray: true,
|
210
253
|
supportTransfers: supportTransfers
|
@@ -223,56 +266,97 @@ var WorkerMessageHandler = {
|
|
223
266
|
var cancelXHRs = null;
|
224
267
|
var WorkerTasks = [];
|
225
268
|
var apiVersion = docParams.apiVersion;
|
226
|
-
var workerVersion = '2.
|
227
|
-
|
228
|
-
|
269
|
+
var workerVersion = '2.1.266';
|
270
|
+
|
271
|
+
if (apiVersion !== workerVersion) {
|
272
|
+
throw new Error("The API version \"".concat(apiVersion, "\" does not match ") + "the Worker version \"".concat(workerVersion, "\"."));
|
229
273
|
}
|
274
|
+
|
230
275
|
var docId = docParams.docId;
|
231
276
|
var docBaseUrl = docParams.docBaseUrl;
|
232
277
|
var workerHandlerName = docParams.docId + '_worker';
|
233
|
-
var handler = new
|
278
|
+
var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);
|
234
279
|
handler.postMessageTransfers = docParams.postMessageTransfers;
|
280
|
+
|
235
281
|
function ensureNotTerminated() {
|
236
282
|
if (terminated) {
|
237
283
|
throw new Error('Worker was terminated');
|
238
284
|
}
|
239
285
|
}
|
286
|
+
|
240
287
|
function startWorkerTask(task) {
|
241
288
|
WorkerTasks.push(task);
|
242
289
|
}
|
290
|
+
|
243
291
|
function finishWorkerTask(task) {
|
244
292
|
task.finish();
|
245
293
|
var i = WorkerTasks.indexOf(task);
|
246
294
|
WorkerTasks.splice(i, 1);
|
247
295
|
}
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
296
|
+
|
297
|
+
function loadDocument(_x) {
|
298
|
+
return _loadDocument.apply(this, arguments);
|
299
|
+
}
|
300
|
+
|
301
|
+
function _loadDocument() {
|
302
|
+
_loadDocument = _asyncToGenerator(
|
303
|
+
/*#__PURE__*/
|
304
|
+
_regenerator.default.mark(function _callee(recoveryMode) {
|
305
|
+
var _ref6, _ref7, numPages, fingerprint;
|
306
|
+
|
307
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
308
|
+
while (1) {
|
309
|
+
switch (_context.prev = _context.next) {
|
310
|
+
case 0:
|
311
|
+
_context.next = 2;
|
312
|
+
return pdfManager.ensureDoc('checkHeader');
|
313
|
+
|
314
|
+
case 2:
|
315
|
+
_context.next = 4;
|
316
|
+
return pdfManager.ensureDoc('parseStartXRef');
|
317
|
+
|
318
|
+
case 4:
|
319
|
+
_context.next = 6;
|
320
|
+
return pdfManager.ensureDoc('parse', [recoveryMode]);
|
321
|
+
|
322
|
+
case 6:
|
323
|
+
if (recoveryMode) {
|
324
|
+
_context.next = 9;
|
325
|
+
break;
|
326
|
+
}
|
327
|
+
|
328
|
+
_context.next = 9;
|
329
|
+
return pdfManager.ensureDoc('checkFirstPage');
|
330
|
+
|
331
|
+
case 9:
|
332
|
+
_context.next = 11;
|
333
|
+
return Promise.all([pdfManager.ensureDoc('numPages'), pdfManager.ensureDoc('fingerprint')]);
|
334
|
+
|
335
|
+
case 11:
|
336
|
+
_ref6 = _context.sent;
|
337
|
+
_ref7 = _slicedToArray(_ref6, 2);
|
338
|
+
numPages = _ref7[0];
|
339
|
+
fingerprint = _ref7[1];
|
340
|
+
return _context.abrupt("return", {
|
341
|
+
numPages: numPages,
|
342
|
+
fingerprint: fingerprint
|
343
|
+
});
|
344
|
+
|
345
|
+
case 16:
|
346
|
+
case "end":
|
347
|
+
return _context.stop();
|
348
|
+
}
|
349
|
+
}
|
350
|
+
}, _callee, this);
|
351
|
+
}));
|
352
|
+
return _loadDocument.apply(this, arguments);
|
271
353
|
}
|
354
|
+
|
272
355
|
function getPdfManager(data, evaluatorOptions) {
|
273
356
|
var pdfManagerCapability = (0, _util.createPromiseCapability)();
|
274
357
|
var pdfManager;
|
275
358
|
var source = data.source;
|
359
|
+
|
276
360
|
if (source.data) {
|
277
361
|
try {
|
278
362
|
pdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);
|
@@ -280,33 +364,39 @@ var WorkerMessageHandler = {
|
|
280
364
|
} catch (ex) {
|
281
365
|
pdfManagerCapability.reject(ex);
|
282
366
|
}
|
367
|
+
|
283
368
|
return pdfManagerCapability.promise;
|
284
369
|
}
|
370
|
+
|
285
371
|
var pdfStream,
|
286
372
|
cachedChunks = [];
|
373
|
+
|
287
374
|
try {
|
288
375
|
pdfStream = new PDFWorkerStream(handler);
|
289
376
|
} catch (ex) {
|
290
377
|
pdfManagerCapability.reject(ex);
|
291
378
|
return pdfManagerCapability.promise;
|
292
379
|
}
|
380
|
+
|
293
381
|
var fullRequest = pdfStream.getFullReader();
|
294
382
|
fullRequest.headersReady.then(function () {
|
295
383
|
if (!fullRequest.isRangeSupported) {
|
296
384
|
return;
|
297
385
|
}
|
386
|
+
|
298
387
|
var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;
|
299
388
|
pdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {
|
300
389
|
msgHandler: handler,
|
301
|
-
url: source.url,
|
302
390
|
password: source.password,
|
303
391
|
length: fullRequest.contentLength,
|
304
392
|
disableAutoFetch: disableAutoFetch,
|
305
393
|
rangeChunkSize: source.rangeChunkSize
|
306
394
|
}, evaluatorOptions, docBaseUrl);
|
395
|
+
|
307
396
|
for (var i = 0; i < cachedChunks.length; i++) {
|
308
397
|
pdfManager.sendProgressiveData(cachedChunks[i]);
|
309
398
|
}
|
399
|
+
|
310
400
|
cachedChunks = [];
|
311
401
|
pdfManagerCapability.resolve(pdfManager);
|
312
402
|
cancelXHRs = null;
|
@@ -315,66 +405,85 @@ var WorkerMessageHandler = {
|
|
315
405
|
cancelXHRs = null;
|
316
406
|
});
|
317
407
|
var loaded = 0;
|
408
|
+
|
318
409
|
var flushChunks = function flushChunks() {
|
319
410
|
var pdfFile = (0, _util.arraysToBytes)(cachedChunks);
|
411
|
+
|
320
412
|
if (source.length && pdfFile.length !== source.length) {
|
321
413
|
(0, _util.warn)('reported HTTP length is different from actual');
|
322
414
|
}
|
415
|
+
|
323
416
|
try {
|
324
417
|
pdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);
|
325
418
|
pdfManagerCapability.resolve(pdfManager);
|
326
419
|
} catch (ex) {
|
327
420
|
pdfManagerCapability.reject(ex);
|
328
421
|
}
|
422
|
+
|
329
423
|
cachedChunks = [];
|
330
424
|
};
|
425
|
+
|
331
426
|
var readPromise = new Promise(function (resolve, reject) {
|
332
427
|
var readChunk = function readChunk(chunk) {
|
333
428
|
try {
|
334
429
|
ensureNotTerminated();
|
430
|
+
|
335
431
|
if (chunk.done) {
|
336
432
|
if (!pdfManager) {
|
337
433
|
flushChunks();
|
338
434
|
}
|
435
|
+
|
339
436
|
cancelXHRs = null;
|
340
437
|
return;
|
341
438
|
}
|
439
|
+
|
342
440
|
var data = chunk.value;
|
343
441
|
loaded += (0, _util.arrayByteLength)(data);
|
442
|
+
|
344
443
|
if (!fullRequest.isStreamingSupported) {
|
345
444
|
handler.send('DocProgress', {
|
346
445
|
loaded: loaded,
|
347
446
|
total: Math.max(loaded, fullRequest.contentLength || 0)
|
348
447
|
});
|
349
448
|
}
|
449
|
+
|
350
450
|
if (pdfManager) {
|
351
451
|
pdfManager.sendProgressiveData(data);
|
352
452
|
} else {
|
353
453
|
cachedChunks.push(data);
|
354
454
|
}
|
455
|
+
|
355
456
|
fullRequest.read().then(readChunk, reject);
|
356
457
|
} catch (e) {
|
357
458
|
reject(e);
|
358
459
|
}
|
359
460
|
};
|
461
|
+
|
360
462
|
fullRequest.read().then(readChunk, reject);
|
361
463
|
});
|
362
464
|
readPromise.catch(function (e) {
|
363
465
|
pdfManagerCapability.reject(e);
|
364
466
|
cancelXHRs = null;
|
365
467
|
});
|
468
|
+
|
366
469
|
cancelXHRs = function cancelXHRs() {
|
367
470
|
pdfStream.cancelAllRequests('abort');
|
368
471
|
};
|
472
|
+
|
369
473
|
return pdfManagerCapability.promise;
|
370
474
|
}
|
475
|
+
|
371
476
|
function setupDoc(data) {
|
372
477
|
function onSuccess(doc) {
|
373
478
|
ensureNotTerminated();
|
374
|
-
handler.send('GetDoc', {
|
479
|
+
handler.send('GetDoc', {
|
480
|
+
pdfInfo: doc
|
481
|
+
});
|
375
482
|
}
|
483
|
+
|
376
484
|
function onFailure(e) {
|
377
485
|
ensureNotTerminated();
|
486
|
+
|
378
487
|
if (e instanceof _util.PasswordException) {
|
379
488
|
var task = new WorkerTask('PasswordException: response ' + e.code);
|
380
489
|
startWorkerTask(task);
|
@@ -382,9 +491,9 @@ var WorkerMessageHandler = {
|
|
382
491
|
finishWorkerTask(task);
|
383
492
|
pdfManager.updatePassword(data.password);
|
384
493
|
pdfManagerReady();
|
385
|
-
}).catch(function (
|
494
|
+
}).catch(function (boundException) {
|
386
495
|
finishWorkerTask(task);
|
387
|
-
handler.send('PasswordException',
|
496
|
+
handler.send('PasswordException', boundException);
|
388
497
|
}.bind(null, e));
|
389
498
|
} else if (e instanceof _util.InvalidPDFException) {
|
390
499
|
handler.send('InvalidPDF', e);
|
@@ -396,14 +505,17 @@ var WorkerMessageHandler = {
|
|
396
505
|
handler.send('UnknownError', new _util.UnknownErrorException(e.message, e.toString()));
|
397
506
|
}
|
398
507
|
}
|
508
|
+
|
399
509
|
function pdfManagerReady() {
|
400
510
|
ensureNotTerminated();
|
401
511
|
loadDocument(false).then(onSuccess, function loadFailure(ex) {
|
402
512
|
ensureNotTerminated();
|
513
|
+
|
403
514
|
if (!(ex instanceof _util.XRefParseException)) {
|
404
515
|
onFailure(ex);
|
405
516
|
return;
|
406
517
|
}
|
518
|
+
|
407
519
|
pdfManager.requestLoadedStream();
|
408
520
|
pdfManager.onLoadedStream().then(function () {
|
409
521
|
ensureNotTerminated();
|
@@ -411,6 +523,7 @@ var WorkerMessageHandler = {
|
|
411
523
|
});
|
412
524
|
}, onFailure);
|
413
525
|
}
|
526
|
+
|
414
527
|
ensureNotTerminated();
|
415
528
|
var evaluatorOptions = {
|
416
529
|
forceDataSchema: data.disableCreateObjectURL,
|
@@ -425,25 +538,30 @@ var WorkerMessageHandler = {
|
|
425
538
|
newPdfManager.terminate();
|
426
539
|
throw new Error('Worker was terminated');
|
427
540
|
}
|
541
|
+
|
428
542
|
pdfManager = newPdfManager;
|
429
|
-
handler.send('PDFManagerReady', null);
|
430
543
|
pdfManager.onLoadedStream().then(function (stream) {
|
431
|
-
handler.send('DataLoaded', {
|
544
|
+
handler.send('DataLoaded', {
|
545
|
+
length: stream.bytes.byteLength
|
546
|
+
});
|
432
547
|
});
|
433
548
|
}).then(pdfManagerReady, onFailure);
|
434
549
|
}
|
550
|
+
|
435
551
|
handler.on('GetPage', function wphSetupGetPage(data) {
|
436
552
|
return pdfManager.getPage(data.pageIndex).then(function (page) {
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
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];
|
559
|
+
|
442
560
|
return {
|
443
|
-
rotate:
|
444
|
-
ref:
|
445
|
-
userUnit:
|
446
|
-
view:
|
561
|
+
rotate: rotate,
|
562
|
+
ref: ref,
|
563
|
+
userUnit: userUnit,
|
564
|
+
view: view
|
447
565
|
};
|
448
566
|
});
|
449
567
|
});
|
@@ -465,6 +583,9 @@ var WorkerMessageHandler = {
|
|
465
583
|
handler.on('GetPageMode', function wphSetupGetPageMode(data) {
|
466
584
|
return pdfManager.ensureCatalog('pageMode');
|
467
585
|
});
|
586
|
+
handler.on('getOpenActionDestination', function (data) {
|
587
|
+
return pdfManager.ensureCatalog('openActionDestination');
|
588
|
+
});
|
468
589
|
handler.on('GetAttachments', function wphSetupGetAttachments(data) {
|
469
590
|
return pdfManager.ensureCatalog('attachments');
|
470
591
|
});
|
@@ -474,6 +595,9 @@ var WorkerMessageHandler = {
|
|
474
595
|
handler.on('GetOutline', function wphSetupGetOutline(data) {
|
475
596
|
return pdfManager.ensureCatalog('documentOutline');
|
476
597
|
});
|
598
|
+
handler.on('GetPermissions', function (data) {
|
599
|
+
return pdfManager.ensureCatalog('permissions');
|
600
|
+
});
|
477
601
|
handler.on('GetMetadata', function wphSetupGetMetadata(data) {
|
478
602
|
return Promise.all([pdfManager.ensureDoc('documentInfo'), pdfManager.ensureCatalog('metadata')]);
|
479
603
|
});
|
@@ -486,9 +610,11 @@ var WorkerMessageHandler = {
|
|
486
610
|
handler.on('GetStats', function wphSetupGetStats(data) {
|
487
611
|
return pdfManager.pdfDocument.xref.stats;
|
488
612
|
});
|
489
|
-
handler.on('GetAnnotations', function
|
490
|
-
|
491
|
-
|
613
|
+
handler.on('GetAnnotations', function (_ref5) {
|
614
|
+
var pageIndex = _ref5.pageIndex,
|
615
|
+
intent = _ref5.intent;
|
616
|
+
return pdfManager.getPage(pageIndex).then(function (page) {
|
617
|
+
return page.getAnnotationsData(intent);
|
492
618
|
});
|
493
619
|
});
|
494
620
|
handler.on('RenderPageRequest', function wphSetupRenderPage(data) {
|
@@ -508,28 +634,34 @@ var WorkerMessageHandler = {
|
|
508
634
|
(0, _util.info)('page=' + pageNum + ' - getOperatorList: time=' + (Date.now() - start) + 'ms, len=' + operatorList.totalLength);
|
509
635
|
}, function (e) {
|
510
636
|
finishWorkerTask(task);
|
637
|
+
|
511
638
|
if (task.terminated) {
|
512
639
|
return;
|
513
640
|
}
|
514
|
-
|
641
|
+
|
642
|
+
handler.send('UnsupportedFeature', {
|
643
|
+
featureId: _util.UNSUPPORTED_FEATURES.unknown
|
644
|
+
});
|
515
645
|
var minimumStackMessage = 'worker.js: while trying to getPage() and getOperatorList()';
|
516
646
|
var wrappedException;
|
647
|
+
|
517
648
|
if (typeof e === 'string') {
|
518
649
|
wrappedException = {
|
519
650
|
message: e,
|
520
651
|
stack: minimumStackMessage
|
521
652
|
};
|
522
|
-
} else if (
|
653
|
+
} else if (_typeof(e) === 'object') {
|
523
654
|
wrappedException = {
|
524
655
|
message: e.message || e.toString(),
|
525
656
|
stack: e.stack || minimumStackMessage
|
526
657
|
};
|
527
658
|
} else {
|
528
659
|
wrappedException = {
|
529
|
-
message: 'Unknown exception type: ' +
|
660
|
+
message: 'Unknown exception type: ' + _typeof(e),
|
530
661
|
stack: minimumStackMessage
|
531
662
|
};
|
532
663
|
}
|
664
|
+
|
533
665
|
handler.send('PageError', {
|
534
666
|
pageNum: pageNum,
|
535
667
|
error: wrappedException,
|
@@ -540,8 +672,11 @@ var WorkerMessageHandler = {
|
|
540
672
|
}, this);
|
541
673
|
handler.on('GetTextContent', function wphExtractText(data, sink) {
|
542
674
|
var pageIndex = data.pageIndex;
|
675
|
+
|
543
676
|
sink.onPull = function (desiredSize) {};
|
677
|
+
|
544
678
|
sink.onCancel = function (reason) {};
|
679
|
+
|
545
680
|
pdfManager.getPage(pageIndex).then(function (page) {
|
546
681
|
var task = new WorkerTask('GetTextContent: page ' + pageIndex);
|
547
682
|
startWorkerTask(task);
|
@@ -559,26 +694,34 @@ var WorkerMessageHandler = {
|
|
559
694
|
sink.close();
|
560
695
|
}, function (reason) {
|
561
696
|
finishWorkerTask(task);
|
697
|
+
|
562
698
|
if (task.terminated) {
|
563
699
|
return;
|
564
700
|
}
|
701
|
+
|
565
702
|
sink.error(reason);
|
566
703
|
throw reason;
|
567
704
|
});
|
568
705
|
});
|
569
706
|
});
|
707
|
+
handler.on('FontFallback', function (data) {
|
708
|
+
return pdfManager.fontFallback(data.id, handler);
|
709
|
+
});
|
570
710
|
handler.on('Cleanup', function wphCleanup(data) {
|
571
711
|
return pdfManager.cleanup();
|
572
712
|
});
|
573
713
|
handler.on('Terminate', function wphTerminate(data) {
|
574
714
|
terminated = true;
|
715
|
+
|
575
716
|
if (pdfManager) {
|
576
717
|
pdfManager.terminate();
|
577
718
|
pdfManager = null;
|
578
719
|
}
|
720
|
+
|
579
721
|
if (cancelXHRs) {
|
580
722
|
cancelXHRs();
|
581
723
|
}
|
724
|
+
|
582
725
|
var waitOn = [];
|
583
726
|
WorkerTasks.forEach(function (task) {
|
584
727
|
waitOn.push(task.finished);
|
@@ -596,16 +739,17 @@ var WorkerMessageHandler = {
|
|
596
739
|
return workerHandlerName;
|
597
740
|
},
|
598
741
|
initializeFromPort: function initializeFromPort(port) {
|
599
|
-
var handler = new
|
742
|
+
var handler = new _message_handler.MessageHandler('worker', 'main', port);
|
600
743
|
WorkerMessageHandler.setup(handler, port);
|
601
744
|
handler.send('ready', null);
|
602
745
|
}
|
603
746
|
};
|
747
|
+
exports.WorkerMessageHandler = WorkerMessageHandler;
|
748
|
+
|
604
749
|
function isMessagePort(maybePort) {
|
605
750
|
return typeof maybePort.postMessage === 'function' && 'onmessage' in maybePort;
|
606
751
|
}
|
607
|
-
|
752
|
+
|
753
|
+
if (typeof window === 'undefined' && !(0, _is_node.default)() && typeof self !== 'undefined' && isMessagePort(self)) {
|
608
754
|
WorkerMessageHandler.initializeFromPort(self);
|
609
|
-
}
|
610
|
-
exports.WorkerTask = WorkerTask;
|
611
|
-
exports.WorkerMessageHandler = WorkerMessageHandler;
|
755
|
+
}
|