Age | Commit message (Collapse) | Author |
|
Currently the BMP decompressor doesn't verify the
returned data length was the amount requested. This
means we may end up with part of our structure
uninitialized if we didn't copy in enough data.
This CL verifies the length of data copied is the
size we require.
BUG=chromium:811853
Change-Id: I20e0e9b3ff1176a620fcb38c3c7e585848b7e428
Reviewed-on: https://pdfium-review.googlesource.com/26850
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
https://chromium.googlesource.com/chromium/src/third_party/freetype2.git/+log/036bdc0c9a4f..4a03f17449ae
$ git log 036bdc0c9..4a03f1744 --date=short --no-merges --format='%ad %ae %s'
2018-02-06 wl [truetype] Integer overflow issues.
2018-02-04 apodtele [unix] Use -fvisibility=hidden.
Created with:
roll-dep pdfium/third_party/freetype/src
R=dsinclair@chromium.org,npm@chromium.org,thestig@chromium.org
Bug: pdfium:1009
Change-Id: I0dfa484bc680b5afb4ebc8bf62f6269f7df83d51
Reviewed-on: https://pdfium-review.googlesource.com/26810
Reviewed-by: Nicolás Peña Moreno <npm@chromium.org>
Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
|
|
When the document creates anew data root element it assigns it into the
CXFA_Node but fails to set that node as owing the XML node. The XML node
is never inserted into another XML tree so it ends up being leaked.
This CL sets the CXFA_Node to own the XML data tree node so it will be
cleaned up properly.
Bug: chromium:807863
Change-Id: I72a1b8f7b1f1a50bf7139d8bd0ecc8e504ccfc91
Reviewed-on: https://pdfium-review.googlesource.com/26790
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL removes one unused flag and inlines the check for if the node
has an owned XML node.
Change-Id: Id750192b37f09901a81e2faaa929a81d2262d4c7
Reviewed-on: https://pdfium-review.googlesource.com/26770
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
The SetFlag method has a signature of (flag, bool) which, looking at the
callsites makes you think it will set the flag to the boolean. This
isn't what happens, the flag is always set to true and the boolean
decides if we execute some notification code.
This CL splits SetFlag into SetFlag(flag) and SetFlagAndNotify(flag) to
make it a lot clearer what is happening.
Change-Id: I3e067c87532cce10b94bda10cc88feb62b948eb0
Reviewed-on: https://pdfium-review.googlesource.com/26750
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL marks methods const where possible and removes redundant
methods from CXFA_Document.
Change-Id: I34804425469dfd52469daba68f64a4b511e5d4d0
Reviewed-on: https://pdfium-review.googlesource.com/26730
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
|
|
Bug: chromium:806746
Change-Id: I0b642c457c55d828dd48988eadfc5fa964de1216
Reviewed-on: https://pdfium-review.googlesource.com/26630
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
|
|
This changes the return value from uint32_t to FX_FILESIZE, which is
the type the methods is uses return. The existing code does an
unguarded static cast, so something like -1 could cause a very large
value being returned.
This change has a cascading impact up to the top of the progressive
codec, which now has to handle negative values gracefully.
Change-Id: I813fb71e932dd5da014dbaed0dbf3bb28f8d4e9f
Reviewed-on: https://pdfium-review.googlesource.com/26450
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
|
|
This CL adds the list_child_ member into CFX_XMLNode to keep it
consistent with other tree's in the system.
Change-Id: I2e64f11fb9c7df40dd3467edcce177fc492d2cd2
Reviewed-on: https://pdfium-review.googlesource.com/26670
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
Change-Id: I5dbf1c78cf794eff817de9f5831b1fb5b49c84ab
Reviewed-on: https://pdfium-review.googlesource.com/26491
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
|
|
BUG=pdfium:1008
Change-Id: I5136d57bd401d44b56ac19e5cfb52702afa32200
Reviewed-on: https://pdfium-review.googlesource.com/26651
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
|
|
This CL removes the switch from SaveXMLNode and moves the required code
into override methods in the child classes. The method is renamed from
SaveXMLNode to just Save.
Change-Id: I2011b80525e99635c573b4e0cf977e94f6b7cea6
Reviewed-on: https://pdfium-review.googlesource.com/26590
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL cleans up hte CFX_XMLNode pointers. Each pointer has been
renamed to make the usage clearer, the NodeItems method has been removed
in favour of distinct accessors and the node pointers have been made
private.
Change-Id: I5459a77a0ae93b08741a0cd59266ef9c81ddad75
Reviewed-on: https://pdfium-review.googlesource.com/26550
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
The CFX_XMLDoc::SaveXMLNode method is almost an exact copy of the
CFX_XMLNode::SaveXMLNode. This CL removes the XMLDoc variant and calls
the XMLNode method directly.
This Removes the need to pass the CXFA_DocumentParser into CXFA_Document
and we can instead pass in the CXFA_FFNotify object directly.
Change-Id: Ic3c8c66375483fe73b44dd84064a1b71b039d61c
Reviewed-on: https://pdfium-review.googlesource.com/26530
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
This CL removes unused methods from CFX_XMLNode, adds an AppendChild to
handle the case of a -1 index to InsertChildNode, removes the
InsertChildNode return value which is unused and cleans up various other
things.
Change-Id: I3a022e4dc2afffa6893ad11014034dd7ed301f13
Reviewed-on: https://pdfium-review.googlesource.com/26510
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
Currently a CXFA_Node can be owned by the CXFA_Document root pointer,
the CXFA_Document Purge list or as a child of another CXFA_Node. This
makes it hard to know who currently owns what.
This CL moves all ownership of nodes into a CXFA_NodeOwner class which
CXFA_Document subclasses. The node owner always owns all nodes and is
responsible for cleaning them up upon destruction. The destruction order
is not guarenteed to be in tree order as nodes can be inserted and moved
around the tree.
Change-Id: I6b202b8e844999ba835093dcdd1a808938b6d9a8
Reviewed-on: https://pdfium-review.googlesource.com/26434
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
Change-Id: I01956bff9e7250c9df84afe6b6de96ab4e9b4851
Reviewed-on: https://pdfium-review.googlesource.com/26650
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
|
|
This CL changes the ASSERTs used in CXFA_Node::InsertChild and
RemoveChild to PDFIUM_IMMEDIATE_CRASH. The ASSERTs are compiled out in
Release mode, we want to make sure we don't accidentally build invalid
node trees in Release.
Change-Id: Ic96c8ab457631d1f32d36d7d12bd5888f1cf4b0a
Reviewed-on: https://pdfium-review.googlesource.com/26431
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
This CL adds a prev_sibling_ pointer into CXFA_Node and updates the code
as needed.
Change-Id: I3125f59780da34dc26a176c7264a31335be528fe
Reviewed-on: https://pdfium-review.googlesource.com/26410
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
https://chromium.googlesource.com/v8/v8/+log/ee5d9a0c..6353d168
TBR=dsinclair@chromium.org
Change-Id: I46e14078fb7d3aa78723fd499d7c8280b3ae7161
Reviewed-on: https://pdfium-review.googlesource.com/26490
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
|
|
This CL adds tests for CXFA_Node::InsertChild and CXFA_Node::RemoveChild
methods.
Change-Id: I6ef9e76dfbfa8a9b8246620ecf80c88812b332fc
Reviewed-on: https://pdfium-review.googlesource.com/26371
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
Add an override so we can comment about the need for it someday.
Change-Id: I344c6fd7a635aeab030f0e769bd03a86406ffdd8
Reviewed-on: https://pdfium-review.googlesource.com/26310
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
|
|
Bug: 808902
Change-Id: Iad5ab63eeedc3ea85001337ba73626178c71f8b8
Reviewed-on: https://pdfium-review.googlesource.com/26470
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
|
|
Small correctness fix in other engine embeddertest.
Change-Id: I6c2721921a659eef1b2f155ea1797722d37209d0
Reviewed-on: https://pdfium-review.googlesource.com/26270
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
|
|
This also adds a Seek method to CFX_MemoryStream
BUG=pdfium:1007
Change-Id: I2c7e1d3b6d8aff36e302014cb2e8ffc0f23ef7c4
Reviewed-on: https://pdfium-review.googlesource.com/26230
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
|
|
This makes it obvious if they are dictionaries that are only read from,
or if they are being modified.
Also clarify some page dictionary variables names to make it obvious
that they are the source or destination page.
Change-Id: I1d3c769c9940296b8f159b454bde32e595a95cac
Reviewed-on: https://pdfium-review.googlesource.com/26330
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Shirleen Lou <xlou@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
|
|
It's always the same member variable. Also make a
CPDF_NPageToOneExporter::FinishPage() parameter const-ref.
Change-Id: Id2550115259177d72b814bf6d4afe5fb775f6b86
Reviewed-on: https://pdfium-review.googlesource.com/26290
Reviewed-by: Shirleen Lou <xlou@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
|
|
This CL changes the CXFA_Node parent pointer back to a raw pointer from
an UnownedPtr. The other tree pointers have been renamed for clarity.
Change-Id: I366a0b5b41d49d87b11bec0eea9890fbc79c1c62
Reviewed-on: https://pdfium-review.googlesource.com/26370
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
We converted the <v8.h> includes to "v8/include/v8.h" some revs back,
so we need not explicitly tell the compiler to look there.
Change-Id: Id71f1bad81a969eebf418c9d97b32864ea78480b
Reviewed-on: https://pdfium-review.googlesource.com/26251
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
|
|
Bug: pdfium:1011
Change-Id: Ie12595f321888c50ae74ab22bb147aef7e20f40d
Reviewed-on: https://pdfium-review.googlesource.com/26390
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
|
|
Change-Id: I653619faa61181137795bb3675418fd8d0945d25
Reviewed-on: https://pdfium-review.googlesource.com/25590
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
FX_AllocOrDie, FX_AllocOrDie2D and FX_ReallocOrDie contained
unreachable code which in jumbo builds with some Visual Studio
versions/configurations resulted in a compiler warning.
By reordering the code, the unreachable code can be removed.
Bug: pdfium:964
Change-Id: I8c040a31ea6af0ca896d8f68297e263719d6bdfa
Reviewed-on: https://pdfium-review.googlesource.com/26190
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
Didn't find any bugs, but also doesn't require much boilerplate.
Bug: TODO
Change-Id: I5f30183c55216f1333c79fcb46476d281720873e
Reviewed-on: https://pdfium-review.googlesource.com/26210
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
|
|
Change-Id: I4ced221fb5691927485deceb7002dac880c2c210
Reviewed-on: https://pdfium-review.googlesource.com/26110
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
|
|
Instead of having separate floats for width and height.
Also remove some out parameters and just return them instead.
Change-Id: I798b1453910c89477d422dcb7c0805b90823bf98
Reviewed-on: https://pdfium-review.googlesource.com/26090
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Shirleen Lou <xlou@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
|
|
- Fix typos.
- Do not pass by value.
- Return early if the page range string is empty after removing spaces.
- Simplify and rearrange bits of the implementation.
Change-Id: Ia4c4f43c2ca18383ad1edc8233969a7013e34722
Reviewed-on: https://pdfium-review.googlesource.com/24290
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: Shirleen Lou <xlou@chromium.org>
|
|
Change-Id: I8c6d813e488b2612a85fb1973382f979728df563
Reviewed-on: https://pdfium-review.googlesource.com/25571
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
|
|
Make pdfium_embeddertests explicity depend on fxjs, which exposes
v8 via public_deps, and hopefully stops the compiler from instantiating
v8 code in our module.
TBR=rharrison@chromium.org
Change-Id: If6f2750a7a3b7a508275dedacfe07235ca8727f6
Reviewed-on: https://pdfium-review.googlesource.com/26250
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
Change-Id: Idcba60bb36c0d47c0d2acb21ddfa3b3b46cdfe49
Reviewed-on: https://pdfium-review.googlesource.com/26170
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
Place the template map definitions entirely in .cpp file.
Change-Id: I2643f1b99f5582b69aa985857c4aa6f9b5ab57c8
Reviewed-on: https://pdfium-review.googlesource.com/26150
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
Test the lowest layer without firing up the whole library. Requires
firing up v8 in the unit test main, though.
Move array buffer allocator to cfx_v8 to allow building isolates.
Change-Id: I9a56d503a48e0e555d3310f2997fa12137695860
Reviewed-on: https://pdfium-review.googlesource.com/26130
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
Retain CPDF_PageOrganizer as a base class. Add CPDF_PageExporter and
CPDF_NPageToOneExporter sub-classes. The sub-classes only do one type of
exporting. Therefore it is much easier to understand what part of the
original combined CPDF_PageOrganizer is used where.
Change-Id: I424ef9c32b101d23e8397fc9a656d9b0b5da6a27
Reviewed-on: https://pdfium-review.googlesource.com/26011
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: Shirleen Lou <xlou@chromium.org>
|
|
This is to prepare for splitting CPDF_PageOrganizer into multiple
classes.
Change-Id: Ibf54342096aeb66465fd24dc1ba40c73112fb4c9
Reviewed-on: https://pdfium-review.googlesource.com/26010
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: Shirleen Lou <xlou@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
|
|
Change-Id: I9286b24957f9d96da10869098eb0e04991bd6571
Reviewed-on: https://pdfium-review.googlesource.com/25570
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
|
|
The layering should be CJS => CFXJS => CFX_V8 with the CJS name
being higher up.
Change-Id: Ic130f248906e9c4df641dd508389b0555786b999
Reviewed-on: https://pdfium-review.googlesource.com/26051
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
These belong more properly in CFXJS_Engine, and a small amount of
casting is required to get to the sub-class.
Change-Id: Id954d182b7a7d51fe0a522c04a50a1b362746c72
Reviewed-on: https://pdfium-review.googlesource.com/26050
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
|
|
This reverts commit f0e386de64e030f6d692acfa27e2bc0a50018710.
Reason for revert: After chatting with tsepez@, we've got a better direction to take these changes.
Original change's description:
> Convert CXFA_Node to store a vector of children
>
> This CL changes CXFA_Node to use a vector of nodes as children instead
> of a singly linked list of siblings and child pointers.
>
> Change-Id: Ica8219f63d783a07d90b9541ae62a35c49166e44
> Reviewed-on: https://pdfium-review.googlesource.com/26030
> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
> Commit-Queue: dsinclair <dsinclair@chromium.org>
TBR=dsinclair@chromium.org,hnakashima@chromium.org,rharrison@chromium.org
Change-Id: I115779a292d39694ad5faf0b748a617c491b40f0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://pdfium-review.googlesource.com/26070
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
Avoids call to CFXJS_Engine::EngineFromIsolateCurrentContext() during
the Dispose() path, which feels scary because there aren't guarantees
about it having an engine at isolate "dispose" time. Fortunately, |this|
is not used, so make that fact clear.
Replace some c-style callbacks with std::function while we're at it.
Change-Id: Ia1a1a1fcc085d8657939e6f8c8d34fc511afddfe
Reviewed-on: https://pdfium-review.googlesource.com/25970
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
This CL changes CXFA_Node to use a vector of nodes as children instead
of a singly linked list of siblings and child pointers.
Change-Id: Ica8219f63d783a07d90b9541ae62a35c49166e44
Reviewed-on: https://pdfium-review.googlesource.com/26030
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
- Keep track of pages in a single map when calling LoadPage(). It is
simpler and performance is not crucial as the number of loaded pages
is usually very small.
- Verify UnloadPage() is only called for loaded pages.
- Verify there are no loaded pages in TearDown().
- Verify RenderLoadedPage methods are only rendering loaded pages.
- Fix pages that are using FPDF_LoadPage() and FPDF_ClosePage() when
they should be using LoadPage() and UnloadPage().
- Disallow calling LoadPage() for the same page number repeatedly. No
caller does this and it makes verification in UnloadPage() harder.
Change-Id: I58878ea8ade21dde28f1bbebd3a3304ce677561d
Reviewed-on: https://pdfium-review.googlesource.com/25550
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
|