Commit Graph

9395 Commits

Author SHA1 Message Date
Tim van der Meij
fa90573c4b SVG: optimize transform group creation
This patch ensures that we only create transformation groups when it is
actually required and that we re-use transform groups as much as possible.
It reduces the number of transform groups for the Tracemonkey paper from
2790 to 1271, thereby making the DOM much lighter and rendering/scrolling
smoother. Moreover, it simplifies the code and prevents duplication.

Finally, we issue a warning when an unimplemented graphic state is
encountered. Before, this was ignored silently, making debugging harder.
2016-10-15 21:43:12 +02:00
Tim van der Meij
de6c92a96d Examples: improve SVG viewer
This patch:

- resolves a warning in the console about missing character encoding;
- makes the viewer use the same background color and PDF file as the
  regular viewer;
- simplifies the example to bring it more in line with the other
  examples.
2016-10-15 21:08:24 +02:00
Tim van der Meij
2e20000b71 Merge pull request #7727 from Snuffleupagus/parser-stream-decodeParms
Let `Parser_makeFilter` pass in the `DecodeParms` data to various image `Stream`s, instead of re-fetching it in various `[...]Stream.prototype.ensureBuffer` methods
2016-10-15 20:04:17 +02:00
Yury Delendik
ea5949f1fd Merge pull request #7668 from Snuffleupagus/issue-7665
Prevent an infinite loop in `XRef_fetchUncompressed` for encrypted PDF files with indirect objects in the /Encrypt dictionary (issue 7665)
2016-10-15 10:52:08 -05:00
Jonas Jenwald
f209030b99 Merge pull request #7726 from Snuffleupagus/remove-remaining-preprocessor-statement-core-fonts
Remove a remaining old-style preprocessor from `src/core/fonts.js` (PR 7322 follow-up)
2016-10-15 13:46:23 +02:00
Jonas Jenwald
c8f83d6487 Let Parser_makeFilter pass in the DecodeParms data to various image Streams, instead of re-fetching it in various [...]Stream.prototype.ensureBuffer methods
In `Parser_filter` the `DecodeParms` data is fetched and passed to `Parser_makeFilter`, where we also make sure that a `Ref` is resolved to a direct object.
We can thus pass this along to the various image `Stream` constructors, to avoid the current situation where we lookup/resolve data that is already available.
Note also that we currently do *not* handle the case where `DecodeParms` is an Array entirely correct in the various image `Stream`s, and this patch fixes that for free.
2016-10-15 12:09:51 +02:00
Jonas Jenwald
1da59bec9b Remove a remaining old-style preprocessor from src/core/fonts.js (PR 7322 follow-up)
Note that this code was added *after* PR 7322 was opened, which thus explains why it was missed during rebasing.
2016-10-15 11:33:09 +02:00
Jonas Jenwald
c1a34ffbcd Merge pull request #7322 from yurydelendik/preproc2
Remove JS preprocessor code from the web/ and src/ files
2016-10-14 23:35:17 +02:00
Yury Delendik
0576c9c6c6 Replaces all preprocessor directives with PDFJSDev calls. 2016-10-14 10:57:53 -05:00
Yury Delendik
bf52ff156d Adds esprima-based preprocessor. 2016-10-14 08:33:22 -05:00
Jonas Jenwald
bc3bcebde2 Merge pull request #7722 from Rob--W/grab-to-pan-cssom-and-cleanup
Update to latest grab-to-pan version
2016-10-14 09:58:24 +02:00
Rob Wu
c7c6bf1ae8 Update to latest grab-to-pan version 2016-10-14 00:55:58 +02:00
Tim van der Meij
c457e6015d Merge pull request #7714 from cemerick/fix-non-numeric-TJ
Fix getTextContent evaluation to only apply TJ horizontal offsets using numeric items/args
2016-10-13 16:03:49 +02:00
Chas Emerick
85c52f1fd6 Fix getTextContent evaluation to only apply TJ horizontal offsets using numeric items/args
While the array argument to TJ should only contain strings and numbers, other
unfortunate items are found in PDFs in the wild, e.g.:

