1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-20 07:08:08 +02:00
pdf.js/test
Jonas Jenwald e18fa3fc45 Tweak the QueueOptimizer to recognize OPS.paintImageMaskXObject operators as *repeated* when the "skew" transformation matrix elements are non-zero (issue 8078)
*First of all, I should mention that my understanding of the finer details of the `QueueOptimizer` (and its related `CanvasGraphics` methods) is somewhat limited.*
Hence I'm not sure if there's actually a very good reason for *only* considering ImageMasks where the "skew" transformation matrix elements are zero as *repeated*, however simply looking at the code I just don't see why these elements cannot be non-zero as long as they are *all identical* for the ImageMasks.
Furthermore, looking at the *group* case (which is what we're currently falling back to), there's no particular limitation placed upon the transformation matrix elements.

While this patch obviously isn't enough to *completely* fix the issue, since there should be a visible Pattern rendered as well[1], it seem (at least to me) like enough of an improvement that submitting this is justified.
With these changes the referenced PDF document will no longer hang the *entire* browser, and rendering also finishes in a *reasonable* time (< 10 seconds for me) which seem fine given the *huge* number of identical inline images present.[2]

---
[1] Temporarily changing the Pattern to a solid color *does* render the correct/expected area, which suggests that the remaining problem is a pre-existing issue related to the Pattern-handling itself rather than the `QueueOptimizer` functionality.

[2] The document isn't exactly rendered immediately in e.g. Adobe Reader either.
2020-06-20 12:18:48 +02:00
..
chromium Update Prettier to version 2.0 2020-04-14 12:28:14 +02:00
features Remove usage of mozFillRule 2017-01-29 23:24:44 +01:00
font Identify browsers using the name instead of the path 2020-04-26 14:42:17 +02:00
pdfs Tweak the QueueOptimizer to recognize OPS.paintImageMaskXObject operators as *repeated* when the "skew" transformation matrix elements are non-zero (issue 8078) 2020-06-20 12:18:48 +02:00
resources Introduce Puppeteer for handling browsers during tests 2020-04-27 13:03:12 +02:00
stats Enable the dot-notation ESLint rule 2020-04-17 12:24:46 +02:00
ttx Update fonttools location and version (issue 6223) 2015-07-17 12:51:09 +02:00
unit Move the isEmptyObj helper function from src/shared/util.js to test/unit/test_utils.js 2020-06-09 17:50:16 +02:00
.eslintrc Fix badly formatted .eslintrc 2018-11-23 13:49:58 +01:00
.gitignore Ignore test snapshots directory. 2013-03-15 11:24:08 -07:00
add_test.js Update Prettier to version 2.0 2020-04-14 12:28:14 +02:00
annotation_layer_builder_overrides.css Convert all three-digit HEX colors to RGBA colors 2020-01-01 14:52:37 +01:00
downloadutils.js Update Prettier to version 2.0 2020-04-14 12:28:14 +02:00
driver.js [api-minor] Decode all JPEG images with the built-in PDF.js decoder in src/core/jpg.js 2020-05-22 00:22:48 +02:00
test.js Implement a command line flag to skip Chrome when running tests 2020-04-27 13:03:12 +02:00
test_manifest.json Tweak the QueueOptimizer to recognize OPS.paintImageMaskXObject operators as *repeated* when the "skew" transformation matrix elements are non-zero (issue 8078) 2020-06-20 12:18:48 +02:00
test_slave.html Use the SimpleLinkService when running "annotations" reference tests 2017-09-12 15:24:46 +02:00
testutils.js Update Prettier to version 2.0 2020-04-14 12:28:14 +02:00
text_layer_test.css Use span instead of div in the text layer 2018-11-18 15:54:08 +01:00
webserver.js Enable the dot-notation ESLint rule 2020-04-17 12:24:46 +02:00