summaryrefslogtreecommitdiff
path: root/fpdfsdk
AgeCommit message (Collapse)Author
2017-12-04Make a CXFA_DocumentParser member Unowned.Lei Zhang
Fix/cleanup ctors/dtors in related classes. Change-Id: Ia05ec9b6892fd7d19d0a417fc1226a407e3ac260 Reviewed-on: https://pdfium-review.googlesource.com/20216 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-12-01Rename CFX_FloatRect::Scale() to ScaleFromCenterPoint().Lei Zhang
Change-Id: I6baab14c989e8ae692ed1c846b135af95c09ce37 Reviewed-on: https://pdfium-review.googlesource.com/20210 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2017-11-30Rename XFA_ATTRIBUTEENUM to XFA_AttributeEnum enum classDan Sinclair
This CL changes the enum XFA_ATTRIBUTEENUM to an enum class XFA_AttributeEnum. Methods expecting an int32 have been updated to take or return the XFA_AttrbuteEnum type. Change-Id: I268453949545fe2dd3eae707be4d9cc7edeff763 Reviewed-on: https://pdfium-review.googlesource.com/20070 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: dsinclair <dsinclair@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-29Fix some nits in FPDFText_GetText().Lei Zhang
Use more variables to avoid redundant calculations. Add one more edge test case. Change-Id: I6c8a0aca9de3bdd1a394c39304fd9a75009f9489 Reviewed-on: https://pdfium-review.googlesource.com/19690 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2017-11-28Remove CollectionSize from fpdfppo.chromium/3280Dan Sinclair
Bug: pdfium:774 Change-Id: Id13f051bdab8970d469b51a48b1946b6dc86d7dd Reviewed-on: https://pdfium-review.googlesource.com/19631 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-11-28Remove CollectionSize from fpdf_flatten.Dan Sinclair
Bug: pdfium:774 Change-Id: Ie733da2852d2721ef8007aa55d32ffa9537efb70 Reviewed-on: https://pdfium-review.googlesource.com/19630 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-11-28Convert from character stream to visible text indices in GetTextRyan Harrison
Most of the API methods FPDFText operate on indices in terms of the underlying stream of characters. This stream includes non-printing control characters, which are not part of the visible text. The majority of files do not appear to have these hidden characters so there is a 1:1 correspondence between them. When they are present conversion needs to occur to make sure that GetText doesn't attempt to retrieve for a span that is out of range. BUG=chromium:788103,chromium:788220 Change-Id: I4c9fa403ea65754ba94e3f15ded49fe0641e9db5 Reviewed-on: https://pdfium-review.googlesource.com/19550 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-11-27Convert CPDF_StructTree to size_tDan Sinclair
This CL removes the use of CollectionSize from CPDF_StructTree and uses size_t in the callers. Bug: pdfium:774 Change-Id: I860a51a533642c949c497ca26e74ba064a8aa9ba Reviewed-on: https://pdfium-review.googlesource.com/19530 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-11-27Change FPDF_GetText to return "" when asked to get 0 charactersRyan Harrison
BUG=chromium:788103 Change-Id: I8ebdbc78eb14c358d7ac019b96de4828e6071b79 Reviewed-on: https://pdfium-review.googlesource.com/19350 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-11-27Convert CPDF_StructElement::CountKids to size_tDan Sinclair
This CL changes CountKids to not used CollectionSize and returns size_t directly. Callers updated as needed. Bug: pdfium:774 Change-Id: I8862218e62cd13be9473fa8116afd29cd3afde04 Reviewed-on: https://pdfium-review.googlesource.com/19510 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-11-27Convert CPDF_ClipPath::Get{Path|Text}Count to size_tDan Sinclair
This CL updates the various call sites to use size_t instead of other types. Bug: pdfium:774 Change-Id: Id8b75728b61c0ca1b15bc815831c885d33374f7b Reviewed-on: https://pdfium-review.googlesource.com/19410 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-11-23Cleanup CXFA_WidgetDatachromium/3277Dan Sinclair
This CL cleans up return values, out-params and changes simple methods to boolean checks where possible in CXFA_WidgetData. Change-Id: I29daa67993730f3e9d61cb6fdf918a886cc9120e Reviewed-on: https://pdfium-review.googlesource.com/19230 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-11-22Remove some pointless assignments to "".Lei Zhang
Or change them to clear(). Change-Id: Ia9e3e1f0d74b948cec3f8df85d205f830ac9216c Reviewed-on: https://pdfium-review.googlesource.com/19172 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-11-21Cleanup CXFA_SubmitDataDan Sinclair
This CL cleans up the CXFA_SubmitData methods by using returns instead of out-params, sets the correct return types and makes the methods const. Change-Id: I41fe8f59e450ca444b64c291ac4a0a199c7ad0cf Reviewed-on: https://pdfium-review.googlesource.com/19111 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-11-21Add {Byte/Wide}String::Trim().Lei Zhang
So callers no longer have to call str.TrimLeft(); str.TrimRight(); Change-Id: If931eaa8d891f487b9618ebbeee5ee294e807846 Reviewed-on: https://pdfium-review.googlesource.com/18990 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Lei Zhang <thestig@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-18Make clip optional in FPDFPage_TransFormWithClip.chromium/3273Shirleen Lou
Add checks for matrix and clipRect in function FPDFPage_TransFormWithClip. If both are null, abort transformation. If either is null, skip that particular transaction. Change-Id: I65611508c064c0b929a11eace99ad532d3402138 Reviewed-on: https://pdfium-review.googlesource.com/18710 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-11-16Convert CFX_DateTime::Now to be staticchromium/3272Dan Sinclair
This CL converts the CFX_DateTime::Now method to be a static and updates the callers. Change-Id: I26052c6194ed2d43bca5fee2542787ce166eda85 Reviewed-on: https://pdfium-review.googlesource.com/18670 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-11-16Convert ByteString::{Format|FormatV} to static methodsDan Sinclair
This CL moves the Format and FormatV methods of ByteString to be static. Bug: pdfium:934 Change-Id: I9c30455a789aff9f619b9d5bf89c0712644f2d9a Reviewed-on: https://pdfium-review.googlesource.com/18650 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-11-14Cleanup XFA default value codeDan Sinclair
This CL adds helper methods to CXFA_Node to retrieve the default values for attributes with the correct data types. Change-Id: I644435b4b430819f1060a95fa4fffe4ba2826cfe Reviewed-on: https://pdfium-review.googlesource.com/18450 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@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-08Convert CXFA_FFDoc::SavePackage to accept a CXFA_NodeDan Sinclair
This CL converts SavePackage to accept the CXFA_Node to export instead of the HASHCODE of the object to retrieve. This simplifies the code in SavePackage as we don't have to detect if this is the Xfa hashcode. Change-Id: I73ef9c4aa3d16f433e2d4568fab5f6d34c214635 Reviewed-on: https://pdfium-review.googlesource.com/18111 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-11-07Rename CXFA_Submit to CXFA_SubmitDataDan Sinclair
This CL renames CXFA_Submit to CXFA_SubmitData to show it's part of the data hierarchy. Change-Id: I6f580a28e41e54ffa1f1c7b799d97f079303463f Reviewed-on: https://pdfium-review.googlesource.com/18014 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-11-07Remove m_bFlagExact from CFX_SubstFontNicolas Pena
This CL removes the single use case from |m_bFlagExact|. This flag allows the PDF viewer to treat a substitute font with a matching name as if it was actually an embedded font, which is wrong. For all substitute fonts, it is important to follow the longer process of first obtaining the unicode from the charcode to then obtain the glyph in the substitute font that corresponds to that unicode. Bug: chromium:781785 Change-Id: Ie5958b43914e0e46334b89b7c2c55c02d0da0c11 Reviewed-on: https://pdfium-review.googlesource.com/17859 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
2017-11-06Remove CXFA_FFDocHandlerDan Sinclair
None of the methods on this class are ever called. We check it once to make sure it exists, but the call to get it will create it so it will always exist. Change-Id: I5b53567c4835f4bb4fe52c42baf28d4290ea517f Reviewed-on: https://pdfium-review.googlesource.com/17852 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-11-02Move parsing logic from FPDF_DataAvail into CPDF_DataAvail.Artem Strygin
Change-Id: Iacae9723e88eeae52154276b2478e4fd8c309c2d Reviewed-on: https://pdfium-review.googlesource.com/15512 Commit-Queue: Art Snake <art-snake@yandex-team.ru> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-11-02Rename Transparency to iTransparency.Lei Zhang
Fix a mismatched parameter name in cpdf_renderstatus.h too. Change-Id: I9765838e6ab93db37791fc282e553b6cb9c51ec5 Reviewed-on: https://pdfium-review.googlesource.com/17050 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-02CMemFile's buffer should be const uint8_t* const.Lei Zhang
Change-Id: I1c34886a9e33fb16ef121c0aa0b16c139517a940 Reviewed-on: https://pdfium-review.googlesource.com/17392 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-10-31Add FS_RECTF conversion functions.Lei Zhang
Change-Id: I87fb109fdd121716a170df15c4762496c1ccb88c Reviewed-on: https://pdfium-review.googlesource.com/17210 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-10-31Simplify code in fpdf_transformpage.cpp.Artem Strygin
Change-Id: I4a33ad52bf5d0710a44f784da9f50123771b8416 Reviewed-on: https://pdfium-review.googlesource.com/17150 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Art Snake <art-snake@yandex-team.ru>
2017-10-30Deduplicate md5s in fpdfannot_embeddertest.cpp for Windows and others.Henrique Nakashima
Change-Id: I521be6b6548518487ba4eef93d72f29b26809cb5 Reviewed-on: https://pdfium-review.googlesource.com/17110 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-10-30Move fpdfsdk/javascript to fxjs/Dan Sinclair
This CL moves all of the CJS files into fxjs. The :javascript build rule is removed and :fxjs is used instead. Change-Id: I1701b308f51317d0346c7401b43812c3f43a27bf Reviewed-on: https://pdfium-review.googlesource.com/17047 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-10-30Combine common code in fpdf_transformpage.cpp.Lei Zhang
Change-Id: I50311794b6fb4ef3c38420838ec6c3bb157b06a7 Reviewed-on: https://pdfium-review.googlesource.com/17071 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-10-30Rename util to cjs_utilDan Sinclair
This CL renames util.{cpp|h} to cjs_util.{cpp|h} to match the file contents. Change-Id: Ia1bcbced0d817e2334310a25b09f9ec56822d600 Reviewed-on: https://pdfium-review.googlesource.com/17046 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-10-30Move resource to js_resourceDan Sinclair
This CL moves the resource.{cpp|h} files to js_resources.{cpp|h}. Change-Id: I6a9ccb7e0819f40edf4a91e7839a92657d5d39d7 Reviewed-on: https://pdfium-review.googlesource.com/17045 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-10-30Rename report to cjs_reportDan Sinclair
This Cl renames report.{cpp|h} to cjs_report.{cpp|h} to match the contents. Change-Id: Ifb8846bff5423417f7543e47a45a7e50e18c72c6 Reviewed-on: https://pdfium-review.googlesource.com/17044 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-10-30Rename event to cjs_eventDan Sinclair
This CL renames the event.{cpp|h} files to cjs_event.{cpp|h} to match the internal class. Change-Id: I0e41a7ee068829f2bc8d94ff926edcf49b3a3c9f Reviewed-on: https://pdfium-review.googlesource.com/17043 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-10-30Rename console to cjs_consoleDan Sinclair
This CL renames the console.{cpp|h} files to cjs_console.{cpp|h}. Change-Id: Icc4f70e9653cd7e11bab305e47c03af07f4e56b0 Reviewed-on: https://pdfium-review.googlesource.com/17042 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-10-30Rename color to cjs_colorDan Sinclair
This CL renames color.{cpp|h} to cjs_color.{cpp|h}. Change-Id: I141435da9e4f6ac38bda85126975fca02e12b17c Reviewed-on: https://pdfium-review.googlesource.com/17041 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-10-30Rename app to cjs_appDan Sinclair
This CL renames the app.{cpp|h} files to cjs_app.{cpp|h}. The CJS_TimerObj and GlobalTimer objects have been moved to their own files. Change-Id: I7a4063b212f1051b1517ec8902a0ee215854feaf Reviewed-on: https://pdfium-review.googlesource.com/17040 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-10-30Rename PublicMethods to cjs_publicmethodsDan Sinclair
This CL renames the PublicMethods.{cpp|h} files to match the internal class name. Change-Id: I530f4ce5b53dd74cbef447faf0875782bfe27b70 Reviewed-on: https://pdfium-review.googlesource.com/17039 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-10-30Move JS_Value into JS_DefineDan Sinclair
This CL moves CJS_Return to its own files and moves the remaining function definitions from JS_Value to JS_Define. Change-Id: Ic7058a02330153f22d1fff9fc6cdebd9167c498b Reviewed-on: https://pdfium-review.googlesource.com/17038 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-10-30Rename JS_Runtime_Stub to cjs_runtimestubDan Sinclair
This CL renames JS_Runtime_Stub.cpp to cjs_runtimestub.cpp to match the contents. The event context stub is moved to to cjs_event_context_stub.cpp. Change-Id: I1b231b10aaedd1fe484e55736b0fb562d0a0df88 Reviewed-on: https://pdfium-review.googlesource.com/17037 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-10-30Move JS_Object to cjs_objectDan Sinclair
This CL moves JS_Object.{cpp|h} to cjs_object.{cpp|h} and splits the cjs_embedobj out to its own files. Change-Id: I8eced9c613455638f4adeefd60e67f38c0c3c1a6 Reviewed-on: https://pdfium-review.googlesource.com/17036 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-10-30Rename Icon to cjs_iconDan Sinclair
This CL renames Icon.{cpp|h} to cjs_icon.{cpp|h}. Change-Id: Ie0554771441cfa7011205e0c4f461bb7526bb068 Reviewed-on: https://pdfium-review.googlesource.com/17034 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-10-30Rename Field to cjs_fieldDan Sinclair
This CL renames Field.{cpp|h} to cjs_field.{cpp|h}. The CJS_DelayData is split out into cjs_delaydata.{cpp|h} Change-Id: If1e3cbbc0d65cbb5cc69ee9862db3fc78ee652e2 Reviewed-on: https://pdfium-review.googlesource.com/17033 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-10-30Rename Document to match classDan Sinclair
This CL renames fpdfsdk/javascript/Document.{cpp|h} to fpdfsdk/javascript/cjs_document.{cpp|h}. The CJS_PrintParamsObj is split out into cjs_printparamsobj.{cpp|h}. Change-Id: I29377e7e60b576790fab01e4293c0c1f86339a56 Reviewed-on: https://pdfium-review.googlesource.com/17032 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>