pdfjs-dist 2.2.228 → 2.6.347
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 +8816 -19300
- 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 +27185 -35746
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +22 -1
- package/es5/build/pdf.js +26665 -0
- package/es5/build/pdf.js.map +1 -0
- package/es5/build/pdf.min.js +22 -0
- package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
- package/es5/build/pdf.worker.js +61231 -0
- package/es5/build/pdf.worker.js.map +1 -0
- package/es5/build/pdf.worker.min.js +22 -0
- package/es5/image_decoders/pdf.image_decoders.js +12529 -0
- package/es5/image_decoders/pdf.image_decoders.js.map +1 -0
- package/es5/image_decoders/pdf.image_decoders.min.js +22 -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/pdf_viewer.css +406 -0
- package/es5/web/pdf_viewer.js +7886 -0
- package/es5/web/pdf_viewer.js.map +1 -0
- package/image_decoders/pdf.image_decoders.js +1498 -4832
- 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 +1144 -927
- 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 +747 -716
- package/lib/core/charsets.js +4 -4
- package/lib/core/chunked_stream.js +462 -553
- package/lib/core/cmap.js +231 -277
- package/lib/core/colorspace.js +715 -857
- package/lib/core/core_utils.js +57 -52
- package/lib/core/crypto.js +416 -437
- package/lib/core/document.js +629 -670
- package/lib/core/encodings.js +15 -15
- package/lib/core/evaluator.js +3229 -2800
- package/lib/core/font_renderer.js +135 -178
- package/lib/core/fonts.js +602 -534
- package/lib/core/function.js +355 -279
- package/lib/core/glyphlist.js +4527 -4526
- package/lib/core/image.js +442 -439
- package/lib/core/image_utils.js +221 -61
- 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 +289 -233
- package/lib/core/jpx.js +161 -143
- 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 +1343 -1300
- package/lib/core/operator_list.js +90 -67
- package/lib/core/parser.js +990 -987
- package/lib/core/pattern.js +105 -77
- package/lib/core/pdf_manager.js +149 -316
- package/lib/core/primitives.js +156 -104
- 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 +89 -69
- package/lib/core/unicode.js +1654 -1654
- package/lib/core/worker.js +275 -290
- package/lib/core/worker_stream.js +101 -210
- package/lib/core/writer.js +242 -0
- package/lib/display/annotation_layer.js +772 -1041
- package/lib/display/annotation_storage.js +89 -0
- package/lib/display/api.js +1575 -1868
- package/lib/display/api_compatibility.js +12 -17
- package/lib/display/canvas.js +370 -222
- package/lib/display/content_disposition.js +40 -59
- package/lib/display/display_utils.js +341 -536
- package/lib/display/fetch_stream.js +188 -304
- package/lib/display/font_loader.js +282 -414
- package/lib/display/metadata.js +81 -99
- package/lib/display/network.js +362 -511
- package/lib/display/network_utils.js +25 -18
- package/lib/display/node_stream.js +283 -465
- package/lib/display/node_utils.js +87 -0
- package/lib/display/optional_content_config.js +184 -0
- package/lib/display/pattern_helper.js +93 -44
- package/lib/display/svg.js +1163 -1401
- package/lib/display/text_layer.js +154 -137
- package/lib/display/transport_stream.js +237 -375
- 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 +220 -58
- 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 +271 -306
- package/lib/test/unit/annotation_spec.js +1902 -763
- package/lib/test/unit/annotation_storage_spec.js +83 -0
- package/lib/test/unit/api_spec.js +790 -592
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +73 -72
- package/lib/test/unit/clitests_helper.js +7 -9
- package/lib/test/unit/cmap_spec.js +86 -88
- package/lib/test/unit/colorspace_spec.js +346 -154
- package/lib/test/unit/core_utils_spec.js +125 -105
- package/lib/test/unit/crypto_spec.js +232 -185
- package/lib/test/unit/custom_spec.js +150 -24
- package/lib/test/unit/display_svg_spec.js +34 -39
- package/lib/test/unit/display_utils_spec.js +139 -149
- package/lib/test/unit/document_spec.js +128 -17
- package/lib/test/unit/encodings_spec.js +12 -34
- package/lib/test/unit/evaluator_spec.js +112 -91
- package/lib/test/unit/fetch_stream_spec.js +31 -29
- 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 +173 -159
- package/lib/test/unit/metadata_spec.js +71 -71
- package/lib/test/unit/murmurhash3_spec.js +12 -12
- package/lib/test/unit/network_spec.js +13 -11
- package/lib/test/unit/network_utils_spec.js +158 -144
- package/lib/test/unit/node_stream_spec.js +76 -90
- package/lib/test/unit/parser_spec.js +108 -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 +337 -156
- package/lib/test/unit/stream_spec.js +16 -14
- package/lib/test/unit/test_utils.js +91 -304
- package/lib/test/unit/testreporter.js +33 -22
- package/lib/test/unit/type1_parser_spec.js +42 -42
- package/lib/test/unit/ui_utils_spec.js +299 -461
- package/lib/test/unit/unicode_spec.js +42 -42
- package/lib/test/unit/util_spec.js +129 -149
- package/lib/test/unit/writer_spec.js +84 -0
- package/lib/web/annotation_layer_builder.js +78 -111
- package/lib/web/app.js +1542 -1267
- package/lib/web/app_options.js +76 -91
- package/lib/web/base_tree_viewer.js +100 -0
- package/lib/web/base_viewer.js +869 -834
- package/lib/web/chromecom.js +165 -252
- package/lib/web/debugger.js +149 -205
- package/lib/web/download_manager.js +34 -58
- package/lib/web/firefox_print_service.js +62 -34
- package/lib/web/firefoxcom.js +206 -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 -254
- package/lib/web/overlay_manager.js +70 -246
- package/lib/web/password_prompt.js +38 -64
- package/lib/web/pdf_attachment_viewer.js +150 -126
- package/lib/web/pdf_cursor_tools.js +75 -102
- package/lib/web/pdf_document_properties.js +229 -383
- package/lib/web/pdf_find_bar.js +136 -170
- package/lib/web/pdf_find_controller.js +492 -548
- package/lib/web/pdf_find_utils.js +13 -13
- package/lib/web/pdf_history.js +397 -406
- package/lib/web/pdf_layer_viewer.js +208 -0
- package/lib/web/pdf_link_service.js +304 -348
- package/lib/web/pdf_outline_viewer.js +119 -212
- package/lib/web/pdf_page_view.js +474 -513
- package/lib/web/pdf_presentation_mode.js +308 -357
- package/lib/web/pdf_print_service.js +96 -110
- package/lib/web/pdf_rendering_queue.js +87 -108
- package/lib/web/pdf_sidebar.js +286 -302
- 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 +289 -297
- package/lib/web/pdf_thumbnail_viewer.js +202 -206
- package/lib/web/pdf_viewer.component.js +20 -21
- package/lib/web/pdf_viewer.js +55 -115
- package/lib/web/preferences.js +69 -273
- package/lib/web/secondary_toolbar.js +164 -196
- package/lib/web/text_layer_builder.js +284 -319
- package/lib/web/toolbar.js +217 -210
- package/lib/web/ui_utils.js +274 -421
- package/lib/web/view_history.js +52 -226
- package/lib/web/viewer_compatibility.js +21 -6
- package/package.json +4 -9
- package/types/display/annotation_layer.d.ts +61 -0
- package/types/display/annotation_storage.d.ts +36 -0
- package/types/display/api.d.ts +1107 -0
- package/types/display/api_compatibility.d.ts +1 -0
- package/types/display/canvas.d.ts +4 -0
- package/types/display/content_disposition.d.ts +7 -0
- package/types/display/display_utils.d.ts +243 -0
- package/types/display/fetch_stream.d.ts +67 -0
- package/types/display/font_loader.d.ts +19 -0
- package/types/display/metadata.d.ts +9 -0
- package/types/display/network.d.ts +80 -0
- package/types/display/network_utils.d.ts +14 -0
- package/types/display/node_stream.d.ts +72 -0
- package/types/display/node_utils.d.ts +6 -0
- package/types/display/optional_content_config.d.ts +12 -0
- package/types/display/pattern_helper.d.ts +5 -0
- package/types/display/svg.d.ts +2 -0
- package/types/display/text_layer.d.ts +83 -0
- package/types/display/transport_stream.d.ts +57 -0
- package/types/display/webgl.d.ts +20 -0
- package/types/display/worker_options.d.ts +27 -0
- package/types/display/xml_parser.d.ts +35 -0
- package/types/pdf.d.ts +33 -0
- package/types/shared/compatibility.d.ts +1 -0
- package/types/shared/is_node.d.ts +1 -0
- package/types/shared/message_handler.d.ts +62 -0
- package/types/shared/util.d.ts +421 -0
- package/web/images/shadow.png +0 -0
- package/web/pdf_viewer.css +29 -27
- package/web/pdf_viewer.js +3524 -4746
- package/web/pdf_viewer.js.map +1 -1
- package/webpack.js +6 -5
- package/external/streams/streams-lib.js +0 -3962
- package/external/url/url-lib.js +0 -627
- package/lib/shared/streams_polyfill.js +0 -43
- package/lib/shared/url_polyfill.js +0 -56
- package/web/images/texture.png +0 -0
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,70 +26,55 @@ 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 _writer = require("./writer.js");
|
36
36
|
|
37
|
-
var _is_node =
|
37
|
+
var _is_node = require("../shared/is_node.js");
|
38
38
|
|
39
|
-
var _message_handler = require("../shared/message_handler");
|
39
|
+
var _message_handler = require("../shared/message_handler.js");
|
40
40
|
|
41
|
-
var _worker_stream = require("./worker_stream");
|
41
|
+
var _worker_stream = require("./worker_stream.js");
|
42
42
|
|
43
|
-
var _core_utils = require("./core_utils");
|
43
|
+
var _core_utils = require("./core_utils.js");
|
44
44
|
|
45
|
-
|
46
|
-
|
47
|
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
48
|
-
|
49
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
50
|
-
|
51
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
52
|
-
|
53
|
-
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; }
|
54
|
-
|
55
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
56
|
-
|
57
|
-
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); } }
|
58
|
-
|
59
|
-
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); }); }; }
|
60
|
-
|
61
|
-
var WorkerTask = function WorkerTaskClosure() {
|
62
|
-
function WorkerTask(name) {
|
45
|
+
class WorkerTask {
|
46
|
+
constructor(name) {
|
63
47
|
this.name = name;
|
64
48
|
this.terminated = false;
|
65
49
|
this._capability = (0, _util.createPromiseCapability)();
|
66
50
|
}
|
67
51
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
52
|
+
get finished() {
|
53
|
+
return this._capability.promise;
|
54
|
+
}
|
55
|
+
|
56
|
+
finish() {
|
57
|
+
this._capability.resolve();
|
58
|
+
}
|
59
|
+
|
60
|
+
terminate() {
|
61
|
+
this.terminated = true;
|
62
|
+
}
|
63
|
+
|
64
|
+
ensureNotTerminated() {
|
65
|
+
if (this.terminated) {
|
66
|
+
throw new Error("Worker task was terminated");
|
83
67
|
}
|
84
|
-
}
|
85
|
-
|
86
|
-
}
|
68
|
+
}
|
69
|
+
|
70
|
+
}
|
87
71
|
|
88
72
|
exports.WorkerTask = WorkerTask;
|
89
|
-
|
90
|
-
|
73
|
+
|
74
|
+
class WorkerMessageHandler {
|
75
|
+
static setup(handler, port) {
|
91
76
|
var testMessageProcessed = false;
|
92
|
-
handler.on(
|
77
|
+
handler.on("test", function wphSetupTest(data) {
|
93
78
|
if (testMessageProcessed) {
|
94
79
|
return;
|
95
80
|
}
|
@@ -97,60 +82,60 @@ var WorkerMessageHandler = {
|
|
97
82
|
testMessageProcessed = true;
|
98
83
|
|
99
84
|
if (!(data instanceof Uint8Array)) {
|
100
|
-
handler.send(
|
85
|
+
handler.send("test", null);
|
101
86
|
return;
|
102
87
|
}
|
103
88
|
|
104
|
-
|
89
|
+
const supportTransfers = data[0] === 255;
|
105
90
|
handler.postMessageTransfers = supportTransfers;
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
try {
|
110
|
-
xhr.responseType;
|
111
|
-
} catch (e) {
|
112
|
-
responseExists = false;
|
113
|
-
}
|
114
|
-
|
115
|
-
if (!responseExists) {
|
116
|
-
handler.send('test', false);
|
117
|
-
return;
|
118
|
-
}
|
119
|
-
|
120
|
-
handler.send('test', {
|
121
|
-
supportTypedArray: true,
|
122
|
-
supportTransfers: supportTransfers
|
91
|
+
handler.send("test", {
|
92
|
+
supportTransfers
|
123
93
|
});
|
124
94
|
});
|
125
|
-
handler.on(
|
95
|
+
handler.on("configure", function wphConfigure(data) {
|
126
96
|
(0, _util.setVerbosityLevel)(data.verbosity);
|
127
97
|
});
|
128
|
-
handler.on(
|
98
|
+
handler.on("GetDocRequest", function wphSetupDoc(data) {
|
129
99
|
return WorkerMessageHandler.createDocumentHandler(data, port);
|
130
100
|
});
|
131
|
-
}
|
132
|
-
|
101
|
+
}
|
102
|
+
|
103
|
+
static createDocumentHandler(docParams, port) {
|
133
104
|
var pdfManager;
|
134
105
|
var terminated = false;
|
135
106
|
var cancelXHRs = null;
|
136
107
|
var WorkerTasks = [];
|
137
|
-
|
138
|
-
|
139
|
-
|
108
|
+
const verbosity = (0, _util.getVerbosityLevel)();
|
109
|
+
const apiVersion = docParams.apiVersion;
|
110
|
+
const workerVersion = '2.6.347';
|
140
111
|
|
141
112
|
if (apiVersion !== workerVersion) {
|
142
|
-
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.");
|
143
128
|
}
|
144
129
|
|
145
130
|
var docId = docParams.docId;
|
146
131
|
var docBaseUrl = docParams.docBaseUrl;
|
147
|
-
var workerHandlerName = docParams.docId +
|
132
|
+
var workerHandlerName = docParams.docId + "_worker";
|
148
133
|
var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);
|
149
134
|
handler.postMessageTransfers = docParams.postMessageTransfers;
|
150
135
|
|
151
136
|
function ensureNotTerminated() {
|
152
137
|
if (terminated) {
|
153
|
-
throw new Error(
|
138
|
+
throw new Error("Worker was terminated");
|
154
139
|
}
|
155
140
|
}
|
156
141
|
|
@@ -164,73 +149,31 @@ var WorkerMessageHandler = {
|
|
164
149
|
WorkerTasks.splice(i, 1);
|
165
150
|
}
|
166
151
|
|
167
|
-
function loadDocument(
|
168
|
-
|
169
|
-
|
152
|
+
async function loadDocument(recoveryMode) {
|
153
|
+
await pdfManager.ensureDoc("checkHeader");
|
154
|
+
await pdfManager.ensureDoc("parseStartXRef");
|
155
|
+
await pdfManager.ensureDoc("parse", [recoveryMode]);
|
170
156
|
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
case 0:
|
181
|
-
_context.next = 2;
|
182
|
-
return pdfManager.ensureDoc('checkHeader');
|
183
|
-
|
184
|
-
case 2:
|
185
|
-
_context.next = 4;
|
186
|
-
return pdfManager.ensureDoc('parseStartXRef');
|
187
|
-
|
188
|
-
case 4:
|
189
|
-
_context.next = 6;
|
190
|
-
return pdfManager.ensureDoc('parse', [recoveryMode]);
|
191
|
-
|
192
|
-
case 6:
|
193
|
-
if (recoveryMode) {
|
194
|
-
_context.next = 9;
|
195
|
-
break;
|
196
|
-
}
|
197
|
-
|
198
|
-
_context.next = 9;
|
199
|
-
return pdfManager.ensureDoc('checkFirstPage');
|
200
|
-
|
201
|
-
case 9:
|
202
|
-
_context.next = 11;
|
203
|
-
return Promise.all([pdfManager.ensureDoc('numPages'), pdfManager.ensureDoc('fingerprint')]);
|
204
|
-
|
205
|
-
case 11:
|
206
|
-
_ref4 = _context.sent;
|
207
|
-
_ref5 = _slicedToArray(_ref4, 2);
|
208
|
-
numPages = _ref5[0];
|
209
|
-
fingerprint = _ref5[1];
|
210
|
-
return _context.abrupt("return", {
|
211
|
-
numPages: numPages,
|
212
|
-
fingerprint: fingerprint
|
213
|
-
});
|
214
|
-
|
215
|
-
case 16:
|
216
|
-
case "end":
|
217
|
-
return _context.stop();
|
218
|
-
}
|
219
|
-
}
|
220
|
-
}, _callee);
|
221
|
-
}));
|
222
|
-
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
|
+
};
|
223
166
|
}
|
224
167
|
|
225
168
|
function getPdfManager(data, evaluatorOptions) {
|
226
169
|
var pdfManagerCapability = (0, _util.createPromiseCapability)();
|
227
|
-
|
170
|
+
let newPdfManager;
|
228
171
|
var source = data.source;
|
229
172
|
|
230
173
|
if (source.data) {
|
231
174
|
try {
|
232
|
-
|
233
|
-
pdfManagerCapability.resolve(
|
175
|
+
newPdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);
|
176
|
+
pdfManagerCapability.resolve(newPdfManager);
|
234
177
|
} catch (ex) {
|
235
178
|
pdfManagerCapability.reject(ex);
|
236
179
|
}
|
@@ -255,37 +198,37 @@ var WorkerMessageHandler = {
|
|
255
198
|
}
|
256
199
|
|
257
200
|
var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;
|
258
|
-
|
201
|
+
newPdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {
|
259
202
|
msgHandler: handler,
|
260
203
|
password: source.password,
|
261
204
|
length: fullRequest.contentLength,
|
262
|
-
disableAutoFetch
|
205
|
+
disableAutoFetch,
|
263
206
|
rangeChunkSize: source.rangeChunkSize
|
264
207
|
}, evaluatorOptions, docBaseUrl);
|
265
208
|
|
266
|
-
for (
|
267
|
-
|
209
|
+
for (let i = 0; i < cachedChunks.length; i++) {
|
210
|
+
newPdfManager.sendProgressiveData(cachedChunks[i]);
|
268
211
|
}
|
269
212
|
|
270
213
|
cachedChunks = [];
|
271
|
-
pdfManagerCapability.resolve(
|
214
|
+
pdfManagerCapability.resolve(newPdfManager);
|
272
215
|
cancelXHRs = null;
|
273
|
-
})
|
216
|
+
}).catch(function (reason) {
|
274
217
|
pdfManagerCapability.reject(reason);
|
275
218
|
cancelXHRs = null;
|
276
219
|
});
|
277
220
|
var loaded = 0;
|
278
221
|
|
279
|
-
var flushChunks = function
|
222
|
+
var flushChunks = function () {
|
280
223
|
var pdfFile = (0, _util.arraysToBytes)(cachedChunks);
|
281
224
|
|
282
225
|
if (source.length && pdfFile.length !== source.length) {
|
283
|
-
(0, _util.warn)(
|
226
|
+
(0, _util.warn)("reported HTTP length is different from actual");
|
284
227
|
}
|
285
228
|
|
286
229
|
try {
|
287
|
-
|
288
|
-
pdfManagerCapability.resolve(
|
230
|
+
newPdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);
|
231
|
+
pdfManagerCapability.resolve(newPdfManager);
|
289
232
|
} catch (ex) {
|
290
233
|
pdfManagerCapability.reject(ex);
|
291
234
|
}
|
@@ -294,12 +237,15 @@ var WorkerMessageHandler = {
|
|
294
237
|
};
|
295
238
|
|
296
239
|
var readPromise = new Promise(function (resolve, reject) {
|
297
|
-
var readChunk = function
|
240
|
+
var readChunk = function ({
|
241
|
+
value,
|
242
|
+
done
|
243
|
+
}) {
|
298
244
|
try {
|
299
245
|
ensureNotTerminated();
|
300
246
|
|
301
|
-
if (
|
302
|
-
if (!
|
247
|
+
if (done) {
|
248
|
+
if (!newPdfManager) {
|
303
249
|
flushChunks();
|
304
250
|
}
|
305
251
|
|
@@ -307,20 +253,19 @@ var WorkerMessageHandler = {
|
|
307
253
|
return;
|
308
254
|
}
|
309
255
|
|
310
|
-
|
311
|
-
loaded += (0, _util.arrayByteLength)(data);
|
256
|
+
loaded += (0, _util.arrayByteLength)(value);
|
312
257
|
|
313
258
|
if (!fullRequest.isStreamingSupported) {
|
314
|
-
handler.send(
|
315
|
-
loaded
|
259
|
+
handler.send("DocProgress", {
|
260
|
+
loaded,
|
316
261
|
total: Math.max(loaded, fullRequest.contentLength || 0)
|
317
262
|
});
|
318
263
|
}
|
319
264
|
|
320
|
-
if (
|
321
|
-
|
265
|
+
if (newPdfManager) {
|
266
|
+
newPdfManager.sendProgressiveData(value);
|
322
267
|
} else {
|
323
|
-
cachedChunks.push(
|
268
|
+
cachedChunks.push(value);
|
324
269
|
}
|
325
270
|
|
326
271
|
fullRequest.read().then(readChunk, reject);
|
@@ -331,13 +276,13 @@ var WorkerMessageHandler = {
|
|
331
276
|
|
332
277
|
fullRequest.read().then(readChunk, reject);
|
333
278
|
});
|
334
|
-
readPromise
|
279
|
+
readPromise.catch(function (e) {
|
335
280
|
pdfManagerCapability.reject(e);
|
336
281
|
cancelXHRs = null;
|
337
282
|
});
|
338
283
|
|
339
|
-
cancelXHRs = function
|
340
|
-
pdfStream.cancelAllRequests(
|
284
|
+
cancelXHRs = function (reason) {
|
285
|
+
pdfStream.cancelAllRequests(reason);
|
341
286
|
};
|
342
287
|
|
343
288
|
return pdfManagerCapability.promise;
|
@@ -346,43 +291,41 @@ var WorkerMessageHandler = {
|
|
346
291
|
function setupDoc(data) {
|
347
292
|
function onSuccess(doc) {
|
348
293
|
ensureNotTerminated();
|
349
|
-
handler.send(
|
294
|
+
handler.send("GetDoc", {
|
350
295
|
pdfInfo: doc
|
351
296
|
});
|
352
297
|
}
|
353
298
|
|
354
|
-
function onFailure(
|
299
|
+
function onFailure(ex) {
|
355
300
|
ensureNotTerminated();
|
356
301
|
|
357
|
-
if (
|
358
|
-
var task = new WorkerTask(
|
302
|
+
if (ex instanceof _util.PasswordException) {
|
303
|
+
var task = new WorkerTask(`PasswordException: response ${ex.code}`);
|
359
304
|
startWorkerTask(task);
|
360
|
-
handler.sendWithPromise(
|
305
|
+
handler.sendWithPromise("PasswordRequest", ex).then(function ({
|
306
|
+
password
|
307
|
+
}) {
|
361
308
|
finishWorkerTask(task);
|
362
|
-
pdfManager.updatePassword(
|
309
|
+
pdfManager.updatePassword(password);
|
363
310
|
pdfManagerReady();
|
364
|
-
})
|
311
|
+
}).catch(function () {
|
365
312
|
finishWorkerTask(task);
|
366
|
-
handler.send(
|
367
|
-
}
|
368
|
-
} else if (
|
369
|
-
handler.send(
|
370
|
-
} else if (e instanceof _util.MissingPDFException) {
|
371
|
-
handler.send('MissingPDF', e);
|
372
|
-
} else if (e instanceof _util.UnexpectedResponseException) {
|
373
|
-
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);
|
374
317
|
} else {
|
375
|
-
handler.send(
|
318
|
+
handler.send("DocException", new _util.UnknownErrorException(ex.message, ex.toString()));
|
376
319
|
}
|
377
320
|
}
|
378
321
|
|
379
322
|
function pdfManagerReady() {
|
380
323
|
ensureNotTerminated();
|
381
|
-
loadDocument(false).then(onSuccess, function
|
324
|
+
loadDocument(false).then(onSuccess, function (reason) {
|
382
325
|
ensureNotTerminated();
|
383
326
|
|
384
|
-
if (!(
|
385
|
-
onFailure(
|
327
|
+
if (!(reason instanceof _core_utils.XRefParseException)) {
|
328
|
+
onFailure(reason);
|
386
329
|
return;
|
387
330
|
}
|
388
331
|
|
@@ -391,165 +334,202 @@ var WorkerMessageHandler = {
|
|
391
334
|
ensureNotTerminated();
|
392
335
|
loadDocument(true).then(onSuccess, onFailure);
|
393
336
|
});
|
394
|
-
}
|
337
|
+
});
|
395
338
|
}
|
396
339
|
|
397
340
|
ensureNotTerminated();
|
398
341
|
var evaluatorOptions = {
|
399
|
-
forceDataSchema: data.disableCreateObjectURL,
|
400
342
|
maxImageSize: data.maxImageSize,
|
401
343
|
disableFontFace: data.disableFontFace,
|
402
|
-
nativeImageDecoderSupport: data.nativeImageDecoderSupport,
|
403
344
|
ignoreErrors: data.ignoreErrors,
|
404
|
-
isEvalSupported: data.isEvalSupported
|
345
|
+
isEvalSupported: data.isEvalSupported,
|
346
|
+
fontExtraProperties: data.fontExtraProperties
|
405
347
|
};
|
406
348
|
getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {
|
407
349
|
if (terminated) {
|
408
|
-
newPdfManager.terminate();
|
409
|
-
throw new Error(
|
350
|
+
newPdfManager.terminate(new _util.AbortException("Worker was terminated."));
|
351
|
+
throw new Error("Worker was terminated");
|
410
352
|
}
|
411
353
|
|
412
354
|
pdfManager = newPdfManager;
|
413
355
|
pdfManager.onLoadedStream().then(function (stream) {
|
414
|
-
handler.send(
|
356
|
+
handler.send("DataLoaded", {
|
415
357
|
length: stream.bytes.byteLength
|
416
358
|
});
|
417
359
|
});
|
418
360
|
}).then(pdfManagerReady, onFailure);
|
419
361
|
}
|
420
362
|
|
421
|
-
handler.on(
|
363
|
+
handler.on("GetPage", function wphSetupGetPage(data) {
|
422
364
|
return pdfManager.getPage(data.pageIndex).then(function (page) {
|
423
|
-
return Promise.all([pdfManager.ensure(page,
|
424
|
-
var _ref2 = _slicedToArray(_ref, 4),
|
425
|
-
rotate = _ref2[0],
|
426
|
-
ref = _ref2[1],
|
427
|
-
userUnit = _ref2[2],
|
428
|
-
view = _ref2[3];
|
429
|
-
|
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]) {
|
430
366
|
return {
|
431
|
-
rotate
|
432
|
-
ref
|
433
|
-
userUnit
|
434
|
-
view
|
367
|
+
rotate,
|
368
|
+
ref,
|
369
|
+
userUnit,
|
370
|
+
view
|
435
371
|
};
|
436
372
|
});
|
437
373
|
});
|
438
374
|
});
|
439
|
-
handler.on(
|
440
|
-
|
375
|
+
handler.on("GetPageIndex", function wphSetupGetPageIndex({
|
376
|
+
ref
|
377
|
+
}) {
|
378
|
+
const pageRef = _primitives.Ref.get(ref.num, ref.gen);
|
441
379
|
|
442
|
-
|
443
|
-
|
380
|
+
return pdfManager.ensureCatalog("getPageIndex", [pageRef]);
|
381
|
+
});
|
382
|
+
handler.on("GetDestinations", function wphSetupGetDestinations(data) {
|
383
|
+
return pdfManager.ensureCatalog("destinations");
|
444
384
|
});
|
445
|
-
handler.on(
|
446
|
-
return pdfManager.ensureCatalog(
|
385
|
+
handler.on("GetDestination", function wphSetupGetDestination(data) {
|
386
|
+
return pdfManager.ensureCatalog("getDestination", [data.id]);
|
447
387
|
});
|
448
|
-
handler.on(
|
449
|
-
return pdfManager.ensureCatalog(
|
388
|
+
handler.on("GetPageLabels", function wphSetupGetPageLabels(data) {
|
389
|
+
return pdfManager.ensureCatalog("pageLabels");
|
450
390
|
});
|
451
|
-
handler.on(
|
452
|
-
return pdfManager.ensureCatalog(
|
391
|
+
handler.on("GetPageLayout", function wphSetupGetPageLayout(data) {
|
392
|
+
return pdfManager.ensureCatalog("pageLayout");
|
453
393
|
});
|
454
|
-
handler.on(
|
455
|
-
return pdfManager.ensureCatalog(
|
394
|
+
handler.on("GetPageMode", function wphSetupGetPageMode(data) {
|
395
|
+
return pdfManager.ensureCatalog("pageMode");
|
456
396
|
});
|
457
|
-
handler.on(
|
458
|
-
return pdfManager.ensureCatalog(
|
397
|
+
handler.on("GetViewerPreferences", function (data) {
|
398
|
+
return pdfManager.ensureCatalog("viewerPreferences");
|
459
399
|
});
|
460
|
-
handler.on(
|
461
|
-
return pdfManager.ensureCatalog(
|
400
|
+
handler.on("GetOpenAction", function (data) {
|
401
|
+
return pdfManager.ensureCatalog("openAction");
|
462
402
|
});
|
463
|
-
handler.on(
|
464
|
-
return pdfManager.ensureCatalog(
|
403
|
+
handler.on("GetAttachments", function wphSetupGetAttachments(data) {
|
404
|
+
return pdfManager.ensureCatalog("attachments");
|
465
405
|
});
|
466
|
-
handler.on(
|
467
|
-
return pdfManager.ensureCatalog(
|
406
|
+
handler.on("GetJavaScript", function wphSetupGetJavaScript(data) {
|
407
|
+
return pdfManager.ensureCatalog("javaScript");
|
468
408
|
});
|
469
|
-
handler.on(
|
470
|
-
return pdfManager.ensureCatalog(
|
409
|
+
handler.on("GetOutline", function wphSetupGetOutline(data) {
|
410
|
+
return pdfManager.ensureCatalog("documentOutline");
|
471
411
|
});
|
472
|
-
handler.on(
|
473
|
-
return pdfManager.ensureCatalog(
|
412
|
+
handler.on("GetOptionalContentConfig", function (data) {
|
413
|
+
return pdfManager.ensureCatalog("optionalContentConfig");
|
474
414
|
});
|
475
|
-
handler.on(
|
476
|
-
return pdfManager.ensureCatalog(
|
415
|
+
handler.on("GetPermissions", function (data) {
|
416
|
+
return pdfManager.ensureCatalog("permissions");
|
477
417
|
});
|
478
|
-
handler.on(
|
479
|
-
return Promise.all([pdfManager.ensureDoc(
|
418
|
+
handler.on("GetMetadata", function wphSetupGetMetadata(data) {
|
419
|
+
return Promise.all([pdfManager.ensureDoc("documentInfo"), pdfManager.ensureCatalog("metadata")]);
|
480
420
|
});
|
481
|
-
handler.on(
|
421
|
+
handler.on("GetData", function wphSetupGetData(data) {
|
482
422
|
pdfManager.requestLoadedStream();
|
483
423
|
return pdfManager.onLoadedStream().then(function (stream) {
|
484
424
|
return stream.bytes;
|
485
425
|
});
|
486
426
|
});
|
487
|
-
handler.on(
|
488
|
-
return pdfManager.
|
427
|
+
handler.on("GetStats", function wphSetupGetStats(data) {
|
428
|
+
return pdfManager.ensureXRef("stats");
|
489
429
|
});
|
490
|
-
handler.on(
|
491
|
-
|
492
|
-
|
430
|
+
handler.on("GetAnnotations", function ({
|
431
|
+
pageIndex,
|
432
|
+
intent
|
433
|
+
}) {
|
493
434
|
return pdfManager.getPage(pageIndex).then(function (page) {
|
494
435
|
return page.getAnnotationsData(intent);
|
495
436
|
});
|
496
437
|
});
|
497
|
-
handler.on(
|
438
|
+
handler.on("SaveDocument", function ({
|
439
|
+
numPages,
|
440
|
+
annotationStorage,
|
441
|
+
filename
|
442
|
+
}) {
|
443
|
+
pdfManager.requestLoadedStream();
|
444
|
+
const promises = [pdfManager.onLoadedStream()];
|
445
|
+
const document = pdfManager.pdfDocument;
|
446
|
+
|
447
|
+
for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {
|
448
|
+
promises.push(pdfManager.getPage(pageIndex).then(function (page) {
|
449
|
+
const task = new WorkerTask(`Save: page ${pageIndex}`);
|
450
|
+
return page.save(handler, task, annotationStorage);
|
451
|
+
}));
|
452
|
+
}
|
453
|
+
|
454
|
+
return Promise.all(promises).then(([stream, ...refs]) => {
|
455
|
+
let newRefs = [];
|
456
|
+
|
457
|
+
for (const ref of refs) {
|
458
|
+
newRefs = ref.filter(x => x !== null).reduce((a, b) => a.concat(b), newRefs);
|
459
|
+
}
|
460
|
+
|
461
|
+
if (newRefs.length === 0) {
|
462
|
+
return stream.bytes;
|
463
|
+
}
|
464
|
+
|
465
|
+
const xref = document.xref;
|
466
|
+
let newXrefInfo = Object.create(null);
|
467
|
+
|
468
|
+
if (xref.trailer) {
|
469
|
+
const _info = Object.create(null);
|
470
|
+
|
471
|
+
const xrefInfo = xref.trailer.get("Info") || null;
|
472
|
+
|
473
|
+
if (xrefInfo) {
|
474
|
+
xrefInfo.forEach((key, value) => {
|
475
|
+
if ((0, _util.isString)(key) && (0, _util.isString)(value)) {
|
476
|
+
_info[key] = (0, _util.stringToPDFString)(value);
|
477
|
+
}
|
478
|
+
});
|
479
|
+
}
|
480
|
+
|
481
|
+
newXrefInfo = {
|
482
|
+
rootRef: xref.trailer.getRaw("Root") || null,
|
483
|
+
encrypt: xref.trailer.getRaw("Encrypt") || null,
|
484
|
+
newRef: xref.getNewRef(),
|
485
|
+
infoRef: xref.trailer.getRaw("Info") || null,
|
486
|
+
info: _info,
|
487
|
+
fileIds: xref.trailer.getRaw("ID") || null,
|
488
|
+
startXRef: document.startXRef,
|
489
|
+
filename
|
490
|
+
};
|
491
|
+
}
|
492
|
+
|
493
|
+
xref.resetNewRef();
|
494
|
+
return (0, _writer.incrementalUpdate)(stream.bytes, newXrefInfo, newRefs);
|
495
|
+
});
|
496
|
+
});
|
497
|
+
handler.on("GetOperatorList", function wphSetupRenderPage(data, sink) {
|
498
498
|
var pageIndex = data.pageIndex;
|
499
499
|
pdfManager.getPage(pageIndex).then(function (page) {
|
500
|
-
var task = new WorkerTask(
|
500
|
+
var task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);
|
501
501
|
startWorkerTask(task);
|
502
|
-
|
502
|
+
const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
|
503
503
|
page.getOperatorList({
|
504
|
-
handler
|
505
|
-
|
504
|
+
handler,
|
505
|
+
sink,
|
506
|
+
task,
|
506
507
|
intent: data.intent,
|
507
|
-
renderInteractiveForms: data.renderInteractiveForms
|
508
|
-
|
508
|
+
renderInteractiveForms: data.renderInteractiveForms,
|
509
|
+
annotationStorage: data.annotationStorage
|
510
|
+
}).then(function (operatorListInfo) {
|
509
511
|
finishWorkerTask(task);
|
510
512
|
|
511
513
|
if (start) {
|
512
|
-
(0, _util.info)(
|
514
|
+
(0, _util.info)(`page=${pageIndex + 1} - getOperatorList: time=` + `${Date.now() - start}ms, len=${operatorListInfo.length}`);
|
513
515
|
}
|
514
|
-
|
516
|
+
|
517
|
+
sink.close();
|
518
|
+
}, function (reason) {
|
515
519
|
finishWorkerTask(task);
|
516
520
|
|
517
521
|
if (task.terminated) {
|
518
522
|
return;
|
519
523
|
}
|
520
524
|
|
521
|
-
handler.send(
|
522
|
-
featureId: _util.UNSUPPORTED_FEATURES.
|
523
|
-
});
|
524
|
-
var minimumStackMessage = 'worker.js: while trying to getPage() and getOperatorList()';
|
525
|
-
var wrappedException;
|
526
|
-
|
527
|
-
if (typeof e === 'string') {
|
528
|
-
wrappedException = {
|
529
|
-
message: e,
|
530
|
-
stack: minimumStackMessage
|
531
|
-
};
|
532
|
-
} else if (_typeof(e) === 'object') {
|
533
|
-
wrappedException = {
|
534
|
-
message: e.message || e.toString(),
|
535
|
-
stack: e.stack || minimumStackMessage
|
536
|
-
};
|
537
|
-
} else {
|
538
|
-
wrappedException = {
|
539
|
-
message: 'Unknown exception type: ' + _typeof(e),
|
540
|
-
stack: minimumStackMessage
|
541
|
-
};
|
542
|
-
}
|
543
|
-
|
544
|
-
handler.send('PageError', {
|
545
|
-
pageIndex: pageIndex,
|
546
|
-
error: wrappedException,
|
547
|
-
intent: data.intent
|
525
|
+
handler.send("UnsupportedFeature", {
|
526
|
+
featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList
|
548
527
|
});
|
528
|
+
sink.error(reason);
|
549
529
|
});
|
550
530
|
});
|
551
531
|
}, this);
|
552
|
-
handler.on(
|
532
|
+
handler.on("GetTextContent", function wphExtractText(data, sink) {
|
553
533
|
var pageIndex = data.pageIndex;
|
554
534
|
|
555
535
|
sink.onPull = function (desiredSize) {};
|
@@ -557,20 +537,20 @@ var WorkerMessageHandler = {
|
|
557
537
|
sink.onCancel = function (reason) {};
|
558
538
|
|
559
539
|
pdfManager.getPage(pageIndex).then(function (page) {
|
560
|
-
var task = new WorkerTask(
|
540
|
+
var task = new WorkerTask("GetTextContent: page " + pageIndex);
|
561
541
|
startWorkerTask(task);
|
562
|
-
|
542
|
+
const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
|
563
543
|
page.extractTextContent({
|
564
|
-
handler
|
565
|
-
task
|
566
|
-
sink
|
544
|
+
handler,
|
545
|
+
task,
|
546
|
+
sink,
|
567
547
|
normalizeWhitespace: data.normalizeWhitespace,
|
568
548
|
combineTextItems: data.combineTextItems
|
569
549
|
}).then(function () {
|
570
550
|
finishWorkerTask(task);
|
571
551
|
|
572
552
|
if (start) {
|
573
|
-
(0, _util.info)(
|
553
|
+
(0, _util.info)(`page=${pageIndex + 1} - getTextContent: time=` + `${Date.now() - start}ms`);
|
574
554
|
}
|
575
555
|
|
576
556
|
sink.close();
|
@@ -582,30 +562,32 @@ var WorkerMessageHandler = {
|
|
582
562
|
}
|
583
563
|
|
584
564
|
sink.error(reason);
|
585
|
-
throw reason;
|
586
565
|
});
|
587
566
|
});
|
588
567
|
});
|
589
|
-
handler.on(
|
568
|
+
handler.on("FontFallback", function (data) {
|
590
569
|
return pdfManager.fontFallback(data.id, handler);
|
591
570
|
});
|
592
|
-
handler.on(
|
593
|
-
return pdfManager.cleanup();
|
571
|
+
handler.on("Cleanup", function wphCleanup(data) {
|
572
|
+
return pdfManager.cleanup(true);
|
594
573
|
});
|
595
|
-
handler.on(
|
574
|
+
handler.on("Terminate", function wphTerminate(data) {
|
596
575
|
terminated = true;
|
576
|
+
const waitOn = [];
|
597
577
|
|
598
578
|
if (pdfManager) {
|
599
|
-
pdfManager.terminate();
|
579
|
+
pdfManager.terminate(new _util.AbortException("Worker was terminated."));
|
580
|
+
const cleanupPromise = pdfManager.cleanup();
|
581
|
+
waitOn.push(cleanupPromise);
|
600
582
|
pdfManager = null;
|
583
|
+
} else {
|
584
|
+
(0, _primitives.clearPrimitiveCaches)();
|
601
585
|
}
|
602
586
|
|
603
587
|
if (cancelXHRs) {
|
604
|
-
cancelXHRs();
|
588
|
+
cancelXHRs(new _util.AbortException("Worker was terminated."));
|
605
589
|
}
|
606
590
|
|
607
|
-
(0, _primitives.clearPrimitiveCaches)();
|
608
|
-
var waitOn = [];
|
609
591
|
WorkerTasks.forEach(function (task) {
|
610
592
|
waitOn.push(task.finished);
|
611
593
|
task.terminate();
|
@@ -615,24 +597,27 @@ var WorkerMessageHandler = {
|
|
615
597
|
handler = null;
|
616
598
|
});
|
617
599
|
});
|
618
|
-
handler.on(
|
600
|
+
handler.on("Ready", function wphReady(data) {
|
619
601
|
setupDoc(docParams);
|
620
602
|
docParams = null;
|
621
603
|
});
|
622
604
|
return workerHandlerName;
|
623
|
-
}
|
624
|
-
|
625
|
-
|
605
|
+
}
|
606
|
+
|
607
|
+
static initializeFromPort(port) {
|
608
|
+
var handler = new _message_handler.MessageHandler("worker", "main", port);
|
626
609
|
WorkerMessageHandler.setup(handler, port);
|
627
|
-
handler.send(
|
610
|
+
handler.send("ready", null);
|
628
611
|
}
|
629
|
-
|
612
|
+
|
613
|
+
}
|
614
|
+
|
630
615
|
exports.WorkerMessageHandler = WorkerMessageHandler;
|
631
616
|
|
632
617
|
function isMessagePort(maybePort) {
|
633
|
-
return typeof maybePort.postMessage ===
|
618
|
+
return typeof maybePort.postMessage === "function" && "onmessage" in maybePort;
|
634
619
|
}
|
635
620
|
|
636
|
-
if (typeof window ===
|
621
|
+
if (typeof window === "undefined" && !_is_node.isNodeJS && typeof self !== "undefined" && isMessagePort(self)) {
|
637
622
|
WorkerMessageHandler.initializeFromPort(self);
|
638
623
|
}
|