100 Commits
Author SHA1 Message Date
Yury DelendikandJonas Jenwald 66e0dd1b06 Use streams for OperatorList chunking (issue 10023)
*Please note:* The majority of this patch was written by Yury, and it's simply been rebased and slightly extended to prevent issues when dealing with `RenderingCancelledException`.

By leveraging streams this (finally) provides a simple way in which parsing can be aborted on the worker-thread, which will ultimately help save resources.
With this patch worker-thread parsing will *only* be aborted when the document is destroyed, and not when rendering is cancelled. There's a couple of reasons for this:

 - The API currently expects the *entire* OperatorList to be extracted, or an Error to occur, once it's been started. Hence additional re-factoring/re-writing of the API code will be necessary to properly support cancelling and re-starting of OperatorList parsing in cases where the `lastChunk` hasn't yet been seen.
 - Even with the above addressed, immediately cancelling when encountering a `RenderingCancelledException` will lead to worse performance in e.g. the default viewer. When zooming and/or rotation of the document occurs it's very likely that `cancel` will be (almost) immediately followed by a new `render` call. In that case you'd obviously *not* want to abort parsing on the worker-thread, since then you'd risk throwing away a partially parsed Page and thus be forced to re-parse it again which will regress perceived performance.
 - This patch is already *somewhat* risky, given that it touches fundamentally important/critical code, and trying to keep it somewhat small should hopefully reduce the risk of regressions (and simplify reviewing as well).

Time permitting, once this has landed and been in Nightly for awhile, I'll try to work on the remaining points outlined above.

