pdfjs-dist 2.1.266 → 2.5.207
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/CODE_OF_CONDUCT.md +15 -0
- package/README.md +4 -0
- package/bower.json +1 -1
- package/build/pdf.js +8382 -18492
- 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 +20417 -29816
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +22 -1
- package/es5/build/pdf.js +25688 -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 +58239 -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 +403 -0
- package/es5/web/pdf_viewer.js +7742 -0
- package/es5/web/pdf_viewer.js.map +1 -0
- package/image_decoders/pdf.image_decoders.js +1475 -4897
- 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 +750 -899
- 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 +235 -183
- package/lib/core/charsets.js +4 -4
- package/lib/core/chunked_stream.js +447 -542
- package/lib/core/cmap.js +222 -264
- package/lib/core/colorspace.js +699 -863
- package/lib/core/core_utils.js +152 -0
- package/lib/core/crypto.js +379 -437
- package/lib/core/document.js +573 -660
- package/lib/core/encodings.js +15 -15
- package/lib/core/evaluator.js +1103 -868
- package/lib/core/font_renderer.js +135 -178
- package/lib/core/fonts.js +570 -491
- package/lib/core/function.js +291 -288
- package/lib/core/glyphlist.js +4527 -4526
- package/lib/core/image.js +145 -149
- package/lib/core/image_utils.js +170 -0
- package/lib/core/jbig2.js +325 -316
- package/lib/core/jbig2_stream.js +18 -17
- package/lib/core/jpeg_stream.js +21 -26
- package/lib/core/jpg.js +284 -232
- package/lib/core/jpx.js +161 -143
- package/lib/core/jpx_stream.js +28 -28
- package/lib/core/metrics.js +2929 -2929
- package/lib/core/murmurhash3.js +90 -101
- package/lib/core/obj.js +1183 -1157
- package/lib/core/operator_list.js +99 -67
- package/lib/core/parser.js +972 -911
- package/lib/core/pattern.js +87 -70
- package/lib/core/pdf_manager.js +150 -315
- package/lib/core/primitives.js +83 -56
- package/lib/core/ps_parser.js +175 -214
- package/lib/core/standard_fonts.js +237 -236
- package/lib/core/stream.js +94 -74
- package/lib/core/type1_parser.js +87 -69
- package/lib/core/unicode.js +1654 -1654
- package/lib/core/worker.js +193 -390
- package/lib/core/worker_stream.js +168 -0
- package/lib/display/annotation_layer.js +741 -972
- package/lib/display/api.js +1500 -1791
- package/lib/display/api_compatibility.js +12 -17
- package/lib/display/canvas.js +165 -165
- package/lib/display/content_disposition.js +40 -59
- package/lib/display/display_utils.js +515 -0
- package/lib/display/fetch_stream.js +183 -298
- package/lib/display/font_loader.js +273 -413
- package/lib/display/metadata.js +86 -98
- package/lib/display/network.js +266 -359
- package/lib/display/network_utils.js +25 -18
- package/lib/display/node_stream.js +285 -458
- package/lib/display/pattern_helper.js +113 -65
- package/lib/display/svg.js +1166 -901
- package/lib/display/text_layer.js +156 -132
- package/lib/display/transport_stream.js +262 -278
- 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 +40 -37
- package/lib/pdf.js +226 -59
- package/lib/pdf.worker.js +14 -6
- package/lib/shared/compatibility.js +3 -246
- package/lib/shared/is_node.js +7 -6
- package/lib/shared/message_handler.js +327 -332
- package/lib/shared/util.js +266 -416
- package/lib/test/unit/annotation_spec.js +1555 -701
- package/lib/test/unit/api_spec.js +802 -604
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +84 -69
- package/lib/test/unit/clitests_helper.js +7 -9
- package/lib/test/unit/cmap_spec.js +74 -76
- package/lib/test/unit/colorspace_spec.js +166 -161
- package/lib/test/unit/core_utils_spec.js +211 -0
- package/lib/test/unit/crypto_spec.js +181 -181
- package/lib/test/unit/custom_spec.js +20 -22
- package/lib/test/unit/display_svg_spec.js +34 -39
- package/lib/test/unit/display_utils_spec.js +263 -0
- package/lib/test/unit/document_spec.js +16 -21
- package/lib/test/unit/encodings_spec.js +12 -34
- package/lib/test/unit/evaluator_spec.js +83 -83
- package/lib/test/unit/fetch_stream_spec.js +111 -0
- package/lib/test/unit/function_spec.js +206 -204
- package/lib/test/unit/jasmine-boot.js +46 -30
- package/lib/test/unit/message_handler_spec.js +173 -159
- 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 +13 -61
- package/lib/test/unit/network_utils_spec.js +183 -119
- package/lib/test/unit/node_stream_spec.js +78 -92
- package/lib/test/unit/parser_spec.js +172 -114
- 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 +140 -125
- package/lib/test/unit/stream_spec.js +16 -14
- package/lib/test/unit/test_utils.js +131 -143
- package/lib/test/unit/testreporter.js +19 -19
- package/lib/test/unit/type1_parser_spec.js +42 -42
- package/lib/test/unit/ui_utils_spec.js +297 -459
- package/lib/test/unit/unicode_spec.js +38 -38
- package/lib/test/unit/util_spec.js +121 -305
- package/lib/web/annotation_layer_builder.js +66 -103
- package/lib/web/app.js +1328 -1214
- package/lib/web/app_options.js +105 -107
- package/lib/web/base_viewer.js +824 -838
- package/lib/web/chromecom.js +165 -252
- package/lib/web/debugger.js +149 -205
- package/lib/web/download_manager.js +39 -55
- package/lib/web/firefox_print_service.js +37 -27
- package/lib/web/firefoxcom.js +212 -363
- package/lib/web/genericcom.js +26 -108
- package/lib/web/genericl10n.js +24 -153
- package/lib/web/grab_to_pan.js +32 -30
- package/lib/web/interfaces.js +80 -254
- package/lib/web/overlay_manager.js +70 -246
- package/lib/web/password_prompt.js +38 -64
- package/lib/web/pdf_attachment_viewer.js +113 -131
- package/lib/web/pdf_cursor_tools.js +75 -102
- package/lib/web/pdf_document_properties.js +221 -306
- package/lib/web/pdf_find_bar.js +136 -170
- package/lib/web/pdf_find_controller.js +491 -548
- package/lib/web/pdf_find_utils.js +13 -13
- package/lib/web/pdf_history.js +397 -406
- package/lib/web/pdf_link_service.js +304 -348
- package/lib/web/pdf_outline_viewer.js +140 -175
- package/lib/web/pdf_page_view.js +452 -523
- package/lib/web/pdf_presentation_mode.js +308 -357
- package/lib/web/pdf_print_service.js +90 -104
- package/lib/web/pdf_rendering_queue.js +84 -108
- package/lib/web/pdf_sidebar.js +276 -306
- 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 +82 -286
- package/lib/web/secondary_toolbar.js +164 -196
- package/lib/web/text_layer_builder.js +282 -339
- package/lib/web/toolbar.js +217 -210
- package/lib/web/ui_utils.js +267 -420
- package/lib/web/view_history.js +52 -226
- package/lib/web/viewer_compatibility.js +21 -6
- package/package.json +2 -9
- package/web/pdf_viewer.css +35 -25
- package/web/pdf_viewer.js +3489 -4855
- package/web/pdf_viewer.js.map +1 -1
- package/webpack.js +14 -5
- package/external/streams/streams-lib.js +0 -3962
- package/external/url/url-lib.js +0 -627
- package/lib/display/dom_utils.js +0 -494
- package/lib/shared/streams_polyfill.js +0 -43
- package/lib/shared/url_polyfill.js +0 -56
- package/lib/test/unit/dom_utils_spec.js +0 -89
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,33 +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 _pdf_manager = require("./pdf_manager");
|
33
|
+
var _pdf_manager = require("./pdf_manager.js");
|
34
34
|
|
35
|
-
var _is_node =
|
35
|
+
var _is_node = require("../shared/is_node.js");
|
36
36
|
|
37
|
-
var _message_handler = require("../shared/message_handler");
|
37
|
+
var _message_handler = require("../shared/message_handler.js");
|
38
38
|
|
39
|
-
var
|
39
|
+
var _worker_stream = require("./worker_stream.js");
|
40
40
|
|
41
|
-
|
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); }); }; }
|
41
|
+
var _core_utils = require("./core_utils.js");
|
56
42
|
|
57
43
|
var WorkerTask = function WorkerTaskClosure() {
|
58
44
|
function WorkerTask(name) {
|
@@ -66,161 +52,29 @@ var WorkerTask = function WorkerTaskClosure() {
|
|
66
52
|
return this._capability.promise;
|
67
53
|
},
|
68
54
|
|
69
|
-
finish
|
55
|
+
finish() {
|
70
56
|
this._capability.resolve();
|
71
57
|
},
|
72
|
-
|
58
|
+
|
59
|
+
terminate() {
|
73
60
|
this.terminated = true;
|
74
61
|
},
|
75
|
-
|
62
|
+
|
63
|
+
ensureNotTerminated() {
|
76
64
|
if (this.terminated) {
|
77
|
-
throw new Error(
|
65
|
+
throw new Error("Worker task was terminated");
|
78
66
|
}
|
79
67
|
}
|
68
|
+
|
80
69
|
};
|
81
70
|
return WorkerTask;
|
82
71
|
}();
|
83
72
|
|
84
73
|
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
74
|
var WorkerMessageHandler = {
|
221
|
-
setup
|
75
|
+
setup(handler, port) {
|
222
76
|
var testMessageProcessed = false;
|
223
|
-
handler.on(
|
77
|
+
handler.on("test", function wphSetupTest(data) {
|
224
78
|
if (testMessageProcessed) {
|
225
79
|
return;
|
226
80
|
}
|
@@ -228,59 +82,60 @@ var WorkerMessageHandler = {
|
|
228
82
|
testMessageProcessed = true;
|
229
83
|
|
230
84
|
if (!(data instanceof Uint8Array)) {
|
231
|
-
handler.send(
|
85
|
+
handler.send("test", null);
|
232
86
|
return;
|
233
87
|
}
|
234
88
|
|
235
|
-
|
89
|
+
const supportTransfers = data[0] === 255;
|
236
90
|
handler.postMessageTransfers = supportTransfers;
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
try {
|
241
|
-
xhr.responseType;
|
242
|
-
} catch (e) {
|
243
|
-
responseExists = false;
|
244
|
-
}
|
245
|
-
|
246
|
-
if (!responseExists) {
|
247
|
-
handler.send('test', false);
|
248
|
-
return;
|
249
|
-
}
|
250
|
-
|
251
|
-
handler.send('test', {
|
252
|
-
supportTypedArray: true,
|
253
|
-
supportTransfers: supportTransfers
|
91
|
+
handler.send("test", {
|
92
|
+
supportTransfers
|
254
93
|
});
|
255
94
|
});
|
256
|
-
handler.on(
|
95
|
+
handler.on("configure", function wphConfigure(data) {
|
257
96
|
(0, _util.setVerbosityLevel)(data.verbosity);
|
258
97
|
});
|
259
|
-
handler.on(
|
98
|
+
handler.on("GetDocRequest", function wphSetupDoc(data) {
|
260
99
|
return WorkerMessageHandler.createDocumentHandler(data, port);
|
261
100
|
});
|
262
101
|
},
|
263
|
-
|
102
|
+
|
103
|
+
createDocumentHandler(docParams, port) {
|
264
104
|
var pdfManager;
|
265
105
|
var terminated = false;
|
266
106
|
var cancelXHRs = null;
|
267
107
|
var WorkerTasks = [];
|
268
|
-
|
269
|
-
|
108
|
+
const verbosity = (0, _util.getVerbosityLevel)();
|
109
|
+
const apiVersion = docParams.apiVersion;
|
110
|
+
const workerVersion = '2.5.207';
|
270
111
|
|
271
112
|
if (apiVersion !== workerVersion) {
|
272
|
-
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.");
|
124
|
+
}
|
125
|
+
|
126
|
+
if (typeof ReadableStream === "undefined" || typeof Promise.allSettled === "undefined") {
|
127
|
+
throw new Error("The browser/environment lacks native support for critical " + "functionality used by the PDF.js library (e.g. " + "`ReadableStream` and/or `Promise.allSettled`); " + "please use an ES5-compatible build instead.");
|
273
128
|
}
|
274
129
|
|
275
130
|
var docId = docParams.docId;
|
276
131
|
var docBaseUrl = docParams.docBaseUrl;
|
277
|
-
var workerHandlerName = docParams.docId +
|
132
|
+
var workerHandlerName = docParams.docId + "_worker";
|
278
133
|
var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);
|
279
134
|
handler.postMessageTransfers = docParams.postMessageTransfers;
|
280
135
|
|
281
136
|
function ensureNotTerminated() {
|
282
137
|
if (terminated) {
|
283
|
-
throw new Error(
|
138
|
+
throw new Error("Worker was terminated");
|
284
139
|
}
|
285
140
|
}
|
286
141
|
|
@@ -294,73 +149,31 @@ var WorkerMessageHandler = {
|
|
294
149
|
WorkerTasks.splice(i, 1);
|
295
150
|
}
|
296
151
|
|
297
|
-
function loadDocument(
|
298
|
-
|
299
|
-
|
152
|
+
async function loadDocument(recoveryMode) {
|
153
|
+
await pdfManager.ensureDoc("checkHeader");
|
154
|
+
await pdfManager.ensureDoc("parseStartXRef");
|
155
|
+
await pdfManager.ensureDoc("parse", [recoveryMode]);
|
300
156
|
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
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);
|
157
|
+
if (!recoveryMode) {
|
158
|
+
await pdfManager.ensureDoc("checkFirstPage");
|
159
|
+
}
|
160
|
+
|
161
|
+
const [numPages, fingerprint] = await Promise.all([pdfManager.ensureDoc("numPages"), pdfManager.ensureDoc("fingerprint")]);
|
162
|
+
return {
|
163
|
+
numPages,
|
164
|
+
fingerprint
|
165
|
+
};
|
353
166
|
}
|
354
167
|
|
355
168
|
function getPdfManager(data, evaluatorOptions) {
|
356
169
|
var pdfManagerCapability = (0, _util.createPromiseCapability)();
|
357
|
-
|
170
|
+
let newPdfManager;
|
358
171
|
var source = data.source;
|
359
172
|
|
360
173
|
if (source.data) {
|
361
174
|
try {
|
362
|
-
|
363
|
-
pdfManagerCapability.resolve(
|
175
|
+
newPdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);
|
176
|
+
pdfManagerCapability.resolve(newPdfManager);
|
364
177
|
} catch (ex) {
|
365
178
|
pdfManagerCapability.reject(ex);
|
366
179
|
}
|
@@ -372,7 +185,7 @@ var WorkerMessageHandler = {
|
|
372
185
|
cachedChunks = [];
|
373
186
|
|
374
187
|
try {
|
375
|
-
pdfStream = new PDFWorkerStream(handler);
|
188
|
+
pdfStream = new _worker_stream.PDFWorkerStream(handler);
|
376
189
|
} catch (ex) {
|
377
190
|
pdfManagerCapability.reject(ex);
|
378
191
|
return pdfManagerCapability.promise;
|
@@ -385,20 +198,20 @@ var WorkerMessageHandler = {
|
|
385
198
|
}
|
386
199
|
|
387
200
|
var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;
|
388
|
-
|
201
|
+
newPdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {
|
389
202
|
msgHandler: handler,
|
390
203
|
password: source.password,
|
391
204
|
length: fullRequest.contentLength,
|
392
|
-
disableAutoFetch
|
205
|
+
disableAutoFetch,
|
393
206
|
rangeChunkSize: source.rangeChunkSize
|
394
207
|
}, evaluatorOptions, docBaseUrl);
|
395
208
|
|
396
|
-
for (
|
397
|
-
|
209
|
+
for (let i = 0; i < cachedChunks.length; i++) {
|
210
|
+
newPdfManager.sendProgressiveData(cachedChunks[i]);
|
398
211
|
}
|
399
212
|
|
400
213
|
cachedChunks = [];
|
401
|
-
pdfManagerCapability.resolve(
|
214
|
+
pdfManagerCapability.resolve(newPdfManager);
|
402
215
|
cancelXHRs = null;
|
403
216
|
}).catch(function (reason) {
|
404
217
|
pdfManagerCapability.reject(reason);
|
@@ -406,16 +219,16 @@ var WorkerMessageHandler = {
|
|
406
219
|
});
|
407
220
|
var loaded = 0;
|
408
221
|
|
409
|
-
var flushChunks = function
|
222
|
+
var flushChunks = function () {
|
410
223
|
var pdfFile = (0, _util.arraysToBytes)(cachedChunks);
|
411
224
|
|
412
225
|
if (source.length && pdfFile.length !== source.length) {
|
413
|
-
(0, _util.warn)(
|
226
|
+
(0, _util.warn)("reported HTTP length is different from actual");
|
414
227
|
}
|
415
228
|
|
416
229
|
try {
|
417
|
-
|
418
|
-
pdfManagerCapability.resolve(
|
230
|
+
newPdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);
|
231
|
+
pdfManagerCapability.resolve(newPdfManager);
|
419
232
|
} catch (ex) {
|
420
233
|
pdfManagerCapability.reject(ex);
|
421
234
|
}
|
@@ -424,12 +237,15 @@ var WorkerMessageHandler = {
|
|
424
237
|
};
|
425
238
|
|
426
239
|
var readPromise = new Promise(function (resolve, reject) {
|
427
|
-
var readChunk = function
|
240
|
+
var readChunk = function ({
|
241
|
+
value,
|
242
|
+
done
|
243
|
+
}) {
|
428
244
|
try {
|
429
245
|
ensureNotTerminated();
|
430
246
|
|
431
|
-
if (
|
432
|
-
if (!
|
247
|
+
if (done) {
|
248
|
+
if (!newPdfManager) {
|
433
249
|
flushChunks();
|
434
250
|
}
|
435
251
|
|
@@ -437,20 +253,19 @@ var WorkerMessageHandler = {
|
|
437
253
|
return;
|
438
254
|
}
|
439
255
|
|
440
|
-
|
441
|
-
loaded += (0, _util.arrayByteLength)(data);
|
256
|
+
loaded += (0, _util.arrayByteLength)(value);
|
442
257
|
|
443
258
|
if (!fullRequest.isStreamingSupported) {
|
444
|
-
handler.send(
|
445
|
-
loaded
|
259
|
+
handler.send("DocProgress", {
|
260
|
+
loaded,
|
446
261
|
total: Math.max(loaded, fullRequest.contentLength || 0)
|
447
262
|
});
|
448
263
|
}
|
449
264
|
|
450
|
-
if (
|
451
|
-
|
265
|
+
if (newPdfManager) {
|
266
|
+
newPdfManager.sendProgressiveData(value);
|
452
267
|
} else {
|
453
|
-
cachedChunks.push(
|
268
|
+
cachedChunks.push(value);
|
454
269
|
}
|
455
270
|
|
456
271
|
fullRequest.read().then(readChunk, reject);
|
@@ -466,8 +281,8 @@ var WorkerMessageHandler = {
|
|
466
281
|
cancelXHRs = null;
|
467
282
|
});
|
468
283
|
|
469
|
-
cancelXHRs = function
|
470
|
-
pdfStream.cancelAllRequests(
|
284
|
+
cancelXHRs = function (reason) {
|
285
|
+
pdfStream.cancelAllRequests(reason);
|
471
286
|
};
|
472
287
|
|
473
288
|
return pdfManagerCapability.promise;
|
@@ -476,33 +291,31 @@ var WorkerMessageHandler = {
|
|
476
291
|
function setupDoc(data) {
|
477
292
|
function onSuccess(doc) {
|
478
293
|
ensureNotTerminated();
|
479
|
-
handler.send(
|
294
|
+
handler.send("GetDoc", {
|
480
295
|
pdfInfo: doc
|
481
296
|
});
|
482
297
|
}
|
483
298
|
|
484
|
-
function onFailure(
|
299
|
+
function onFailure(ex) {
|
485
300
|
ensureNotTerminated();
|
486
301
|
|
487
|
-
if (
|
488
|
-
var task = new WorkerTask(
|
302
|
+
if (ex instanceof _util.PasswordException) {
|
303
|
+
var task = new WorkerTask(`PasswordException: response ${ex.code}`);
|
489
304
|
startWorkerTask(task);
|
490
|
-
handler.sendWithPromise(
|
305
|
+
handler.sendWithPromise("PasswordRequest", ex).then(function ({
|
306
|
+
password
|
307
|
+
}) {
|
491
308
|
finishWorkerTask(task);
|
492
|
-
pdfManager.updatePassword(
|
309
|
+
pdfManager.updatePassword(password);
|
493
310
|
pdfManagerReady();
|
494
|
-
}).catch(function (
|
311
|
+
}).catch(function () {
|
495
312
|
finishWorkerTask(task);
|
496
|
-
handler.send(
|
497
|
-
}
|
498
|
-
} else if (
|
499
|
-
handler.send(
|
500
|
-
} else if (e instanceof _util.MissingPDFException) {
|
501
|
-
handler.send('MissingPDF', e);
|
502
|
-
} else if (e instanceof _util.UnexpectedResponseException) {
|
503
|
-
handler.send('UnexpectedResponse', e);
|
313
|
+
handler.send("DocException", ex);
|
314
|
+
});
|
315
|
+
} else if (ex instanceof _util.InvalidPDFException || ex instanceof _util.MissingPDFException || ex instanceof _util.UnexpectedResponseException || ex instanceof _util.UnknownErrorException) {
|
316
|
+
handler.send("DocException", ex);
|
504
317
|
} else {
|
505
|
-
handler.send(
|
318
|
+
handler.send("DocException", new _util.UnknownErrorException(ex.message, ex.toString()));
|
506
319
|
}
|
507
320
|
}
|
508
321
|
|
@@ -511,7 +324,7 @@ var WorkerMessageHandler = {
|
|
511
324
|
loadDocument(false).then(onSuccess, function loadFailure(ex) {
|
512
325
|
ensureNotTerminated();
|
513
326
|
|
514
|
-
if (!(ex instanceof
|
327
|
+
if (!(ex instanceof _core_utils.XRefParseException)) {
|
515
328
|
onFailure(ex);
|
516
329
|
return;
|
517
330
|
}
|
@@ -526,151 +339,133 @@ var WorkerMessageHandler = {
|
|
526
339
|
|
527
340
|
ensureNotTerminated();
|
528
341
|
var evaluatorOptions = {
|
529
|
-
forceDataSchema: data.disableCreateObjectURL,
|
530
342
|
maxImageSize: data.maxImageSize,
|
531
343
|
disableFontFace: data.disableFontFace,
|
532
|
-
nativeImageDecoderSupport: data.nativeImageDecoderSupport,
|
533
344
|
ignoreErrors: data.ignoreErrors,
|
534
|
-
isEvalSupported: data.isEvalSupported
|
345
|
+
isEvalSupported: data.isEvalSupported,
|
346
|
+
fontExtraProperties: data.fontExtraProperties
|
535
347
|
};
|
536
348
|
getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {
|
537
349
|
if (terminated) {
|
538
|
-
newPdfManager.terminate();
|
539
|
-
throw new Error(
|
350
|
+
newPdfManager.terminate(new _util.AbortException("Worker was terminated."));
|
351
|
+
throw new Error("Worker was terminated");
|
540
352
|
}
|
541
353
|
|
542
354
|
pdfManager = newPdfManager;
|
543
355
|
pdfManager.onLoadedStream().then(function (stream) {
|
544
|
-
handler.send(
|
356
|
+
handler.send("DataLoaded", {
|
545
357
|
length: stream.bytes.byteLength
|
546
358
|
});
|
547
359
|
});
|
548
360
|
}).then(pdfManagerReady, onFailure);
|
549
361
|
}
|
550
362
|
|
551
|
-
handler.on(
|
363
|
+
handler.on("GetPage", function wphSetupGetPage(data) {
|
552
364
|
return pdfManager.getPage(data.pageIndex).then(function (page) {
|
553
|
-
return Promise.all([pdfManager.ensure(page,
|
554
|
-
var _ref4 = _slicedToArray(_ref3, 4),
|
555
|
-
rotate = _ref4[0],
|
556
|
-
ref = _ref4[1],
|
557
|
-
userUnit = _ref4[2],
|
558
|
-
view = _ref4[3];
|
559
|
-
|
365
|
+
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]) {
|
560
366
|
return {
|
561
|
-
rotate
|
562
|
-
ref
|
563
|
-
userUnit
|
564
|
-
view
|
367
|
+
rotate,
|
368
|
+
ref,
|
369
|
+
userUnit,
|
370
|
+
view
|
565
371
|
};
|
566
372
|
});
|
567
373
|
});
|
568
374
|
});
|
569
|
-
handler.on(
|
570
|
-
var ref =
|
375
|
+
handler.on("GetPageIndex", function wphSetupGetPageIndex(data) {
|
376
|
+
var ref = _primitives.Ref.get(data.ref.num, data.ref.gen);
|
377
|
+
|
571
378
|
var catalog = pdfManager.pdfDocument.catalog;
|
572
379
|
return catalog.getPageIndex(ref);
|
573
380
|
});
|
574
|
-
handler.on(
|
575
|
-
return pdfManager.ensureCatalog(
|
381
|
+
handler.on("GetDestinations", function wphSetupGetDestinations(data) {
|
382
|
+
return pdfManager.ensureCatalog("destinations");
|
576
383
|
});
|
577
|
-
handler.on(
|
578
|
-
return pdfManager.ensureCatalog(
|
384
|
+
handler.on("GetDestination", function wphSetupGetDestination(data) {
|
385
|
+
return pdfManager.ensureCatalog("getDestination", [data.id]);
|
579
386
|
});
|
580
|
-
handler.on(
|
581
|
-
return pdfManager.ensureCatalog(
|
387
|
+
handler.on("GetPageLabels", function wphSetupGetPageLabels(data) {
|
388
|
+
return pdfManager.ensureCatalog("pageLabels");
|
582
389
|
});
|
583
|
-
handler.on(
|
584
|
-
return pdfManager.ensureCatalog(
|
390
|
+
handler.on("GetPageLayout", function wphSetupGetPageLayout(data) {
|
391
|
+
return pdfManager.ensureCatalog("pageLayout");
|
585
392
|
});
|
586
|
-
handler.on(
|
587
|
-
return pdfManager.ensureCatalog(
|
393
|
+
handler.on("GetPageMode", function wphSetupGetPageMode(data) {
|
394
|
+
return pdfManager.ensureCatalog("pageMode");
|
588
395
|
});
|
589
|
-
handler.on(
|
590
|
-
return pdfManager.ensureCatalog(
|
396
|
+
handler.on("GetViewerPreferences", function (data) {
|
397
|
+
return pdfManager.ensureCatalog("viewerPreferences");
|
591
398
|
});
|
592
|
-
handler.on(
|
593
|
-
return pdfManager.ensureCatalog(
|
399
|
+
handler.on("GetOpenAction", function (data) {
|
400
|
+
return pdfManager.ensureCatalog("openAction");
|
594
401
|
});
|
595
|
-
handler.on(
|
596
|
-
return pdfManager.ensureCatalog(
|
402
|
+
handler.on("GetAttachments", function wphSetupGetAttachments(data) {
|
403
|
+
return pdfManager.ensureCatalog("attachments");
|
597
404
|
});
|
598
|
-
handler.on(
|
599
|
-
return pdfManager.ensureCatalog(
|
405
|
+
handler.on("GetJavaScript", function wphSetupGetJavaScript(data) {
|
406
|
+
return pdfManager.ensureCatalog("javaScript");
|
600
407
|
});
|
601
|
-
handler.on(
|
602
|
-
return
|
408
|
+
handler.on("GetOutline", function wphSetupGetOutline(data) {
|
409
|
+
return pdfManager.ensureCatalog("documentOutline");
|
603
410
|
});
|
604
|
-
handler.on(
|
411
|
+
handler.on("GetPermissions", function (data) {
|
412
|
+
return pdfManager.ensureCatalog("permissions");
|
413
|
+
});
|
414
|
+
handler.on("GetMetadata", function wphSetupGetMetadata(data) {
|
415
|
+
return Promise.all([pdfManager.ensureDoc("documentInfo"), pdfManager.ensureCatalog("metadata")]);
|
416
|
+
});
|
417
|
+
handler.on("GetData", function wphSetupGetData(data) {
|
605
418
|
pdfManager.requestLoadedStream();
|
606
419
|
return pdfManager.onLoadedStream().then(function (stream) {
|
607
420
|
return stream.bytes;
|
608
421
|
});
|
609
422
|
});
|
610
|
-
handler.on(
|
423
|
+
handler.on("GetStats", function wphSetupGetStats(data) {
|
611
424
|
return pdfManager.pdfDocument.xref.stats;
|
612
425
|
});
|
613
|
-
handler.on(
|
614
|
-
|
615
|
-
|
426
|
+
handler.on("GetAnnotations", function ({
|
427
|
+
pageIndex,
|
428
|
+
intent
|
429
|
+
}) {
|
616
430
|
return pdfManager.getPage(pageIndex).then(function (page) {
|
617
431
|
return page.getAnnotationsData(intent);
|
618
432
|
});
|
619
433
|
});
|
620
|
-
handler.on(
|
434
|
+
handler.on("GetOperatorList", function wphSetupRenderPage(data, sink) {
|
621
435
|
var pageIndex = data.pageIndex;
|
622
436
|
pdfManager.getPage(pageIndex).then(function (page) {
|
623
|
-
var task = new WorkerTask(
|
437
|
+
var task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);
|
624
438
|
startWorkerTask(task);
|
625
|
-
|
626
|
-
var start = Date.now();
|
439
|
+
const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
|
627
440
|
page.getOperatorList({
|
628
|
-
handler
|
629
|
-
|
441
|
+
handler,
|
442
|
+
sink,
|
443
|
+
task,
|
630
444
|
intent: data.intent,
|
631
445
|
renderInteractiveForms: data.renderInteractiveForms
|
632
|
-
}).then(function (
|
446
|
+
}).then(function (operatorListInfo) {
|
633
447
|
finishWorkerTask(task);
|
634
|
-
|
635
|
-
|
448
|
+
|
449
|
+
if (start) {
|
450
|
+
(0, _util.info)(`page=${pageIndex + 1} - getOperatorList: time=` + `${Date.now() - start}ms, len=${operatorListInfo.length}`);
|
451
|
+
}
|
452
|
+
|
453
|
+
sink.close();
|
454
|
+
}, function (reason) {
|
636
455
|
finishWorkerTask(task);
|
637
456
|
|
638
457
|
if (task.terminated) {
|
639
458
|
return;
|
640
459
|
}
|
641
460
|
|
642
|
-
handler.send(
|
643
|
-
featureId: _util.UNSUPPORTED_FEATURES.
|
644
|
-
});
|
645
|
-
var minimumStackMessage = 'worker.js: while trying to getPage() and getOperatorList()';
|
646
|
-
var wrappedException;
|
647
|
-
|
648
|
-
if (typeof e === 'string') {
|
649
|
-
wrappedException = {
|
650
|
-
message: e,
|
651
|
-
stack: minimumStackMessage
|
652
|
-
};
|
653
|
-
} else if (_typeof(e) === 'object') {
|
654
|
-
wrappedException = {
|
655
|
-
message: e.message || e.toString(),
|
656
|
-
stack: e.stack || minimumStackMessage
|
657
|
-
};
|
658
|
-
} else {
|
659
|
-
wrappedException = {
|
660
|
-
message: 'Unknown exception type: ' + _typeof(e),
|
661
|
-
stack: minimumStackMessage
|
662
|
-
};
|
663
|
-
}
|
664
|
-
|
665
|
-
handler.send('PageError', {
|
666
|
-
pageNum: pageNum,
|
667
|
-
error: wrappedException,
|
668
|
-
intent: data.intent
|
461
|
+
handler.send("UnsupportedFeature", {
|
462
|
+
featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList
|
669
463
|
});
|
464
|
+
sink.error(reason);
|
670
465
|
});
|
671
466
|
});
|
672
467
|
}, this);
|
673
|
-
handler.on(
|
468
|
+
handler.on("GetTextContent", function wphExtractText(data, sink) {
|
674
469
|
var pageIndex = data.pageIndex;
|
675
470
|
|
676
471
|
sink.onPull = function (desiredSize) {};
|
@@ -678,19 +473,22 @@ var WorkerMessageHandler = {
|
|
678
473
|
sink.onCancel = function (reason) {};
|
679
474
|
|
680
475
|
pdfManager.getPage(pageIndex).then(function (page) {
|
681
|
-
var task = new WorkerTask(
|
476
|
+
var task = new WorkerTask("GetTextContent: page " + pageIndex);
|
682
477
|
startWorkerTask(task);
|
683
|
-
|
684
|
-
var start = Date.now();
|
478
|
+
const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
|
685
479
|
page.extractTextContent({
|
686
|
-
handler
|
687
|
-
task
|
688
|
-
sink
|
480
|
+
handler,
|
481
|
+
task,
|
482
|
+
sink,
|
689
483
|
normalizeWhitespace: data.normalizeWhitespace,
|
690
484
|
combineTextItems: data.combineTextItems
|
691
485
|
}).then(function () {
|
692
486
|
finishWorkerTask(task);
|
693
|
-
|
487
|
+
|
488
|
+
if (start) {
|
489
|
+
(0, _util.info)(`page=${pageIndex + 1} - getTextContent: time=` + `${Date.now() - start}ms`);
|
490
|
+
}
|
491
|
+
|
694
492
|
sink.close();
|
695
493
|
}, function (reason) {
|
696
494
|
finishWorkerTask(task);
|
@@ -700,29 +498,32 @@ var WorkerMessageHandler = {
|
|
700
498
|
}
|
701
499
|
|
702
500
|
sink.error(reason);
|
703
|
-
throw reason;
|
704
501
|
});
|
705
502
|
});
|
706
503
|
});
|
707
|
-
handler.on(
|
504
|
+
handler.on("FontFallback", function (data) {
|
708
505
|
return pdfManager.fontFallback(data.id, handler);
|
709
506
|
});
|
710
|
-
handler.on(
|
711
|
-
return pdfManager.cleanup();
|
507
|
+
handler.on("Cleanup", function wphCleanup(data) {
|
508
|
+
return pdfManager.cleanup(true);
|
712
509
|
});
|
713
|
-
handler.on(
|
510
|
+
handler.on("Terminate", function wphTerminate(data) {
|
714
511
|
terminated = true;
|
512
|
+
const waitOn = [];
|
715
513
|
|
716
514
|
if (pdfManager) {
|
717
|
-
pdfManager.terminate();
|
515
|
+
pdfManager.terminate(new _util.AbortException("Worker was terminated."));
|
516
|
+
const cleanupPromise = pdfManager.cleanup();
|
517
|
+
waitOn.push(cleanupPromise);
|
718
518
|
pdfManager = null;
|
519
|
+
} else {
|
520
|
+
(0, _primitives.clearPrimitiveCaches)();
|
719
521
|
}
|
720
522
|
|
721
523
|
if (cancelXHRs) {
|
722
|
-
cancelXHRs();
|
524
|
+
cancelXHRs(new _util.AbortException("Worker was terminated."));
|
723
525
|
}
|
724
526
|
|
725
|
-
var waitOn = [];
|
726
527
|
WorkerTasks.forEach(function (task) {
|
727
528
|
waitOn.push(task.finished);
|
728
529
|
task.terminate();
|
@@ -732,24 +533,26 @@ var WorkerMessageHandler = {
|
|
732
533
|
handler = null;
|
733
534
|
});
|
734
535
|
});
|
735
|
-
handler.on(
|
536
|
+
handler.on("Ready", function wphReady(data) {
|
736
537
|
setupDoc(docParams);
|
737
538
|
docParams = null;
|
738
539
|
});
|
739
540
|
return workerHandlerName;
|
740
541
|
},
|
741
|
-
|
742
|
-
|
542
|
+
|
543
|
+
initializeFromPort(port) {
|
544
|
+
var handler = new _message_handler.MessageHandler("worker", "main", port);
|
743
545
|
WorkerMessageHandler.setup(handler, port);
|
744
|
-
handler.send(
|
546
|
+
handler.send("ready", null);
|
745
547
|
}
|
548
|
+
|
746
549
|
};
|
747
550
|
exports.WorkerMessageHandler = WorkerMessageHandler;
|
748
551
|
|
749
552
|
function isMessagePort(maybePort) {
|
750
|
-
return typeof maybePort.postMessage ===
|
553
|
+
return typeof maybePort.postMessage === "function" && "onmessage" in maybePort;
|
751
554
|
}
|
752
555
|
|
753
|
-
if (typeof window ===
|
556
|
+
if (typeof window === "undefined" && !_is_node.isNodeJS && typeof self !== "undefined" && isMessagePort(self)) {
|
754
557
|
WorkerMessageHandler.initializeFromPort(self);
|
755
558
|
}
|