1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-19 22:58:07 +02:00
pdf.js/web
Jonas Jenwald 0c31320c12 [api-minor] Improve thumbnail handling in documents that contain interactive forms
To improve performance of the sidebar we use the page-canvases to generate the thumbnails whenever possible, since that avoids unnecessary re-rendering when the sidebar is open. This works generally well, however there's an old problem in PDF documents that contain interactive forms (when those are enabled): Note how the thumbnails become partially (or fully) blank, since those Annotations are not included in the OperatorList.[1]

We obviously want to keep using the `PDFThumbnailView.setImage`-method for most documents, however we need a way to skip it only for those pages that contain interactive forms.
As it turns out it's unfortunately not all that simple to tell, after the fact, from looking only at the OperatorList that some Annotations were skipped. While it might have been possible to try and infer that in the viewer, it'd not have been pretty considering that at the time when rendering finishes the annotationLayer has not yet been built.
The overall simplest solution that I could come up with, was instead to include a *summary* of the interactive form-state when doing the final "flushing" of the OperatorList and expose that information in the API.

---
[1] Some examples from our test-suite: `annotation-tx2.pdf` where the thumbnail is completely blank, and `bug1737260.pdf` where the thumbnail is missing the "buttons" found on the page.
2022-07-30 16:53:32 +02:00
..
images [Editor] Change the cursor to a pen for the Ink editor 2022-07-07 18:23:59 +02:00
.gitignore Remove obselete file from .gitignore 2015-01-26 16:44:45 +01:00
annotation_editor_layer_builder.css [Editor] Replace mouse events by pointer ones (bug 1779015) 2022-07-22 13:46:39 +02:00
annotation_editor_layer_builder.js [Editor] Improve a11y for newly added element (#15109) 2022-07-19 18:52:17 +02: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 Support rotating editor layer 2022-06-24 20:02:32 +02:00
annotation_layer_builder.js Call AnnotationLayer.setDimensions as part of the render/update-methods (PR 15036 follow-up) 2022-07-04 12:27:20 +02:00
app.js Limit more SVG-specific code to the GENERIC viewer 2022-07-16 11:24:09 +02:00
app_options.js Use default colors only in forced-colors mode (bug 1778068) 2022-07-07 19:36:03 +02:00
base_tree_viewer.js Use modern DOM methods a bit more (PR 15031 follow-up) 2022-06-13 10:47:37 +02:00
base_viewer.js Merge pull request #15215 from Snuffleupagus/optional-content-initial 2022-07-30 12:04:23 +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 Re-factor the OverlayManager class to use a WeakMap internally 2022-03-28 11:36:31 +02: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 Move the PDFBug-related CSS from viewer.css and into its own file 2022-04-16 14:16:39 +02:00
debugger.js Enable the unicorn/prefer-dom-node-append ESLint plugin rule 2022-06-12 13:07:03 +02:00
default_factory.js [api-minor] Change the various factories, in the viewer, to accept Objects 2022-07-29 16:31:04 +02:00
download_manager.js Enable the unicorn/prefer-dom-node-append ESLint plugin rule 2022-06-12 13:07:03 +02:00
event_utils.js Move the EventBus, and related functionality, into its own file 2021-12-15 17:18:57 +01:00
firefox_print_service.js [api-minor] Introduce a PrintAnnotationStorage with *frozen* serializable data 2022-06-23 17:06:46 +02:00
firefoxcom.js [Editor] Dispatch an event when some global states are changing 2022-07-05 22:12:56 +02: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 Revert Preferences to their previous values, when writing to storage failed 2022-03-12 17:25:45 +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] Change the various factories, in the viewer, to accept Objects 2022-07-29 16:31:04 +02:00
l10n_utils.js [Editor] Improve a11y for newly added element (#15109) 2022-07-19 18:52:17 +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 Re-factor the OverlayManager class to use a WeakMap internally 2022-03-28 11:36:31 +02:00
pdf_attachment_viewer.js Enable the unicorn/prefer-dom-node-append ESLint plugin rule 2022-06-12 13:07:03 +02:00
pdf_cursor_tools.js Use proper private methods in web/pdf_cursor_tools.js 2022-03-06 16:06:53 +01: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 [Editor] Improve a11y for newly added element (#15109) 2022-07-19 18:52:17 +02: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 Remove element ids from the layersView in the sidebar 2022-06-24 20:15:46 +02:00
pdf_link_service.js Fix a couple of small typos in JSDoc typedef comments 2022-03-04 12:11:52 +01:00
pdf_outline_viewer.js Enable the unicorn/prefer-dom-node-append ESLint plugin rule 2022-06-12 13:07:03 +02:00
pdf_page_view.js [api-minor] Improve thumbnail handling in documents that contain interactive forms 2022-07-30 16:53:32 +02:00
pdf_presentation_mode.js [editor] Disable editing while PresentationMode is active 2022-07-01 16:52:17 +02:00
pdf_print_service.js [api-minor] Introduce a PrintAnnotationStorage with *frozen* serializable data 2022-06-23 17:06:46 +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 Replace element ids with custom attributes for Widget-annotations (issue 15056) 2022-06-18 16:43:05 +02:00
pdf_sidebar.js Convert the PDFSidebar class to use private methods 2022-05-27 11:36:01 +02:00
pdf_sidebar_resizer.js Introduce a viewer constant for document.documentElement.style 2022-05-25 09:55:54 +02:00
pdf_thumbnail_view.js Improve how we disable PDFThumbnailView.setImage for documents with Optional Content (PR 12170 follow-up) 2022-07-24 17:29:37 +02:00
pdf_thumbnail_viewer.js Improve how we disable PDFThumbnailView.setImage for documents with Optional Content (PR 12170 follow-up) 2022-07-24 17:29:37 +02:00
pdf_viewer.component.js Use the (viewer) parseQueryString helper function in the reference tests 2022-02-19 09:41:04 +01:00
pdf_viewer.css Add a visible page border in HCM (bug 1776914) 2022-06-29 11:52:19 +02:00
pdf_viewer.js Move PDFSinglePageViewer into the web/pdf_viewer.js file 2021-10-12 13:45:19 +02: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 Stop bundling the openFile-buttons in the CHROME build 2022-05-07 22:45:56 +02:00
struct_tree_layer_builder.js Enable the unicorn/prefer-dom-node-append ESLint plugin rule 2022-06-12 13:07:03 +02:00
text_highlighter.js Use modern DOM methods a bit more (PR 15031 follow-up) 2022-06-13 10:47:37 +02:00
text_layer_builder.css Avoid the textLayer becoming visible in high contrast mode (issue 13230) 2022-03-24 14:20:27 +01:00
text_layer_builder.js Enable the unicorn/prefer-dom-node-append ESLint plugin rule 2022-06-12 13:07:03 +02:00
toolbar.js [editor] Add some UI elements in order to set font size & color, and ink thickness & color 2022-06-28 12:05:04 +02:00
ui_utils.js Limit even more SVG-specific code to the GENERIC viewer 2022-07-21 10:03:02 +02:00
view_history.js Add a bit more validation in the ViewHistory constructor 2020-03-21 13:55:06 +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 Merge pull request #15121 from Snuffleupagus/loadingBar-cleanup 2022-07-02 16:46:40 +02:00
viewer.html [Editor] Simplify the strings for the tools in the UI 2022-07-28 10:02:59 +02:00
viewer.js [Editor] Add the possibility to change line opacity in Ink editor 2022-07-27 18:46:25 +02:00
xfa_layer_builder.css Outline fields which are required (bug 1724918) 2022-06-07 17:02:11 +02:00
xfa_layer_builder.js Enable the unicorn/prefer-dom-node-append ESLint plugin rule 2022-06-12 13:07:03 +02:00