Age | Commit message (Collapse) | Author |
|
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1654523002 .
|
|
One more test before replacing the old sort() mechanism.
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1650623004 .
|
|
Moved onto JS_ExpandKeywordParams(), and added a test which
showed the failure to pass all the data back to the embedder.
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1645413002 .
|
|
I'm about to replace the sort() that underlies this class,
so I first want to be sure I don't disrupt the order.
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1652533002 .
|
|
Centralize the "arguments in an object" logic. See the section
"Method Arguments" in the js_api_reference.pdf. Add some tests
to hit the ambiguous cases this section implies, and test that
all parameters are passed end-to-end to our callbacks.
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1641693003 .
|
|
Fix the bugs by removing ParseNumber() entirely.
For PDFium's JavaScript bindings, we want to get out of the
numeric conversion business and inflict that on V8 as
possible, avoiding platform-specific issue in strtod().
For other uses, there is a FX_atof() which is similarly
buggy, but we can consolidate the use. Add an overloaded
FX_atof() to handle wide strings more simply.
BUG=pdfium:361
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/1586203006 .
|
|
There are multiple functions in CPDF_Object class which can cause infinite loop due to recursively calling circular indirect objects. Fix them by deference indirect object first.
BUG=pdfium:355
R=jun_fang@foxitsoftware.com, thestig@chromium.org
Review URL: https://codereview.chromium.org/1585533002 .
|
|
BUG=pdfium:361
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1586983005 .
|
|
This reverts commit 4cd5b80e70e5fc50d8bd805cfa3c7b54878a0a35.
Reason for revert: broke tests on windows
TBR=tombergan@chromium.org
TBR=thestig@chromium.org
Review URL: https://codereview.chromium.org/1573243016 .
|
|
Original patch by tombergan.
The old version of this function was basically strtod with a few quirks:
1. It always interpreted ',' as '.' independent of locale. I kept this
behavior, to be conservative.
2. It interpreted the first non-number character as a decimal point,
unless there was a prior decimal point, in which case all characters
up to that point are ignored. This would parse "123z4" as "123.4"
and "123xy6" as "6". I did not keep this behavior -- in the new code,
these examples all fail to parse.
The new ParseNumber was inlined into ConvertStringToNumber, which
returns true on success and (false, 0) on failure.
BUG=pdfium:361
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1582013002 .
|
|
Although trailer's size value is required by spec, other readers such as
Acrobat or libpoppler can handle without it. Loose up the check to be
more tolerant.
BUG=pdfium:213
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1582193002 .
|
|
These cover some corner cases discussed from the CL at
https://codereview.chromium.org/1582013002/
R=thestig@chromium.org, tombergan@chromium.org
Review URL: https://codereview.chromium.org/1582383002 .
|
|
BUG=pdfium:360
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1585823003 .
|
|
R=thestig@chromium.org, tombergan@chromium.org
Review URL: https://codereview.chromium.org/1588733003 .
|
|
CPDF_SyntaxParser::GetObject() may enter into an infinite loop when a
signature dictionary doesn't have 'Contents' field. Add a check to
avoid that.
BUG=pdfium:344
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1575833004 .
|
|
BUG=pdfium:343
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1569343002 .
|
|
BUG=572871
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1564773003 .
|
|
BUG=pdfium:325
R=weili@chromium.org
Review URL: https://codereview.chromium.org/1543043003 .
|
|
When cross reference sections form a loop, our code will enter an
infinite loop. Add detection and exit code for v4 cross reference loading.
V5 loading was done previously.
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1558093002 .
|
|
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1557173002 .
|
|
Also clean up while we're here.
BUG=557223
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1512833008 .
|
|
BUG=pdfium:298
R=weili@chromium.org
Review URL: https://codereview.chromium.org/1496703005 .
|
|
Loosen a check for earlier version of PDF files. When the bytes with
specified length are followed by 'endstream' keyword, even if there is
no EOL marker before the keyword, it signals the end of stream.
BUG=551258
R=jun_fang@foxitsoftware.com, tsepez@chromium.org
Review URL: https://codereview.chromium.org/1499433002 .
|
|
RebuildCrossRef function returns false when we can not find file trailer
or any indirect object. This serves as a basic file format checking.
BUG=pdfium:215
R=jun_fang@foxitsoftware.com
Review URL: https://codereview.chromium.org/1476163002 .
|
|
This matches the type of the corresponding |CFX_DIBSource::m_Pitch|,
where integer overflow is checked for FX_DWORD. This change is
propagated to many other places.
Also, check for integer overflow in |CCodec_RLScanlineDecoder::Create|
during the calculation of |m_Pitch| since it aligns to 4 bytes while
overflow was was previously checked without this alignment.
R=tsepez@chromium.org, thestig@chromium.org
BUG=555784
Review URL: https://codereview.chromium.org/1460033002 .
|
|
During decoding, when an image decoder is encountered, any
subsequent decoders are ignored, but remain in the array. However,
later on CPDF_DIBSource::ValidateDictParam expects the image
decoder to be the last in the array, causing issues.
A check is also added in CPDF_DIBSource::GetScanline to ensure
that the calculated pitch value is <= the (4-aligned) pitch value in the
cached bitmap to prevent future issues.
Also cleans up some NULL usages.
BUG=552046
R=jun_fang@foxitsoftware.com, tsepez@chromium.org
Review URL: https://codereview.chromium.org/1406943005 .
|
|
CPDF_DIBSource::DownSampleScanline32Bit
Previously, if |m_bpc| was < 8 (e.g. 4), this function may still try to
access the source components as if |m_bpc| == 8. Even when it fell into
the codepath that tried to do the right thing in this case, it was
wrong.
BUG=554151
R=tsepez@chromium.org, thestig@chromium.org
Committed: https://pdfium.googlesource.com/pdfium/+/9b99615806e358fdb396d1cb162ee2e69c2a20ec
Review URL: https://codereview.chromium.org/1433423002 .
|
|
CPDF_DIBSource::DownSampleScanline32Bit"
This reverts commit 9b99615806e358fdb396d1cb162ee2e69c2a20ec.
Broke Windows build.
TBR=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1437963003 .
|
|
Previously, if |m_bpc| was < 8 (e.g. 4), this function may still try to
access the source components as if |m_bpc| == 8. Even when it fell into
the codepath that tried to do the right thing in this case, it was
wrong.
BUG=554151
R=tsepez@chromium.org, thestig@chromium.org
Review URL: https://codereview.chromium.org/1433423002 .
|
|
This tests whether RebuildCrossRef could handle well-formatted pdf file.
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1409013005 .
|
|
This regressed in commit 794c9b6.
BUG=551248
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1424743006 .
|
|
Also cleans up some places in the relevant functions since we're here.
BUG=551460
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1421783004 .
|
|
BUG=446715
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1353093003 .
|
|
The m_pShadingObj can be a stream or a dictionary depending on how it's used.
This CL adds some simple type checking to make sure that the type of the
object matches what we expect.
BUG=chromium:547706
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1421973004 .
|
|
There appear to be a bunch of corpus tests which fail with this change such
as FAILURE: shading1.pdf
This reverts commit 85361b227ad6786d2aeef8409b79a8d077a26ee9.
Make m_pShadingObj a CPDF_Stream instead of CPDF_Object.
This object is required to be a stream and was being converted as such. With
the new type checking this caused us to pass a nullptr where previously we'd
have, incorrectly, cast a CPDF_Dictionary to a CPDF_Stream.
This CL changes the m_pShadingObj to always be a CPDF_Stream. Then, we never
go down the bad code path because we check if m_pShadingObj is nullptr earlier
and bail out.
BUG=chromium:547706
TBR=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1414283003 .
|
|
This object is required to be a stream and was being converted as such. With
the new type checking this caused us to pass a nullptr where previously we'd
have, incorrectly, cast a CPDF_Dictionary to a CPDF_Stream.
This CL changes the m_pShadingObj to always be a CPDF_Stream. Then, we never
go down the bad code path because we check if m_pShadingObj is nullptr earlier
and bail out.
BUG=chromium:547706
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1426713002 .
|
|
This limit mirrors FX_MAX_PAGE_LEVEL in fpdf_parser_document.cpp
R=thestig@chromium.org, tsepez@chromium.org
BUG=544880
Review URL: https://codereview.chromium.org/1421743003 .
|
|
PDF specs say that end of line markers shall follow the
keyword "stream". But a white space before end of line
markers follows this keyword in the test pdf files.
BUG=543018
R=thestig@chromium.org, tsepez@chromium.org
Review URL: https://codereview.chromium.org/1401923005 .
|
|
Null FPDF_BOOKMARK represents the "root" bookmark, and must
not segv when asking about titles or children.
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1404723002 .
|
|
Original patch by chamalsl.
Trailer size in bug_507316 was wrong.
embedder_test.cpp's GetPageTrampoline passed null parameter.
It will affect future test cases even if it does not affect
this.
BUG=507316
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1377403003 .
|
|
BUG=chromium:529012
R=jochen@chromium.org, krasin@google.com
Review URL: https://codereview.chromium.org/1353193004 .
|
|
For bit per component (bpc), PDF spec mentions that a RunLengthDecode or DCTDecode filter shall always deliver 8-bit samples. However, some PDF files don't follow this rule. We can find that filter is RunLengthDecode but bpc is 1 in the provided test file. In this case, pdfium will correct bpc to 8 but the actual bpc is 1. It causes a failure because the data is much more than the expected. To handle this case, pdfium doesn't correct bpc to 8 when the original bpc is 1.
BUG=512557
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1328213002 .
|
|
Also changes DEPS to specify a specific v8 version, this will
require us to manually update this version from time to time,
but also solves a longstanding problem where going back to an
older version (say for bisecting) wouldn't always work.
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1372963003 .
|
|
The font is slightly different from Linux/Windows.
BUG=524043
R=jun_fang@foxitsoftware.com
Review URL: https://codereview.chromium.org/1366363002 .
|
|
files""
This reverts commit fa9756f77ad6145940d3dc697814b84f5755ae17.
TBR=thestig@chromium.org
Review URL: https://codereview.chromium.org/1307353005/
|
|
This reverts commit 9bd18183ba8210c91d71c3060146235750a4c71c.
|
|
Pdfium swallows 'fi' or 'ff' in some tested files because it doesn't load the embedded font file correctly. The root cause is that there is incorrect keyword like 'ngendstream' in the stream of the embedded font file. Pdfium tries to find another correct keyword but uses wrong offset rather than accumulated offset.
BUG=524043
R=thestig@chromium.org, tsepez@chromium.org
Review URL: https://codereview.chromium.org/1307353005 .
|
|
The API is the same as the Foxit version, except the encoding is
specified as UTF-8 instead of local encoding.
Also remove CPDF_LWinParam since it's unused.
BUG=chromium:517713
R=jun_fang@foxitsoftware.com
Review URL: https://codereview.chromium.org/1335373002 .
|
|
Replace multiple #defines of the same strings with externs.
Fix strings mangled by interaction of # and clang-format.
Remove macros as possible.
Make more JS_ functions void and simplify.
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1342433002 .
|
|
Credit to karl at skomski.com for the initial version of the CL.
BUG=527174
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1305033006 .
|