[(Grandes) 0.0 Tc
-250.0 (Client\350les,) 0.0 Tc
-250.0 (Financements) 0.0 Tc
-250.0 (et) 0.0 Tc
-250.0 (March\351s) ] TJ

getOperatorList already properly ignores any non-string, non-numeric values in
TJ arrays; without this patch to getTextContent, returned text items can have
NaN widths due to calculations being applied to those non-numeric values.
2016-10-13 08:08:31 -04:00
Tim van der Meij
8c5b925547 Merge pull request #7514 from Snuffleupagus/viewer-abort-rendering-on-close
Ensure that we cancel any pending rendering operations when the viewer is closed (issue 7274)
2016-10-11 23:48:51 +02:00
Jonas Jenwald
885ba83624 Add the number of textDivs to the textlayerrendered event, to avoid having to manually get that information in the event handler 2016-10-11 22:36:02 +02:00
Jonas Jenwald
3904be8889 Ensure that we cancel any pending textLayer rendering operations when the viewer is closed (issue 7274) 2016-10-11 22:01:22 +02:00
Jonas Jenwald
a824c6c4f6 Ensure that any pending rendering operations in PDFViewer/PDFThumbnailViewer are cancelled when the viewer is closed 2016-10-11 22:01:22 +02:00
Tim van der Meij
fb5aa58008 Merge pull request #7697 from yurydelendik/print-v2
Refactoring of printing code and mozPrintCallback polyfill
2016-10-11 21:22:07 +02:00
Yury Delendik
1a056caf88 Localization of the print dialog. 2016-10-11 10:08:13 -05:00
Yury Delendik
c09f634bb6 Removes mozPrintCallback polyfill, converts canvas to PNG. 2016-10-11 10:08:13 -05:00
Jonas Jenwald
d7148735ba Update l10n files 2016-10-09 12:11:53 +02:00
Yury Delendik
24a7a58da7 Moves mozPrintCallback specific code to firefox_printservice.js 2016-10-08 07:33:07 -05:00
Tim van der Meij
f8bd3d4473 Merge pull request #7694 from yurydelendik/print-ff
Disables Font Loading API for Firefox.
2016-10-06 23:17:12 +02:00
Yury Delendik
e336604ef1 Disables Font Loading API for Firefox. 2016-10-06 09:30:18 -05:00
Yury Delendik
e48f388d24 Merge pull request #7677 from yurydelendik/print
Bug 1302069 - Printing canvases at PDF document size.
2016-10-06 08:16:19 -05:00
Yury Delendik
29947b5a57 Printing canvases at PDF document size. 2016-10-06 07:51:45 -05:00
Tim van der Meij
9b3a91f365 Merge pull request #7671 from timvandermeij/interactive-forms-choice-fields
Interactive forms: render choice widget annotations
2016-10-05 23:27:45 +02:00
Tim van der Meij
f85f3243b1 Choice widget annotations: unit and reference testing 2016-10-05 21:25:29 +02:00
Tim van der Meij
d5d9f362aa Choice widget annotations: core and display layer implementation 2016-10-05 21:25:29 +02:00
Yury Delendik
7b2a9ee4e0 Merge pull request #7670 from Snuffleupagus/Parser_makeFilter-maybeLength
Only skip parsing a stream in `Parser_makeFilter` when we know for sure that it is empty (PR 6372 follow-up)
2016-10-05 10:38:12 -05:00
Yury Delendik
b4a90121f0 Merge pull request #7692 from yurydelendik/v1.6.210
Release of 1.6.210
2016-10-04 12:21:07 -05:00
Yury Delendik
970cf8e891 Release of 1.6.210 2016-10-04 12:19:51 -05:00
Yury Delendik
4ce2356a59 Merge pull request #7691 from yurydelendik/version-1.6
Version 1.6
2016-10-04 12:14:18 -05:00
Yury Delendik
c1539f584a Version 1.6 2016-10-04 12:12:37 -05:00
Yury Delendik
d2a4974785 Merge pull request #7681 from Snuffleupagus/bug-1122280-unit-test
Add a unit-test for annotations where the `URI` action has an incorrect encoding (bug 1122280, PR 5999)
2016-09-30 08:28:23 -05:00
Jonas Jenwald
93830032ac Add a unit-test for annotations where the URI action has an incorrect encoding (bug 1122280, PR 5999) 2016-09-30 11:44:24 +02:00
Tim van der Meij
1564dc311a Merge pull request #7618 from jeremypress/fix-enhanced-double-click
fixing #7590 by delaying div shrink after mouse up
2016-09-28 23:30:35 +02:00
Yury Delendik
869914529d Merge pull request #7656 from Snuffleupagus/issue-4090
Attempt to skip zero bytes at the end of Scan blocks when decoding JPEG images (issue 4090)
2016-09-28 11:43:38 -05:00
Yury Delendik
b4be1e91ab Merge pull request #7653 from staktrace/touch_swipe_presentation_mode
Add support for touch-swiping between pages in presentation mode (bug…
2016-09-28 11:30:37 -05:00
Kartikaya Gupta
ba9e8cb184 Add support for touch-swiping between pages in presentation mode (bug 1300878). 2016-09-28 11:35:25 -04:00
Jonas Jenwald
54ee83eb12 Attempt to skip zero bytes at the end of Scan blocks when decoding JPEG images (issue 4090) 2016-09-28 16:31:02 +02:00
Tim van der Meij
a9a3396f3d Merge pull request #7181 from yurydelendik/mouse-wheel
Simplified wheel processing
2016-09-27 22:50:50 +02:00
Yury Delendik
223a18ccc8 Simplified wheel processing. 2016-09-27 15:27:42 -05:00
Tim van der Meij
7f381c8064 Merge pull request #7661 from Snuffleupagus/bug-956965
Respect the 'ColorTransform' entry in the image dictionary when decoding JPEG images (bug 956965, issue 6574)
2016-09-27 20:22:43 +02:00
Jonas Jenwald
116ba19dd9 Respect the 'ColorTransform' entry in the image dictionary when decoding JPEG images (bug 956965, issue 6574)
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=956965.
Fixes 6574.
2016-09-26 21:55:43 +02:00
Jonas Jenwald
a22f0ae820 Only skip parsing a stream in Parser_makeFilter when we know for sure that it is empty (PR 6372 follow-up)
For PDF files with multiple `/Filter`s, where the `/Length` entry is zero, we fail to render the file correctly. The reason is that `maybeLength` is `null` for the every filter except the first, and `!maybeLength` is thus truthy.
Hence it seems that we should completely ignore the `/Length` entry and also explicitly check `maybeLength === 0`.

Note that I've not (yet) come across a PDF file with this issue in the wild, but given all the stupid things PDF generators do I wouldn't be surprised if such a file actually exists. In order to prevent a possible future bug, I'm submitting this patch which includes a hand-edited PDF file that we currently cannot render correctly (but e.g. Adobe Reader can).
2016-09-25 12:40:15 +02:00
Jonas Jenwald
4d2de9b47e Add a reduced load test for issue 7665 2016-09-25 00:19:42 +02:00
Jonas Jenwald
3e77cf6b32 Prevent an infinite loop in XRef_fetchUncompressed for encrypted PDF files with indirect objects in the /Encrypt dictionary (issue 7665) 2016-09-25 00:18:47 +02:00
Jonas Jenwald
6c263c1994 Merge pull request #7649 from timvandermeij/interactive-forms-tx-comb
Text widget annotations: implement comb support
2016-09-22 11:36:30 +02:00