summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-09-07Verify pattern start values.dsinclair
When calculating the starting x and y for a pattern it is possible to overflow the int value. Use checked math to make sure we don't overflow. BUG=chromium:637984 Review-Url: https://codereview.chromium.org/2317283002
2016-09-07Fixup CPDFSDK_PageView and CPDF_Page interactions.dsinclair
There are several issues when CPDFSDK_PageView and CPDF_Page interact, especially around deletion. This Cl fixes up several places where things go wrong working with these objects. BUG=chromium:632709 Review-Url: https://codereview.chromium.org/2319663002
2016-09-07Maybe avoid a copy in CPDF_RenderStatus::SelectClipPathtsepez
Use the shared copy-on-write version instead of the underlying CFX_GraphStateData since it may not always get modified. Review-Url: https://codereview.chromium.org/2316823002
2016-09-07Cleanup page when unloading in embedder testsdsinclair
When unloading a page in the embedder tests we need to cleanup the internal page map so if we load the page a second time we don't get a previously unloaded page. Review-Url: https://codereview.chromium.org/2322523002
2016-09-07Add observer for BAAnnots from Javascriptdsinclair
This Cl moves the observer code from the CPDFSDK_Widget up into the CPDFSDK_Annot base class and then adds a second observer for CPDFSDK_BAAnnot objects. This allows us to attach an observer to the Annot javascript class which will update its internal pointer to the BAAnnot if the BAAnnot is destroyed by the CPDFSDK_PageView being destroyed. BUG=chromium:642307 Review-Url: https://codereview.chromium.org/2306663002
2016-09-06Make CPDF_TextStateData private to CPDF_TextState.chromium/2853tsepez
Review-Url: https://codereview.chromium.org/2313083002
2016-09-06Do not re-create the page view when accessing from Document::removeField.dsinclair
When removing a field from the document we can force the recreation of a CPDFSDK_PageView by passing |true| as the last parameter to |GetPageView|. This will force a new page view to be created so we can delete a field from it and, we then end up with a dangling PageView. This CL passes |false| to |GetPageView| and skips removing the widget if we do not receive a pageView back from the document. BUG=chromium:644219 Review-Url: https://codereview.chromium.org/2312023004
2016-09-06Fix gn --check complaints about fxcrt. (try 2)thestig
Previous attempt: https://codereview.chromium.org/2289263005 It failed for the PDFium inside Chromium use case. This time the paths are relative. Review-Url: https://codereview.chromium.org/2308873002
2016-09-06Move CPDF_GraphState to CFX_GraphStatetsepez
The FX layer is spying on its private data, so make the job of ref-counting it live in FX as well, instead of up a layer at pdfapi. Pre-cursor to making this private and passing the graph state itself everywhere. Review-Url: https://codereview.chromium.org/2314223002
2016-09-06Make CPDF_ContentMarkData private to CPDF_ContentMarktsepez
Review-Url: https://codereview.chromium.org/2312743005
2016-09-06Make ColorStateData private to CPDF_ColorStatetsepez
Review-Url: https://codereview.chromium.org/2311313002
2016-09-06Use new Skia .gni file for sources, remove .gypis.brettw
This incorporates the changes from the following Chrome Skia build modifications: https://codereview.chromium.org/2301233002/ This file is provided by the Skia repo so the GN Chrome build doesn't have to make assumptions about the location and layout of Skia's GYP files. https://codereview.chromium.org/2299033006 Remove Skia GYP files from Chromium tree. Inlines the contents into the GN build. Review-Url: https://codereview.chromium.org/2316653003
2016-09-06Avoid leaking params if any entry bad.dsinclair
The call to png_set_pCAL can call into png_error for several reasons. This CL verifies that the params are valid before calling into png_set_pCAL. BUG=chromium:636214 Review-Url: https://codereview.chromium.org/2292313003
2016-09-06Move CFX_Font definition to its own file and clean upnpm
- Rename fx_ge_font.cpp to cfx_font.cpp - Deleted unused CONTRAST_RAMP_STEP in fx_ge_text.cpp - Move CFX_Font definitions and auxiliary methods in fx_ge_text to cfx_font - Remove extern "C", static, and underscore prefixes in new namespace methods in cfx_font.cpp Review-Url: https://codereview.chromium.org/2304493005
2016-09-06Move ShouldGenerateAPForAnnotation check to CPDF_Annot::GenerateAPIfNeededtonikitoo
By doing this, we simplify the code in cpvt_generateap.cpp, and avoid calling CPVT_GenerateAP methods altogether, when it is known that they are bailing out. This is a preparation to fix pdfium bug 585. BUG=pdfium:585 Review-Url: https://codereview.chromium.org/2310873002
2016-09-03Use safe bool conversion operators in fpdf_page/chromium/2852chromium/2851chromium/2850tsepez
Review-Url: https://codereview.chromium.org/2310693002
2016-09-02Clean up redundant code in PDF_ENABLE_XFA guard in FFLCommon.chromium/2849jaepark
Review-Url: https://codereview.chromium.org/2307243002
2016-09-02Make CPDF_ClipPath have a CPDF_ClipPathData rather than inheriting.tsepez
Make Data private to the ClipPath class which manages it transparently for its callers. This prevents the callers from having to remember to make a copy before dirtying the shared data, since the operations that modify state will do this under the covers for us. Review-Url: https://codereview.chromium.org/2301263003
2016-09-02Remove CFX_Matrix::Copy() in favor of assignmenttsepez
The default assignment operator will suffice and allows us to write matrix1 = matrix2; Review-Url: https://codereview.chromium.org/2307953003
2016-09-02Make CPDF_GeneralStateData private.tsepez
All interaction goes through the CPDF_GeneralState, which manages the underlying storage transparently to the callers. Make StateData use a real string and a real matrix rather than C-style arrays. Review-Url: https://codereview.chromium.org/2302683002
2016-09-02Make CPDF_Path have a CFX_Path rather than inheritingtsepez
Review-Url: https://codereview.chromium.org/2305103002
2016-09-02Make CPDF_GeneralState have a CPDF_GeneralStateDatachromium/2848tsepez
Remove a const cast along the way and propagate to callers. Review-Url: https://codereview.chromium.org/2303553002
2016-09-02Remove unused IPDFSDK_AnnotHandler::OnDrawSleep.jaepark
Review-Url: https://codereview.chromium.org/2304613004
2016-09-01Revert of Fix leaked internal font (patchset #2 id:60001 of ↵weili
https://codereview.chromium.org/2297303004/ ) Reason for revert: asan bot doesn't like it, will investigate Original issue's description: > Fix leaked internal font > > In CFGAS_FontMgrImp::LoadFont(), a new internal font is created which > is never released. It needs to be correctly marked as internal font to > be released. Fix this by adding a boolean parameter and pass it along > during the creation of the font. > > BUG=pdfium:242 > > Committed: https://pdfium.googlesource.com/pdfium/+/6708106e6a3d54f3370c871ebf6643d1ecf58999 TBR=thestig@chromium.org,dsinclair@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=pdfium:242 Review-Url: https://codereview.chromium.org/2302213002
2016-09-01Fix leaked internal fontweili
In CFGAS_FontMgrImp::LoadFont(), a new internal font is created which is never released. It needs to be correctly marked as internal font to be released. Fix this by adding a boolean parameter and pass it along during the creation of the font. BUG=pdfium:242 Review-Url: https://codereview.chromium.org/2297303004
2016-09-01Fix leaks due to created popup annotationschromium/2847weili
When we create popup annotations, we also create the dictionary associated with it. For regular annotations, the dictionary associated with an annotation is not owned by annotation, and will be released separately. But our created dictionary is not associated with any other data structure, it would be leaked if not released by the associated annotation. Add a boolean to indicate the ownership to the dictionary, and release the owned dictionary during the destruction of an annotation. BUG=pdfium:242 Review-Url: https://codereview.chromium.org/2301613002
2016-09-01Remove unused dwFlags parameter in CPDFSDK_AnnotHandlerMgr::OnDraw and its ↵jaepark
calls. Review-Url: https://codereview.chromium.org/2305443005
2016-09-01Use unsigned page indexes in CPDF_HintTables.thestig
Fix up callers from CPDF_DataAvail. Review-Url: https://codereview.chromium.org/2294383003
2016-09-01Move CPDF_Type3Cache and CPDF_Type3Glyphs to their own filesnpm
Review-Url: https://codereview.chromium.org/2298163004
2016-09-01Fix CPDF_CIDFont::GlyphFromCharCode for fonts flagged with PDFFONT_SYMBOLICnpm
UnicodeFromCharCode should be tried even if the font is flagged as PDFFONT_SYMBOLIC. The result should be checked in case it's empty. This fixes some corpus tests that were being incorrectly rendered, as well as the bug below. A deps change will be required before landing this CL. BUG=chromium:591303 Review-Url: https://codereview.chromium.org/2300893003
2016-09-01Fix leaks during XFA text layoutweili
During XFA text layout, text pieces are allocated with lines, and their text and widths are also allocated. However, they are not freed in any place. Fix this by releasing them along with lines during unload() process. BUG=pdfium:242 Review-Url: https://codereview.chromium.org/2297563006
2016-09-01Handle another integer overflow in ReadPageHintTable().thestig
Return false instead of crashing. BUG=641882 Review-Url: https://codereview.chromium.org/2300903002
2016-09-01Better validate hint table header bits entries.thestig
BUG=637119 Review-Url: https://codereview.chromium.org/2305443003
2016-09-01Do not download Linux sysroots.thestig
Review-Url: https://codereview.chromium.org/1922773002
2016-09-01Make CPDF_ContentMark have a CPDF_ContentMarkData.tsepez
This one doesn't require an explict Emplace(), as the object seems to get constructed only as a side-effect of making a private copy. Review-Url: https://codereview.chromium.org/2298953002
2016-08-31Revert of Fix gn gn --check complaints about fxcrt. (patchset #1 id:1 of ↵thestig
https://codereview.chromium.org/2289263005/ ) Reason for revert: Breaking non-standalone builds. Original issue's description: > Fix gn gn --check complaints about fxcrt. > > Committed: https://pdfium.googlesource.com/pdfium/+/6f9ae19b9b125af868077f4eee80a13e0c29c61e TBR=dpranke@chromium.org,dsinclair@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2301783002
2016-08-31Check first page number in CPDF_HintTables::ReadPageHintTable().thestig
BUG=642655 Review-Url: https://codereview.chromium.org/2298753003
2016-08-31Fix gn gn --check complaints about fxcrt.thestig
Review-Url: https://codereview.chromium.org/2289263005
2016-08-31Attempt to fix potential integer overflow in CFX_FaceCache::LoadGlyphPath().chromium/2846thestig
BUG=641333 Review-Url: https://codereview.chromium.org/2294183002
2016-08-31Use CheckedNumeric for strength calculation.dsinclair
Update the calculation of the outlines bold strength to use a CheckedNum instead of an int. BUG=chromium:639506 Review-Url: https://codereview.chromium.org/2296193002
2016-08-31Move maxNumDataBytes and maxNumEcBytes calculation to fix crashnpm
The blocks.Add will std::move the unique_ptrs, so the std::max calculations need to go before. Without this change, pdfium_test will crash when trying to render test/barcode_test.pdf with XFA enabled. Tested that after this change, barcode_test.pdf is rendered without crashing. Review-Url: https://codereview.chromium.org/2298833002
2016-08-31Make CPDF_ColorState have a CFX_ColorStateData rather than inheritingtsepez
Review-Url: https://codereview.chromium.org/2294133002
2016-08-31Make CPDF_GraphState have a CPDF_GraphStateData instead of inheriting.tsepez
Get callers out of the copy-before-write business, and let the class manage it instead. Review-Url: https://codereview.chromium.org/2292363002
2016-08-31Update gn args in README so it includes is_component_buildnpm
Added is_component_build = false and brief explanation Review-Url: https://codereview.chromium.org/2301543002
2016-08-31Use enum class for subtypes of CPDF_Annot.jaepark
Comparing CFX_ByteString for annotation subtypes is inefficient and error-prone. This CL uses enum class to compare annotation subtypes. Also, remove unused IPDFSDK_AnnotHandler::GetType() and FSDK_XFAWIDGET_TYPENAME. Review-Url: https://codereview.chromium.org/2295953002
2016-08-31Free the GifPlainText object when complete.dsinclair
We allocate the GifPlainText object on line ~685 inside GIF_D_STATUS_EXT_PTE. We cleanup the internal pointers in the gif_destroy_decompress() but we failed to cleanup the pointer itself. This CL frees the allocated pointer once the data is cleaned up. BUG=chromium:638499 Review-Url: https://codereview.chromium.org/2291143003
2016-08-30Update .gitignore to properly ignore base/thestig
TBR=dsinclair@chromium.org Review-Url: https://codereview.chromium.org/2298603003
2016-08-30Fix ASAN build after rolling DEPS for build/thestig
TBR=dpranke@chromium.org Review-Url: https://codereview.chromium.org/2297133002
2016-08-30Roll DEPS for build to b73bafdd.thestig
Also roll: buildtools to adb8bf4e. skia to 3ee255f2. v8 to 3d96d7ee. And make tweaks to get it all working. Review-Url: https://codereview.chromium.org/2283883002
2016-08-30Clean up CPDF_CMap declarationchromium/2845npm
- Removed unused methods - Friendship with CPDF_PathManager is not needed - Protected may be changed to private Review-Url: https://codereview.chromium.org/2292023003