pdfjs-dist 2.3.200 → 2.4.456
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pdfjs-dist might be problematic. Click here for more details.
- package/README.md +4 -0
- package/bower.json +1 -1
- package/build/pdf.js +6499 -17971
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +22 -1
- package/build/pdf.worker.entry.js +5 -3
- package/build/pdf.worker.js +19303 -29896
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +22 -1
- package/es5/build/pdf.js +25473 -0
- package/es5/build/pdf.js.map +1 -0
- package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
- package/es5/build/pdf.worker.js +57878 -0
- package/es5/build/pdf.worker.js.map +1 -0
- package/es5/web/images/annotation-check.svg +11 -0
- package/es5/web/images/annotation-comment.svg +16 -0
- package/es5/web/images/annotation-help.svg +26 -0
- package/es5/web/images/annotation-insert.svg +10 -0
- package/es5/web/images/annotation-key.svg +11 -0
- package/es5/web/images/annotation-newparagraph.svg +11 -0
- package/es5/web/images/annotation-noicon.svg +7 -0
- package/es5/web/images/annotation-note.svg +42 -0
- package/es5/web/images/annotation-paragraph.svg +16 -0
- package/es5/web/images/loading-icon.gif +0 -0
- package/es5/web/images/shadow.png +0 -0
- package/es5/web/images/texture.png +0 -0
- package/es5/web/pdf_viewer.css +407 -0
- package/es5/web/pdf_viewer.js +7757 -0
- package/es5/web/pdf_viewer.js.map +1 -0
- package/image_decoders/pdf.image_decoders.js +1333 -4839
- package/image_decoders/pdf.image_decoders.js.map +1 -1
- package/image_decoders/pdf.image_decoders.min.js +22 -1
- package/lib/README.md +7 -0
- package/lib/core/annotation.js +683 -1066
- package/lib/core/arithmetic_decoder.js +81 -97
- package/lib/core/bidi.js +54 -46
- package/lib/core/ccitt.js +88 -81
- package/lib/core/ccitt_stream.js +15 -14
- package/lib/core/cff_parser.js +196 -193
- package/lib/core/charsets.js +4 -4
- package/lib/core/chunked_stream.js +441 -569
- package/lib/core/cmap.js +220 -279
- package/lib/core/colorspace.js +699 -863
- package/lib/core/core_utils.js +59 -80
- package/lib/core/crypto.js +379 -437
- package/lib/core/document.js +564 -673
- package/lib/core/encodings.js +15 -15
- package/lib/core/evaluator.js +983 -889
- package/lib/core/font_renderer.js +128 -171
- package/lib/core/fonts.js +451 -400
- package/lib/core/function.js +289 -285
- package/lib/core/glyphlist.js +4527 -4527
- package/lib/core/image.js +138 -117
- package/lib/core/image_utils.js +46 -63
- package/lib/core/jbig2.js +324 -332
- package/lib/core/jbig2_stream.js +18 -17
- package/lib/core/jpeg_stream.js +133 -24
- package/lib/core/jpg.js +238 -210
- package/lib/core/jpx.js +158 -157
- package/lib/core/jpx_stream.js +28 -28
- package/lib/core/metrics.js +2928 -2928
- package/lib/core/murmurhash3.js +87 -102
- package/lib/core/obj.js +1111 -1302
- package/lib/core/operator_list.js +55 -42
- package/lib/core/parser.js +956 -987
- package/lib/core/pattern.js +69 -69
- package/lib/core/pdf_manager.js +149 -316
- package/lib/core/primitives.js +45 -77
- package/lib/core/ps_parser.js +175 -214
- package/lib/core/standard_fonts.js +237 -236
- package/lib/core/stream.js +83 -77
- package/lib/core/type1_parser.js +78 -68
- package/lib/core/unicode.js +1654 -1654
- package/lib/core/worker.js +148 -196
- package/lib/core/worker_stream.js +101 -210
- package/lib/display/annotation_layer.js +733 -1155
- package/lib/display/api.js +1539 -1928
- package/lib/display/api_compatibility.js +10 -8
- package/lib/display/canvas.js +159 -158
- package/lib/display/content_disposition.js +36 -55
- package/lib/display/display_utils.js +298 -551
- package/lib/display/fetch_stream.js +181 -305
- package/lib/display/font_loader.js +273 -416
- package/lib/display/metadata.js +86 -98
- package/lib/display/network.js +376 -511
- package/lib/display/network_utils.js +20 -19
- package/lib/display/node_stream.js +276 -460
- package/lib/display/pattern_helper.js +76 -44
- package/lib/display/svg.js +1137 -1405
- package/lib/display/text_layer.js +75 -82
- package/lib/display/transport_stream.js +236 -374
- package/lib/display/webgl.js +70 -83
- package/lib/display/worker_options.js +3 -3
- package/lib/display/xml_parser.js +303 -392
- package/lib/examples/node/domstubs.js +37 -37
- package/lib/pdf.js +22 -21
- package/lib/pdf.worker.js +5 -5
- package/lib/shared/compatibility.js +2 -251
- package/lib/shared/is_node.js +7 -6
- package/lib/shared/message_handler.js +222 -194
- package/lib/shared/util.js +269 -405
- package/lib/test/unit/annotation_spec.js +1089 -1014
- package/lib/test/unit/api_spec.js +617 -544
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +63 -62
- package/lib/test/unit/clitests_helper.js +7 -9
- package/lib/test/unit/cmap_spec.js +84 -86
- package/lib/test/unit/colorspace_spec.js +154 -154
- package/lib/test/unit/core_utils_spec.js +125 -105
- package/lib/test/unit/crypto_spec.js +181 -181
- package/lib/test/unit/custom_spec.js +22 -24
- package/lib/test/unit/display_svg_spec.js +35 -36
- package/lib/test/unit/display_utils_spec.js +139 -149
- package/lib/test/unit/document_spec.js +16 -16
- package/lib/test/unit/encodings_spec.js +12 -34
- package/lib/test/unit/evaluator_spec.js +81 -95
- package/lib/test/unit/fetch_stream_spec.js +30 -30
- package/lib/test/unit/function_spec.js +206 -204
- package/lib/test/unit/jasmine-boot.js +48 -32
- package/lib/test/unit/message_handler_spec.js +172 -162
- package/lib/test/unit/metadata_spec.js +69 -69
- package/lib/test/unit/murmurhash3_spec.js +12 -12
- package/lib/test/unit/network_spec.js +12 -12
- package/lib/test/unit/network_utils_spec.js +152 -152
- package/lib/test/unit/node_stream_spec.js +74 -90
- package/lib/test/unit/parser_spec.js +107 -113
- package/lib/test/unit/pdf_find_controller_spec.js +55 -86
- package/lib/test/unit/pdf_find_utils_spec.js +32 -32
- package/lib/test/unit/pdf_history_spec.js +32 -32
- package/lib/test/unit/primitives_spec.js +117 -115
- package/lib/test/unit/stream_spec.js +16 -14
- package/lib/test/unit/test_utils.js +119 -285
- package/lib/test/unit/testreporter.js +19 -19
- package/lib/test/unit/type1_parser_spec.js +41 -41
- package/lib/test/unit/ui_utils_spec.js +318 -426
- package/lib/test/unit/unicode_spec.js +42 -42
- package/lib/test/unit/util_spec.js +122 -143
- package/lib/web/annotation_layer_builder.js +66 -103
- package/lib/web/app.js +1166 -1196
- package/lib/web/app_options.js +61 -77
- package/lib/web/base_viewer.js +804 -850
- package/lib/web/chromecom.js +164 -249
- package/lib/web/debugger.js +149 -205
- package/lib/web/download_manager.js +38 -57
- package/lib/web/firefox_print_service.js +35 -30
- package/lib/web/firefoxcom.js +175 -374
- package/lib/web/genericcom.js +26 -108
- package/lib/web/genericl10n.js +24 -153
- package/lib/web/grab_to_pan.js +30 -30
- package/lib/web/interfaces.js +80 -258
- package/lib/web/overlay_manager.js +70 -246
- package/lib/web/password_prompt.js +38 -64
- package/lib/web/pdf_attachment_viewer.js +105 -130
- package/lib/web/pdf_cursor_tools.js +75 -102
- package/lib/web/pdf_document_properties.js +227 -376
- package/lib/web/pdf_find_bar.js +137 -171
- package/lib/web/pdf_find_controller.js +492 -549
- package/lib/web/pdf_find_utils.js +13 -13
- package/lib/web/pdf_history.js +395 -406
- package/lib/web/pdf_link_service.js +302 -349
- package/lib/web/pdf_outline_viewer.js +148 -209
- package/lib/web/pdf_page_view.js +449 -507
- package/lib/web/pdf_presentation_mode.js +304 -357
- package/lib/web/pdf_print_service.js +90 -104
- package/lib/web/pdf_rendering_queue.js +87 -108
- package/lib/web/pdf_sidebar.js +264 -304
- package/lib/web/pdf_sidebar_resizer.js +92 -119
- package/lib/web/pdf_single_page_viewer.js +77 -126
- package/lib/web/pdf_thumbnail_view.js +276 -297
- package/lib/web/pdf_thumbnail_viewer.js +186 -206
- package/lib/web/pdf_viewer.component.js +20 -21
- package/lib/web/pdf_viewer.js +55 -115
- package/lib/web/preferences.js +66 -273
- package/lib/web/secondary_toolbar.js +164 -196
- package/lib/web/text_layer_builder.js +284 -317
- package/lib/web/toolbar.js +216 -211
- package/lib/web/ui_utils.js +303 -404
- package/lib/web/view_history.js +49 -222
- package/lib/web/viewer_compatibility.js +7 -5
- package/package.json +2 -9
- package/web/pdf_viewer.css +25 -18
- package/web/pdf_viewer.js +3481 -4764
- package/web/pdf_viewer.js.map +1 -1
- package/webpack.js +14 -5
- package/lib/shared/streams_polyfill.js +0 -43
@@ -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,331 +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(new _util.AbortException(
|
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
|
-
log +=
|
158
|
-
sink.ready.then(
|
159
|
-
log +=
|
159
|
+
log += "0";
|
160
|
+
sink.ready.then(() => {
|
161
|
+
log += "1";
|
160
162
|
sink.enqueue([1, 2, 3, 4], 4);
|
161
163
|
return sink.ready;
|
162
|
-
}).then(
|
163
|
-
log +=
|
164
|
-
sink.error(new Error(
|
164
|
+
}).then(() => {
|
165
|
+
log += "e";
|
166
|
+
sink.error(new Error("should not read when errored"));
|
165
167
|
});
|
166
168
|
});
|
167
|
-
|
168
|
-
|
169
|
+
const messageHandler1 = new _message_handler.MessageHandler("main", "worker", port);
|
170
|
+
const readable = messageHandler1.sendWithStream("fakeHandler", {}, {
|
169
171
|
highWaterMark: 4,
|
170
|
-
|
172
|
+
|
173
|
+
size(arr) {
|
171
174
|
return arr.length;
|
172
175
|
}
|
176
|
+
|
173
177
|
});
|
174
|
-
|
175
|
-
sleep(10).then(
|
176
|
-
expect(log).toEqual(
|
178
|
+
const reader = readable.getReader();
|
179
|
+
sleep(10).then(() => {
|
180
|
+
expect(log).toEqual("01");
|
177
181
|
return reader.read();
|
178
|
-
}).then(
|
182
|
+
}).then(result => {
|
179
183
|
expect(result.value).toEqual([1, 2, 3, 4]);
|
180
184
|
expect(result.done).toEqual(false);
|
181
185
|
return reader.read();
|
182
|
-
})
|
183
|
-
expect(log).toEqual(
|
186
|
+
}).catch(reason => {
|
187
|
+
expect(log).toEqual("01pe");
|
184
188
|
expect(reason instanceof _util.UnknownErrorException).toEqual(true);
|
185
|
-
expect(reason.message).toEqual(
|
189
|
+
expect(reason.message).toEqual("should not read when errored");
|
186
190
|
done();
|
187
191
|
});
|
188
192
|
});
|
189
|
-
it(
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
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) => {
|
194
198
|
sink.onPull = function () {
|
195
|
-
log +=
|
199
|
+
log += "p";
|
196
200
|
};
|
197
201
|
|
198
202
|
sink.onCancel = function (reason) {
|
199
|
-
log +=
|
203
|
+
log += "c";
|
200
204
|
};
|
201
205
|
|
202
|
-
log +=
|
203
|
-
sink.ready.then(
|
204
|
-
log +=
|
206
|
+
log += "0";
|
207
|
+
sink.ready.then(() => {
|
208
|
+
log += "1";
|
205
209
|
sink.enqueue([1, 2, 3, 4], 4);
|
206
210
|
return sink.ready;
|
207
|
-
}).then(
|
208
|
-
log +=
|
211
|
+
}).then(() => {
|
212
|
+
log += "2";
|
209
213
|
sink.enqueue([5, 6, 7, 8], 4);
|
210
214
|
return sink.ready;
|
211
|
-
}).then(
|
215
|
+
}).then(() => {
|
212
216
|
sink.close();
|
213
217
|
});
|
214
218
|
});
|
215
|
-
|
216
|
-
|
219
|
+
const messageHandler1 = new _message_handler.MessageHandler("main", "worker", port);
|
220
|
+
const readable = messageHandler1.sendWithStream("fakeHandler", {}, {
|
217
221
|
highWaterMark: 4,
|
218
|
-
|
222
|
+
|
223
|
+
size(arr) {
|
219
224
|
return arr.length;
|
220
225
|
}
|
226
|
+
|
221
227
|
});
|
222
|
-
|
223
|
-
sleep(10).then(
|
224
|
-
expect(log).toEqual(
|
228
|
+
const reader = readable.getReader();
|
229
|
+
sleep(10).then(() => {
|
230
|
+
expect(log).toEqual("01");
|
225
231
|
return reader.read();
|
226
|
-
}).then(
|
232
|
+
}).then(result => {
|
227
233
|
expect(result.value).toEqual([1, 2, 3, 4]);
|
228
234
|
expect(result.done).toEqual(false);
|
229
235
|
return sleep(10);
|
230
|
-
}).then(
|
231
|
-
expect(log).toEqual(
|
236
|
+
}).then(() => {
|
237
|
+
expect(log).toEqual("01p2");
|
232
238
|
return reader.read();
|
233
|
-
}).then(
|
239
|
+
}).then(result => {
|
234
240
|
expect(result.value).toEqual([5, 6, 7, 8]);
|
235
241
|
expect(result.done).toEqual(false);
|
236
242
|
return sleep(10);
|
237
|
-
}).then(
|
238
|
-
expect(log).toEqual(
|
243
|
+
}).then(() => {
|
244
|
+
expect(log).toEqual("01p2p");
|
239
245
|
return reader.read();
|
240
|
-
}).then(
|
246
|
+
}).then(result => {
|
241
247
|
expect(result.value).toEqual(undefined);
|
242
248
|
expect(result.done).toEqual(true);
|
243
249
|
done();
|
244
250
|
});
|
245
251
|
});
|
246
|
-
it(
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
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) => {
|
251
257
|
sink.onPull = function () {
|
252
|
-
log +=
|
258
|
+
log += "p";
|
253
259
|
};
|
254
260
|
|
255
261
|
sink.onCancel = function (reason) {
|
256
|
-
log +=
|
262
|
+
log += "c";
|
257
263
|
};
|
258
264
|
|
259
|
-
log +=
|
260
|
-
sink.ready.then(
|
261
|
-
log +=
|
265
|
+
log += "0";
|
266
|
+
sink.ready.then(() => {
|
267
|
+
log += "1";
|
262
268
|
sink.enqueue([1, 2, 3, 4], 4);
|
263
269
|
return sink.ready;
|
264
|
-
}).then(
|
265
|
-
log +=
|
270
|
+
}).then(() => {
|
271
|
+
log += "2";
|
266
272
|
sink.enqueue([5, 6, 7, 8], 4);
|
267
273
|
return sink.ready;
|
268
|
-
}).then(
|
274
|
+
}).then(() => {
|
269
275
|
sink.close();
|
270
276
|
});
|
271
277
|
return sleep(10);
|
272
278
|
});
|
273
|
-
|
274
|
-
|
279
|
+
const messageHandler1 = new _message_handler.MessageHandler("main", "worker", port);
|
280
|
+
const readable = messageHandler1.sendWithStream("fakeHandler", {}, {
|
275
281
|
highWaterMark: 8,
|
276
|
-
|
282
|
+
|
283
|
+
size(arr) {
|
277
284
|
return arr.length;
|
278
285
|
}
|
286
|
+
|
279
287
|
});
|
280
|
-
|
281
|
-
sleep(10).then(
|
282
|
-
expect(log).toEqual(
|
288
|
+
const reader = readable.getReader();
|
289
|
+
sleep(10).then(() => {
|
290
|
+
expect(log).toEqual("012");
|
283
291
|
return reader.read();
|
284
|
-
}).then(
|
292
|
+
}).then(result => {
|
285
293
|
expect(result.value).toEqual([1, 2, 3, 4]);
|
286
294
|
expect(result.done).toEqual(false);
|
287
295
|
return sleep(10);
|
288
|
-
}).then(
|
289
|
-
expect(log).toEqual(
|
296
|
+
}).then(() => {
|
297
|
+
expect(log).toEqual("012p");
|
290
298
|
return reader.read();
|
291
|
-
}).then(
|
299
|
+
}).then(result => {
|
292
300
|
expect(result.value).toEqual([5, 6, 7, 8]);
|
293
301
|
expect(result.done).toEqual(false);
|
294
302
|
return sleep(10);
|
295
|
-
}).then(
|
296
|
-
expect(log).toEqual(
|
303
|
+
}).then(() => {
|
304
|
+
expect(log).toEqual("012p");
|
297
305
|
return reader.read();
|
298
|
-
}).then(
|
306
|
+
}).then(result => {
|
299
307
|
expect(result.value).toEqual(undefined);
|
300
308
|
expect(result.done).toEqual(true);
|
301
309
|
done();
|
302
310
|
});
|
303
311
|
});
|
304
|
-
it(
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
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) => {
|
310
318
|
sink.onPull = function () {
|
311
|
-
log +=
|
319
|
+
log += "p";
|
312
320
|
};
|
313
321
|
|
314
322
|
sink.onCancel = function (reason) {
|
315
|
-
log +=
|
323
|
+
log += "c";
|
316
324
|
};
|
317
325
|
|
318
|
-
log +=
|
319
|
-
sink.ready.then(
|
320
|
-
log +=
|
326
|
+
log += "0";
|
327
|
+
sink.ready.then(() => {
|
328
|
+
log += "1";
|
321
329
|
sink.enqueue([1, 2, 3, 4], 4);
|
322
330
|
});
|
323
|
-
return capability.promise.then(
|
331
|
+
return capability.promise.then(() => {
|
324
332
|
sink.close();
|
325
333
|
});
|
326
334
|
});
|
327
|
-
|
328
|
-
|
335
|
+
const messageHandler1 = new _message_handler.MessageHandler("main", "worker", port);
|
336
|
+
const readable = messageHandler1.sendWithStream("fakeHandler", {}, {
|
329
337
|
highWaterMark: 10,
|
330
|
-
|
338
|
+
|
339
|
+
size(arr) {
|
331
340
|
return arr.length;
|
332
341
|
}
|
342
|
+
|
333
343
|
});
|
334
|
-
|
335
|
-
sleep(10).then(
|
336
|
-
expect(log).toEqual(
|
344
|
+
const reader = readable.getReader();
|
345
|
+
sleep(10).then(() => {
|
346
|
+
expect(log).toEqual("01");
|
337
347
|
capability.resolve();
|
338
|
-
return capability.promise.then(
|
348
|
+
return capability.promise.then(() => {
|
339
349
|
return reader.read();
|
340
350
|
});
|
341
|
-
}).then(
|
351
|
+
}).then(result => {
|
342
352
|
expect(result.value).toEqual([1, 2, 3, 4]);
|
343
353
|
expect(result.done).toEqual(false);
|
344
354
|
return sleep(10);
|
345
|
-
}).then(
|
346
|
-
expect(log).toEqual(
|
355
|
+
}).then(() => {
|
356
|
+
expect(log).toEqual("01");
|
347
357
|
return reader.read();
|
348
|
-
}).then(
|
358
|
+
}).then(result => {
|
349
359
|
expect(result.value).toEqual(undefined);
|
350
360
|
expect(result.done).toEqual(true);
|
351
361
|
done();
|