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
@@ -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.
|
@@ -21,327 +21,341 @@
|
|
21
21
|
*/
|
22
22
|
"use strict";
|
23
23
|
|
24
|
-
var _util = require("../../shared/util");
|
24
|
+
var _util = require("../../shared/util.js");
|
25
25
|
|
26
|
-
var _api = require("../../display/api");
|
26
|
+
var _api = require("../../display/api.js");
|
27
27
|
|
28
|
-
var _message_handler = require("../../shared/message_handler");
|
28
|
+
var _message_handler = require("../../shared/message_handler.js");
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
describe('message_handler', function () {
|
30
|
+
describe("message_handler", function () {
|
33
31
|
function sleep(ticks) {
|
34
|
-
return Promise.resolve().then(
|
32
|
+
return Promise.resolve().then(() => {
|
35
33
|
return ticks && sleep(ticks - 1);
|
36
34
|
});
|
37
35
|
}
|
38
36
|
|
39
|
-
describe(
|
40
|
-
it(
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
expect(
|
45
|
-
expect(
|
37
|
+
describe("sendWithStream", function () {
|
38
|
+
it("should return a ReadableStream", function () {
|
39
|
+
const port = new _api.LoopbackPort();
|
40
|
+
const messageHandler1 = new _message_handler.MessageHandler("main", "worker", port);
|
41
|
+
const readable = messageHandler1.sendWithStream("fakeHandler");
|
42
|
+
expect(typeof readable).toEqual("object");
|
43
|
+
expect(typeof readable.getReader).toEqual("function");
|
46
44
|
});
|
47
|
-
it(
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
messageHandler2.on(
|
45
|
+
it("should read using a reader", function (done) {
|
46
|
+
let log = "";
|
47
|
+
const port = new _api.LoopbackPort();
|
48
|
+
const messageHandler1 = new _message_handler.MessageHandler("main", "worker", port);
|
49
|
+
const messageHandler2 = new _message_handler.MessageHandler("worker", "main", port);
|
50
|
+
messageHandler2.on("fakeHandler", (data, sink) => {
|
53
51
|
sink.onPull = function () {
|
54
|
-
log +=
|
52
|
+
log += "p";
|
55
53
|
};
|
56
54
|
|
57
55
|
sink.onCancel = function (reason) {
|
58
|
-
log +=
|
56
|
+
log += "c";
|
59
57
|
};
|
60
58
|
|
61
|
-
sink.ready.then(
|
62
|
-
sink.enqueue(
|
59
|
+
sink.ready.then(() => {
|
60
|
+
sink.enqueue("hi");
|
63
61
|
return sink.ready;
|
64
|
-
}).then(
|
62
|
+
}).then(() => {
|
65
63
|
sink.close();
|
66
64
|
});
|
67
65
|
return sleep(5);
|
68
66
|
});
|
69
|
-
|
67
|
+
const readable = messageHandler1.sendWithStream("fakeHandler", {}, {
|
70
68
|
highWaterMark: 1,
|
71
|
-
|
69
|
+
|
70
|
+
size() {
|
72
71
|
return 1;
|
73
72
|
}
|
73
|
+
|
74
74
|
});
|
75
|
-
|
76
|
-
sleep(10).then(
|
77
|
-
expect(log).toEqual(
|
75
|
+
const reader = readable.getReader();
|
76
|
+
sleep(10).then(() => {
|
77
|
+
expect(log).toEqual("");
|
78
78
|
return reader.read();
|
79
|
-
}).then(
|
80
|
-
expect(log).toEqual(
|
81
|
-
expect(result.value).toEqual(
|
79
|
+
}).then(result => {
|
80
|
+
expect(log).toEqual("p");
|
81
|
+
expect(result.value).toEqual("hi");
|
82
82
|
expect(result.done).toEqual(false);
|
83
83
|
return sleep(10);
|
84
|
-
}).then(
|
84
|
+
}).then(() => {
|
85
85
|
return reader.read();
|
86
|
-
}).then(
|
86
|
+
}).then(result => {
|
87
87
|
expect(result.value).toEqual(undefined);
|
88
88
|
expect(result.done).toEqual(true);
|
89
89
|
done();
|
90
90
|
});
|
91
91
|
});
|
92
|
-
it(
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
messageHandler2.on(
|
92
|
+
it("should not read any data when cancelled", function (done) {
|
93
|
+
let log = "";
|
94
|
+
const port = new _api.LoopbackPort();
|
95
|
+
const messageHandler2 = new _message_handler.MessageHandler("worker", "main", port);
|
96
|
+
messageHandler2.on("fakeHandler", (data, sink) => {
|
97
97
|
sink.onPull = function () {
|
98
|
-
log +=
|
98
|
+
log += "p";
|
99
99
|
};
|
100
100
|
|
101
101
|
sink.onCancel = function (reason) {
|
102
|
-
log +=
|
102
|
+
log += "c";
|
103
103
|
};
|
104
104
|
|
105
|
-
log +=
|
106
|
-
sink.ready.then(
|
107
|
-
log +=
|
105
|
+
log += "0";
|
106
|
+
sink.ready.then(() => {
|
107
|
+
log += "1";
|
108
108
|
sink.enqueue([1, 2, 3, 4], 4);
|
109
109
|
return sink.ready;
|
110
|
-
}).then(
|
111
|
-
log +=
|
110
|
+
}).then(() => {
|
111
|
+
log += "2";
|
112
112
|
sink.enqueue([5, 6, 7, 8], 4);
|
113
113
|
return sink.ready;
|
114
|
-
}).then(
|
115
|
-
log +=
|
114
|
+
}).then(() => {
|
115
|
+
log += "3";
|
116
116
|
sink.close();
|
117
|
-
},
|
118
|
-
log +=
|
117
|
+
}, () => {
|
118
|
+
log += "4";
|
119
119
|
});
|
120
120
|
});
|
121
|
-
|
122
|
-
|
121
|
+
const messageHandler1 = new _message_handler.MessageHandler("main", "worker", port);
|
122
|
+
const readable = messageHandler1.sendWithStream("fakeHandler", {}, {
|
123
123
|
highWaterMark: 4,
|
124
|
-
|
124
|
+
|
125
|
+
size(arr) {
|
125
126
|
return arr.length;
|
126
127
|
}
|
128
|
+
|
127
129
|
});
|
128
|
-
|
129
|
-
sleep(10).then(
|
130
|
-
expect(log).toEqual(
|
130
|
+
const reader = readable.getReader();
|
131
|
+
sleep(10).then(() => {
|
132
|
+
expect(log).toEqual("01");
|
131
133
|
return reader.read();
|
132
|
-
}).then(
|
134
|
+
}).then(result => {
|
133
135
|
expect(result.value).toEqual([1, 2, 3, 4]);
|
134
136
|
expect(result.done).toEqual(false);
|
135
137
|
return sleep(10);
|
136
|
-
}).then(
|
137
|
-
expect(log).toEqual(
|
138
|
-
return reader.cancel();
|
139
|
-
}).then(
|
140
|
-
expect(log).toEqual(
|
138
|
+
}).then(() => {
|
139
|
+
expect(log).toEqual("01p2");
|
140
|
+
return reader.cancel(new _util.AbortException("reader cancelled."));
|
141
|
+
}).then(() => {
|
142
|
+
expect(log).toEqual("01p2c4");
|
141
143
|
done();
|
142
144
|
});
|
143
145
|
});
|
144
|
-
it(
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
messageHandler2.on(
|
146
|
+
it("should not read when errored", function (done) {
|
147
|
+
let log = "";
|
148
|
+
const port = new _api.LoopbackPort();
|
149
|
+
const messageHandler2 = new _message_handler.MessageHandler("worker", "main", port);
|
150
|
+
messageHandler2.on("fakeHandler", (data, sink) => {
|
149
151
|
sink.onPull = function () {
|
150
|
-
log +=
|
152
|
+
log += "p";
|
151
153
|
};
|
152
154
|
|
153
155
|
sink.onCancel = function (reason) {
|
154
|
-
log +=
|
156
|
+
log += "c";
|
155
157
|
};
|
156
158
|
|
157
|
-
|
159
|
+
log += "0";
|
160
|
+
sink.ready.then(() => {
|
161
|
+
log += "1";
|
158
162
|
sink.enqueue([1, 2, 3, 4], 4);
|
159
163
|
return sink.ready;
|
160
|
-
}).then(
|
161
|
-
log +=
|
162
|
-
sink.error(
|
164
|
+
}).then(() => {
|
165
|
+
log += "e";
|
166
|
+
sink.error(new Error("should not read when errored"));
|
163
167
|
});
|
164
168
|
});
|
165
|
-
|
166
|
-
|
169
|
+
const messageHandler1 = new _message_handler.MessageHandler("main", "worker", port);
|
170
|
+
const readable = messageHandler1.sendWithStream("fakeHandler", {}, {
|
167
171
|
highWaterMark: 4,
|
168
|
-
|
172
|
+
|
173
|
+
size(arr) {
|
169
174
|
return arr.length;
|
170
175
|
}
|
176
|
+
|
171
177
|
});
|
172
|
-
|
173
|
-
sleep(10).then(
|
174
|
-
expect(log).toEqual(
|
178
|
+
const reader = readable.getReader();
|
179
|
+
sleep(10).then(() => {
|
180
|
+
expect(log).toEqual("01");
|
175
181
|
return reader.read();
|
176
|
-
}).then(
|
182
|
+
}).then(result => {
|
177
183
|
expect(result.value).toEqual([1, 2, 3, 4]);
|
178
184
|
expect(result.done).toEqual(false);
|
179
185
|
return reader.read();
|
180
|
-
}).
|
181
|
-
expect(
|
186
|
+
}).catch(reason => {
|
187
|
+
expect(log).toEqual("01pe");
|
188
|
+
expect(reason instanceof _util.UnknownErrorException).toEqual(true);
|
189
|
+
expect(reason.message).toEqual("should not read when errored");
|
182
190
|
done();
|
183
191
|
});
|
184
192
|
});
|
185
|
-
it(
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
messageHandler2.on(
|
193
|
+
it("should read data with blocking promise", function (done) {
|
194
|
+
let log = "";
|
195
|
+
const port = new _api.LoopbackPort();
|
196
|
+
const messageHandler2 = new _message_handler.MessageHandler("worker", "main", port);
|
197
|
+
messageHandler2.on("fakeHandler", (data, sink) => {
|
190
198
|
sink.onPull = function () {
|
191
|
-
log +=
|
199
|
+
log += "p";
|
192
200
|
};
|
193
201
|
|
194
202
|
sink.onCancel = function (reason) {
|
195
|
-
log +=
|
203
|
+
log += "c";
|
196
204
|
};
|
197
205
|
|
198
|
-
log +=
|
199
|
-
sink.ready.then(
|
200
|
-
log +=
|
206
|
+
log += "0";
|
207
|
+
sink.ready.then(() => {
|
208
|
+
log += "1";
|
201
209
|
sink.enqueue([1, 2, 3, 4], 4);
|
202
210
|
return sink.ready;
|
203
|
-
}).then(
|
204
|
-
log +=
|
211
|
+
}).then(() => {
|
212
|
+
log += "2";
|
205
213
|
sink.enqueue([5, 6, 7, 8], 4);
|
206
214
|
return sink.ready;
|
207
|
-
}).then(
|
215
|
+
}).then(() => {
|
208
216
|
sink.close();
|
209
217
|
});
|
210
218
|
});
|
211
|
-
|
212
|
-
|
219
|
+
const messageHandler1 = new _message_handler.MessageHandler("main", "worker", port);
|
220
|
+
const readable = messageHandler1.sendWithStream("fakeHandler", {}, {
|
213
221
|
highWaterMark: 4,
|
214
|
-
|
222
|
+
|
223
|
+
size(arr) {
|
215
224
|
return arr.length;
|
216
225
|
}
|
226
|
+
|
217
227
|
});
|
218
|
-
|
219
|
-
sleep(10).then(
|
220
|
-
expect(log).toEqual(
|
228
|
+
const reader = readable.getReader();
|
229
|
+
sleep(10).then(() => {
|
230
|
+
expect(log).toEqual("01");
|
221
231
|
return reader.read();
|
222
|
-
}).then(
|
232
|
+
}).then(result => {
|
223
233
|
expect(result.value).toEqual([1, 2, 3, 4]);
|
224
234
|
expect(result.done).toEqual(false);
|
225
235
|
return sleep(10);
|
226
|
-
}).then(
|
227
|
-
expect(log).toEqual(
|
236
|
+
}).then(() => {
|
237
|
+
expect(log).toEqual("01p2");
|
228
238
|
return reader.read();
|
229
|
-
}).then(
|
239
|
+
}).then(result => {
|
230
240
|
expect(result.value).toEqual([5, 6, 7, 8]);
|
231
241
|
expect(result.done).toEqual(false);
|
232
242
|
return sleep(10);
|
233
|
-
}).then(
|
234
|
-
expect(log).toEqual(
|
243
|
+
}).then(() => {
|
244
|
+
expect(log).toEqual("01p2p");
|
235
245
|
return reader.read();
|
236
|
-
}).then(
|
246
|
+
}).then(result => {
|
237
247
|
expect(result.value).toEqual(undefined);
|
238
248
|
expect(result.done).toEqual(true);
|
239
249
|
done();
|
240
250
|
});
|
241
251
|
});
|
242
|
-
it(
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
messageHandler2.on(
|
252
|
+
it("should read data with blocking promise and buffer whole data" + " into stream", function (done) {
|
253
|
+
let log = "";
|
254
|
+
const port = new _api.LoopbackPort();
|
255
|
+
const messageHandler2 = new _message_handler.MessageHandler("worker", "main", port);
|
256
|
+
messageHandler2.on("fakeHandler", (data, sink) => {
|
247
257
|
sink.onPull = function () {
|
248
|
-
log +=
|
258
|
+
log += "p";
|
249
259
|
};
|
250
260
|
|
251
261
|
sink.onCancel = function (reason) {
|
252
|
-
log +=
|
262
|
+
log += "c";
|
253
263
|
};
|
254
264
|
|
255
|
-
log +=
|
256
|
-
sink.ready.then(
|
257
|
-
log +=
|
265
|
+
log += "0";
|
266
|
+
sink.ready.then(() => {
|
267
|
+
log += "1";
|
258
268
|
sink.enqueue([1, 2, 3, 4], 4);
|
259
269
|
return sink.ready;
|
260
|
-
}).then(
|
261
|
-
log +=
|
270
|
+
}).then(() => {
|
271
|
+
log += "2";
|
262
272
|
sink.enqueue([5, 6, 7, 8], 4);
|
263
273
|
return sink.ready;
|
264
|
-
}).then(
|
274
|
+
}).then(() => {
|
265
275
|
sink.close();
|
266
276
|
});
|
267
277
|
return sleep(10);
|
268
278
|
});
|
269
|
-
|
270
|
-
|
279
|
+
const messageHandler1 = new _message_handler.MessageHandler("main", "worker", port);
|
280
|
+
const readable = messageHandler1.sendWithStream("fakeHandler", {}, {
|
271
281
|
highWaterMark: 8,
|
272
|
-
|
282
|
+
|
283
|
+
size(arr) {
|
273
284
|
return arr.length;
|
274
285
|
}
|
286
|
+
|
275
287
|
});
|
276
|
-
|
277
|
-
sleep(10).then(
|
278
|
-
expect(log).toEqual(
|
288
|
+
const reader = readable.getReader();
|
289
|
+
sleep(10).then(() => {
|
290
|
+
expect(log).toEqual("012");
|
279
291
|
return reader.read();
|
280
|
-
}).then(
|
292
|
+
}).then(result => {
|
281
293
|
expect(result.value).toEqual([1, 2, 3, 4]);
|
282
294
|
expect(result.done).toEqual(false);
|
283
295
|
return sleep(10);
|
284
|
-
}).then(
|
285
|
-
expect(log).toEqual(
|
296
|
+
}).then(() => {
|
297
|
+
expect(log).toEqual("012p");
|
286
298
|
return reader.read();
|
287
|
-
}).then(
|
299
|
+
}).then(result => {
|
288
300
|
expect(result.value).toEqual([5, 6, 7, 8]);
|
289
301
|
expect(result.done).toEqual(false);
|
290
302
|
return sleep(10);
|
291
|
-
}).then(
|
292
|
-
expect(log).toEqual(
|
303
|
+
}).then(() => {
|
304
|
+
expect(log).toEqual("012p");
|
293
305
|
return reader.read();
|
294
|
-
}).then(
|
306
|
+
}).then(result => {
|
295
307
|
expect(result.value).toEqual(undefined);
|
296
308
|
expect(result.done).toEqual(true);
|
297
309
|
done();
|
298
310
|
});
|
299
311
|
});
|
300
|
-
it(
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
messageHandler2.on(
|
312
|
+
it("should ignore any pull after close is called", function (done) {
|
313
|
+
let log = "";
|
314
|
+
const port = new _api.LoopbackPort();
|
315
|
+
const capability = (0, _util.createPromiseCapability)();
|
316
|
+
const messageHandler2 = new _message_handler.MessageHandler("worker", "main", port);
|
317
|
+
messageHandler2.on("fakeHandler", (data, sink) => {
|
306
318
|
sink.onPull = function () {
|
307
|
-
log +=
|
319
|
+
log += "p";
|
308
320
|
};
|
309
321
|
|
310
322
|
sink.onCancel = function (reason) {
|
311
|
-
log +=
|
323
|
+
log += "c";
|
312
324
|
};
|
313
325
|
|
314
|
-
log +=
|
315
|
-
sink.ready.then(
|
316
|
-
log +=
|
326
|
+
log += "0";
|
327
|
+
sink.ready.then(() => {
|
328
|
+
log += "1";
|
317
329
|
sink.enqueue([1, 2, 3, 4], 4);
|
318
330
|
});
|
319
|
-
return capability.promise.then(
|
331
|
+
return capability.promise.then(() => {
|
320
332
|
sink.close();
|
321
333
|
});
|
322
334
|
});
|
323
|
-
|
324
|
-
|
335
|
+
const messageHandler1 = new _message_handler.MessageHandler("main", "worker", port);
|
336
|
+
const readable = messageHandler1.sendWithStream("fakeHandler", {}, {
|
325
337
|
highWaterMark: 10,
|
326
|
-
|
338
|
+
|
339
|
+
size(arr) {
|
327
340
|
return arr.length;
|
328
341
|
}
|
342
|
+
|
329
343
|
});
|
330
|
-
|
331
|
-
sleep(10).then(
|
332
|
-
expect(log).toEqual(
|
344
|
+
const reader = readable.getReader();
|
345
|
+
sleep(10).then(() => {
|
346
|
+
expect(log).toEqual("01");
|
333
347
|
capability.resolve();
|
334
|
-
return capability.promise.then(
|
348
|
+
return capability.promise.then(() => {
|
335
349
|
return reader.read();
|
336
350
|
});
|
337
|
-
}).then(
|
351
|
+
}).then(result => {
|
338
352
|
expect(result.value).toEqual([1, 2, 3, 4]);
|
339
353
|
expect(result.done).toEqual(false);
|
340
354
|
return sleep(10);
|
341
|
-
}).then(
|
342
|
-
expect(log).toEqual(
|
355
|
+
}).then(() => {
|
356
|
+
expect(log).toEqual("01");
|
343
357
|
return reader.read();
|
344
|
-
}).then(
|
358
|
+
}).then(result => {
|
345
359
|
expect(result.value).toEqual(undefined);
|
346
360
|
expect(result.done).toEqual(true);
|
347
361
|
done();
|