PDF.js v2.3.200 Release Notes

Release Date: 2019-10-03 // 6 months ago
  • 🔄 Changes since v2.2.228:

    #10960 Bump versions in pdfjs.config
    #10963 Ensure that PDFViewerApplication.{zoomIn, zoomOut} won't run when PesentationMode is active (PR 10652 follow-up)
    🚚 #10959 Remove the data-pdfjsprinting attribute on the <body> when destroying FirefoxPrintService/PDFPrintService instances (issue 10948)
    #10962 Prevent "Uncaught promise" messages in the console when cancelling TextLayer tasks (PR 10601 follow-up)
    #10964 Bump lodash from 4.17.10 to 4.17.14
    🚚 #10958 Remove the intentState.receivingOperatorList boolean since it's redundant
    #10850 Scale stroking line width when using a tiling pattern.
    #10851 Apply bounding box before using shading patterns.
    🏁 #10950 Fixed testing webserver to handle paths correctly on Windows
    #10966 Add timestamp to the page rendered event.
    🚚 #10968 Remove useless wrapReason calls in the MessageHandler class
    #10970 Simplify, and inline, the finalize function in the MessageHandler class
    #10969 Add an API unit-test for the stopAtErrors option (PRs 8240 and 8922 follow-up)
    🖨 #10974 Simplify the PDFDocument.fingerprint method slightly
    📜 #10820 Annotations - Added parsing of IRT, RT, State and StateModel
    #10987 Bump js-yaml from 3.12.0 to 3.13.1
    ♻️ #10990 Refactor the onBeforeDraw/onAfterDraw functionality used in BaseViewer and PDFPageView
    #10979 [Firefox] Re-factor the 'zoomreset' message handling in the viewer (PR 10652 follow-up)
    #10986 Attempt to significantly reduce the number of ChunkedStream.{ensureByte, ensureRange} calls by inlining the this.progressiveDataLength checks at the call-sites
    #10993 Add the docBaseUrl API parameter to AppOptions in the viewer
    🚚 #10995 Remove an unnecessary PDFDocumentProperties.setFileSize call, relevant for the Firefox built-in viewer, and use the "normal" code-path in PDFViewerApplication.open instead
    📜 #11001 Inline the isCmd check in the Parser.shift method
    #10996 Avoid creating a PDFFindBar instance, in the Firefox built-in viewer, when not actually necessary
    👍 #11003 Ensure that setting the zoomDisabledTimeout isn't skipped, regardless of the supported zoom keys, when handling mouse wheel events (PR 7097 follow-up)
    #11012 Reduce the number of function calls in EvaluatorPreprocessor.read
    #11019 Decode URL encoded filenames from content disposition headers
    #11020 Add a work-around, in glyphlist.js, for bad PDF generators which use a non-standard /f_f string in the Encoding dictionary when referring to the ff ligature (issue 11016)
    #11033 Ensure that the loading indicator, in the pageNumber input, is hidden when the viewer is closed
    ⚡️ #11029 [api-minor] Update telemetry to use 'categorical' histograms.
    #11034 Ensure that ReadableStreams are cancelled with actual Errors
    #11038 [api-minor] Fix completely broken getStats method by returning stats in Objects, rather than in Arrays (PR 11029 follow-up)
    #11013 [api-minor] Implement quadpoints for annotations in the core layer
    #11048 Use more compact keys in PDFLinkService._pagesRefCache
    #11049 Add page rendered timestamp to telemetry.
    👍 #11047 Support corrupt PDF files with invalid/non-existent Group /CS entries (issue 11045)
    #11051 Actually compare the cropBox and mediaBox correctly in the Page.view getter
    #11057 Handle some corrupt/truncated JPEG images that are missing the EOI (End of Image) marker (issue 11052)
    #11059 Fallback gracefully when encountering corrupt PDF files with empty /MediaBox and /CropBox entries
    🌐 #11062 Miscellaneous small clean-up of code in the web/ folder
    #11064 Convert the src/shared/util.js file to ES6 syntax
    📜 #11070 Inline the isString check in the Parser.getObj method
    🚚 #11073 Move polyfill for codePointAt to String prototype.
    #11076 Replace the XRef.cache Array with a Map instead
    #11081 added in information about pdfjs/webpack
    💅 #11079 [TextLayer] Only cache the current textDiv style when enhanceTextSelection is enabled and use template strings in expandTextDivs
    #11087 Add a way to disable external links.
    #11086 [TextLayer] Only cache the originalTransform when enhanceTextSelection is enabled
    #11091 [TextLayer] Only handle positive padding values in expandTextDivs
    🏗 #11090 [TextLayer] Use an Array to build the total transform, rather than concatenating Strings, in expandTextDivs
    🖨 #11093 Shorthand afterPrint signature in app.js
    🏗 #11092 [TextLayer] Use an Array to build the total padding, rather than concatenating Strings, in expandTextDivs
    #11069 Use streams for OperatorList chunking (issue 10023)
    ⚡️ #11096 Update translations/packages and upgrade to eslint version 6
    #11095 Include a reduced, non-linked PDF file for the attachments API unit test
    #11097 [TextLayer] Only measure the width of the text, in _layoutText, for multi-char text divs
    #11102 Bump mixin-deep from 1.3.1 to 1.3.2
    ⚡️ #11104 [TextLayer] Avoid unnecessary font updates in _layoutText and remove setAttribute usage in appendText
    #11107 Various MessageHandler improvements when using Streams
    🚚 #11110 Remove support for the scope parameter in the MessageHandler.on method
    #11111 Inline the resolveCall helper function at its call-sites in MessageHandler
    🚚 #11112 Remove the API/Worker version warning message in TESTING mode
    #11108 Use more ES6 syntax in the annotation code
    #11115 Ensure that Errors are handled correctly when using postMessage with Streams in MessageHandler
    🚚 #11123 [api-minor] Remove the postMessageTransfers parameter, and thus the ability to manually disable transferring of data, from the API
    👷 #11118 Transfer, rather than copy, CMap data to the worker-thread
    ⚡️ #11127 Update the eslint-plugin-mozilla to the latest version (PR 10905 follow-up)
    #11129 Prevent "offsetParent is not set -- cannot scroll" errors when the viewer loads in e.g. a hidden <iframe>
    👕 #11133 Enable the no-async-promise-executor ESLint rule
    👷 #11130 Don't enqueue unused properties when sending 'GetOperatorList' data from the worker-thread (PR 11069 follow-up)
    #11138 [CRX] Ignore auto-generated from Chrome
    #11134 Ensure that addLinkAttributes is always called with a valid url parameter
    0️⃣ #11142 Stop dispatching a "localized" event from the webL10n library, since it's unused and may clash with the default viewer
    👷 #11106 Abort, with a small delay, getOperatorList on the worker-thread when rendering is cancelled (PR 11069 follow-up)
    ⚡️ #11145 Update translations and packages
    #11155 Miscellaneous (small) clean-up of the MessageHandler code
    #11159 For Type1 fonts, replace missing font dictionary /Widths entries with ones from the font data (issue 11150)
    #11158 Avoid floating point inaccuracy in gradient color stops
    #11163 Fix the link in the doc website
    #11146 Replace our URL polyfill with the one from core-js
    👕 #11165 Enable a couple of return related ESLint rules
    ⚡️ #11168 Remove unmaintained localizations and update translations and packages
    #11171 Fix the inconsistent return types for Dict.{get, getAsync}
    📦 #11173 Replace the bundled ReadableStream polyfill with the web-streams-polyfill npm package (issue 11157)
    #11169 Reduce the number of function calls in the Dict class
    👻 #11185 Convert the various ...Exceptions to proper classes, to reduce code duplication
    👷 #11182 Forbid sending of Dicts and Streams, with postMessage, when workers are disabled
    👀 #11187 Convert the various image decoder ...Errors to classes extending BaseException (PR 11185 follow-up)