pdfjs-dist 2.3.200 → 2.4.456
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/README.md +4 -0
- package/bower.json +1 -1
- package/build/pdf.js +6499 -17971
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +22 -1
- package/build/pdf.worker.entry.js +5 -3
- package/build/pdf.worker.js +19303 -29896
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +22 -1
- package/es5/build/pdf.js +25473 -0
- package/es5/build/pdf.js.map +1 -0
- package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
- package/es5/build/pdf.worker.js +57878 -0
- package/es5/build/pdf.worker.js.map +1 -0
- package/es5/web/images/annotation-check.svg +11 -0
- package/es5/web/images/annotation-comment.svg +16 -0
- package/es5/web/images/annotation-help.svg +26 -0
- package/es5/web/images/annotation-insert.svg +10 -0
- package/es5/web/images/annotation-key.svg +11 -0
- package/es5/web/images/annotation-newparagraph.svg +11 -0
- package/es5/web/images/annotation-noicon.svg +7 -0
- package/es5/web/images/annotation-note.svg +42 -0
- package/es5/web/images/annotation-paragraph.svg +16 -0
- package/es5/web/images/loading-icon.gif +0 -0
- package/es5/web/images/shadow.png +0 -0
- package/es5/web/images/texture.png +0 -0
- package/es5/web/pdf_viewer.css +407 -0
- package/es5/web/pdf_viewer.js +7757 -0
- package/es5/web/pdf_viewer.js.map +1 -0
- package/image_decoders/pdf.image_decoders.js +1333 -4839
- package/image_decoders/pdf.image_decoders.js.map +1 -1
- package/image_decoders/pdf.image_decoders.min.js +22 -1
- package/lib/README.md +7 -0
- package/lib/core/annotation.js +683 -1066
- package/lib/core/arithmetic_decoder.js +81 -97
- package/lib/core/bidi.js +54 -46
- package/lib/core/ccitt.js +88 -81
- package/lib/core/ccitt_stream.js +15 -14
- package/lib/core/cff_parser.js +196 -193
- package/lib/core/charsets.js +4 -4
- package/lib/core/chunked_stream.js +441 -569
- package/lib/core/cmap.js +220 -279
- package/lib/core/colorspace.js +699 -863
- package/lib/core/core_utils.js +59 -80
- package/lib/core/crypto.js +379 -437
- package/lib/core/document.js +564 -673
- package/lib/core/encodings.js +15 -15
- package/lib/core/evaluator.js +983 -889
- package/lib/core/font_renderer.js +128 -171
- package/lib/core/fonts.js +451 -400
- package/lib/core/function.js +289 -285
- package/lib/core/glyphlist.js +4527 -4527
- package/lib/core/image.js +138 -117
- package/lib/core/image_utils.js +46 -63
- package/lib/core/jbig2.js +324 -332
- package/lib/core/jbig2_stream.js +18 -17
- package/lib/core/jpeg_stream.js +133 -24
- package/lib/core/jpg.js +238 -210
- package/lib/core/jpx.js +158 -157
- package/lib/core/jpx_stream.js +28 -28
- package/lib/core/metrics.js +2928 -2928
- package/lib/core/murmurhash3.js +87 -102
- package/lib/core/obj.js +1111 -1302
- package/lib/core/operator_list.js +55 -42
- package/lib/core/parser.js +956 -987
- package/lib/core/pattern.js +69 -69
- package/lib/core/pdf_manager.js +149 -316
- package/lib/core/primitives.js +45 -77
- package/lib/core/ps_parser.js +175 -214
- package/lib/core/standard_fonts.js +237 -236
- package/lib/core/stream.js +83 -77
- package/lib/core/type1_parser.js +78 -68
- package/lib/core/unicode.js +1654 -1654
- package/lib/core/worker.js +148 -196
- package/lib/core/worker_stream.js +101 -210
- package/lib/display/annotation_layer.js +733 -1155
- package/lib/display/api.js +1539 -1928
- package/lib/display/api_compatibility.js +10 -8
- package/lib/display/canvas.js +159 -158
- package/lib/display/content_disposition.js +36 -55
- package/lib/display/display_utils.js +298 -551
- package/lib/display/fetch_stream.js +181 -305
- package/lib/display/font_loader.js +273 -416
- package/lib/display/metadata.js +86 -98
- package/lib/display/network.js +376 -511
- package/lib/display/network_utils.js +20 -19
- package/lib/display/node_stream.js +276 -460
- package/lib/display/pattern_helper.js +76 -44
- package/lib/display/svg.js +1137 -1405
- package/lib/display/text_layer.js +75 -82
- package/lib/display/transport_stream.js +236 -374
- package/lib/display/webgl.js +70 -83
- package/lib/display/worker_options.js +3 -3
- package/lib/display/xml_parser.js +303 -392
- package/lib/examples/node/domstubs.js +37 -37
- package/lib/pdf.js +22 -21
- package/lib/pdf.worker.js +5 -5
- package/lib/shared/compatibility.js +2 -251
- package/lib/shared/is_node.js +7 -6
- package/lib/shared/message_handler.js +222 -194
- package/lib/shared/util.js +269 -405
- package/lib/test/unit/annotation_spec.js +1089 -1014
- package/lib/test/unit/api_spec.js +617 -544
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +63 -62
- package/lib/test/unit/clitests_helper.js +7 -9
- package/lib/test/unit/cmap_spec.js +84 -86
- package/lib/test/unit/colorspace_spec.js +154 -154
- package/lib/test/unit/core_utils_spec.js +125 -105
- package/lib/test/unit/crypto_spec.js +181 -181
- package/lib/test/unit/custom_spec.js +22 -24
- package/lib/test/unit/display_svg_spec.js +35 -36
- package/lib/test/unit/display_utils_spec.js +139 -149
- package/lib/test/unit/document_spec.js +16 -16
- package/lib/test/unit/encodings_spec.js +12 -34
- package/lib/test/unit/evaluator_spec.js +81 -95
- package/lib/test/unit/fetch_stream_spec.js +30 -30
- package/lib/test/unit/function_spec.js +206 -204
- package/lib/test/unit/jasmine-boot.js +48 -32
- package/lib/test/unit/message_handler_spec.js +172 -162
- package/lib/test/unit/metadata_spec.js +69 -69
- package/lib/test/unit/murmurhash3_spec.js +12 -12
- package/lib/test/unit/network_spec.js +12 -12
- package/lib/test/unit/network_utils_spec.js +152 -152
- package/lib/test/unit/node_stream_spec.js +74 -90
- package/lib/test/unit/parser_spec.js +107 -113
- package/lib/test/unit/pdf_find_controller_spec.js +55 -86
- package/lib/test/unit/pdf_find_utils_spec.js +32 -32
- package/lib/test/unit/pdf_history_spec.js +32 -32
- package/lib/test/unit/primitives_spec.js +117 -115
- package/lib/test/unit/stream_spec.js +16 -14
- package/lib/test/unit/test_utils.js +119 -285
- package/lib/test/unit/testreporter.js +19 -19
- package/lib/test/unit/type1_parser_spec.js +41 -41
- package/lib/test/unit/ui_utils_spec.js +318 -426
- package/lib/test/unit/unicode_spec.js +42 -42
- package/lib/test/unit/util_spec.js +122 -143
- package/lib/web/annotation_layer_builder.js +66 -103
- package/lib/web/app.js +1166 -1196
- package/lib/web/app_options.js +61 -77
- package/lib/web/base_viewer.js +804 -850
- package/lib/web/chromecom.js +164 -249
- package/lib/web/debugger.js +149 -205
- package/lib/web/download_manager.js +38 -57
- package/lib/web/firefox_print_service.js +35 -30
- package/lib/web/firefoxcom.js +175 -374
- package/lib/web/genericcom.js +26 -108
- package/lib/web/genericl10n.js +24 -153
- package/lib/web/grab_to_pan.js +30 -30
- package/lib/web/interfaces.js +80 -258
- package/lib/web/overlay_manager.js +70 -246
- package/lib/web/password_prompt.js +38 -64
- package/lib/web/pdf_attachment_viewer.js +105 -130
- package/lib/web/pdf_cursor_tools.js +75 -102
- package/lib/web/pdf_document_properties.js +227 -376
- package/lib/web/pdf_find_bar.js +137 -171
- package/lib/web/pdf_find_controller.js +492 -549
- package/lib/web/pdf_find_utils.js +13 -13
- package/lib/web/pdf_history.js +395 -406
- package/lib/web/pdf_link_service.js +302 -349
- package/lib/web/pdf_outline_viewer.js +148 -209
- package/lib/web/pdf_page_view.js +449 -507
- package/lib/web/pdf_presentation_mode.js +304 -357
- package/lib/web/pdf_print_service.js +90 -104
- package/lib/web/pdf_rendering_queue.js +87 -108
- package/lib/web/pdf_sidebar.js +264 -304
- package/lib/web/pdf_sidebar_resizer.js +92 -119
- package/lib/web/pdf_single_page_viewer.js +77 -126
- package/lib/web/pdf_thumbnail_view.js +276 -297
- package/lib/web/pdf_thumbnail_viewer.js +186 -206
- package/lib/web/pdf_viewer.component.js +20 -21
- package/lib/web/pdf_viewer.js +55 -115
- package/lib/web/preferences.js +66 -273
- package/lib/web/secondary_toolbar.js +164 -196
- package/lib/web/text_layer_builder.js +284 -317
- package/lib/web/toolbar.js +216 -211
- package/lib/web/ui_utils.js +303 -404
- package/lib/web/view_history.js +49 -222
- package/lib/web/viewer_compatibility.js +7 -5
- package/package.json +2 -9
- package/web/pdf_viewer.css +25 -18
- package/web/pdf_viewer.js +3481 -4764
- package/web/pdf_viewer.js.map +1 -1
- package/webpack.js +14 -5
- package/lib/shared/streams_polyfill.js +0 -43
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 2020 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.
|
@@ -26,35 +26,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
26
26
|
});
|
27
27
|
exports.WorkerMessageHandler = exports.WorkerTask = void 0;
|
28
28
|
|
29
|
-
var
|
29
|
+
var _util = require("../shared/util.js");
|
30
30
|
|
31
|
-
var
|
31
|
+
var _primitives = require("./primitives.js");
|
32
32
|
|
33
|
-
var
|
33
|
+
var _pdf_manager = require("./pdf_manager.js");
|
34
34
|
|
35
|
-
var
|
35
|
+
var _is_node = require("../shared/is_node.js");
|
36
36
|
|
37
|
-
var
|
37
|
+
var _message_handler = require("../shared/message_handler.js");
|
38
38
|
|
39
|
-
var
|
39
|
+
var _worker_stream = require("./worker_stream.js");
|
40
40
|
|
41
|
-
var
|
42
|
-
|
43
|
-
var _core_utils = require("./core_utils");
|
44
|
-
|
45
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
46
|
-
|
47
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
48
|
-
|
49
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
50
|
-
|
51
|
-
function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } 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; }
|
52
|
-
|
53
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
54
|
-
|
55
|
-
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); } }
|
56
|
-
|
57
|
-
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); }); }; }
|
41
|
+
var _core_utils = require("./core_utils.js");
|
58
42
|
|
59
43
|
var WorkerTask = function WorkerTaskClosure() {
|
60
44
|
function WorkerTask(name) {
|
@@ -68,26 +52,29 @@ var WorkerTask = function WorkerTaskClosure() {
|
|
68
52
|
return this._capability.promise;
|
69
53
|
},
|
70
54
|
|
71
|
-
finish
|
55
|
+
finish() {
|
72
56
|
this._capability.resolve();
|
73
57
|
},
|
74
|
-
|
58
|
+
|
59
|
+
terminate() {
|
75
60
|
this.terminated = true;
|
76
61
|
},
|
77
|
-
|
62
|
+
|
63
|
+
ensureNotTerminated() {
|
78
64
|
if (this.terminated) {
|
79
|
-
throw new Error(
|
65
|
+
throw new Error("Worker task was terminated");
|
80
66
|
}
|
81
67
|
}
|
68
|
+
|
82
69
|
};
|
83
70
|
return WorkerTask;
|
84
71
|
}();
|
85
72
|
|
86
73
|
exports.WorkerTask = WorkerTask;
|
87
74
|
var WorkerMessageHandler = {
|
88
|
-
setup
|
75
|
+
setup(handler, port) {
|
89
76
|
var testMessageProcessed = false;
|
90
|
-
handler.on(
|
77
|
+
handler.on("test", function wphSetupTest(data) {
|
91
78
|
if (testMessageProcessed) {
|
92
79
|
return;
|
93
80
|
}
|
@@ -95,45 +82,56 @@ var WorkerMessageHandler = {
|
|
95
82
|
testMessageProcessed = true;
|
96
83
|
|
97
84
|
if (!(data instanceof Uint8Array)) {
|
98
|
-
handler.send(
|
85
|
+
handler.send("test", null);
|
99
86
|
return;
|
100
87
|
}
|
101
88
|
|
102
|
-
|
89
|
+
const supportTransfers = data[0] === 255;
|
103
90
|
handler.postMessageTransfers = supportTransfers;
|
104
|
-
handler.send(
|
105
|
-
supportTransfers
|
91
|
+
handler.send("test", {
|
92
|
+
supportTransfers
|
106
93
|
});
|
107
94
|
});
|
108
|
-
handler.on(
|
95
|
+
handler.on("configure", function wphConfigure(data) {
|
109
96
|
(0, _util.setVerbosityLevel)(data.verbosity);
|
110
97
|
});
|
111
|
-
handler.on(
|
98
|
+
handler.on("GetDocRequest", function wphSetupDoc(data) {
|
112
99
|
return WorkerMessageHandler.createDocumentHandler(data, port);
|
113
100
|
});
|
114
101
|
},
|
115
|
-
|
102
|
+
|
103
|
+
createDocumentHandler(docParams, port) {
|
116
104
|
var pdfManager;
|
117
105
|
var terminated = false;
|
118
106
|
var cancelXHRs = null;
|
119
107
|
var WorkerTasks = [];
|
120
|
-
|
121
|
-
|
122
|
-
|
108
|
+
const verbosity = (0, _util.getVerbosityLevel)();
|
109
|
+
const apiVersion = docParams.apiVersion;
|
110
|
+
const workerVersion = '2.4.456';
|
123
111
|
|
124
112
|
if (apiVersion !== workerVersion) {
|
125
|
-
throw new Error(
|
113
|
+
throw new Error(`The API version "${apiVersion}" does not match ` + `the Worker version "${workerVersion}".`);
|
114
|
+
}
|
115
|
+
|
116
|
+
const enumerableProperties = [];
|
117
|
+
|
118
|
+
for (const property in []) {
|
119
|
+
enumerableProperties.push(property);
|
120
|
+
}
|
121
|
+
|
122
|
+
if (enumerableProperties.length) {
|
123
|
+
throw new Error("The `Array.prototype` contains unexpected enumerable properties: " + enumerableProperties.join(", ") + "; thus breaking e.g. `for...in` iteration of `Array`s.");
|
126
124
|
}
|
127
125
|
|
128
126
|
var docId = docParams.docId;
|
129
127
|
var docBaseUrl = docParams.docBaseUrl;
|
130
|
-
var workerHandlerName = docParams.docId +
|
128
|
+
var workerHandlerName = docParams.docId + "_worker";
|
131
129
|
var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);
|
132
130
|
handler.postMessageTransfers = docParams.postMessageTransfers;
|
133
131
|
|
134
132
|
function ensureNotTerminated() {
|
135
133
|
if (terminated) {
|
136
|
-
throw new Error(
|
134
|
+
throw new Error("Worker was terminated");
|
137
135
|
}
|
138
136
|
}
|
139
137
|
|
@@ -147,62 +145,20 @@ var WorkerMessageHandler = {
|
|
147
145
|
WorkerTasks.splice(i, 1);
|
148
146
|
}
|
149
147
|
|
150
|
-
function loadDocument(
|
151
|
-
|
152
|
-
|
148
|
+
async function loadDocument(recoveryMode) {
|
149
|
+
await pdfManager.ensureDoc("checkHeader");
|
150
|
+
await pdfManager.ensureDoc("parseStartXRef");
|
151
|
+
await pdfManager.ensureDoc("parse", [recoveryMode]);
|
153
152
|
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
case 0:
|
164
|
-
_context.next = 2;
|
165
|
-
return pdfManager.ensureDoc('checkHeader');
|
166
|
-
|
167
|
-
case 2:
|
168
|
-
_context.next = 4;
|
169
|
-
return pdfManager.ensureDoc('parseStartXRef');
|
170
|
-
|
171
|
-
case 4:
|
172
|
-
_context.next = 6;
|
173
|
-
return pdfManager.ensureDoc('parse', [recoveryMode]);
|
174
|
-
|
175
|
-
case 6:
|
176
|
-
if (recoveryMode) {
|
177
|
-
_context.next = 9;
|
178
|
-
break;
|
179
|
-
}
|
180
|
-
|
181
|
-
_context.next = 9;
|
182
|
-
return pdfManager.ensureDoc('checkFirstPage');
|
183
|
-
|
184
|
-
case 9:
|
185
|
-
_context.next = 11;
|
186
|
-
return Promise.all([pdfManager.ensureDoc('numPages'), pdfManager.ensureDoc('fingerprint')]);
|
187
|
-
|
188
|
-
case 11:
|
189
|
-
_ref4 = _context.sent;
|
190
|
-
_ref5 = _slicedToArray(_ref4, 2);
|
191
|
-
numPages = _ref5[0];
|
192
|
-
fingerprint = _ref5[1];
|
193
|
-
return _context.abrupt("return", {
|
194
|
-
numPages: numPages,
|
195
|
-
fingerprint: fingerprint
|
196
|
-
});
|
197
|
-
|
198
|
-
case 16:
|
199
|
-
case "end":
|
200
|
-
return _context.stop();
|
201
|
-
}
|
202
|
-
}
|
203
|
-
}, _callee);
|
204
|
-
}));
|
205
|
-
return _loadDocument.apply(this, arguments);
|
153
|
+
if (!recoveryMode) {
|
154
|
+
await pdfManager.ensureDoc("checkFirstPage");
|
155
|
+
}
|
156
|
+
|
157
|
+
const [numPages, fingerprint] = await Promise.all([pdfManager.ensureDoc("numPages"), pdfManager.ensureDoc("fingerprint")]);
|
158
|
+
return {
|
159
|
+
numPages,
|
160
|
+
fingerprint
|
161
|
+
};
|
206
162
|
}
|
207
163
|
|
208
164
|
function getPdfManager(data, evaluatorOptions) {
|
@@ -242,28 +198,28 @@ var WorkerMessageHandler = {
|
|
242
198
|
msgHandler: handler,
|
243
199
|
password: source.password,
|
244
200
|
length: fullRequest.contentLength,
|
245
|
-
disableAutoFetch
|
201
|
+
disableAutoFetch,
|
246
202
|
rangeChunkSize: source.rangeChunkSize
|
247
203
|
}, evaluatorOptions, docBaseUrl);
|
248
204
|
|
249
|
-
for (
|
205
|
+
for (let i = 0; i < cachedChunks.length; i++) {
|
250
206
|
pdfManager.sendProgressiveData(cachedChunks[i]);
|
251
207
|
}
|
252
208
|
|
253
209
|
cachedChunks = [];
|
254
210
|
pdfManagerCapability.resolve(pdfManager);
|
255
211
|
cancelXHRs = null;
|
256
|
-
})
|
212
|
+
}).catch(function (reason) {
|
257
213
|
pdfManagerCapability.reject(reason);
|
258
214
|
cancelXHRs = null;
|
259
215
|
});
|
260
216
|
var loaded = 0;
|
261
217
|
|
262
|
-
var flushChunks = function
|
218
|
+
var flushChunks = function () {
|
263
219
|
var pdfFile = (0, _util.arraysToBytes)(cachedChunks);
|
264
220
|
|
265
221
|
if (source.length && pdfFile.length !== source.length) {
|
266
|
-
(0, _util.warn)(
|
222
|
+
(0, _util.warn)("reported HTTP length is different from actual");
|
267
223
|
}
|
268
224
|
|
269
225
|
try {
|
@@ -277,7 +233,7 @@ var WorkerMessageHandler = {
|
|
277
233
|
};
|
278
234
|
|
279
235
|
var readPromise = new Promise(function (resolve, reject) {
|
280
|
-
var readChunk = function
|
236
|
+
var readChunk = function (chunk) {
|
281
237
|
try {
|
282
238
|
ensureNotTerminated();
|
283
239
|
|
@@ -294,8 +250,8 @@ var WorkerMessageHandler = {
|
|
294
250
|
loaded += (0, _util.arrayByteLength)(data);
|
295
251
|
|
296
252
|
if (!fullRequest.isStreamingSupported) {
|
297
|
-
handler.send(
|
298
|
-
loaded
|
253
|
+
handler.send("DocProgress", {
|
254
|
+
loaded,
|
299
255
|
total: Math.max(loaded, fullRequest.contentLength || 0)
|
300
256
|
});
|
301
257
|
}
|
@@ -314,12 +270,12 @@ var WorkerMessageHandler = {
|
|
314
270
|
|
315
271
|
fullRequest.read().then(readChunk, reject);
|
316
272
|
});
|
317
|
-
readPromise
|
273
|
+
readPromise.catch(function (e) {
|
318
274
|
pdfManagerCapability.reject(e);
|
319
275
|
cancelXHRs = null;
|
320
276
|
});
|
321
277
|
|
322
|
-
cancelXHRs = function
|
278
|
+
cancelXHRs = function (reason) {
|
323
279
|
pdfStream.cancelAllRequests(reason);
|
324
280
|
};
|
325
281
|
|
@@ -329,33 +285,29 @@ var WorkerMessageHandler = {
|
|
329
285
|
function setupDoc(data) {
|
330
286
|
function onSuccess(doc) {
|
331
287
|
ensureNotTerminated();
|
332
|
-
handler.send(
|
288
|
+
handler.send("GetDoc", {
|
333
289
|
pdfInfo: doc
|
334
290
|
});
|
335
291
|
}
|
336
292
|
|
337
|
-
function onFailure(
|
293
|
+
function onFailure(ex) {
|
338
294
|
ensureNotTerminated();
|
339
295
|
|
340
|
-
if (
|
341
|
-
var task = new WorkerTask(
|
296
|
+
if (ex instanceof _util.PasswordException) {
|
297
|
+
var task = new WorkerTask(`PasswordException: response ${ex.code}`);
|
342
298
|
startWorkerTask(task);
|
343
|
-
handler.sendWithPromise(
|
299
|
+
handler.sendWithPromise("PasswordRequest", ex).then(function (data) {
|
344
300
|
finishWorkerTask(task);
|
345
301
|
pdfManager.updatePassword(data.password);
|
346
302
|
pdfManagerReady();
|
347
|
-
})
|
303
|
+
}).catch(function () {
|
348
304
|
finishWorkerTask(task);
|
349
|
-
handler.send(
|
350
|
-
}
|
351
|
-
} else if (
|
352
|
-
handler.send(
|
353
|
-
} else if (e instanceof _util.MissingPDFException) {
|
354
|
-
handler.send('MissingPDF', e);
|
355
|
-
} else if (e instanceof _util.UnexpectedResponseException) {
|
356
|
-
handler.send('UnexpectedResponse', e);
|
305
|
+
handler.send("DocException", ex);
|
306
|
+
});
|
307
|
+
} else if (ex instanceof _util.InvalidPDFException || ex instanceof _util.MissingPDFException || ex instanceof _util.UnexpectedResponseException || ex instanceof _util.UnknownErrorException) {
|
308
|
+
handler.send("DocException", ex);
|
357
309
|
} else {
|
358
|
-
handler.send(
|
310
|
+
handler.send("DocException", new _util.UnknownErrorException(ex.message, ex.toString()));
|
359
311
|
}
|
360
312
|
}
|
361
313
|
|
@@ -388,112 +340,107 @@ var WorkerMessageHandler = {
|
|
388
340
|
};
|
389
341
|
getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {
|
390
342
|
if (terminated) {
|
391
|
-
newPdfManager.terminate(new _util.AbortException(
|
392
|
-
throw new Error(
|
343
|
+
newPdfManager.terminate(new _util.AbortException("Worker was terminated."));
|
344
|
+
throw new Error("Worker was terminated");
|
393
345
|
}
|
394
346
|
|
395
347
|
pdfManager = newPdfManager;
|
396
348
|
pdfManager.onLoadedStream().then(function (stream) {
|
397
|
-
handler.send(
|
349
|
+
handler.send("DataLoaded", {
|
398
350
|
length: stream.bytes.byteLength
|
399
351
|
});
|
400
352
|
});
|
401
353
|
}).then(pdfManagerReady, onFailure);
|
402
354
|
}
|
403
355
|
|
404
|
-
handler.on(
|
356
|
+
handler.on("GetPage", function wphSetupGetPage(data) {
|
405
357
|
return pdfManager.getPage(data.pageIndex).then(function (page) {
|
406
|
-
return Promise.all([pdfManager.ensure(page,
|
407
|
-
var _ref2 = _slicedToArray(_ref, 4),
|
408
|
-
rotate = _ref2[0],
|
409
|
-
ref = _ref2[1],
|
410
|
-
userUnit = _ref2[2],
|
411
|
-
view = _ref2[3];
|
412
|
-
|
358
|
+
return Promise.all([pdfManager.ensure(page, "rotate"), pdfManager.ensure(page, "ref"), pdfManager.ensure(page, "userUnit"), pdfManager.ensure(page, "view")]).then(function ([rotate, ref, userUnit, view]) {
|
413
359
|
return {
|
414
|
-
rotate
|
415
|
-
ref
|
416
|
-
userUnit
|
417
|
-
view
|
360
|
+
rotate,
|
361
|
+
ref,
|
362
|
+
userUnit,
|
363
|
+
view
|
418
364
|
};
|
419
365
|
});
|
420
366
|
});
|
421
367
|
});
|
422
|
-
handler.on(
|
368
|
+
handler.on("GetPageIndex", function wphSetupGetPageIndex(data) {
|
423
369
|
var ref = _primitives.Ref.get(data.ref.num, data.ref.gen);
|
424
370
|
|
425
371
|
var catalog = pdfManager.pdfDocument.catalog;
|
426
372
|
return catalog.getPageIndex(ref);
|
427
373
|
});
|
428
|
-
handler.on(
|
429
|
-
return pdfManager.ensureCatalog(
|
374
|
+
handler.on("GetDestinations", function wphSetupGetDestinations(data) {
|
375
|
+
return pdfManager.ensureCatalog("destinations");
|
430
376
|
});
|
431
|
-
handler.on(
|
432
|
-
return pdfManager.ensureCatalog(
|
377
|
+
handler.on("GetDestination", function wphSetupGetDestination(data) {
|
378
|
+
return pdfManager.ensureCatalog("getDestination", [data.id]);
|
433
379
|
});
|
434
|
-
handler.on(
|
435
|
-
return pdfManager.ensureCatalog(
|
380
|
+
handler.on("GetPageLabels", function wphSetupGetPageLabels(data) {
|
381
|
+
return pdfManager.ensureCatalog("pageLabels");
|
436
382
|
});
|
437
|
-
handler.on(
|
438
|
-
return pdfManager.ensureCatalog(
|
383
|
+
handler.on("GetPageLayout", function wphSetupGetPageLayout(data) {
|
384
|
+
return pdfManager.ensureCatalog("pageLayout");
|
439
385
|
});
|
440
|
-
handler.on(
|
441
|
-
return pdfManager.ensureCatalog(
|
386
|
+
handler.on("GetPageMode", function wphSetupGetPageMode(data) {
|
387
|
+
return pdfManager.ensureCatalog("pageMode");
|
442
388
|
});
|
443
|
-
handler.on(
|
444
|
-
return pdfManager.ensureCatalog(
|
389
|
+
handler.on("GetViewerPreferences", function (data) {
|
390
|
+
return pdfManager.ensureCatalog("viewerPreferences");
|
445
391
|
});
|
446
|
-
handler.on(
|
447
|
-
return pdfManager.ensureCatalog(
|
392
|
+
handler.on("GetOpenAction", function (data) {
|
393
|
+
return pdfManager.ensureCatalog("openAction");
|
448
394
|
});
|
449
|
-
handler.on(
|
450
|
-
return pdfManager.ensureCatalog(
|
395
|
+
handler.on("GetAttachments", function wphSetupGetAttachments(data) {
|
396
|
+
return pdfManager.ensureCatalog("attachments");
|
451
397
|
});
|
452
|
-
handler.on(
|
453
|
-
return pdfManager.ensureCatalog(
|
398
|
+
handler.on("GetJavaScript", function wphSetupGetJavaScript(data) {
|
399
|
+
return pdfManager.ensureCatalog("javaScript");
|
454
400
|
});
|
455
|
-
handler.on(
|
456
|
-
return pdfManager.ensureCatalog(
|
401
|
+
handler.on("GetOutline", function wphSetupGetOutline(data) {
|
402
|
+
return pdfManager.ensureCatalog("documentOutline");
|
457
403
|
});
|
458
|
-
handler.on(
|
459
|
-
return pdfManager.ensureCatalog(
|
404
|
+
handler.on("GetPermissions", function (data) {
|
405
|
+
return pdfManager.ensureCatalog("permissions");
|
460
406
|
});
|
461
|
-
handler.on(
|
462
|
-
return Promise.all([pdfManager.ensureDoc(
|
407
|
+
handler.on("GetMetadata", function wphSetupGetMetadata(data) {
|
408
|
+
return Promise.all([pdfManager.ensureDoc("documentInfo"), pdfManager.ensureCatalog("metadata")]);
|
463
409
|
});
|
464
|
-
handler.on(
|
410
|
+
handler.on("GetData", function wphSetupGetData(data) {
|
465
411
|
pdfManager.requestLoadedStream();
|
466
412
|
return pdfManager.onLoadedStream().then(function (stream) {
|
467
413
|
return stream.bytes;
|
468
414
|
});
|
469
415
|
});
|
470
|
-
handler.on(
|
416
|
+
handler.on("GetStats", function wphSetupGetStats(data) {
|
471
417
|
return pdfManager.pdfDocument.xref.stats;
|
472
418
|
});
|
473
|
-
handler.on(
|
474
|
-
|
475
|
-
|
419
|
+
handler.on("GetAnnotations", function ({
|
420
|
+
pageIndex,
|
421
|
+
intent
|
422
|
+
}) {
|
476
423
|
return pdfManager.getPage(pageIndex).then(function (page) {
|
477
424
|
return page.getAnnotationsData(intent);
|
478
425
|
});
|
479
426
|
});
|
480
|
-
handler.on(
|
427
|
+
handler.on("GetOperatorList", function wphSetupRenderPage(data, sink) {
|
481
428
|
var pageIndex = data.pageIndex;
|
482
429
|
pdfManager.getPage(pageIndex).then(function (page) {
|
483
|
-
var task = new WorkerTask(
|
430
|
+
var task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);
|
484
431
|
startWorkerTask(task);
|
485
|
-
|
432
|
+
const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
|
486
433
|
page.getOperatorList({
|
487
|
-
handler
|
488
|
-
sink
|
489
|
-
task
|
434
|
+
handler,
|
435
|
+
sink,
|
436
|
+
task,
|
490
437
|
intent: data.intent,
|
491
438
|
renderInteractiveForms: data.renderInteractiveForms
|
492
439
|
}).then(function (operatorListInfo) {
|
493
440
|
finishWorkerTask(task);
|
494
441
|
|
495
442
|
if (start) {
|
496
|
-
(0, _util.info)(
|
443
|
+
(0, _util.info)(`page=${pageIndex + 1} - getOperatorList: time=` + `${Date.now() - start}ms, len=${operatorListInfo.length}`);
|
497
444
|
}
|
498
445
|
|
499
446
|
sink.close();
|
@@ -504,14 +451,14 @@ var WorkerMessageHandler = {
|
|
504
451
|
return;
|
505
452
|
}
|
506
453
|
|
507
|
-
handler.send(
|
454
|
+
handler.send("UnsupportedFeature", {
|
508
455
|
featureId: _util.UNSUPPORTED_FEATURES.unknown
|
509
456
|
});
|
510
457
|
sink.error(reason);
|
511
458
|
});
|
512
459
|
});
|
513
460
|
}, this);
|
514
|
-
handler.on(
|
461
|
+
handler.on("GetTextContent", function wphExtractText(data, sink) {
|
515
462
|
var pageIndex = data.pageIndex;
|
516
463
|
|
517
464
|
sink.onPull = function (desiredSize) {};
|
@@ -519,20 +466,20 @@ var WorkerMessageHandler = {
|
|
519
466
|
sink.onCancel = function (reason) {};
|
520
467
|
|
521
468
|
pdfManager.getPage(pageIndex).then(function (page) {
|
522
|
-
var task = new WorkerTask(
|
469
|
+
var task = new WorkerTask("GetTextContent: page " + pageIndex);
|
523
470
|
startWorkerTask(task);
|
524
|
-
|
471
|
+
const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
|
525
472
|
page.extractTextContent({
|
526
|
-
handler
|
527
|
-
task
|
528
|
-
sink
|
473
|
+
handler,
|
474
|
+
task,
|
475
|
+
sink,
|
529
476
|
normalizeWhitespace: data.normalizeWhitespace,
|
530
477
|
combineTextItems: data.combineTextItems
|
531
478
|
}).then(function () {
|
532
479
|
finishWorkerTask(task);
|
533
480
|
|
534
481
|
if (start) {
|
535
|
-
(0, _util.info)(
|
482
|
+
(0, _util.info)(`page=${pageIndex + 1} - getTextContent: time=` + `${Date.now() - start}ms`);
|
536
483
|
}
|
537
484
|
|
538
485
|
sink.close();
|
@@ -547,26 +494,29 @@ var WorkerMessageHandler = {
|
|
547
494
|
});
|
548
495
|
});
|
549
496
|
});
|
550
|
-
handler.on(
|
497
|
+
handler.on("FontFallback", function (data) {
|
551
498
|
return pdfManager.fontFallback(data.id, handler);
|
552
499
|
});
|
553
|
-
handler.on(
|
500
|
+
handler.on("Cleanup", function wphCleanup(data) {
|
554
501
|
return pdfManager.cleanup();
|
555
502
|
});
|
556
|
-
handler.on(
|
503
|
+
handler.on("Terminate", function wphTerminate(data) {
|
557
504
|
terminated = true;
|
505
|
+
const waitOn = [];
|
558
506
|
|
559
507
|
if (pdfManager) {
|
560
|
-
pdfManager.terminate(new _util.AbortException(
|
508
|
+
pdfManager.terminate(new _util.AbortException("Worker was terminated."));
|
509
|
+
const cleanupPromise = pdfManager.cleanup();
|
510
|
+
waitOn.push(cleanupPromise);
|
561
511
|
pdfManager = null;
|
512
|
+
} else {
|
513
|
+
(0, _primitives.clearPrimitiveCaches)();
|
562
514
|
}
|
563
515
|
|
564
516
|
if (cancelXHRs) {
|
565
|
-
cancelXHRs(new _util.AbortException(
|
517
|
+
cancelXHRs(new _util.AbortException("Worker was terminated."));
|
566
518
|
}
|
567
519
|
|
568
|
-
(0, _primitives.clearPrimitiveCaches)();
|
569
|
-
var waitOn = [];
|
570
520
|
WorkerTasks.forEach(function (task) {
|
571
521
|
waitOn.push(task.finished);
|
572
522
|
task.terminate();
|
@@ -576,24 +526,26 @@ var WorkerMessageHandler = {
|
|
576
526
|
handler = null;
|
577
527
|
});
|
578
528
|
});
|
579
|
-
handler.on(
|
529
|
+
handler.on("Ready", function wphReady(data) {
|
580
530
|
setupDoc(docParams);
|
581
531
|
docParams = null;
|
582
532
|
});
|
583
533
|
return workerHandlerName;
|
584
534
|
},
|
585
|
-
|
586
|
-
|
535
|
+
|
536
|
+
initializeFromPort(port) {
|
537
|
+
var handler = new _message_handler.MessageHandler("worker", "main", port);
|
587
538
|
WorkerMessageHandler.setup(handler, port);
|
588
|
-
handler.send(
|
539
|
+
handler.send("ready", null);
|
589
540
|
}
|
541
|
+
|
590
542
|
};
|
591
543
|
exports.WorkerMessageHandler = WorkerMessageHandler;
|
592
544
|
|
593
545
|
function isMessagePort(maybePort) {
|
594
|
-
return typeof maybePort.postMessage ===
|
546
|
+
return typeof maybePort.postMessage === "function" && "onmessage" in maybePort;
|
595
547
|
}
|
596
548
|
|
597
|
-
if (typeof window ===
|
549
|
+
if (typeof window === "undefined" && !_is_node.isNodeJS && typeof self !== "undefined" && isMessagePort(self)) {
|
598
550
|
WorkerMessageHandler.initializeFromPort(self);
|
599
551
|
}
|