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,55 +21,51 @@
|
|
21
21
|
*/
|
22
22
|
"use strict";
|
23
23
|
|
24
|
-
var _test_utils = require("./test_utils");
|
24
|
+
var _test_utils = require("./test_utils.js");
|
25
25
|
|
26
|
-
var _primitives = require("../../core/primitives");
|
26
|
+
var _primitives = require("../../core/primitives.js");
|
27
27
|
|
28
|
-
var _util = require("../../shared/util");
|
28
|
+
var _util = require("../../shared/util.js");
|
29
29
|
|
30
|
-
var _stream = require("../../core/stream");
|
30
|
+
var _stream = require("../../core/stream.js");
|
31
31
|
|
32
|
-
var _operator_list = require("../../core/operator_list");
|
32
|
+
var _operator_list = require("../../core/operator_list.js");
|
33
33
|
|
34
|
-
var _evaluator = require("../../core/evaluator");
|
34
|
+
var _evaluator = require("../../core/evaluator.js");
|
35
35
|
|
36
|
-
var _worker = require("../../core/worker");
|
36
|
+
var _worker = require("../../core/worker.js");
|
37
37
|
|
38
|
-
|
39
|
-
|
40
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
41
|
-
|
42
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
43
|
-
|
44
|
-
describe('evaluator', function () {
|
38
|
+
describe("evaluator", function () {
|
45
39
|
function HandlerMock() {
|
46
40
|
this.inputs = [];
|
47
41
|
}
|
48
42
|
|
49
43
|
HandlerMock.prototype = {
|
50
|
-
send
|
44
|
+
send(name, data) {
|
51
45
|
this.inputs.push({
|
52
|
-
name
|
53
|
-
data
|
46
|
+
name,
|
47
|
+
data
|
54
48
|
});
|
55
49
|
}
|
50
|
+
|
56
51
|
};
|
57
52
|
|
58
53
|
function ResourcesMock() {}
|
59
54
|
|
60
55
|
ResourcesMock.prototype = {
|
61
|
-
get
|
56
|
+
get(name) {
|
62
57
|
return this[name];
|
63
58
|
}
|
59
|
+
|
64
60
|
};
|
65
61
|
|
66
62
|
function runOperatorListCheck(evaluator, stream, resources, callback) {
|
67
63
|
var result = new _operator_list.OperatorList();
|
68
|
-
var task = new _worker.WorkerTask(
|
64
|
+
var task = new _worker.WorkerTask("OperatorListCheck");
|
69
65
|
evaluator.getOperatorList({
|
70
|
-
stream
|
71
|
-
task
|
72
|
-
resources
|
66
|
+
stream,
|
67
|
+
task,
|
68
|
+
resources,
|
73
69
|
operatorList: result
|
74
70
|
}).then(function () {
|
75
71
|
callback(result);
|
@@ -91,9 +87,9 @@ describe('evaluator', function () {
|
|
91
87
|
afterAll(function () {
|
92
88
|
partialEvaluator = null;
|
93
89
|
});
|
94
|
-
describe(
|
95
|
-
it(
|
96
|
-
var stream = new _stream.StringStream(
|
90
|
+
describe("splitCombinedOperations", function () {
|
91
|
+
it("should reject unknown operations", function (done) {
|
92
|
+
var stream = new _stream.StringStream("fTT");
|
97
93
|
runOperatorListCheck(partialEvaluator, stream, new ResourcesMock(), function (result) {
|
98
94
|
expect(!!result.fnArray && !!result.argsArray).toEqual(true);
|
99
95
|
expect(result.fnArray.length).toEqual(1);
|
@@ -102,8 +98,8 @@ describe('evaluator', function () {
|
|
102
98
|
done();
|
103
99
|
});
|
104
100
|
});
|
105
|
-
it(
|
106
|
-
var stream = new _stream.StringStream(
|
101
|
+
it("should handle one operation", function (done) {
|
102
|
+
var stream = new _stream.StringStream("Q");
|
107
103
|
runOperatorListCheck(partialEvaluator, stream, new ResourcesMock(), function (result) {
|
108
104
|
expect(!!result.fnArray && !!result.argsArray).toEqual(true);
|
109
105
|
expect(result.fnArray.length).toEqual(1);
|
@@ -111,10 +107,10 @@ describe('evaluator', function () {
|
|
111
107
|
done();
|
112
108
|
});
|
113
109
|
});
|
114
|
-
it(
|
110
|
+
it("should handle two glued operations", function (done) {
|
115
111
|
var resources = new ResourcesMock();
|
116
112
|
resources.Res1 = {};
|
117
|
-
var stream = new _stream.StringStream(
|
113
|
+
var stream = new _stream.StringStream("/Res1 DoQ");
|
118
114
|
runOperatorListCheck(partialEvaluator, stream, resources, function (result) {
|
119
115
|
expect(!!result.fnArray && !!result.argsArray).toEqual(true);
|
120
116
|
expect(result.fnArray.length).toEqual(2);
|
@@ -123,8 +119,8 @@ describe('evaluator', function () {
|
|
123
119
|
done();
|
124
120
|
});
|
125
121
|
});
|
126
|
-
it(
|
127
|
-
var stream = new _stream.StringStream(
|
122
|
+
it("should handle three glued operations", function (done) {
|
123
|
+
var stream = new _stream.StringStream("fff");
|
128
124
|
runOperatorListCheck(partialEvaluator, stream, new ResourcesMock(), function (result) {
|
129
125
|
expect(!!result.fnArray && !!result.argsArray).toEqual(true);
|
130
126
|
expect(result.fnArray.length).toEqual(3);
|
@@ -134,10 +130,10 @@ describe('evaluator', function () {
|
|
134
130
|
done();
|
135
131
|
});
|
136
132
|
});
|
137
|
-
it(
|
133
|
+
it("should handle three glued operations #2", function (done) {
|
138
134
|
var resources = new ResourcesMock();
|
139
135
|
resources.Res1 = {};
|
140
|
-
var stream = new _stream.StringStream(
|
136
|
+
var stream = new _stream.StringStream("B*Bf*");
|
141
137
|
runOperatorListCheck(partialEvaluator, stream, resources, function (result) {
|
142
138
|
expect(!!result.fnArray && !!result.argsArray).toEqual(true);
|
143
139
|
expect(result.fnArray.length).toEqual(3);
|
@@ -147,8 +143,8 @@ describe('evaluator', function () {
|
|
147
143
|
done();
|
148
144
|
});
|
149
145
|
});
|
150
|
-
it(
|
151
|
-
var stream = new _stream.StringStream(
|
146
|
+
it("should handle glued operations and operands", function (done) {
|
147
|
+
var stream = new _stream.StringStream("f5 Ts");
|
152
148
|
runOperatorListCheck(partialEvaluator, stream, new ResourcesMock(), function (result) {
|
153
149
|
expect(!!result.fnArray && !!result.argsArray).toEqual(true);
|
154
150
|
expect(result.fnArray.length).toEqual(2);
|
@@ -160,8 +156,8 @@ describe('evaluator', function () {
|
|
160
156
|
done();
|
161
157
|
});
|
162
158
|
});
|
163
|
-
it(
|
164
|
-
var stream = new _stream.StringStream(
|
159
|
+
it("should handle glued operations and literals", function (done) {
|
160
|
+
var stream = new _stream.StringStream("trueifalserinulln");
|
165
161
|
runOperatorListCheck(partialEvaluator, stream, new ResourcesMock(), function (result) {
|
166
162
|
expect(!!result.fnArray && !!result.argsArray).toEqual(true);
|
167
163
|
expect(result.fnArray.length).toEqual(3);
|
@@ -178,9 +174,9 @@ describe('evaluator', function () {
|
|
178
174
|
});
|
179
175
|
});
|
180
176
|
});
|
181
|
-
describe(
|
182
|
-
it(
|
183
|
-
var stream = new _stream.StringStream(
|
177
|
+
describe("validateNumberOfArgs", function () {
|
178
|
+
it("should execute if correct number of arguments", function (done) {
|
179
|
+
var stream = new _stream.StringStream("5 1 d0");
|
184
180
|
runOperatorListCheck(partialEvaluator, stream, new ResourcesMock(), function (result) {
|
185
181
|
expect(result.argsArray[0][0]).toEqual(5);
|
186
182
|
expect(result.argsArray[0][1]).toEqual(1);
|
@@ -188,8 +184,8 @@ describe('evaluator', function () {
|
|
188
184
|
done();
|
189
185
|
});
|
190
186
|
});
|
191
|
-
it(
|
192
|
-
var stream = new _stream.StringStream(
|
187
|
+
it("should execute if too many arguments", function (done) {
|
188
|
+
var stream = new _stream.StringStream("5 1 4 d0");
|
193
189
|
runOperatorListCheck(partialEvaluator, stream, new ResourcesMock(), function (result) {
|
194
190
|
expect(result.argsArray[0][0]).toEqual(1);
|
195
191
|
expect(result.argsArray[0][1]).toEqual(4);
|
@@ -197,8 +193,8 @@ describe('evaluator', function () {
|
|
197
193
|
done();
|
198
194
|
});
|
199
195
|
});
|
200
|
-
it(
|
201
|
-
var stream = new _stream.StringStream(
|
196
|
+
it("should execute if nested commands", function (done) {
|
197
|
+
var stream = new _stream.StringStream("/F2 /GS2 gs 5.711 Tf");
|
202
198
|
runOperatorListCheck(partialEvaluator, stream, new ResourcesMock(), function (result) {
|
203
199
|
expect(result.fnArray.length).toEqual(3);
|
204
200
|
expect(result.fnArray[0]).toEqual(_util.OPS.setGState);
|
@@ -211,34 +207,34 @@ describe('evaluator', function () {
|
|
211
207
|
done();
|
212
208
|
});
|
213
209
|
});
|
214
|
-
it(
|
215
|
-
var stream = new _stream.StringStream(
|
210
|
+
it("should skip if too few arguments", function (done) {
|
211
|
+
var stream = new _stream.StringStream("5 d0");
|
216
212
|
runOperatorListCheck(partialEvaluator, stream, new ResourcesMock(), function (result) {
|
217
213
|
expect(result.argsArray).toEqual([]);
|
218
214
|
expect(result.fnArray).toEqual([]);
|
219
215
|
done();
|
220
216
|
});
|
221
217
|
});
|
222
|
-
it(
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
218
|
+
it("should error if (many) path operators have too few arguments " + "(bug 1443140)", function (done) {
|
219
|
+
const NUM_INVALID_OPS = 25;
|
220
|
+
const tempArr = new Array(NUM_INVALID_OPS + 1);
|
221
|
+
const invalidMoveText = tempArr.join("10 Td\n");
|
222
|
+
const moveTextStream = new _stream.StringStream(invalidMoveText);
|
227
223
|
runOperatorListCheck(partialEvaluator, moveTextStream, new ResourcesMock(), function (result) {
|
228
224
|
expect(result.argsArray).toEqual([]);
|
229
225
|
expect(result.fnArray).toEqual([]);
|
230
226
|
done();
|
231
227
|
});
|
232
|
-
|
233
|
-
|
228
|
+
const invalidLineTo = tempArr.join("20 l\n");
|
229
|
+
const lineToStream = new _stream.StringStream(invalidLineTo);
|
234
230
|
runOperatorListCheck(partialEvaluator, lineToStream, new ResourcesMock(), function (error) {
|
235
231
|
expect(error instanceof _util.FormatError).toEqual(true);
|
236
|
-
expect(error.message).toEqual(
|
232
|
+
expect(error.message).toEqual("Invalid command l: expected 2 args, but received 1 args.");
|
237
233
|
done();
|
238
234
|
});
|
239
235
|
});
|
240
|
-
it(
|
241
|
-
var stream = new _stream.StringStream(
|
236
|
+
it("should close opened saves", function (done) {
|
237
|
+
var stream = new _stream.StringStream("qq");
|
242
238
|
runOperatorListCheck(partialEvaluator, stream, new ResourcesMock(), function (result) {
|
243
239
|
expect(!!result.fnArray && !!result.argsArray).toEqual(true);
|
244
240
|
expect(result.fnArray.length).toEqual(4);
|
@@ -249,23 +245,23 @@ describe('evaluator', function () {
|
|
249
245
|
done();
|
250
246
|
});
|
251
247
|
});
|
252
|
-
it(
|
253
|
-
var stream = new _stream.StringStream(
|
248
|
+
it("should error on paintXObject if name is missing", function (done) {
|
249
|
+
var stream = new _stream.StringStream("/ Do");
|
254
250
|
runOperatorListCheck(partialEvaluator, stream, new ResourcesMock(), function (result) {
|
255
251
|
expect(result instanceof _util.FormatError).toEqual(true);
|
256
|
-
expect(result.message).toEqual(
|
252
|
+
expect(result.message).toEqual("XObject must be referred to by name.");
|
257
253
|
done();
|
258
254
|
});
|
259
255
|
});
|
260
|
-
it(
|
256
|
+
it("should skip paintXObject if subtype is PS", function (done) {
|
261
257
|
var xobjStreamDict = new _primitives.Dict();
|
262
|
-
xobjStreamDict.set(
|
258
|
+
xobjStreamDict.set("Subtype", _primitives.Name.get("PS"));
|
263
259
|
var xobjStream = new _stream.Stream([], 0, 0, xobjStreamDict);
|
264
260
|
var xobjs = new _primitives.Dict();
|
265
|
-
xobjs.set(
|
261
|
+
xobjs.set("Res1", xobjStream);
|
266
262
|
var resources = new _primitives.Dict();
|
267
|
-
resources.set(
|
268
|
-
var stream = new _stream.StringStream(
|
263
|
+
resources.set("XObject", xobjs);
|
264
|
+
var stream = new _stream.StringStream("/Res1 Do");
|
269
265
|
runOperatorListCheck(partialEvaluator, stream, resources, function (result) {
|
270
266
|
expect(result.argsArray).toEqual([]);
|
271
267
|
expect(result.fnArray).toEqual([]);
|
@@ -273,56 +269,46 @@ describe('evaluator', function () {
|
|
273
269
|
});
|
274
270
|
});
|
275
271
|
});
|
276
|
-
describe(
|
277
|
-
it(
|
278
|
-
var stream = new _stream.StringStream(
|
272
|
+
describe("thread control", function () {
|
273
|
+
it("should abort operator list parsing", function (done) {
|
274
|
+
var stream = new _stream.StringStream("qqQQ");
|
279
275
|
var resources = new ResourcesMock();
|
280
276
|
var result = new _operator_list.OperatorList();
|
281
|
-
var task = new _worker.WorkerTask(
|
277
|
+
var task = new _worker.WorkerTask("OperatorListAbort");
|
282
278
|
task.terminate();
|
283
279
|
partialEvaluator.getOperatorList({
|
284
|
-
stream
|
285
|
-
task
|
286
|
-
resources
|
280
|
+
stream,
|
281
|
+
task,
|
282
|
+
resources,
|
287
283
|
operatorList: result
|
288
|
-
})
|
284
|
+
}).catch(function () {
|
289
285
|
expect(!!result.fnArray && !!result.argsArray).toEqual(true);
|
290
286
|
expect(result.fnArray.length).toEqual(0);
|
291
287
|
done();
|
292
288
|
});
|
293
289
|
});
|
294
|
-
it(
|
290
|
+
it("should abort text parsing parsing", function (done) {
|
295
291
|
var resources = new ResourcesMock();
|
296
|
-
var stream = new _stream.StringStream(
|
297
|
-
var task = new _worker.WorkerTask(
|
292
|
+
var stream = new _stream.StringStream("qqQQ");
|
293
|
+
var task = new _worker.WorkerTask("TextContentAbort");
|
298
294
|
task.terminate();
|
299
295
|
partialEvaluator.getTextContent({
|
300
|
-
stream
|
301
|
-
task
|
302
|
-
resources
|
303
|
-
})
|
296
|
+
stream,
|
297
|
+
task,
|
298
|
+
resources
|
299
|
+
}).catch(function () {
|
304
300
|
expect(true).toEqual(true);
|
305
301
|
done();
|
306
302
|
});
|
307
303
|
});
|
308
304
|
});
|
309
|
-
describe(
|
310
|
-
|
311
|
-
|
312
|
-
function () {
|
313
|
-
function StreamSinkMock() {
|
314
|
-
_classCallCheck(this, StreamSinkMock);
|
315
|
-
}
|
316
|
-
|
317
|
-
_createClass(StreamSinkMock, [{
|
318
|
-
key: "enqueue",
|
319
|
-
value: function enqueue() {}
|
320
|
-
}]);
|
305
|
+
describe("operator list", function () {
|
306
|
+
class StreamSinkMock {
|
307
|
+
enqueue() {}
|
321
308
|
|
322
|
-
|
323
|
-
}();
|
309
|
+
}
|
324
310
|
|
325
|
-
it(
|
311
|
+
it("should get correct total length after flushing", function () {
|
326
312
|
var operatorList = new _operator_list.OperatorList(null, new StreamSinkMock());
|
327
313
|
operatorList.addOp(_util.OPS.save, null);
|
328
314
|
operatorList.addOp(_util.OPS.restore, null);
|
@@ -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,28 +21,28 @@
|
|
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 _fetch_stream = require("../../display/fetch_stream");
|
26
|
+
var _fetch_stream = require("../../display/fetch_stream.js");
|
27
27
|
|
28
|
-
describe(
|
29
|
-
|
30
|
-
|
31
|
-
it(
|
32
|
-
|
28
|
+
describe("fetch_stream", function () {
|
29
|
+
const pdfUrl = new URL("../pdfs/tracemonkey.pdf", window.location).href;
|
30
|
+
const pdfLength = 1016315;
|
31
|
+
it("read with streaming", function (done) {
|
32
|
+
const stream = new _fetch_stream.PDFFetchStream({
|
33
33
|
url: pdfUrl,
|
34
34
|
disableStream: false,
|
35
35
|
disableRange: true
|
36
36
|
});
|
37
|
-
|
38
|
-
|
39
|
-
|
37
|
+
const fullReader = stream.getFullReader();
|
38
|
+
let isStreamingSupported, isRangeSupported;
|
39
|
+
const promise = fullReader.headersReady.then(function () {
|
40
40
|
isStreamingSupported = fullReader.isStreamingSupported;
|
41
41
|
isRangeSupported = fullReader.isRangeSupported;
|
42
42
|
});
|
43
|
-
|
43
|
+
let len = 0;
|
44
44
|
|
45
|
-
|
45
|
+
const read = function () {
|
46
46
|
return fullReader.read().then(function (result) {
|
47
47
|
if (result.done) {
|
48
48
|
return undefined;
|
@@ -53,41 +53,41 @@ describe('fetch_stream', function () {
|
|
53
53
|
});
|
54
54
|
};
|
55
55
|
|
56
|
-
|
56
|
+
const readPromise = Promise.all([read(), promise]);
|
57
57
|
readPromise.then(function () {
|
58
58
|
expect(len).toEqual(pdfLength);
|
59
59
|
expect(isStreamingSupported).toEqual(true);
|
60
60
|
expect(isRangeSupported).toEqual(false);
|
61
61
|
done();
|
62
|
-
})
|
62
|
+
}).catch(done.fail);
|
63
63
|
});
|
64
|
-
it(
|
65
|
-
|
66
|
-
|
64
|
+
it("read ranges with streaming", function (done) {
|
65
|
+
const rangeSize = 32768;
|
66
|
+
const stream = new _fetch_stream.PDFFetchStream({
|
67
67
|
url: pdfUrl,
|
68
68
|
rangeChunkSize: rangeSize,
|
69
69
|
disableStream: false,
|
70
70
|
disableRange: false
|
71
71
|
});
|
72
|
-
|
73
|
-
|
74
|
-
|
72
|
+
const fullReader = stream.getFullReader();
|
73
|
+
let isStreamingSupported, isRangeSupported, fullReaderCancelled;
|
74
|
+
const promise = fullReader.headersReady.then(function () {
|
75
75
|
isStreamingSupported = fullReader.isStreamingSupported;
|
76
76
|
isRangeSupported = fullReader.isRangeSupported;
|
77
|
-
fullReader.cancel(new _util.AbortException(
|
77
|
+
fullReader.cancel(new _util.AbortException("Don't need fullReader."));
|
78
78
|
fullReaderCancelled = true;
|
79
79
|
});
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
80
|
+
const tailSize = pdfLength % rangeSize || rangeSize;
|
81
|
+
const rangeReader1 = stream.getRangeReader(pdfLength - tailSize - rangeSize, pdfLength - tailSize);
|
82
|
+
const rangeReader2 = stream.getRangeReader(pdfLength - tailSize, pdfLength);
|
83
|
+
const result1 = {
|
84
84
|
value: 0
|
85
85
|
},
|
86
|
-
|
86
|
+
result2 = {
|
87
87
|
value: 0
|
88
88
|
};
|
89
89
|
|
90
|
-
|
90
|
+
const read = function (reader, lenResult) {
|
91
91
|
return reader.read().then(function (result) {
|
92
92
|
if (result.done) {
|
93
93
|
return undefined;
|
@@ -98,7 +98,7 @@ describe('fetch_stream', function () {
|
|
98
98
|
});
|
99
99
|
};
|
100
100
|
|
101
|
-
|
101
|
+
const readPromise = Promise.all([read(rangeReader1, result1), read(rangeReader2, result2), promise]);
|
102
102
|
readPromise.then(function () {
|
103
103
|
expect(isStreamingSupported).toEqual(true);
|
104
104
|
expect(isRangeSupported).toEqual(true);
|
@@ -106,6 +106,6 @@ describe('fetch_stream', function () {
|
|
106
106
|
expect(result1.value).toEqual(rangeSize);
|
107
107
|
expect(result2.value).toEqual(tailSize);
|
108
108
|
done();
|
109
|
-
})
|
109
|
+
}).catch(done.fail);
|
110
110
|
});
|
111
111
|
});
|