1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-20 07:08:08 +02:00
pdf.js/web
Jonas Jenwald ee5862bd81 Prevent the annotationLayer from, in some cases, becoming duplicated on the first page when the document loads
I don't know if this is a regression, but I noticed earlier today that depending on the initial scale *and* sidebar state, the `annotationLayer` of the first rendered page may end up duplicated; please see screen-shot below.

[screen-shot]

I can reproduce this reliable with e.g. https://arxiv.org/pdf/1112.0542v1.pdf#zoom=page-width&pagemode=bookmarks.
When the document loads, rendering of the first page begins immediately. When the sidebar is then opened, that forces re-rendering which thus aborts rendering of the first page.
Note that calling `PDFPageView.draw()` will always, provided an `AnnotationLayerFactory` instance exists, call `AnnotationLayerBuilder.render()`. Hence the events described above will result in *two* such calls, where the actual annotation rendering/updating happens asynchronously.

For reasons that I don't (at all) understand, when multiple `pdfPage.getAnnotations()` promises are handled back-to-back (in `AnnotationLayerBuilder.render()`), the `this.div` property seems to not update in time for the subsequent calls.
This thus, at least in Firefox, result in double rendering of all annotations on the first page.

Obviously it'd be good to find out why it breaks, since it *really* shouldn't, but this patch at least provides a (hopefully) acceptable work-around by ignoring `getAnnotations()` calls for `AnnotationLayerBuilder` instances that we're destroying (in `PDFPageView.reset()`).
2017-10-07 11:34:53 +02:00
..
images Add icons for the new "Select tool" button 2017-05-22 00:51:03 +02:00
.gitignore Remove obselete file from .gitignore 2015-01-26 16:44:45 +01:00
annotation_layer_builder.css Implement support for polygon annotations 2017-09-23 16:52:47 +02:00
annotation_layer_builder.js Prevent the annotationLayer from, in some cases, becoming duplicated on the first page when the document loads 2017-10-07 11:34:53 +02:00
app.js Refactor PDFViewer to extend an abstract BaseViewer class 2017-09-23 16:28:04 +02:00
base_viewer.js Refactor PDFViewer to extend an abstract BaseViewer class 2017-09-23 16:28:04 +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 [CRX] Integrate cursorToolOnLoad pref + migration logic 2017-07-15 01:50:15 +02:00
compatibility.js Move compatibility code to the shared/compatibility.js. 2017-02-23 19:18:44 -06: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.js Fix inconsistent spacing and trailing commas in objects in web/ files, so we can enable the comma-dangle and object-curly-spacing ESLint rules later on 2017-06-01 12:47:47 +02:00
default_preferences.json Add support for, the API property, PageMode in the viewer (issue 8657) 2017-07-19 16:58:25 +02:00
dom_events.js ES6-ify the code in web/dom_events.js 2017-07-29 13:17:22 +02:00
download_manager.js Convert DownloadManager to an ES6 class 2017-08-06 14:15:18 +02:00
firefox_print_service.js Fix inconsistent spacing and trailing commas in objects in web/ files, so we can enable the comma-dangle and object-curly-spacing ESLint rules later on 2017-06-01 12:47:47 +02:00
firefoxcom.js ES6-ify the code in web/firefoxcom.js 2017-09-10 12:51:33 +02:00
genericcom.js Replace var with let in web/genericcom and web/genericl10n 2017-09-10 13:09:26 +02:00
genericl10n.js Replace var with let in web/genericcom and web/genericl10n 2017-09-10 13:09:26 +02:00
grab_to_pan.js Fix inconsistent spacing and trailing commas in objects in web/ files, so we can enable the comma-dangle and object-curly-spacing ESLint rules later on 2017-06-01 12:47:47 +02:00
interfaces.js Store the rotation in the PDFHistory 2017-09-09 11:27:05 +02:00
overlay_manager.js Convert the overlay manager to ES6 syntax 2017-05-28 21:18:18 +02:00
password_prompt.js Change var to let, and use object destructuring, in a couple of previously class converted web/*.js files 2017-07-03 11:22:49 +02:00
pdf_attachment_viewer.js Attempt to delay disabling of the attachment view until FileAttachment annotations of the *initial* page has been parsed 2017-08-17 14:30:03 +02:00
pdf_cursor_tools.js Unify handling of various cursor tools, e.g. the current Hand Tool and a possible future Zoom Tool, in a new PDFCursorTools module 2017-05-22 00:51:01 +02:00
pdf_document_properties.js Change var to let, and use object destructuring, in a couple of previously class converted web/*.js files 2017-07-03 11:22:49 +02:00
pdf_find_bar.js Ensure that PDFFindBar._adjustWidth is called in all situations where the width of the findbar might have changed 2017-07-05 11:34:14 +02:00
pdf_find_controller.js More robust getPage() error handling. 2017-08-04 17:03:33 -05:00
pdf_history.js Fix a regression that (effectively) makes PDFHistory.forward a no-op 2017-10-05 13:56:40 +02:00
pdf_link_service.js Merge pull request #8868 from Snuffleupagus/save-rotation 2017-09-09 16:33:28 +02:00
pdf_outline_viewer.js Call the reset() methods in the PDFAttachmentViewer and PDFOutlineViewer constructors 2017-08-17 13:04:24 +02:00
pdf_page_view.js Prevent the annotationLayer from, in some cases, becoming duplicated on the first page when the document loads 2017-10-07 11:34:53 +02:00
pdf_presentation_mode.js Change var to let, and use object destructuring, in a couple of previously class converted web/*.js files 2017-07-03 11:22:49 +02:00
pdf_print_service.js Fix inconsistent spacing and trailing commas in objects in web/ files, so we can enable the comma-dangle and object-curly-spacing ESLint rules later on 2017-06-01 12:47:47 +02:00
pdf_rendering_queue.js Convert the rendering queue to ES6 syntax 2017-04-27 16:23:30 +02:00
pdf_sidebar.js Remove the ability to pass a scale parameter in the (optional) args object parameter of PDFViewerApplication.open(file, args) 2017-08-24 13:14:00 +02:00
pdf_single_page_viewer.js Implement a PDFSinglePageViewer class (issue 8188) 2017-09-23 16:28:04 +02:00
pdf_thumbnail_view.js Convert the thumbnail view to ES6 syntax 2017-06-04 21:32:27 +02:00
pdf_thumbnail_viewer.js Slightly refactor the pages rotation handling code in the viewer 2017-09-09 11:27:05 +02:00
pdf_viewer.component.js Implement a PDFSinglePageViewer class (issue 8188) 2017-09-23 16:28:04 +02:00
pdf_viewer.css Ensure canvas is really hidden when used with pdfjs-dist. 2017-06-20 14:45:07 -05:00
pdf_viewer.js Refactor PDFViewer to extend an abstract BaseViewer class 2017-09-23 16:28:04 +02:00
pdfjs.js Fixes pdf.js library source detection. 2017-07-13 14:57:39 -05:00
preferences.js Replace value === (value | 0) checks with Number.isInteger(value) in the web/ folder 2017-09-09 14:12:52 +02:00
secondary_toolbar.js Fix inconsistent spacing and trailing commas in objects in web/ files, so we can enable the comma-dangle and object-curly-spacing ESLint rules later on 2017-06-01 12:47:47 +02:00
text_layer_builder.css Use default line height for the text layer 2015-12-02 23:00:12 +01:00
text_layer_builder.js Convert the text layer builder to ES6 syntax 2017-06-29 23:41:25 +02:00
toolbar.js Remove the selectScaleOption helper function, in Toolbar._updateUIState, and simply inline its code instead 2017-06-26 13:06:24 +02:00
ui_utils.js Refactor PDFViewer to extend an abstract BaseViewer class 2017-09-23 16:28:04 +02:00
view_history.js Remove the migration code for old localStorage data in ViewHistory 2017-08-19 11:41:04 +02: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 Add translations of "Allow access to file URLs" 2015-08-14 18:59:55 +02:00
viewer-snippet-firefox-extension.html Wraps mozL10n to async calls; splits firefox and generic l10n libs. 2017-05-31 09:22:25 -05: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 Unify handling of various cursor tools, e.g. the current Hand Tool and a possible future Zoom Tool, in a new PDFCursorTools module 2017-05-22 00:51:01 +02:00
viewer.html Don't load compatibility.js in the viewer while in non-PRODUCTION mode 2017-08-14 15:57:18 +02:00
viewer.js ES6-ify the code in web/app.js and web/viewer.js 2017-06-30 10:10:01 +02:00