summaryrefslogtreecommitdiff
path: root/testing
AgeCommit message (Collapse)Author
2018-01-08Initialize V8 once in embedder testsDan Sinclair
This CL moves the initialization of the V8 platform to happen in the GTest environment so it's only run once. This takes the CFXJSE_FormCalcContextEmbedderTest Debug time from ~25s to ~19s on my local machine. Bug: pdfium:928 Change-Id: Ie8c27606721e7056de42e7d9474b0621f1e7212f Reviewed-on: https://pdfium-review.googlesource.com/22070 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-01-04Remove allocations from JS testDan Sinclair
This CL removes the millions of allocations from the test case for bug 765384. This takes the test execution from ~20s to ~400ms when run in Debug. Bug: chromium:765384 Change-Id: Ib1e9d3c6fb9853e541189e1a16f765d05202cdcc Reviewed-on: https://pdfium-review.googlesource.com/22011 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-12-20Avoid default arguments in EmbedderTest::OpenDocument().chromium/3300Lei Zhang
Default arguments are banned on virtual functions. Remove default arguments and rename OpenDocument() to OpenDocumentWithOptions(). Add wrappers for OpenDocumentWithOptions() to call it with sensible options. Change-Id: I4955d88cf77a7eab1771692ea3d6a18260b52900 Reviewed-on: https://pdfium-review.googlesource.com/21891 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
2017-12-20Fix nits in JSEmbedderTest.Lei Zhang
Change-Id: Ib03ee28f7a52cd5aa53c315402141b3b6cff5e7d Reviewed-on: https://pdfium-review.googlesource.com/21892 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-12-20IWYU in testing/range_set.h.Lei Zhang
Change-Id: I8d5ae99b22520c3695e026c0ab79b570d1965d52 Reviewed-on: https://pdfium-review.googlesource.com/21810 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-12-19Add missing fpdfview_c_api_test.c entries.Lei Zhang
Add a presubmit check to prevent future missing entries. Also fix an erroneous header entry. Change-Id: I8aeafd820de984f5af90b3e4ea428f582e82f254 Reviewed-on: https://pdfium-review.googlesource.com/21571 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-12-14Reduce XFA image fuzzer size limit to 64MBRyan Harrison
BUG=chromium:794351 Change-Id: Ieb876560674dfa0728d66f2ad3411f3f569d0ffa Reviewed-on: https://pdfium-review.googlesource.com/21290 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2017-12-14Fold CXFA_ScriptData into CXFA_ScriptDan Sinclair
This CL removes the CXFA_ScriptData wrapper and uses CXFA_Script directly. Change-Id: I1f1932ef96ee4a24407de7eb1d68b8631a5a67ea Reviewed-on: https://pdfium-review.googlesource.com/21173 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
2017-12-11Remove default arguments to CPDF_StreamAcc::LoadAllData().Lei Zhang
Add LoadAllDataFiltered() and LoadAllDataRaw() and update callers. Change-Id: I9b80ee34a358db204968acdc8b1adc9db0b6b83f Reviewed-on: https://pdfium-review.googlesource.com/20810 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
2017-11-30Rewrite lower level details of extracting text from pageRyan Harrison
The current implementation of text extraction was difficult to understand, duplicated logic that existed in other methods, and wasn't clear about the units the inputs were in. It also didn't handle control characters correctly. The new implementation leans on the methods for converting indices between the text buffer index and character list index spaces to avoid duplication of code. It also makes it clear to the reader that inputs are in the character list index space. Finally, it fixes issues being seen in Chrome with respect of ranges being slightly off. This CL also adds a test for extracting text that has control characters. BUG=pdfium:942,chromium:654578 Change-Id: Id9d1f360c2d7492c7b5a48d6c9ae29f530892742 Reviewed-on: https://pdfium-review.googlesource.com/20014 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
2017-11-30Reduce memory limit of PDF XFA fuzzersNicolas Pena
CFX_DIBitmap::Create does an allocation of size roughly 4*width*height even in xfa_codec_fuzzer.h. This CL fixes the memory limit accordingly. Bug: 789359 Change-Id: Ib5cbd08510ecacb2fbd22cb23394d24a86110bc5 Reviewed-on: https://pdfium-review.googlesource.com/19890 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
2017-11-29Allow building pdfium against the system version of libpng.Andrew Weintraub
Bug: Change-Id: I0c930ca30637f58af3b60ed8f1383bd9234a1723 Reviewed-on: https://pdfium-review.googlesource.com/19850 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-11-29Read Skia gold json and compare to locally generated pngs.Henrique Nakashima
Change-Id: I73b6a477c1a66beec2b73072f23faab7db7d3342 Reviewed-on: https://pdfium-review.googlesource.com/18513 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-11-28Fix PDF fuzzers memory limitNicolas Pena
This CL reduces the memory limit in pdf_codec_jbig2_fuzzer. Note that MSAN requires the limit to be lower than the actual bot usage limit. In the testcase, we get OOM just after CFX_DIBitmap::Create. It also increases the limit in xfa_codec_fuzzer.h Bug: 784155 Change-Id: I6fc8d9533ca7dc2b19bf84b9eac23284e05b1e6d Reviewed-on: https://pdfium-review.googlesource.com/19571 Commit-Queue: Nicolás Peña Moreno <npm@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-11-27Convert CFX_GifContext::GetFrameNum to size_tDan Sinclair
This CL removes the CollectionSize and updates call locations as needed. Bug: pdfium:774 Change-Id: I813c500b3a17a194407ceb1304252b9b16fe1779 Reviewed-on: https://pdfium-review.googlesource.com/19590 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2017-11-21Cleanup CXFA_ScriptDataDan Sinclair
This CL cleans removes out params, makes methods const and moves the XFA_ScriptDataType into CXFA_ScriptData. Change-Id: I5a51a0eddc3608577a387472911000daa479af0f Reviewed-on: https://pdfium-review.googlesource.com/19090 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-11-20Add regression tests for issues with correctly removing hyphensRyan Harrison
There was a regression due to a refactor, where the public API was no longer removing soft hyphens for line broken words. This was causing issues with find and copy/paste operations that depend on selecting a region of text. This change is covered by FPDFTextEmbeddertest.GetTextWithHyphen. FPDFTextEmbeddertest.bug_782596 is a regression test for a bug that was introduced by the original fix. It only fails when running the test under ASAN. BUG=pdfium:935 Change-Id: I26096583c35f9246a3662e702f89b742f1146780 Reviewed-on: https://pdfium-review.googlesource.com/18610 Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2017-11-14Cleanup const refs and some enumsDan Sinclair
This CL cleans up some const refs and some enum values from the previous rename CLs. Change-Id: Ifaa990c9c45485bb059e0bda0026093d0a2c0944 Reviewed-on: https://pdfium-review.googlesource.com/18230 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-11-13Remove virtual from EmbedderTest methods that are not overridden.chromium/3268Henrique Nakashima
Change-Id: I405e3fcd23fb0fcffa5abdea6cb9a3ab6e62a8f6 Reviewed-on: https://pdfium-review.googlesource.com/18390 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2017-11-10Add FPDFSaveEmbedderTest.SaveLinearizedDocchromium/3267chromium/3266Henrique Nakashima
Bug: pdfium:614 Change-Id: I3c6cd16dfe0ac5db66cc9e996d3f4e74a5d9d716 Reviewed-on: https://pdfium-review.googlesource.com/18251 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-11-10Stop using m_SavedPage in embedder tests.chromium/3265Henrique Nakashima
Change-Id: Id53f57085fecfe331c8cbfa6bb372b5ea5044442 Reviewed-on: https://pdfium-review.googlesource.com/18332 Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2017-11-08Make most CPDF_LinearizedHeader members const.chromium/3263Lei Zhang
Change-Id: I82907ad725861b9ccd6299f5dfe20ddb9d238178 Reviewed-on: https://pdfium-review.googlesource.com/17796 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-11-02Remove some C-style const char* casts.Lei Zhang
Change-Id: I4785dd277b9da072ee3c55e2aaeb688bbf02852e Reviewed-on: https://pdfium-review.googlesource.com/17391 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-11-01Move some XFA JS code into fxjs/Dan Sinclair
This CL renames cxfa_scriptcontext to cfxjse_engine and cxfa_fm2jscontext to cfxjse_formcalc_context. From reading the code, the script context appears to handle the v8 setup and object code. The formcalc context code is related to handling the JS code generated from the transpiler. I, think, these new names make the intended usage clearer. They also move the code into fxjs/ to keep along side the rest of the JS code. Change-Id: I50619fbe48ca1f553a44cf0e0cb0210be8e45e4f Reviewed-on: https://pdfium-review.googlesource.com/17130 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-10-31Fix FPE in XFACodecFuzzerchromium/3255Ryan Harrison
This is a div by 0 issue BUG=chromium:779890 Change-Id: I91ca2969ffe52fb486b1fab32abc8609cd6567a2 Reviewed-on: https://pdfium-review.googlesource.com/17250 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2017-10-30Fix overflow in image size checkRyan Harrison
BUG=chromium:779342 Change-Id: I2a087a08fe87594eb73d9d955955be0e66e5cdc2 Reviewed-on: https://pdfium-review.googlesource.com/17030 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-10-27Revert "Revert "Reland "Remove ContrastAdjust()."""chromium/3253chromium/3252Henrique Nakashima
This reverts commit 978ba20ffd0d2b37bf02b9d86828fa701c0c02fa. Reason for revert: I now have the new expected files for the chrome test ready in https://chromium-review.googlesource.com/c/chromium/src/+/742061 Landing this again and will immediately add a manual pdfium roll to cl 742061 to unblock the deps roller. Original change's description: > Revert "Reland "Remove ContrastAdjust()."" > > This reverts commit d5ec7ab0cd0663184d6056bc6fc87c86ec345342. > > Reason for revert: Did not mean to reland, just create the reland CL. > > Original change's description: > > Reland "Remove ContrastAdjust()." > > > > Original change's description: > > > Revert "Remove ContrastAdjust()." > > > > > > This reverts commit 53d443f042b590ae2d920def16bc9daf66f8427d. > > > > > > Reason for revert: Breaks PDFToPWGRasterBrowserTest > > > > > > Original change's description: > > > > Remove ContrastAdjust(). > > > > > > > > This post-processing increased the contrast of scaled-down features - > > > > mainly lines and fonts, relative to the background. The effect does not > > > > improved readability and in some cases makes the scaled-down version > > > > look like a different document at a glance. Text that is normal > > > > weight appears bold when scaled down in these cases. > > > > > > > > Change-Id: I2544d45e2bcec25d6742d2a60c1316d8df08cce1 > > > > Reviewed-on: https://pdfium-review.googlesource.com/15471 > > > > Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> > > > > Reviewed-by: dsinclair <dsinclair@chromium.org> > > > > > > TBR=bungeman@chromium.org,dsinclair@chromium.org,hnakashima@chromium.org > > > > > > # Not skipping CQ checks because original CL landed > 1 day ago. > > > > > > Change-Id: I7f61650bc6d917b3c6640da60f3f740ef4498de0 > > > Reviewed-on: https://pdfium-review.googlesource.com/16970 > > > Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> > > > Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> > > > > TBR=bungeman@chromium.org,dsinclair@chromium.org,hnakashima@chromium.org > > > > Change-Id: I77d4377d30908d1e2d4dc842300a761072a5fbd4 > > No-Presubmit: true > > No-Tree-Checks: true > > No-Try: true > > Reviewed-on: https://pdfium-review.googlesource.com/16990 > > Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> > > Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> > > TBR=bungeman@chromium.org,dsinclair@chromium.org,hnakashima@chromium.org > > Change-Id: Ie2e91662a1e82c0a793952aab47c2acbde1596d4 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://pdfium-review.googlesource.com/16991 > Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> > Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> TBR=bungeman@chromium.org,dsinclair@chromium.org,hnakashima@chromium.org Change-Id: Iaae451131043ee69052809680922fdac06a69458 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://pdfium-review.googlesource.com/16992 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2017-10-27Limit the size of images being fuzzed in XFACodecFuzzersRyan Harrison
This limits the size detected in the header to 1,000,000 pixels, which will support 1000 x 1000 images. This is being done to remove non-useful OOM reports for very large images and improve fuzzing efficiency, since larger images are unlikely to cover new logic. BUG=pdfium:925 Change-Id: I4a7fa7cf02cbb469048b752d45bc9f64a1b60a98 Reviewed-on: https://pdfium-review.googlesource.com/17010 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2017-10-27Revert "Reland "Remove ContrastAdjust().""Henrique Nakashima
This reverts commit d5ec7ab0cd0663184d6056bc6fc87c86ec345342. Reason for revert: Did not mean to reland, just create the reland CL. Original change's description: > Reland "Remove ContrastAdjust()." > > Original change's description: > > Revert "Remove ContrastAdjust()." > > > > This reverts commit 53d443f042b590ae2d920def16bc9daf66f8427d. > > > > Reason for revert: Breaks PDFToPWGRasterBrowserTest > > > > Original change's description: > > > Remove ContrastAdjust(). > > > > > > This post-processing increased the contrast of scaled-down features - > > > mainly lines and fonts, relative to the background. The effect does not > > > improved readability and in some cases makes the scaled-down version > > > look like a different document at a glance. Text that is normal > > > weight appears bold when scaled down in these cases. > > > > > > Change-Id: I2544d45e2bcec25d6742d2a60c1316d8df08cce1 > > > Reviewed-on: https://pdfium-review.googlesource.com/15471 > > > Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> > > > Reviewed-by: dsinclair <dsinclair@chromium.org> > > > > TBR=bungeman@chromium.org,dsinclair@chromium.org,hnakashima@chromium.org > > > > # Not skipping CQ checks because original CL landed > 1 day ago. > > > > Change-Id: I7f61650bc6d917b3c6640da60f3f740ef4498de0 > > Reviewed-on: https://pdfium-review.googlesource.com/16970 > > Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> > > Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> > > TBR=bungeman@chromium.org,dsinclair@chromium.org,hnakashima@chromium.org > > Change-Id: I77d4377d30908d1e2d4dc842300a761072a5fbd4 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://pdfium-review.googlesource.com/16990 > Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> > Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> TBR=bungeman@chromium.org,dsinclair@chromium.org,hnakashima@chromium.org Change-Id: Ie2e91662a1e82c0a793952aab47c2acbde1596d4 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://pdfium-review.googlesource.com/16991 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2017-10-27Reland "Remove ContrastAdjust()."Henrique Nakashima
Original change's description: > Revert "Remove ContrastAdjust()." > > This reverts commit 53d443f042b590ae2d920def16bc9daf66f8427d. > > Reason for revert: Breaks PDFToPWGRasterBrowserTest > > Original change's description: > > Remove ContrastAdjust(). > > > > This post-processing increased the contrast of scaled-down features - > > mainly lines and fonts, relative to the background. The effect does not > > improved readability and in some cases makes the scaled-down version > > look like a different document at a glance. Text that is normal > > weight appears bold when scaled down in these cases. > > > > Change-Id: I2544d45e2bcec25d6742d2a60c1316d8df08cce1 > > Reviewed-on: https://pdfium-review.googlesource.com/15471 > > Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> > > Reviewed-by: dsinclair <dsinclair@chromium.org> > > TBR=bungeman@chromium.org,dsinclair@chromium.org,hnakashima@chromium.org > > # Not skipping CQ checks because original CL landed > 1 day ago. > > Change-Id: I7f61650bc6d917b3c6640da60f3f740ef4498de0 > Reviewed-on: https://pdfium-review.googlesource.com/16970 > Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> > Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> TBR=bungeman@chromium.org,dsinclair@chromium.org,hnakashima@chromium.org Change-Id: I77d4377d30908d1e2d4dc842300a761072a5fbd4 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://pdfium-review.googlesource.com/16990 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2017-10-27Revert "Remove ContrastAdjust()."Henrique Nakashima
This reverts commit 53d443f042b590ae2d920def16bc9daf66f8427d. Reason for revert: Breaks PDFToPWGRasterBrowserTest Original change's description: > Remove ContrastAdjust(). > > This post-processing increased the contrast of scaled-down features - > mainly lines and fonts, relative to the background. The effect does not > improved readability and in some cases makes the scaled-down version > look like a different document at a glance. Text that is normal > weight appears bold when scaled down in these cases. > > Change-Id: I2544d45e2bcec25d6742d2a60c1316d8df08cce1 > Reviewed-on: https://pdfium-review.googlesource.com/15471 > Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> > Reviewed-by: dsinclair <dsinclair@chromium.org> TBR=bungeman@chromium.org,dsinclair@chromium.org,hnakashima@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I7f61650bc6d917b3c6640da60f3f740ef4498de0 Reviewed-on: https://pdfium-review.googlesource.com/16970 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
2017-10-26Add option to regenerate only platform-specific expected pngs.Henrique Nakashima
Change-Id: Id4798fe9a4d297678a76d0511cde7fecbf130e3e Reviewed-on: https://pdfium-review.googlesource.com/16613 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Nicolás Peña Moreno <npm@chromium.org>
2017-10-26Remove ContrastAdjust().Henrique Nakashima
This post-processing increased the contrast of scaled-down features - mainly lines and fonts, relative to the background. The effect does not improved readability and in some cases makes the scaled-down version look like a different document at a glance. Text that is normal weight appears bold when scaled down in these cases. Change-Id: I2544d45e2bcec25d6742d2a60c1316d8df08cce1 Reviewed-on: https://pdfium-review.googlesource.com/15471 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-10-25Add --regenerate_expected option to test_runner.py.chromium/3250Henrique Nakashima
After a change in rendering, corpus and pixel test expected pngs need to be regenerated manually. This option reduces the toil by automating renaming and moving the new expected files over the old ones. Change-Id: I9d490369ccf946d4d4567e440b7b5252469eec46 Reviewed-on: https://pdfium-review.googlesource.com/16451 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Nicolás Peña Moreno <npm@chromium.org>
2017-10-24Add more tests for FPDFText methods.Lei Zhang
BUG=pdfium:921 Change-Id: I6973359e6ac112c56843f66eb0b70462f42f9cae Reviewed-on: https://pdfium-review.googlesource.com/16630 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-10-19Implement fuzzer for FormCalc parsingRyan Harrison
This adds a fuzzer that tests the FormCalc parsing code independent of parsing an entire XFA file or performing translation to JS. BUG=pdfium:920 Change-Id: I3d2c336d9cb6f4ebf114ded5f57a44a8342c4228 Reviewed-on: https://pdfium-review.googlesource.com/16391 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-10-19Implement fuzzer for LZW decompressorRyan Harrison
This adds a fuzzer that tests the LZW decompression code used by our GIF decoder. BUG=pdfium:908 Change-Id: I1381f3ebb2eddf8d2c6f0394b1bb00f67d64a600 Reviewed-on: https://pdfium-review.googlesource.com/16310 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-10-18Fix rounding of colour valuesDan Sinclair
This CL fixes rounding issues with the colour values when written then read from path objects. Bug: pdfium:919 Change-Id: I8ab33706f1c7d81c3ec755706b1a613cf2a557b3 Reviewed-on: https://pdfium-review.googlesource.com/16270 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-10-18Refactor HasXFAField into HasFormInfoRyan Harrison
The existing API is too restrictive for collection the metrics information that we want. Specifically it only tells us if there are XFA forms in the document, but not AcroForms. This refactoring makes the method more general, so that non-XFA information is provided also. This change in semantics of the return value required some changes at the call sites of the API. BUG=chromium:775519 Change-Id: Id421c66c09b47196c252c64cdc2c711ca1911de0 Reviewed-on: https://pdfium-review.googlesource.com/16210 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-10-17Convert XFA Doc Types to be more preciseRyan Harrison
The existing types are PDF, Dynamic & Static, which are poorly named since they don't really convey the fundamental differences between the types. "PDF" is confusing because PDFium only handles PDFs, and "Dynamic" & "Static" describe what a form may do, not how it is specified or some other fundamental difference. The terms "Dynamic" and "Static" were especially confusing, since XFAF documents must be static by definition, whereas full XFA documents can be either dynamic or static, depending on whether or not they change their layout. The types have been renamed to be clear that they are talking about the type of PDF document being described. "PDF" becomes "None", since this is used to indicate that there are no XFA forms in the document. "Dynamic" becomes "Full", since this indicates that the entire XFA spec is being used for the forms, specifically display layout is in the XML. "Static" has become "ForegroundOnly", since the form is specified using the XFAF (XFA Foreground) subset of the spec. The terms Full & Foreground come from the XFA spec. I would have preferred XFAF to have a different name, since it is the display/foreground layer that isn't XFA when using it. BUG=pdfium:917 Change-Id: I4335958c4a11d77d3bbe63b93602dd5bc14acb57 Reviewed-on: https://pdfium-review.googlesource.com/16010 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2017-09-29Extract test subclasses of IFX_SeekableReadStreamRyan Harrison
There are multiple instances of subclasses that either act as an invalid stream or one backed by a memory buffer. Merging all of these into two shared stream classes and removing the others. BUG=pdfium:911 Change-Id: I264602808c6dc0e5c878da462a5e00883fe43e51 Reviewed-on: https://pdfium-review.googlesource.com/15093 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
2017-09-28Implement FakeFileAccess.Artem Strygin
Update embedder tests to simulate unavailable data and download requests. Change-Id: I634fa89d2a0c859243e849752936da87568909f4 Reviewed-on: https://pdfium-review.googlesource.com/11890 Commit-Queue: Art Snake <art-snake@yandex-team.ru> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-09-27Replace FX_SAFE_STRSIZE with FX_SAFE_SIZE_TRyan Harrison
BUG=pdfium:828 Change-Id: If9560338c456b28f968e743a90a3629791d87df0 Reviewed-on: https://pdfium-review.googlesource.com/14832 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
2017-09-27Remove FX_STRSIZE and replace with size_tRyan Harrison
BUG=pdfium:828 Change-Id: I5c40237433ebabaeabdb43aec9cdf783e41dfe16 Reviewed-on: https://pdfium-review.googlesource.com/13230 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2017-09-26Move font source into CFGAS_FontMgrDan Sinclair
This CL moves the font source into the font manager so it doesn't need to be stored by each caller (and removes the platform dependant code). The |EnumFonts| method is exposed on the CFGAS_FontMgr so the caller can clear the manager if the enumeration fails. Change-Id: Iecce3d2e09ff01152b7bb79a34fe2b728320da9c Reviewed-on: https://pdfium-review.googlesource.com/14816 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-09-22Fix crash when rendering invalid GIFRyan Harrison
The core fix in this CL is a change to how LWZ decompression works, so that when the min code table size and the color palette size are different, color codes after the end of the defined color palette are considered errors. This CL also introduces a bunch of tweaks to the call return path, since there were multiple locations where the GIF decode failing status was being dropped on the floor, so the end widget would have a bitmap with the default colour in it, instead of nothing. BUG=chromium:616671 Change-Id: Id6f40d552dc24650c91e9903f710ff2fa63bc774 Reviewed-on: https://pdfium-review.googlesource.com/14630 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-09-21Rename CFX_RetainPtr to RetainPtrDan Sinclair
This CL renames CFX_RetainPtr to RetainPtr and places in the fxcrt namespace. Bug: pdfium:898 Change-Id: I8798a9f79cb0840d3f037e8d04937cedd742914e Reviewed-on: https://pdfium-review.googlesource.com/14616 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-09-20Isolate lcms2 usage to a few files.Lei Zhang
Then set up the right dependencies for them. BUG=chromium:765914 Change-Id: I036cd888c741927d5efe0d020c6676f169e7cbb1 Reviewed-on: https://pdfium-review.googlesource.com/14410 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-09-19Remove unneeded core/fxcodec/fx_codec.h includes.chromium/3220Lei Zhang
Change-Id: I703321108712e8c4a11a8343ecf8b1a8804c1d1a Reviewed-on: https://pdfium-review.googlesource.com/14352 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-09-18Convert string class namesRyan Harrison
Automated using git grep & sed. Replace StringC classes with StringView classes. Remove the CFX_ prefix and put string classes in fxcrt namespace. Change AsStringC() to AsStringView(). Rename tests from TEST(fxcrt, *String*Foo) to TEST(*String*, Foo). Couple of tests needed to have their names regularlized. BUG=pdfium:894 Change-Id: I7ca038685c8d803795f3ed02545124f7a224c83d Reviewed-on: https://pdfium-review.googlesource.com/14151 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>