pdf.js/web
Jonas Jenwald 397f943ca3 [api-minor] Enable transferring of TypedArray PDF data by default (PR 15908 follow-up)
This patch removes the recently introduced `transferPdfData` API-option, and simply enables transferring of TypedArray data *by default* instead of copying it. This will help reduce main-thread memory usage, however it will take ownership of the TypedArrays. Currently this only applies to the following cases:
 - TypedArrays passed to the `getDocument`-function in the API, in order to open PDF documents from binary data.
 - TypedArrays passed to a `PDFDataRangeTransport`-instance, used to support custom PDF document fetching/loading (see e.g. the Firefox PDF Viewer).

*PLEASE NOTE:* To avoid being affected by this, please simply *copy* any TypedArray data before passing it to either of the functions/methods mentioned above.

Now that we transfer TypedArray data that we previously only copied, we need to be more careful with input validation. Given how the `{IPDFStreamReader, IPDFStreamRangeReader}.read` methods will always return ArrayBuffer data, which is then transferred to the worker-thread[1], the actual TypedArray data passed to the API thus need to have the same exact size as its underlying ArrayBuffer to prevent issues.
Hence we'll check for this and only allow transferring of *safe* TypedArray data, and fallback to simply copying the data just as before. This obviously shouldn't be an issue in the Firefox PDF Viewer, but for the general PDF.js library we need to be more careful here.