Co-Authored-By: Yury Delendik <ydelendik@mozilla.com>
Co-Authored-By: Jonas Jenwald <jonas.jenwald@gmail.com>
2019-08-24 15:56:40 +02:00
Yury Delendik 51b0e60f9b Merge pull request #9924 from ErikNijland/master
fix(browser): zlib is not available in browser
2018-07-26 08:35:52 -05:00
Yury Delendik 20085aaa5e Remove createFromIR from PDFFunctionFactory; forgive invalid Dict values. 2018-04-10 18:49:31 -05:00
Yury Delendik 655c8d34d0 New XML parser 2018-03-19 20:51:41 -05:00
Yury Delendik e0fb18a339 Merge pull request #9508 from pal03377/file-info-page-size
Add paper size to document information/properties
2018-03-08 11:57:38 -06:00
Yury Delendik e162df59bb Merge pull request #9138 from Snuffleupagus/rm-requestAnimationFrame-polyfill
Remove the `requestAnimationFrame` polyfill
2017-11-15 10:48:34 -06:00
Yury Delendik 5fa56f6a9d For backwards compatibility: use addOp amount instead of queue size. 2017-11-09 18:46:48 -06:00
Yury Delendik 877c2d7743 Changing QueueOptimizer to be more iterative. 2017-11-09 18:46:48 -06:00
Yury Delendik 85f544f55a Moves OperatorList and QueueOptimizer into separate file. 2017-10-30 13:29:58 -05:00
Yury Delendik 7fbc9dbdc3 Version 2.0 2017-10-30 08:18:25 -05:00
Yury Delendik b4e25fb2e8 Merge remote-tracking branch 'mozilla/version-2.0' into v2 2017-10-27 14:01:45 -05:00
Yury Delendik 985c700bd5 Merge pull request #9076 from yurydelendik/v1.10.88
Release 1.10.88
2017-10-27 12:26:51 -05:00
Yury Delendik da0c9360fa Release 1.10.88 2017-10-27 10:32:55 -05:00
Yury Delendik af0a8a64c0 Release 1.9 as stable. 2017-10-23 15:34:00 -05:00
Yury Delendik 725a2eb1e7 Merge pull request #8986 from yurydelendik/version-1.10
Version 1.10
2017-10-23 15:29:54 -05:00
Yury Delendik bab420e7ec Merge pull request #9061 from yurydelendik/eccn
Adds ECCN response statement
2017-10-23 13:40:14 -05:00
Yury Delendik a7f0522821 Adds ECCN response statement 2017-10-23 13:31:36 -05:00
Yury Delendik fab59e0f91 Revert "Closes all promises/streams when handler is destroyed." 2017-10-06 11:55:28 -05:00
Yury Delendik 75a13eeb38 Version 1.10 2017-10-02 07:58:57 -05:00
Yury Delendik f206ee56bf Merge pull request #8962 from Snuffleupagus/CMapReaderFactory-baseUrl-check
Check that `this.baseUrl` is defined before attempting to fetch any data in `DOMCMapReaderFactory`/`NodeCMapReaderFactory`
2017-09-29 07:50:57 -05:00
Yury Delendik 71b0e4e818 Closes all promises/streams when handler is destroyed. 2017-09-28 16:45:04 -05:00
Yury Delendik d0d7046129 Merge pull request #8910 from mukulmishra18/include-credentials
Fix #8888: Change behaviour of fetch to make it compatible with XHR.
2017-09-14 14:29:59 -05:00
Yury Delendik 25c49de048 Merge pull request #8904 from timvandermeij/svg-setattribute-stub
Provide a stub for `setAttribute` in order to use the SVG back-end with Node.js
2017-09-13 07:47:47 -05:00
Yury Delendik 9b14f8ea2a Merge pull request #8866 from Snuffleupagus/fix-non-HTTP-validateResponseStatus
Correctly validate the response status for non-HTTP fetch requests (PR 8768 follow-up)
2017-09-05 12:47:44 -05:00
Yury Delendik 47c28643d6 Revert PDFPageView.pdfPage reset. 2017-08-31 16:49:01 -05:00
Yury Delendik 47789b51c3 Merge pull request #8855 from Rob--W/fetch-withCredentials-fix-default
Add test for withCredentials option
2017-08-31 08:45:22 -05:00
Yury Delendik 2656825432 Merge pull request #8845 from yurydelendik/fix-autofetch
Fixes autofetch and firefox nightly fetch streams
2017-08-30 11:28:42 -05:00
Yury Delendik bad3203fda Merge pull request #8768 from mukulmishra18/fetch_stream
Adds fetch stream logic for networking part of PDF.js
2017-08-30 11:27:48 -05:00
Yury Delendik cd95b426c7 Disables fetch when ReadableStream is not available. 2017-08-30 10:53:59 -05:00
Yury Delendik 3cff7da0e7 Fixes fetch and node behavior when disableAutoFetch adn disableStream is used. 2017-08-30 10:53:38 -05:00
Yury Delendik f1819f4d36 Merge pull request #8822 from yurydelendik/disable-fs-in-dist
Disable node libs in pdfjs-dist package.json
2017-08-24 11:36:00 -05:00
Yury Delendik e82811adb4 Merge pull request #8712 from mukulmishra18/node_stream
Adds node.js logic for networking tasks for PDF.js
2017-08-24 11:35:29 -05:00
Yury Delendik 4e6ae18f19 Disable node libs in pdfjs-dist package.json 2017-08-24 10:57:18 -05:00
Yury Delendik 438c0b28f2 Use Array.isArray in the LoopbackPort. 2017-08-23 09:25:25 -05:00
Yury Delendik 57bc3296f4 Moves global scope out of shared/util. 2017-08-22 18:20:52 -05:00
Yury Delendik ba5dbc9632 Merge pull request #8780 from yurydelendik/v1.9.426
Version 1.9.426
2017-08-14 18:41:32 -05:00
Yury Delendik 163ecf9b95 Version 1.9.426 2017-08-14 18:37:57 -05:00
Yury Delendik 2558a58dbb Merge pull request #8749 from yurydelendik/version-1.9
Version 1.9
2017-08-14 15:42:21 -05:00
Yury Delendik d0e93721ae More robust getPage() error handling. 2017-08-04 17:03:33 -05:00
Yury Delendik da372d5a57 Version 1.9 2017-08-04 16:13:49 -05:00
Yury Delendik a1dfbec532 Properly cancel streams and guard at getTextContent. 2017-08-03 16:36:46 -05:00
Yury Delendik 5b5781b45d Merge pull request #8738 from ChenMachluf/remove_workerPort_after_PDFWorker_destroy
Delete workerPort to PDFWorker cache after PDFWorker destroy
2017-08-03 15:49:40 -05:00
Yury Delendik 0c95bc7d83 Merge pull request #8744 from yurydelendik/stream-edge
Checks Edge support for streams.
2017-08-03 09:16:43 -05:00
Yury Delendik 6beb925f0b Checks Edge support for streams. 2017-08-03 08:48:51 -05:00
Yury Delendik 01b47d9012 Use streams-lib as polyfill 2017-07-28 11:54:33 -05:00
Yury Delendik 343b4dc2b6 Merge pull request #8617 from mukulmishra18/network-streaming
Adds Streams API support for networking task of PDF.js project.
2017-07-27 16:15:06 -05:00
Yury Delendik c830021b07 Fixes CFF data glyph widths 2017-07-25 12:29:51 -05:00
Yury Delendik bd8c12119a Merge pull request #8696 from mukulmishra18/sink-ready-rejection
Adds ready capability rejection logic for stream sink.
2017-07-24 16:40:30 -05:00
Yury Delendik ca3c08f12b Merge pull request #8620 from Rob--W/issue-8560-improve-png-compression
Improve compression of PNG images embedded in generated SVG files
2017-07-14 07:23:38 -05:00
Yury Delendik c673b6fee1 Merge pull request #8646 from yurydelendik/issue-8645
Fixes pdf.js library source detection.
2017-07-13 15:20:17 -05:00
Yury Delendik 52460687ca Fixes pdf.js library source detection. 2017-07-13 14:57:39 -05:00
Yury Delendik 2cef24a2ad Merge pull request #8630 from Rob--W/issue-8622-remove-__pdfjsdev_webpack__
Remove __pdfjsdev_webpack__, use webpack options
2017-07-10 11:31:45 -05:00
Yury Delendik 7b4887dd21 Merge pull request #8581 from yurydelendik/rm-error
Removes error()
2017-07-07 09:43:30 -05:00
Yury Delendik d028c26210 Removes error() 2017-07-07 09:40:24 -05:00
Yury Delendik b3bac5100c Merge pull request #8596 from mukulmishra18/proper-read-result
Fixes wrong structure of fullReader.read() result.
2017-07-05 09:03:57 -05:00
Yury Delendik e2ca894fec Merge pull request #8488 from mukulmishra18/streams-getTextContent
Streams get text content
2017-06-23 12:52:13 -05:00
Yury Delendik d1567a947e Merge pull request #8567 from ghetolay/fix_CMapReaderFactory+worker
Fix error when using custom CMapReaderFactory
2017-06-23 12:49:55 -05:00
Yury Delendik 9bed695ebd Merge pull request #8540 from Rob--W/svg-oom
Reduce memory requirements of pdf2svg.js example to avoid OOM
2017-06-20 17:24:48 -05:00
Yury Delendik 18e1f3d29b Ensure canvas is really hidden when used with pdfjs-dist.
Avoids black background flickering in such examples as components/simpleviewer.html
2017-06-20 14:45:07 -05:00
Yury Delendik 679ffc84f6 Merge pull request #8544 from Rob--W/compatiblity-safari-strict-error
compatibility.js: Rename parameters in JURL
2017-06-19 10:34:33 -05:00
Yury Delendik df4782dab7 Merge pull request #8543 from Rob--W/svg-domstubs-closePath
Add getAttributeNS to domstubs for SVG example
2017-06-19 09:58:18 -05:00
Yury Delendik 0c93dee0de Merge pull request #8515 from yurydelendik/bloborigin
Adds special case for origin of blob to the compatibility URL.
2017-06-16 11:21:45 -05:00
Yury Delendik 209751346c Merge pull request #8531 from Snuffleupagus/rm-updatePosition
Remove `PDFPageView.updatePosition` since it's not actually necessary
2017-06-15 12:09:35 -05:00
Yury Delendik 82f3145a5d Merge pull request #8522 from yurydelendik/weakmapfix
Fixes WeakMap polyfill (and improves PDFWorker port check).
2017-06-13 09:54:10 -05:00
Yury Delendik 631e6bebff Fixes WeakMap polyfill (and improves PDFWorker port check). 2017-06-13 09:36:58 -05:00
Yury Delendik b44848b918 Adds special case for origin of blob to the compatibility URL. 2017-06-13 08:19:46 -05:00
Yury Delendik 24f14d44cb Preventing from using the same canvas for multiple render() 2017-06-12 16:33:49 -05:00
Yury Delendik a18caa730d Adds gulp dist-install command; using pdfjs-dist package in examples. 2017-06-12 10:22:16 -05:00
Yury Delendik db7a770542 Additional check in globalScope detections 2017-06-12 10:14:46 -05:00
Yury Delendik 08c6437196 Merge pull request #8510 from Snuffleupagus/zoom-dropdown-glitches
Prevent the Zoom dropdown from intermittently displaying an incorrect custom scale in Firefox (PR 8394 follow-up)
2017-06-10 08:03:03 -05:00
Yury Delendik 69c804a0f4 Fixes duplicate creation of PDFWorker for the same port. 2017-06-10 07:02:29 -05:00
Yury Delendik 9342054502 Merge pull request #8430 from mukulmishra18/sendWithStream
Adds sendWithStream method in MessageHandler.
2017-06-09 12:02:12 -05:00
Yury Delendik 5438ce9b98 Wraps mozL10n to async calls; splits firefox and generic l10n libs. 2017-05-31 09:22:25 -05:00
Yury Delendik bd288df909 Merge pull request #8396 from mukulmishra18/streams-lib
Adds streams-lib polyfill and exports ReadableStream from shared/util.
2017-05-31 08:42:48 -05:00
Yury Delendik 1e6f49b129 Merge pull request #8462 from yurydelendik/rm=umd
Removes last UMDs from the modules.
2017-05-31 07:27:19 -05:00
Yury Delendik 66c8893815 Removes last UMDs from the modules. 2017-05-31 07:14:17 -05:00
Yury Delendik b66b705ed7 Using pre-built code for testing. 2017-05-30 22:06:21 +02:00
Yury Delendik a67198895f Resets canvas 2d context to the default state. 2017-05-23 15:10:30 -05:00
Yury Delendik ad797fa74d Merge pull request #8436 from Snuffleupagus/issue-8424
Don't map glyphs to the HANGUL FILLER (0x3164) Unicode location (issue 8424)
2017-05-23 11:11:42 -05:00
Yury Delendik 7b365b9372 Merge pull request #8366 from yurydelendik/rm-shelljs
Removes shelljs
2017-05-19 15:08:04 -05:00
Yury Delendik c0a1ff0b32 Removes CRLF checker 2017-05-19 07:53:34 -05:00
Yury Delendik 65a1e836cf Removes shelljs 2017-05-19 07:53:05 -05:00
Yury Delendik 32bb0e8c0e Merge pull request #8421 from Snuffleupagus/importl10n-nightly
Change the `importl10n` script to use the Nightly channel
2017-05-18 15:48:35 -05:00
Yury Delendik 5dc8dcdc0f Merge pull request #8388 from Snuffleupagus/issue-8380
Cache JPEG images, just as we do for other image formats, in `evaluator.js` (issue 8380)
2017-05-17 17:25:51 -05:00
Yury Delendik 15425d5b9b Merge pull request #8400 from Snuffleupagus/ref-tests-wait-on-destroy
Wait for previous pdfDocument(s) to be destroyed before running the next reference test
2017-05-11 11:59:20 -05:00
Yury Delendik 372fec61c7 Merge pull request #8399 from Snuffleupagus/unit-tests-wait-on-destroy
Wait until `PDFDocumentLoadingTask.destroy` is resolved before calling `done` in the API unit-tests
2017-05-11 11:55:21 -05:00
Yury Delendik 9bfbf27f94 Merge pull request #8350 from ydfzgyj/fix-svg-image
Fix svg image render
2017-05-09 10:53:34 -05:00
Yury Delendik 595ee1232d Merge pull request #8391 from timvandermeij/es6-web
Convert the hand tool, interfaces and secondary toolbar to ES6 syntax
2017-05-09 07:53:27 -05:00
Yury Delendik 3923c4a6fa Merge pull request #8393 from Snuffleupagus/web-app-rm-self
Replace unnecessary `var self = this` statements with arrow functions in `web/app.js`
2017-05-09 07:48:29 -05:00
Yury Delendik 7015c88ce9 Merge pull request #8387 from evadne/issue-8386-webkit-subtle-crypto
amends Babel cache (#8364) implementation to also work on Safari
2017-05-07 13:13:20 -05:00
Yury Delendik deae2d8cb8 Merge pull request #8368 from yurydelendik/sourcemap
Enables source maps for webpack generated files.
2017-05-05 09:32:27 -05:00
Yury Delendik 996805f953 Produces source maps for built files. 2017-05-05 08:15:21 -05:00
Yury Delendik c3cfcbe72f Merge pull request #8340 from ydfzgyj/fix-svg-spacing
Fix char spacing bug in SVG mode
2017-05-05 07:41:25 -05:00
Yury Delendik 206ad8d8b2 Merge pull request #8378 from Snuffleupagus/es6-modules-src-shared
Convert the files in the `/src/shared` folder to ES6 modules
2017-05-04 14:35:09 -05:00
Yury Delendik b0a796ced3 Merge pull request #8377 from Snuffleupagus/web-rm-bind
Replace unnecessary `bind(this)` statements with arrow functions in `web/` files
2017-05-04 12:08:05 -05:00
Yury Delendik c9d3c20e2c Fix esprima tests. 2017-05-04 08:24:44 -05:00
Yury Delendik 3adda80f97 Merge pull request #8358 from Snuffleupagus/PartialEvaluator-method-signatures
Change the signatures of the `PartialEvaluator` "constructor" and its `getOperatorList`/`getTextContent` methods to take parameter objects
2017-05-04 08:10:30 -05:00
Yury Delendik e81c067de2 Merge pull request #8370 from Snuffleupagus/src-rm-bind
Replace unnecessary `bind(this)` and `var self = this` statements with arrow functions in remaining `src/` files
2017-05-03 18:00:34 -05:00
Yury Delendik e42fc546a0 Merge pull request #8369 from mozilla/brendandahl-patch-1
Add no-default-browser-check to chrome runner.
2017-05-03 13:44:19 -05:00
Yury Delendik 74ba3033e8 Merge pull request #8359 from Snuffleupagus/Lexer-getNumber-ignore-line-breaks
Ignore line-breaks between operator and digit in `Lexer.getNumber`
2017-05-03 09:43:59 -05:00