summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
authortonikitoo <tonikitoo@igalia.com>2016-08-26 08:37:10 -0700
committerCommit bot <commit-bot@chromium.org>2016-08-26 08:37:10 -0700
commit3e98158a6c47361ca7d6c2c18d47c9f8f3aabb8a (patch)
tree704926c3b5edbabde50fbee3aa1abceb8e180e72 /testing
parent9b57ec9ff50aeab53cf3f028222f69c78840385d (diff)
downloadpdfium-3e98158a6c47361ca7d6c2c18d47c9f8f3aabb8a.tar.xz
Extend pdfium_test capability so that more Javascript can be executedchromium/2841
In [1], the lack of support of pdfium_test to some application level hooks was felt. More specifically, the lack of implementation of the hook FFI_GetPage, called when 'this.getAnnot()' is executed in an Acrobar JS context, makes it non-trivial to JS texts that manipulate PDF annotations. [1] https://codereview.chromium.org/2265313002/ Here is the failing call stack in pdfium_test: 0 ::RenderPdf (samples/pdfium_test.cc) 1 ::FORM_DoDocumentOpenAction (fpdfsdk/fpdfformfill.cpp) 2 CPDFSDK_Document::ProcOpenAction (fpdfsdk/fsdk_mgr.cpp) 3 CPDFSDK_ActionHandler::DoAction_DocOpen (fpdfsdk/fsdk_actionhandler.cpp) <----v8----> 4 Document::getAnnot (fpdfsdk/javascript/Document.cpp) 5 CPDFSDK_Document::GetPageView (fpdfsdk/fsdk_mgr.cpp) 6 CPDFDoc_Environment::FFI_GetPage (fpdfsdk/include/fsdk_mgr.h) (frame 6 returns nullptr, and getAnnot call in frame 4 bails) CL extends pdfium_test app with a FFI_GetPage hook implementation. Basically what FFI_GetPage does is returning a FPDF_PAGE instance. In case of pdfium_test, FPDF_PAGE instances were only created on demand when the page was going to get rendered, and then discarded. Since FFI_GetPage can be called by JS before pages are rendered, CL moved the page creation code into a helper function, and cached the FPDF_PAGE instances created in a map, so it does not recreate them needlessly. BUG=pdfium:492 Review-Url: https://codereview.chromium.org/2277063003
Diffstat (limited to 'testing')
-rw-r--r--testing/resources/pixel/bug_492.pdf520
-rw-r--r--testing/resources/pixel/bug_492.pdf.0.pngbin0 -> 182787 bytes
2 files changed, 520 insertions, 0 deletions
diff --git a/testing/resources/pixel/bug_492.pdf b/testing/resources/pixel/bug_492.pdf
new file mode 100644
index 0000000000..3a6486d32f
--- /dev/null
+++ b/testing/resources/pixel/bug_492.pdf
@@ -0,0 +1,520 @@
+%PDF-1.3
+%
+1 0 obj
+<< /Pages 3 0 R /Type /Catalog /OpenAction 5 0 R >>
+endobj
+3 0 obj
+<< /Count 1 /Kids [ 8 0 R ] /MediaBox [ 0 0 612 792 ] /Type /Pages >>
+endobj
+5 0 obj
+<<
+/Type /Action
+/S /JavaScript
+/JS (
+ var a = this.getAnnot(0, "Annot-1");
+ if ( a != null )
+ a.hidden = false;
+)
+>>
+endobj
+8 0 obj
+<< /Annots 9 0 R /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources 11 0 R /Rotate 0 /Type /Page >>
+endobj
+9 0 obj
+[ 12 0 R ]
+endobj
+10 0 obj
+<< /Length 16091 >>
+stream
+q Q q 0 0 612 792 re W n BT 11.04 0 0 11.04 72.024 709.68 Tm /TT2 1 Tf [ (!)
+-3 (") -5 (#) 12 ($%) 4 (&') -1 (\(\)*) 6 (%) -4 (&+) 12 (") -5 (,) 12 (")
+-5 (#&\)') -1 (-) 9 (&.%) 4 ($) 9 (-/&) -3 (0) 10 (") -5 (1) 3 (\)$0) -2 (-)
+9 ($-) -3 (*) 3 ($#) 10 (&.+') 2 (\() 3 (') -1 (\)0') -1 (1) 6 (2) 4 (&$)
+7 (,) -1 (') 2 (-3&4) -5 (.$) 10 (0$1.\)&\() 13 (") -5 (#-) 10 (-') -1 (-")
+-7 (#) 12 (&0) 8 (") -5 (1) 3 (2) 4 (*) 3 ($&) -3 (%) -4 (.\)\)) 11 (.3&5*)
+6 (\)0$) -2 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 695.14 Tm /TT2 1 Tf [ (\()
+3 (") -5 (\)*$#$/) 11 (&%) 3 (.2) 4 (1) 3 (.&\)$) -3 (+) 3 (&\(*) 4 (,) -1
+(6') -1 (1) 13 (.#&*,) 4 (-#') -1 (0') -1 ($\)/) 10 (&\(*) 4 (#*) 4 (\)&)
+] TJ ET BT 11.04 0 0 11.04 272.09 695.14 Tm /TT2 1 Tf [ (,) -1 ($0-) -2 (*)
+3 (\)) 11 (&%) 3 (.,) -1 ($\)*) 3 (.+) 4 (.&,) -1 (') -1 (7) 5 ($#) 10 (")
+-5 (/&\)') -1 (-) 8 (&.%) 4 ($-) -3 (&) 9 (0") 4 (%) 6 (%) -4 (") -5 (+) 14
+(") -5 (&) 9 (%) -4 (.2) 4 (1) 3 (.&$) -3 (#) 12 (") -5 (\)&) ] TJ ET BT 11.04 0 0 11.04 72.024 680.62
+Tm /TT2 1 Tf [ (8) 3 (*) 3 (') -1 (\)&*#) 4 (1) 3 (.3&9) 5 (*) 3 (1) 3 (0&)
+-2 (6) -4 (') -1 (6) 8 ($##.&') 10 (%) 6 (\() 3 ($#+') 3 ($-) -3 (&$) -3 (1)
+3 (') 12 (%) -4 (3&5*) 5 (\)0) 10 ($&) -3 ($\)) 9 (-3&:') 11 (6) -4 (.%) -4
+(*) 3 (\)) 11 (&.&) -3 (-) 9 ($,) -1 (,) -1 (*) 5 (\)3&;) 6 ($,) -1 (,) -1
+($1-) 12 ($\)8*) 4 ($&) -3 (<) 3 (.7) 4 (') -1 (-.1) 4 (-&) 7 (%) 6 (") -5
+(#7) 4 (') -1 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 666.22 Tm /TT2 1 Tf [
+(-#') -1 (\)-') -1 (8) 4 (*) 3 ($&) -3 (\)) 11 ($1$0-) -3 (*) 3 (\)) 11 (&$)
+-3 (-) 9 (&1$-*\)&) 9 ($-) -3 (&) 9 (%) -4 (.,) -1 ($\)*) 3 (.+) 4 (.&=) 10
+(.%) 6 ($\)&) -4 (.0) 11 (&-) -3 (*) 3 (#) 12 (\() 3 (') -1 (\)&$2$\)-) -2
+(.) 12 (\)3&;) -4 (#) 12 (") -5 (') -1 (1) 5 (&\(<) 4 (.#$) 11 (-#.&) 9 (1)
+3 (") -5 (1) 3 (*) 3 (%) 6 (%) -4 (>) -3 (&\() 12 ($+$3) ] TJ ET BT 11.04 0 0 11.04 506.28 666.22
+Tm /TT2 1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 643.66 Tm /TT2 1 Tf [ (4)
+-3 (.*) 4 (#') -1 (\)&$) 9 (-&) 7 (") ] TJ ET BT 11.04 0 0 11.04 123.14 643.66
+Tm /TT2 1 Tf [ (#0') -1 (3) 4 (&?$1) 13 ($.1&1$0&) 9 (,) -1 (") -3 (#$) 10
+(%) -4 (3&@1) 5 (&\(") -4 (#) 12 (--) -3 (') -1 (-) 11 (") -5 (#3) 3 (&) 9
+(A) -4 (") -5 (1) 14 ($0&) -4 (,) 12 (.") -4 (#$) 10 ($-) -3 (&1) 12 (") -5
+(1) 3 (*) 3 (%) 6 (%) -4 (>) 7 (&.*2) 5 (*) 3 ($3&B) 11 (*) 3 (\)\($1) 4 (+)
+3 (') -1 (\)\)$&) -2 (+) 3 (*) 3 (') -1 (&\(*) 6 (#*) 4 (\)/&) ] TJ ET BT
+11.04 0 0 11.04 72.024 629.26 Tm /TT2 1 Tf [ (\)0$) -2 (,) -1 ($#') -1 (\)8)
+6 (*) 3 ($) 9 (&.-) -2 (/&) 9 (6) -4 (*) 3 (,) -1 (\() 5 (*) 3 (-.-) -2 ($)
+9 (&6) -6 (') 12 (-.$) -2 (/&\(#$) 11 (-') -1 (*) 3 (%) 6 (&%) -7 (.) 12 (--)
+-3 (') -1 (\)/) 12 (&1*) 4 (1) 3 (03&4) -4 (.*) 4 (#') -1 (\)&$2) 13 ($-)
+-3 (&1$8*) 6 ($) 9 (&.-) -2 (&) 9 (\)$) 9 (%) -4 (&) 9 (6) -4 ($1$1.) 3 (-')
+10 (\)&$) -4 (,) 12 ($') -1 (=$1+) 5 (3&C-&) ] TJ ET BT 11.04 0 0 11.04 72.024 614.74
+Tm /TT2 1 Tf [ (1) 3 (") -5 (1) 3 (*) 3 (%) 6 (%) -4 (>) -3 (3&5*) 5 (\)0)
+10 ($&) -3 (.,) -1 (') 3 (8) 3 (*) 3 ($-) 7 (&\() 12 ($+$&) -2 (1) 3 (") -5
+(1) 3 (&\() 12 ($+$3) ] TJ ET BT 11.04 0 0 11.04 254.33 614.74 Tm /TT2 1 Tf
+(&) Tj ET BT 11.04 0 0 11.04 72.024 592.18 Tm /TT2 1 Tf [ (B*) 6 (\)\($1)
+4 (+) 3 (') -1 (\)\)$&) -2 (+) 3 (.\() 4 (') -1 (7) 5 (*) 3 (\)&,) -1 (")
+-5 (#) 12 ($%) 4 (&) ] TJ ET BT 11.04 0 0 11.04 195.77 592.18 Tm /TT2 1 Tf
+[ (\() 3 ($,) -1 (,) -1 ($1-$\)8*) 16 ($&) 7 (%) -4 (.2) 4 (1) 3 (.3&@1) 6
+(-$) -3 (2) 14 ($#&) -2 (1) 3 (*) 3 (,) -1 (,) 2 (.3&A) 7 (") -5 (1) 3 ($0)
+8 (&7,) -1 (.) 3 (1) 3 (+) 3 (') -1 (-&=$) -3 (*) 14 (2) 4 (') -1 (.-&,) -1
+(') -1 (2) 5 (*) 3 (,) -1 (.3) 4 (&A) 4 (") -5 (1) 3 ($0&) ] TJ ET BT 11.04 0 0 11.04 72.024 577.78
+Tm /TT2 1 Tf [ (<) 3 ($1+) 5 (#$#') -1 (-/&=$) -2 (,) -1 (') 2 (\)) 11 (&$)
+-3 (-) 9 (&') -1 (%) -5 (\() 14 ($#+') 3 ($) 9 (-&) -3 ($*') 2 (\)) 11 (%)
+-4 (") -5 (+) 3 (/) 11 (&\(*) 4 (#*) 4 (\)&') -1 (\(\)*) 5 (%) -4 (&\(#) 13
+($) 9 (-') -1 (*) 3 (%) -4 (&) 9 (%) -4 ($) 9 (-*\)/&') -1 (1) 4 (&,) -1 (.0')
+-1 (1) 4 (') -1 (.&1) 3 (*) 3 (,) -1 (,) 2 (.&) 9 (1) 3 (') -1 (\),) 2 (&$)
+-3 (2) 4 ($-) -3 (&) 9 (\).\() 4 (') -1 ($1) 3 (3&A) 6 (") -5 (1) 3 ($0) 8
+(&) ] TJ ET BT 11.04 0 0 11.04 72.024 563.26 Tm /TT2 1 Tf [ (*) 3 (-&) -3
+($\)-) 7 (&') -1 (1&,) -1 ($0-*\)) 11 (&0) 8 (") -5 (1) 3 (\)$8*) 4 (.-&)
+7 (0) 10 (") -5 (1) 3 (\)$8*) 4 (.-3&D) 8 (-') -1 (.) 11 (%) -4 (&$) -3 (2)
+4 ($) 9 (-&) -3 (+) 3 (*) 3 (') -1 (3) 4 (&) 9 (?,) 4 (') -1 (8) 5 (*) 3 (.%)
+-4 (&$) -3 (#.-) 11 (&6) 4 (") -5 (,) -1 (*) 5 (-\(.-3&B) ] TJ ET BT 11.04 0 0 11.04 418.3 563.26
+Tm /TT2 1 Tf [ ($+&) 10 (.-&) -2 (,) -1 (") -3 (#) 12 ($%) 4 (&') -1 (1&1)
+4 (*) 3 (1) 3 (0&) -2 (\() 3 (") -5 (#) 12 (-.&) ] TJ ET BT 11.04 0 0 11.04 72.024 548.74
+Tm /TT2 1 Tf [ (-#') -1 (\)-') -1 (8) 4 (*) 3 ($3) ] TJ ET BT 11.04 0 0 11.04 112.46 548.74
+Tm /TT2 1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 526.27 Tm /TT2 1 Tf [ (;)
+-4 (#") -3 (') -1 (1) 5 (&1) 12 ($0&) -4 (.*) 4 (2) 4 (*) 3 ($3&) 9 (E*')
+3 (\)8*) 6 ($&) -3 (.) 12 (,) -1 (') 2 (8) 3 (*) 3 (.%) -4 (&-) -3 ($) 9 (%)
+-4 (\() 14 (") -5 (#&) 10 (%) -4 (.2) 4 (1) 3 (.3&;) 7 ($,) -1 (,) 11 ($1-$\))
+-2 (8) 3 (*) 3 ($&) -3 (<) 3 (.7) 4 (') -1 (-.1) 15 (-&) 7 (%) -4 (") -5 (#7)
+4 (') -1 (&) 10 (-#) 10 (') -1 (\)-') -1 (8) 4 (*) 3 ($&) -3 (\)$1$) 10 (0-*\)&)
+9 ($-) -3 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 511.75 Tm /TT2 1 Tf [ (1)
+3 ($-) -3 (*) 3 (\)&$) -4 (-) 9 (&%) 3 (.,) -1 ($\)*) 3 (.+) 4 (.&=.) 11 (%)
+-4 ($) 9 (\)&) 8 (.0&-) -3 (*) 3 (#\() 4 (') -1 (\)&$2) 12 ($\)-) -3 (.\)3&9)
+5 (*) 3 (1) 3 (0&) 8 (.0&) 8 (%) -4 (.2) 4 (1) 3 (.3&4) -2 (.) 12 ($0$) -4
+(1) 3 (.) 12 (\)&") -7 (+) 3 (') 12 (") -5 (&+) 12 (") -5 (,) 12 (") -5 (#/&)
+10 (6) -4 (*) 3 (,) -1 (\() 5 (*) 3 (-.-) -2 ($&) 7 (6) -4 ($,) 10 (/&.*0-)
+10 (") -5 (#&) ] TJ ET BT 11.04 0 0 11.04 72.024 497.23 Tm /TT2 1 Tf [ (.0/&.00)
+-3 (*) 14 (%) -4 (\).1) 4 (&') -1 (+/&=) 12 ($,) ] TJ ET BT 11.04 0 0 11.04 159.14 497.23
+Tm /TT2 1 Tf [ (') -1 (\)3) 3 (&) 9 (;) -4 ($,) -1 (,) -1 ($) 10 (1) 3 (-$)
+-3 (\)8*) 6 ($&) -3 (0*#) 4 (\)*\)) 14 (&\).2') 3 (--) -3 (') -1 (\)) 12 (&=$)
+-3 (,) -1 (') 2 (\)) 11 (3&;) -4 ($,) -1 (,) -1 ($1) 14 (-$) -3 (\)8*) 6 ($&)
+-3 (\() 14 (") -5 (#-) 10 (-') -1 (-") 3 (#/&) 10 (6) -4 ($,) 10 (') -1 (-&,)
+-1 (.0') -1 (1) 4 (') -1 (.&$2) 13 ($\)-) -3 (.\)) 11 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 482.71
+Tm /TT2 1 Tf [ (.*) 4 (0-") -7 (#/) 12 (&+') -1 (.) 3 (%) -4 (&) 9 ($#) 10
+(") -5 (\)&-) 6 ($%) -6 (\() 3 (*) 3 (\)) 11 (&.) 9 (#0*) 4 (/&1$0&) 7 (6)
+-4 (*) 3 (,) -1 (\() 5 (*) 3 (-.-) -2 ($) 9 (&.*2) 5 (*) 3 ($&) 7 (%) 6 (.2)
+4 (1) 3 (.&6) -5 ($,) -1 (&#') -1 (\)*) 3 (\)3) 13 (&F#.\)&1) 12 (") -5 (1)
+3 (&) 9 (%) -4 (.) 12 (2) 4 (1) 3 (.&6) -5 ($,) -1 (&.1-) 10 ($&) -3 (.+)
+4 (') -1 (\() 5 (') -1 (\)0') -1 (1) 6 (2) 4 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 468.31
+Tm /TT2 1 Tf [ (#<) 4 (") -5 (1) 3 (0*\)3) ] TJ ET BT 11.04 0 0 11.04 110.78 468.31
+Tm /TT2 1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 445.75 Tm /TT2 1 Tf [ (:')
+3 (6) -4 (.%) -4 (*) 3 (\)) 11 (&.&) 7 (%) -4 (') -1 (3) 4 (&4) 5 (") -5 (#7)
+4 (') -1 (&1$8) 4 (*) 14 ($) 9 (3&?,) 3 (') -1 (8) 5 (*) 3 (.%) -4 (&$) -3
+(#.) 13 (-&) -3 (6) 6 (") -5 (,) -1 (*) 5 (-\(.-3) 13 (&@1) 3 (-) 9 ($2$#&)
+] TJ ET BT 11.04 0 0 11.04 337.87 445.75 Tm /TT2 1 Tf [ (*) 3 (,) -1 (-#')
+-1 (0) 13 ($\)&) -4 (,) 12 (") -5 (7) 3 (") -5 (#) 12 (-') -1 (\)&$) -4 (#)
+12 (") -5 (\)3&) 10 (;) -4 ($,) -1 (,) -1 ($1-) 12 ($\)8*) 4 ($&) -3 (<) 3
+(.7) 4 (') -1 (-.1) 15 (-&) ] TJ ET BT 11.04 0 0 11.04 72.024 431.23 Tm /TT2
+1 Tf [ (%) -4 (") -5 (#7) 4 (') 12 (&-) -3 (#') -1 (\)-') -1 (8) 6 (*) 3 ($)
+9 (&\)$) -4 (1) 3 ($) 9 (0-*\)&$) 7 (-) 9 (&1$-*\)&$) 7 (-&) 7 (%) -4 (.,)
+-1 ($\)*) 3 (.+) 4 (.&=) 10 (.%) 6 ($\)&) 6 (.0&-) -3 (*) 3 (#\() 4 (') -1
+(\)&$2) 12 ($\)-) -3 (.\)3&) 11 (;) -4 (#) 12 (") -5 (') -1 (1) 5 (&\)$) 6
+(%) -4 (\() 3 ($#/&) 8 (.1) 4 (-$) -3 (&) 9 (6) -4 (') -1 (-.) 11 ($&) ] TJ
+ET BT 11.04 0 0 11.04 72.024 416.83 Tm /TT2 1 Tf [ (\)") -5 (,) -1 (,) 2 (')
+-1 (0') -1 (-*) 4 (+) 3 (') -1 (1) 5 (&\(") 6 (\)*$#$/) 11 (&%) 3 ($-) -3
+(*) 3 (\)) 11 (&8*) 4 (.%) -4 (&') -1 (.0*,) 3 (') -1 (\)) 12 (&1') -1 (7)
+6 (<) 3 (/&6) -6 (') -1 (-.) 11 ($&) -3 (\)0) 10 ($,) -1 ($#') -1 (\)8) 4
+(*) 3 ($&) -3 (1) 3 (*) 3 (1) 3 (0&) 8 (%) -4 (.\)\).) 12 (&$) -3 (2) 4 ($)
+9 (-&) 7 (\() 3 ($+$3&B$+&) 11 (6) -4 ($,) -1 (') -1 (-&*#1) 5 (./) 12 (&)
+] TJ ET BT 11.04 0 0 11.04 72.024 402.31 Tm /TT2 1 Tf [ (') -1 (1) 5 (-$)
+-3 (#+) 4 (*) 3 (%) -4 (&) 9 (6) ] TJ ET BT 11.04 0 0 11.04 121.22 402.31
+Tm /TT2 1 Tf [ ($,) -1 (/) 11 (&*,) -1 (-#') 3 (0') -1 ($\)) 9 (&6) 4 ($,)
+-1 (/&=) 9 (.*) 4 (0') -1 (7) 4 (*) 3 (\)&.-) -3 (/&8*) 4 (.) 12 (%) -4 (3&A)
+6 (") -5 (1) 3 ($0) 8 (&$) -3 (,) 12 (') -1 (-&$) -3 (\)-/) 9 (&0) 8 (") -5
+(1) 3 (\)$0) 8 (-$) -3 (-*$#) 11 (&$) -3 (2) 4 ($) 9 (-/&) -3 (0) 10 (") -5
+(1) 3 (\)$8*) 4 (.-&) -2 (8) 3 (*) 3 (') -1 (\)/) 12 (&-) -3 ($) 9 (%) -4
+(\() 3 (*) 3 (\)&) ] TJ ET BT 11.04 0 0 11.04 72.024 387.79 Tm /TT2 1 Tf [
+(8) 3 (*) 3 (') -1 (\)/&G) -2 (') -1 (\)') 2 (3) ] TJ ET BT 11.04 0 0 11.04 115.7 387.79
+Tm /TT2 1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 365.33 Tm /TT2 1 Tf [ (@1)
+5 (&') -1 (1&1) 4 (*) 3 (1) 3 (03&F,) -1 (.\)\)&.\(-$1-) 11 (&-) -3 (.0')
+11 (-') -1 (&\)"0') 2 (") -5 (\)8*) 6 (&.+&,) -1 (') 13 (-") -7 (#.) 13 (&-)
+7 (") -5 (#8) 4 (*) 3 ($) 9 (1) 3 (-&) -3 (\() 3 ($#&) -2 (0) 10 (") -5 (1)
+3 (*) 3 (7) 3 (') -1 (.&1) 3 (") -5 (\)) 11 (-#./&\($#) 11 (&') 9 (1) 3 (0$\(-")
+-6 (\)) 11 (&<>) 8 (%) -4 ($1.$) 11 (") -5 (\)3&) ] TJ ET BT 11.04 0 0 11.04 72.024 350.81
+Tm /TT2 1 Tf [ (A) -4 (") -5 (1) 3 ($) 9 (0&) -2 (*) 3 (,) -1 (,) 2 (.) 12
+(%) -4 (0") 4 (#\() 4 ($#&) -2 (=#') 3 (1) 3 (2) 4 (') -1 (,) 2 (,) -1 (.)
+13 (&$) -3 (#") 6 (\)3&5*) 5 (\)0$) -2 (&') -1 (1&) 11 (\)) ] TJ ET BT 11.04 0 0 11.04 263.33 350.81
+Tm /TT2 1 Tf [ (.\() 4 (') -1 ($1) 3 (&$) -3 (*) 3 (&\(*) 15 (#*) 4 (\)&+.\()
+5 (') -1 (7) 5 (*) 3 (\)&0) -2 (") 5 (%) 6 (%) -4 (") -5 (+) 14 (") -5 (3&F*)
+14 (%) -4 (&\)) 8 (") -5 (0') -1 (') -1 (\)&1) 3 (.) 12 (-") -7 (8) 3 (*)
+3 ($) 9 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 336.29 Tm /TT2 1 Tf [ (\() 3
+($1.-') -1 (7) 5 (*) 3 (\)&$) -4 (-&) 7 (%) -4 (.2) 4 (1) 3 (') -1 (\)&+')
+3 (\)) 11 (&\(.#) 14 (-*#') 3 ($1-&) 8 (%) -4 (") -5 (1) 3 (-) 9 ($\)/&) -4
+(1) 3 (.\)) 11 (0$-) -4 (*) 3 (#) 12 (&#') 11 (+) 3 (') -1 (0*) 4 (,) -1 (*)
+5 (\)&%) -7 (*) 3 (\)3&F#.\)) 12 (&=.*0') 2 (7) 3 (*) 3 (\)&) 8 (0") -6 (1)
+3 (+) 3 (') -1 (%) 7 ($1-*%) 8 (&") -7 (+) 3 (') 12 (") -5 (3&) ] TJ ET BT
+11.04 0 0 11.04 72.024 321.89 Tm /TT2 1 Tf [ (B$+) 4 (&.0&) -4 (,) -1 (')
+2 (2) 4 (*) 3 (,) -1 (.3) 4 (&?,) -1 (') 3 (8) 3 (*) 3 (.%) -4 (&) 9 (.-&)
+-2 ($) 9 (#) 12 (") -5 (\)3) ] TJ ET BT 11.04 0 0 11.04 205.37 321.89 Tm /TT2
+1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 299.33 Tm /TT2 1 Tf [ (D-) -2 (')
+-1 (.%) 8 (&.-) -2 (&,) -1 (') -1 (2) 5 (*) 3 (,) -1 (.&) 11 ($-) -3 (&-)
+7 ($,) -1 (,) -1 (*) 5 (\)&*,) -1 (,) 3 (.) 12 (%) -4 (0) 10 (") -5 (#\()
+4 ($#&) -2 (*) 3 (,) -1 (-#') 13 (0$\)) -2 (3&@1) 5 (&=) 9 ($#%) 5 ($1) 12
+(-*%) -3 (/&,) 9 (") -5 (#$) 10 (%) -4 (&1) 12 (") -5 (1) 3 (&0) -2 (*) ]
+TJ ET BT 11.04 0 0 11.04 397.66 299.33 Tm /TT2 1 Tf [ (#\)*) 4 (\)&\() 12
+(") -5 (#-) 10 (-') -1 (-") -7 (#/) 12 (&+') -1 (.) 3 (%) 6 (&*#1) 5 (.&)
+] TJ ET BT 11.04 0 0 11.04 72.024 284.81 Tm /TT2 1 Tf [ (.00*%) -2 (\).1)
+15 (&,) -1 (.0*\)/&\)) 11 ($+&') -1 (1) 4 (-$) -3 (#+) 15 (*) 3 (%) -4 (&G)
+-4 (') -1 (\)') 13 (&1') -1 (7) 6 (<) 3 (&1$0&) -3 (1) 3 (') -1 (\),) 2 (3&C)
+11 (-&) -3 (-') 10 (1) 3 (0') -1 (+) 4 (*) 3 (1) 3 (-&) -3 (6) -4 (") -5 (,)
+-1 (*) 5 (-\(.) 13 (-&) -3 (*) 3 (#1) 4 (.3&4) 8 (.) 12 (*) 3 (#') -1 (\)&$,)
+-1 ($') -1 (=$1+) 5 (&1*) 4 (,) -1 (,) 2 (.&) 9 ($2$-&) ] TJ ET BT 11.04 0 0 11.04 72.024 270.41
+Tm /TT2 1 Tf [ (%) -4 (.*) 4 (#') -1 (\)3) 5 (&B$+&) 10 (0*#) 4 (\)*\)&8)
+4 (*) 3 (.%) 6 (&') -1 (+&=$,) -1 (') -1 (\)3) 4 (&F*#.) 3 (7) 3 (') -1 (-*)
+3 (#&\() 13 (") -5 (\)*$#$) 11 (&8*) 4 (.%) -4 (&) 9 (6) -4 ($,) -1 (&1')
+-1 (7) 6 (<) 3 (3&F#.\)) 13 (&+.\() 5 (') -1 (7) 5 (*) 3 (\)&+.\() 5 (') -1
+(7) 5 (*) 3 (\)&1') -1 (\),) 3 (3&) ] TJ ET BT 11.04 0 0 11.04 72.024 255.89
+Tm /TT2 1 Tf [ (:$\)-') -1 (7*) 6 (,) -1 (*) 5 (%) -4 (&8*) 4 (') -1 (\)&+)
+13 (") -5 (,) -1 (") -3 (#) 12 (&.&) -3 (=) 12 ($,) -1 (') -1 (\)&0") ] TJ
+ET BT 11.04 0 0 11.04 211.61 255.89 Tm /TT2 1 Tf [ (1) 3 (2) 4 (*) 3 ($&)
+7 (6) -4 ($<') 13 (0*,) 3 (.3) ] TJ ET BT 11.04 0 0 11.04 275.93 255.89 Tm
+/TT2 1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 233.33 Tm /TT2 1 Tf [ (4) -3
+(.$0) 9 ($1.\)&\($+) 15 ($&) -3 (\() 3 (*) 3 (#*) 4 (\)/&-) -4 (#') -1 (\))
+13 (-) 9 (') -1 (8) 5 (*) 3 ($&) -3 (.0/&-) 6 ($%) -6 (\() 3 (*) 3 (\)) 11
+(&$) -3 (2) 4 ($-) 7 (/&$) -3 (2) 4 ($) 9 (\)-) 9 (.\)&8*) 5 (') -1 (\)/&%)
+5 (.*) 4 (#') -1 (\)3) 5 (&F*#.) 3 (7) 3 (') -1 (-*) 3 (#&1) 13 (") -5 (1)
+3 (&$) -3 (#) 12 (") -5 (\)3&9) 4 (*) 3 (,) -1 (,) 2 (.) 12 (%) -4 (&) ] TJ
+ET BT 11.04 0 0 11.04 72.024 218.93 Tm /TT2 1 Tf [ (<) 3 ($1+) 5 (#$#') -1
+(-&7') -1 (7) 6 ($1+) 5 (*) 3 (%) -4 (&) 9 (H*) 3 (\)-") -7 (3) 13 (&) 9 (5*)
+6 (\)0$) -2 (&') -1 (.0*,) 3 (') -1 (\)/&) 10 ($\)-) -3 (&8*) 4 (') -1 (\)&,)
+11 (.0') -1 (1) 5 (') 12 (.&\(#$-') -1 (*) 4 (%) 6 (/&\($+$) 11 (&%) 3 ($-)
+-3 (*) 3 (\)&) 8 (%) 6 (") -5 (,) 12 ($\)-) -3 (') -1 ($&,) -1 (.) 11 (0*\)/&.-)
+9 (&2#.) 3 (6) -4 (') -1 (+) 5 (.) 12 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 204.41
+Tm /TT2 1 Tf [ (G') -1 (\)') -1 (&.1-$) 9 (&.-) -2 (&,) -1 (') -1 (7) 4 ($)
+9 (#") -3 (3&) 11 (E*') 3 (\)8*) 6 ($) 9 (&") -7 (#1) 4 (.#$) 11 (&\(,) -1
+(.) ] TJ ET BT 11.04 0 0 11.04 242.69 204.41 Tm /TT2 1 Tf [ (0$#.) 10 (-&)
+-3 (#') -1 (\)*) 6 (\)3&C) 11 (-&) 7 (%) 6 (") -5 (,) -1 ($\)-') 9 ($&) 7
+(%) -4 (.2) 4 (1) 3 (.&.-) 8 (&%) -7 (') -1 (3) 4 (&@1) 14 (-$) -3 (2) 4 ($)
+9 (#&.,) -1 (') 2 (8) 3 (*) 3 ($-) -3 (&) 9 (%) -4 (.*) 4 (#') -1 (\)&$) 9
+(-&) ] TJ ET BT 11.04 0 0 11.04 72.024 189.86 Tm /TT2 1 Tf [ (1) 3 (') -1
+(7) 5 (<) 3 (3&C-&) -3 (%) -4 (.-) 10 (-') -1 (\)&,) -1 (') -1 (2) 4 (*) 3
+(,) -1 (.&\() 14 (") -5 (\)*$) 12 (#$&) -2 (6) 6 ($,) -1 (') -1 (-3) ] TJ
+ET BT 11.04 0 0 11.04 228.29 189.86 Tm /TT2 1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 167.42
+Tm /TT2 1 Tf [ (9) 5 (*) 3 (1) 3 (0&) -2 (\).2) 4 (') -1 (--') -1 (\)3&F*#)
+4 (.7) 4 (') -1 (-*) 3 (#&) 10 (6) -4 (.#) 13 (') -1 (*) 5 (\)&=#') -1 (1)
+4 (2) 4 (') -1 (,) 2 (,) -1 (.&1) 3 (') -1 (\),) 2 (3&A) -4 (*) 3 (') -1 (\)&\(#)
+4 ($) 9 (-') -1 (*) 3 (%) -4 (&) 9 (%) -4 (') -1 (&$*') -1 (\)) 13 (%) 6 (")
+-5 (+) 3 (&$) -3 (#.) 13 (-3&4) 5 (.$0) 9 ($) 9 (1) 3 (.\)&') -1 (+) 3 (&.*2)
+5 (*) 3 ($3&9.) 3 (%) -4 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 152.9 Tm /TT2
+1 Tf [ (6) -4 (*) 3 (,) -1 (\() 5 (*) 3 (-.-) -2 ($3&) 9 (A) -4 (*) 3 (')
+-1 (\)&.&8*) 4 (.) 12 (%) -4 (&1) 12 (") 5 (1) 3 (&1$8*) 6 ($&) -3 (,) -1
+(") -3 (7) 14 (") -5 (#-') -1 (\)&) 9 (%) -4 (.,) 12 ($\)*.+) 16 (.3&) ] TJ
+ET BT 11.04 0 0 11.04 319.03 152.9 Tm /TT2 1 Tf [ (;) -4 (#.$) 11 (\)$1-&)
+8 ($*') 2 (\)%) 5 (") -5 (+) 3 (3&) 11 (A) -4 (") -5 (1) 14 ($) 9 (0&) -2
+(1) 3 (*) 3 (,) -1 (,) 2 (.&.*2) 6 (*) 3 ($/&) -3 (6) 6 ($1$1.) 3 (-') -1
+(\)) 10 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 138.38 Tm /TT2 1 Tf [ (\)0$)
+-2 (,) -1 ($#') -1 (\)8) 6 (*) 3 ($/) 9 (&+.\() 5 (') -1 (7) 5 (*) 3 (\)&./&)
+-3 (0) 10 (") -5 (1) 14 (\)$8*) 4 (.-&) -2 (.-/) 10 (&,) -1 ($) 8 (") -5 (3)
+] TJ ET BT 11.04 0 0 11.04 255.29 138.38 Tm /TT2 1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 115.94
+Tm /TT2 1 Tf [ (;) -4 ($,) -1 (,) -1 ($1-) 12 ($\)8*) 4 ($&) -3 (,) -1 (')
+2 (7) 3 ($) 9 (#") -3 (&,) 9 ($0-) -4 (*) 3 (\)/) 11 (&) 9 (-#') -1 (\)-')
+-1 (8) 4 (*) 3 ($&) -3 (.0/) 11 (&0) 8 (") -5 (1) 3 (\)$0) 8 (-$) -3 (-*$#)
+11 (&\)) 8 (') -1 (-&.%) 4 ($-) -3 (/&') 9 (%) -4 (\() 3 ($#+') 14 ($-) -3
+(&*-/) 10 (&H*\)-) 9 (") 5 (3&B$+) 3 (&.,) -1 (') -1 (8) 5 (*) 3 (.%) -4 (&)
+9 (") -5 (+) 3 (') -1 (") 7 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 101.42 Tm
+/TT2 1 Tf [ (6) -4 (') -1 (-.$) 9 (&-) 7 (") -5 (#-) 10 (") -5 (#3) 3 (&;)
+-6 (#) 12 (") -5 (') -1 (1) 5 (&<$1+) 6 (#$#') 12 (-&) -3 (-$) 7 (%) -4 (\()
+3 (*) 3 (\)&.#0*3) 4 (&@1) 3 (&<.) 13 (0&) -2 (<) 3 (.7) 4 (') -1 (-) 11 (.\)\)$&)
+-3 (\() 3 (,) -1 (.) ] TJ ET BT 11.04 0 0 11.04 348.07 101.42 Tm /TT2 1 Tf
+[ (-) 9 ($.&) -3 (+) 3 (') -1 (0-*) 13 (%) -4 (\)-3&B*) 3 (\)\() 14 ($1+)
+5 (') -1 (\)\)$&) -2 (\() 3 (") 5 (-$) -3 (1) 3 (-') -1 (3&) ] TJ ET Qendstream
+endobj
+11 0 obj
+<< /Font << /TT2 13 0 R >> /ProcSet [ /PDF /Text ] >>
+endobj
+12 0 obj
+<< /C [ 0.0001108646 0.001760244 0.9982184 ] /Contents () /F 2 /QuadPoints [ 475 688 512 688 475 679 512 679 ] /Rect [ 475 681 512 690 ] /Subtype /Highlight /Type /Annot /NM (Annot-1) >>
+endobj
+13 0 obj
+<< /BaseFont /LOCDUS+Calibri /FirstChar 33 /FontDescriptor 15 0 R /LastChar 72 /Subtype /TrueType /ToUnicode 16 0 R /Type /Font /Widths [ 420 527 349 498 799 226 229 525 391 525 525 229 335 479 250 423 525 471 252 855 459 452 525 525 646 567 517 525 305 453 579 252 615 459 642 488 673 533 715 239 ] >>
+endobj
+14 0 obj
+<< /N 17 0 R >>
+endobj
+15 0 obj
+<< /Ascent 750 /AvgWidth 521 /CapHeight 826 /Descent -250 /Flags 4 /FontBBox [ -503 -307 1240 964 ] /FontFile2 18 0 R /FontName /LOCDUS+Calibri /ItalicAngle 0 /Leading 221 /MaxWidth 1328 /StemV 0 /Type /FontDescriptor /XHeight 654 >>
+endobj
+16 0 obj
+<< /Length 928 >>
+stream
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo <<
+ /Registry (Adobe)
+ /Ordering (UCS)
+ /Supplement 0
+>> def
+/CMapName /Adobe-Identity-UCS def
+/CMapType 2 def
+1 begincodespacerange
+<00><FF>
+endcodespacerange
+40 beginbfrange
+<21><21><004c>
+<22><22><006f>
+<23><23><0072>
+<24><24><0065>
+<25><25><006d>
+<26><26><0020>
+<27><27><0069>
+<28><28><0070>
+<29><29><0073>
+<2a><2a><0075>
+<2b><2b><0064>
+<2c><2c><006c>
+<2d><2d><0074>
+<2e><2e><0061>
+<2f><2f><002c>
+<30><30><0063>
+<31><31><006e>
+<32><32><0067>
+<33><33><002e>
+<34><34><004d>
+<35><35><0046>
+<36><36><0076>
+<37><37><0062>
+<38><38><0071>
+<39><39><004e>
+<3a><3a><0056>
+<3b><3b><0050>
+<3c><3c><0068>
+<3d><3d><0066>
+<3e><3e><0079>
+<3f><3f><0041>
+<40><40><0049>
+<41><41><0044>
+<42><42><0053>
+<43><43><0055>
+<44><44><0045>
+<45><45><0051>
+<46><46><0043>
+<47><47><0077>
+<48><48><006a>
+endbfrange
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+endstream
+endobj
+17 0 obj
+<< /BBox [ 0 0 37 9 ] /FormType 1 /Resources 19 0 R /Subtype /Form /Type /XObject /Length 102 >>
+stream
+q Q q 0 0 37 9 re W n /Cs1 cs 0.0001108646 0.001760244 0.9982184 sc /Gs1 gs
+-0.9 -2.9 38.8 10.8 re f Qendstream
+endobj
+18 0 obj
+<< /Length1 24752 /Length 24752 >>
+stream
+true
+
+ J  J  J  J  J  J  J  J  J  J 
+N OOOPQQPQQ
+_ ___]^____
+N
+O
+g
+
+%88UUUU}U~}U } }}K}{}}}@
+|UzU{zUyUwUxwU
+rF@|r FqUoUpoUnfmUj%i8gUhgUf8dUedUc8bUa8`U_8]U^]U\8ZU[ZUY8XUW%V8TUUTUS8QURQUO8NUN%M8KULKUJ8HUIHUG8FUE8
+
+
+ 
+C#Ce
+-,
+ C#C -,
+-, i@a
+#eB #B#?
+%% %J
+% %%Y%% %c#%c` @
+@
+&&
+ .%%
+ .%%YY
+% %Y
+% %Iab%%
+%#8%%%%
+% %İ%% % %I%T#y!!!!!!!!!!!!-,#
+
+
+-
+ Q > ; w5t7t
+*;!IV  (D\M
+@ L% L  L  L@(%@, M$#&% "#
+ 
+#% ' *{= ;   {
+)'T\ * '/'E|{A&/&
+ ))f    N
+G''j 1
+ &
+
+ @ ")F
+H   '
+M
+RU
+.MM M M M@$1
+M
+M
+ M
+
+ M
+ M
+
+
+l  *$ (W* 
+..2M2M2 M2 M2 M2@
+.'"QUT
+)4c`]/OO  
+ # Q U
+!(M(M( M( M( M(2@
+
+ -)S%7+ V
+ Yt>1cՋDJޔӏH)>*InH('[pp_)&Zrq^(r!?Z<,V_VQp-<C"#nNShrMT
+&@  77@ L@
+ L77< A)S)V
+ M  M @
+M
+@ M
+&RR)V
+? 
+!6 M6 M6 M6L6@+ M+ M+ M+M+M+
+@
+65!0&JFL9M
+ H$J1 H1, M
+ %@{uz;"'!(!WX+$+#
+ M9M9M9 M9
+@
+!F 9'*J4ML
+@!!,ǀ/&J`p M
+6G&0H LH
+!=Y;>pU1%@Y4!>83L,=`&%]BMzT- !\g 8I(Yf7H^:?-)(AC0>
+ M  M  M L @
+
+@M>IL
+
+  -HI  0:*)9:*)
+FL
+
+ M
+ M
+ M
+L
+P@MP>' M' M'M'M' M'
+ M  M 
+-J*$ILL
+@/
+
+MM M M M
+
+ M
+ M
+L
+ M
+@+ M+ M+L+ M+
+@
+65!0&JIO9M
+ M+ M+L+
+@
+%I =+.J8MO
+%@ +J& IL
+
+ 
+ MM MM
+M
+P`p77<A)JM
+  +?V8*D2'@PUQ@')R{R$H:)
+ "6I/*@)(@RUS@'ElJ&$ #6%&4("+>V<5aI,  #0'5( "*<T
+]_
+ 
+ M' M'L' M'
+!
+  
+W      
+ M MM@ M MAI@ M?Oo@H3I%I:,, M,@Hg,w,E,,L L
+ s 
+W       
+
+I
+KO
+\ . 
+ 
+ $$ 4.-
+  
+endobj
+19 0 obj
+<< /ColorSpace << /Cs1 20 0 R >> /ExtGState << /Gs1 21 0 R >> /ProcSet [ /PDF ] >>
+endobj
+20 0 obj
+[ /ICCBased 22 0 R ]
+endobj
+21 0 obj
+<< /BM /Multiply /Type /ExtGState >>
+endobj
+22 0 obj
+<< /Alternate /DeviceRGB /N 3 /Length 3144 >>
+stream
+
+
+
+'
+=
+T
+j
+
+
+
+
+
+ " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""#
+#8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<'<e<<="=a==> >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNO
+k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4
+uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-
+zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmendstream
+endobj
+xref
+0 23
+0000000000 65535 f
+0000000015 00000 n
+0000000064 00000 n
+0000000165 00000 n
+0000000250 00000 n
+0000000283 00000 n
+0000000324 00000 n
+0000000426 00000 n
+0000000478 00000 n
+0000000610 00000 n
+0000000636 00000 n
+0000016780 00000 n
+0000016850 00000 n
+0000017050 00000 n
+0000017369 00000 n
+0000017401 00000 n
+0000017651 00000 n
+0000018630 00000 n
+0000018862 00000 n
+0000043682 00000 n
+0000043781 00000 n
+0000043818 00000 n
+0000043871 00000 n
+trailer << /Info 2 0 R /Root 1 0 R /Size 23 /ID [<478ae23a7e65ac7469e81c717c1d3092><b709a53e27f0ba80fcb31845aad2d675>] >>
+startxref
+47094
+%%EOF
diff --git a/testing/resources/pixel/bug_492.pdf.0.png b/testing/resources/pixel/bug_492.pdf.0.png
new file mode 100644
index 0000000000..c0fc1f4f60
--- /dev/null
+++ b/testing/resources/pixel/bug_492.pdf.0.png
Binary files differ