---
[1] See e09ad99973/src/display/api.js (L2492-L2506) respectively e09ad99973/src/display/api.js (L2578-L2590)
2023-01-14 10:39:36 +01:00
..
images Remove shadow around each pages (fix issue #15836) 2023-01-02 14:58:53 +01:00
.gitignore Remove obselete file from .gitignore 2015-01-26 16:44:45 +01:00
annotation_editor_layer_builder.css Set a z-index for the different layers within a page (fixes #15861) 2022-12-26 22:55:08 +01:00
annotation_editor_layer_builder.js [api-minor] Remove the annotationEditorLayerFactory in the viewer 2022-12-18 13:10:23 +01:00
annotation_editor_params.js [Editor] Add the possibility to change line opacity in Ink editor 2022-07-27 18:46:25 +02:00
annotation_layer_builder.css Set a z-index for the different layers within a page (fixes #15861) 2022-12-26 22:55:08 +01:00
annotation_layer_builder.js Handle possibly undefined parameters *once* per AnnotationLayer.render invocation 2022-12-14 12:23:24 +01:00
app_options.js [api-minor] Enable transferring of TypedArray PDF data by default (PR 15908 follow-up) 2023-01-14 10:39:36 +01:00
app.js Merge pull request #15909 from calixteman/pinch_trackpad 2023-01-11 16:26:21 +01:00
base_tree_viewer.js Use modern DOM methods a bit more (PR 15031 follow-up) 2022-06-13 10:47:37 +02:00
chrome-i18n-allow-access-to-file-urls.json Add translations of "Allow access to file URLs" 2015-08-14 18:59:55 +02:00
chromecom.js Remove the unused DefaultExternalServices.createDownloadManager options (PR 12191 follow-up) 2022-12-03 12:52:36 +01:00
compressed.tracemonkey-pldi-09.pdf Add Makefile. Move some files around to make building the website easier. 2011-07-05 10:53:57 -07:00
debugger.css Restore the old fonts in the debugger (PR 15438 follow-up) 2022-09-21 21:49:17 +02:00
debugger.js Prevent the debugger from breaking on unbalanced save/restore OPS (issue 15767) 2022-12-01 15:43:17 +01:00
download_manager.js Use private fields in a few more viewer classes 2022-11-04 15:29:45 +01:00
event_utils.js Use private fields in a few more viewer classes 2022-11-04 15:29:45 +01:00
firefox_print_service.js Fix a typo in firefox print service (bug 1777693) 2022-08-03 17:25:01 +02:00
firefoxcom.js [api-minor] Add the pinch-to-zoom feature (bug 1677933) 2023-01-04 16:00:46 +01:00
generic_scripting.js [JS] Use beforeinput event to trigger a keystroke event in the sandbox 2022-01-23 19:53:01 +01:00
genericcom.js Remove the unused DefaultExternalServices.createDownloadManager options (PR 12191 follow-up) 2022-12-03 12:52:36 +01:00
genericl10n.js Fix broken/missing JSDocs and typedefs, to allow updating TypeScript to the latest version (issue 14342) 2021-12-15 23:14:25 +01:00
grab_to_pan.js Enable the unicorn/prefer-dom-node-append ESLint plugin rule 2022-06-12 13:07:03 +02:00
interfaces.js [api-minor] Remove the xfaLayerFactory in the viewer 2022-12-18 13:26:54 +01:00
l10n_utils.js Stop localizing error *details* in the viewer (PR 15533 follow-up) 2022-10-06 13:09:39 +02:00
overlay_manager.js Use modern DOM methods a bit more (PR 15031 follow-up) 2022-06-13 10:47:37 +02:00
password_prompt.js Improve handling of the "Cancel"-button in the password dialog 2022-08-22 11:17:08 +02:00
pdf_attachment_viewer.js Support FileAttachments with hash-signs in the filename (issue 15729) 2022-11-23 10:47:33 +01:00
pdf_cursor_tools.js [Editing] Disable the HandTool during editing (bug 1792422) 2022-09-29 10:44:06 +02:00
pdf_document_properties.js Ensure that the contentDispositionFilename is always respected, when setting the document title (PR 13014 follow-up) 2022-05-28 12:39:49 +02:00
pdf_find_bar.js [GENERIC viewer] Try to improve a11y, for search results, in the findbar (issue 14525) 2022-03-31 23:12:56 +02:00
pdf_find_controller.js [GV] Add an option in the find controller to update matches count only when the last page is reached (bug 1803188). 2023-01-06 10:56:26 +01:00
pdf_find_utils.js Enable auto-formatting of the entire code-base using Prettier (issue 11444) 2019-12-26 12:34:24 +01:00
pdf_history.js Tweak the pdfOpenParams parameter, in the "updateviewarea" event, in PresentationMode 2022-04-05 14:13:20 +02:00
pdf_layer_viewer.js [api-minor] Add basic support for the SetOCGState action (issue 15372) 2022-09-01 17:34:24 +02:00
pdf_link_service.js Prevent keyboard interaction with form elements in PresentationMode (issue 12232) 2022-10-30 21:57:55 +01:00
pdf_outline_viewer.js [api-minor] Add partial support for the "GoToE" action (issue 8844) 2022-10-06 10:33:07 +02:00
pdf_page_view.js Improve name consistency in the viewer (PR 15812 follow-up) 2022-12-28 13:26:01 +01:00
pdf_presentation_mode.js Prevent mouse interaction with form elements in PresentationMode (issue 12232) 2022-10-30 21:55:44 +01:00
pdf_print_service.js Use stopImmediatePropagation without checking for its existence first 2022-09-24 15:02:12 +02:00
pdf_rendering_queue.js Move the Default{...}LayerFactory into a new web/default_factory.js file 2021-12-15 23:17:08 +01:00
pdf_scripting_manager.js [GeckoView] Ignore the pageLayout, from the PDF document, to prevent issues 2022-12-16 12:09:56 +01:00
pdf_sidebar_resizer.js Introduce a viewer constant for document.documentElement.style 2022-05-25 09:55:54 +02:00
pdf_sidebar.js Re-factor the toggleButton l10n in the PDFSidebar class 2022-09-30 09:59:58 +02:00
pdf_single_page_viewer.js Remove the abstract BaseViewer-class 2022-09-08 12:38:17 +02:00
pdf_thumbnail_view.js Ignore too small page-canvases in PDFThumbnailView.setImage 2022-07-31 13:59:56 +02:00
pdf_thumbnail_viewer.js Use more optional chaining in the code-base 2022-09-05 15:41:53 +02:00
pdf_viewer.component.js [api-minor] Remove the xfaLayerFactory in the viewer 2022-12-18 13:26:54 +01:00
pdf_viewer.css Merge pull request #15850 from calixteman/15836 2023-01-07 13:29:41 +01:00
pdf_viewer.js [api-minor] Add the pinch-to-zoom feature (bug 1677933) 2023-01-04 16:00:46 +01:00
pdfjs.js Enable auto-formatting of the entire code-base using Prettier (issue 11444) 2019-12-26 12:34:24 +01:00
preferences.js Revert Preferences to their previous values, when writing to storage failed 2022-03-12 17:25:45 +01:00
print_utils.js Enable the unicorn/prefer-dom-node-append ESLint plugin rule 2022-06-12 13:07:03 +02:00
secondary_toolbar.js Merge pull request #15416 from calixteman/buttons_telemetry 2022-09-12 13:59:45 +02:00
struct_tree_layer_builder.js Don't re-create the structTreeLayer on zooming and rotation 2022-12-04 10:18:58 +01:00
text_accessibility.js Move binarySearchFirstItem back to the web/-folder (PR 15237 follow-up) 2022-08-14 11:38:17 +02:00
text_highlighter.js Refactor the text layer code in order to avoid to recompute it on each draw 2022-12-01 18:42:43 +01:00
text_layer_builder.css Set a z-index for the different layers within a page (fixes #15861) 2022-12-26 22:55:08 +01:00
text_layer_builder.js Only redraw after zooming is finished (bug 1661253) 2022-12-26 18:13:17 +01:00
toolbar.js Simplify the dropdownToolbarButton-select width computation 2022-10-07 18:19:10 +02:00
ui_utils.js [GeckoView] Ignore the pageLayout, from the PDF document, to prevent issues 2022-12-16 12:09:56 +01:00
view_history.js Add a bit more validation in the ViewHistory constructor 2020-03-21 13:55:06 +01:00
viewer-geckoview.css Merge pull request #15850 from calixteman/15836 2023-01-07 13:29:41 +01:00
viewer-geckoview.html [GV] Remove print stuff because window.print isn't implemented (bug 1808668) 2023-01-05 13:02:29 +01:00
viewer-geckoview.js [GV] Remove print stuff because window.print isn't implemented (bug 1808668) 2023-01-05 13:02:29 +01:00
viewer-snippet-chrome-extension.html Wraps mozL10n to async calls; splits firefox and generic l10n libs. 2017-05-31 09:22:25 -05:00
viewer-snippet-chrome-overlays.html Convert the existing overlays to use <dialog> elements (issue 14698) 2022-03-28 11:36:29 +02:00
viewer-snippet-firefox-extension.html Stop bundling the ReadableStream polyfill in MOZCENTRAL builds (PR 10470 follow-up) 2019-01-23 20:33:20 +01:00
viewer-snippet-minified.html Remove XHTML leftovers from the viewer HTML files 2016-02-14 13:23:34 +01:00
viewer-snippet.html Wraps mozL10n to async calls; splits firefox and generic l10n libs. 2017-05-31 09:22:25 -05:00
viewer.css Remove the background-color of the sidebarContent (PR 15850 follow-up) 2023-01-08 14:06:02 +01:00
viewer.html Ignore PDF documents opened from "data:"-URLs when handling internal links (bug 1803050) 2022-11-29 14:08:01 +01:00
viewer.js [GENERIC viewer] Remove the errorWrapper UI 2022-10-01 17:35:35 +02:00
xfa_layer_builder.css [XFA] Add some padding inline in selects 2022-10-07 15:11:58 +02:00
xfa_layer_builder.js Change the XfaLayerBuilder.render method to be asynchronous 2022-12-11 13:08:23 +01:00