summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-04-15Prevent a potential OOB read in TranslateImageLine.ochang
Fixes a potential mismatch of |m_nComponents| between CPDF_DIBSource and its CPDF_ColorSpace, from code attempting to recover from a failed decoder initialisation in CPDF_DIBSource::CreateDecoder. BUG=chromium:603518 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1892143003
2016-04-15Pass WideStrings without narrowing to c_str in javascript/tsepez
Avoid string duplication when the caller already has one. Review URL: https://codereview.chromium.org/1883273003
2016-04-15Use platform specific test results as fallback in difference testsweili
So far, we have only two Windows tests require to use platform specific test results due to platform idiosyncracies. However, VS2015 has fixed those issues. So in general, We only need to use platform based results if checking against the regular results failed. Review URL: https://codereview.chromium.org/1892013003
2016-04-14Explicity use CFX_ByteStrings in a couple of placestsepez
These are exposed by making the ByteString from ByteStringC ctor explicit, but we can clean them up independently. Review URL: https://codereview.chromium.org/1884363002
2016-04-14Simplify XFA event handling.thestig
- Avoid casting to void* - Don't bother firing events that no one listens for Review URL: https://codereview.chromium.org/1890563003
2016-04-14Avoid string allocs for CMap_GetString() return value.tsepez
StringC's are all that's needed here. Also CMap_GetString() and GetCode() are side-effect free, so remove calls where the value is not used. Review URL: https://codereview.chromium.org/1889003002
2016-04-14Still more comments about stringstsepez
TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/1888843004
2016-04-14Update comments about string constructorstsepez
TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/1887003003
2016-04-14Change string argument type to GetFormatDataValue.tsepez
Avoid string duplication, since the first thing these routines do is allocate a new string from the static string argument. Review URL: https://codereview.chromium.org/1889983002
2016-04-14Pass CFX_WideString to CXFA_FFDocView::GetWidgetByName.tsepez
Avoids downgrade followed by duplication of existing strings. Review URL: https://codereview.chromium.org/1891673003
2016-04-14Avoid needless construction of CFX_ByteStrings during string buildingtsepez
There are perfectly fine operators for adding to an existing string without first duplicating the arguments. Review URL: https://codereview.chromium.org/1891953002
2016-04-14Rename CFX_ByteTextBuf::GetByteString() to AsStringC().tsepez
Do the same for CFX_WideTextBuf as well. The name is confusing because these return CFX_ByteStringC, not CFX_ByteString. The AsStringC naming gives parallelism with the string types themselves, and may help to indicate that the result is only good for the lifetime of the object being operated upon. Review URL: https://codereview.chromium.org/1886263003
2016-04-14Make CPDF_ApSettings take CFX_ByteString args.tsepez
These are immediately used to access a dictionary, so the use of static CFX_ByteStringCs may force duplicate allocations. BUG= Review URL: https://codereview.chromium.org/1888893002
2016-04-14Make CPDF_Dictionary methods take CFX_ByteString argumentstsepez
This will help avoid duplicate allocation of CFX_ByteStrings when the caller already has one. It may seem counter-intuitive that requiring the caller to pass an allocated CFX_ByteString rather than a static CFX_ByteStringC would improve the situation, but due to the idiosyncrasies of std::map, the CPDF_Dictionary methods must always do an allocation under the covers which can't be avoided. The changed callers in this CL are places where we would previously demote to CFX_ByteStringC and then allocate a a duplicate CFX_ByteString in the dictionary method. Review URL: https://codereview.chromium.org/1889863002
2016-04-14Replace calls to deprecated CFX_{Wide,Byte}String::Empty()tsepez
Use the more standard name "clear()" instead. Review URL: https://codereview.chromium.org/1888103002
2016-04-14skia bugs found with first test pdfcaryclark
The first PDF attempted by the Skia infra team uncovered three bugs. This gets past those bugs crashing; more work to do to get the correct output. R=rmistry@google.com,dsinclair@chromium.org BUG=skia:5183 Review URL: https://codereview.chromium.org/1887073002
2016-04-13Remove implicit cast from CFX_WideString to (const wchar_t*)tsepez
BUG= Review URL: https://codereview.chromium.org/1882043004
2016-04-13Revert of Reland Combined test runner. (patchset #4 id:60001 of ↵dsinclair
https://codereview.chromium.org/1886753002/ ) Reason for revert: Dr. Memory still broken: https://build.chromium.org/p/client.pdfium/builders/drm_win_xfa/builds/330/steps/pixel%20tests/logs/stdio Original issue's description: > Reland Combined test runner. > > This reverts commit 7a4374583efc0c41c826122aa26c1198c8d5cc37. > > Original Commit Message: > > This CL revives the old CL to combine the test runners [1] which was reverted > due to failing font_size tests. I've deleted the font_size.pdf as it is not > needed and for testing. Pixel tests are either .in or .pdf files, not both. > > Original description: > This CL takes the three test runners (corpus, javascript, pixel) and combines > the code into a single test_runner file. Each of the individual runners still > exists and calls the test runner with their data directory. > > With this change, the pixel and javascript test will now run in parallel if > multiple processors are available. > > 1-https://codereview.chromium.org/1430623006/ > > Committed: https://pdfium.googlesource.com/pdfium/+/9cec54ab0a5461b3075c585f8f233dbfd06c2cbd TBR=tsepez@chromium.org,ochang@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/1890703002
2016-04-13Unused FWL Classes.dsinclair
This Cl removes several FWL classes that aren't removed. These include: * IFWL_Content * CFWL_ContentImp * CFWL_CustomPanelImp * CFWL_CustomImp * IFWL_Custom * IFWL_CustomPanel * IFWL_Proxy * CFWL_App BUG=pdfium:468 Review URL: https://codereview.chromium.org/1883943002
2016-04-13Remove implicit cast from CFX_ByteString to (const char*).tsepez
BUG= Review URL: https://codereview.chromium.org/1885973002
2016-04-13Add iterators and unit tests for CPDF_Array classweili
Add iterators to enable range based for loop. Also add unit tests for recent modified functions. Review URL: https://codereview.chromium.org/1878803002
2016-04-13Reland Combined test runner.dsinclair
This reverts commit 7a4374583efc0c41c826122aa26c1198c8d5cc37. Original Commit Message: This CL revives the old CL to combine the test runners [1] which was reverted due to failing font_size tests. I've deleted the font_size.pdf as it is not needed and for testing. Pixel tests are either .in or .pdf files, not both. Original description: This CL takes the three test runners (corpus, javascript, pixel) and combines the code into a single test_runner file. Each of the individual runners still exists and calls the test runner with their data directory. With this change, the pixel and javascript test will now run in parallel if multiple processors are available. 1-https://codereview.chromium.org/1430623006/ Review URL: https://codereview.chromium.org/1886753002
2016-04-13Remove unused FWL methodsdsinclair
This CL removes various methods from FWL that are not called. Review URL: https://codereview.chromium.org/1886703005
2016-04-13Cleanup CPDFXFA_Page.thestig
- Use std::unique_ptr. - Make dtor protected. - Simplify logic. - Remove unused bits from CXFA_FFPageView as well. Review URL: https://codereview.chromium.org/1878963004
2016-04-13DrMemory: Pass -j1 to pixel and javascript testsochang
R=dsinclair@chromium.org,zhaoqin@chromium.org Review URL: https://codereview.chromium.org/1890593002
2016-04-13Remove some FWL code.dsinclair
Remove unused or ifdef'd code from FWL. Review URL: https://codereview.chromium.org/1874963002
2016-04-13Add dummy -j flags to pixel and javascript test runnersdsinclair
This is an intermediate step to creating a unified test runner. We need to update Dr Memory to pass the -j 1 flag to the pixel and javascript tests. In order to do so, we need to have the flag available. The flag will be enabled for pixel and javascript tests when [1] lands. 1- https://codereview.chromium.org/1886753002/ Review URL: https://codereview.chromium.org/1882143005
2016-04-13Remove IFDE_Image, IFDE_PathSet, IFDE_ImageSet, and IFDE_WidgetSet.dsinclair
These interfaces were not implemented, removed. BUG=pdfium:468 Review URL: https://codereview.chromium.org/1866333003
2016-04-13Cleanup IFPF_* interfaces.dsinclair
This CL removes the IFPF_DeviceModule, IFPF_FontMgr and IFPF_Font interfaces in favour of their concrete classes. BUG=pdfium:467 Review URL: https://codereview.chromium.org/1881043004
2016-04-13Re-enable warning 4701 for GN build and some cleanupweili
Clean up three 4701 warnings (use potientially uninitialized variable) which are the only ones left; Re-enable warning 4701 for GN build; Remove an unused data structure; BUG=pdfium:29 Review URL: https://codereview.chromium.org/1885093002
2016-04-13Remove IFX_Barcode.dsinclair
This CL replaces IFX_Barcode with the concrete class. BUG=pdfium:468 Review URL: https://codereview.chromium.org/1890443002
2016-04-13Revert of clang/win: Stop passing -Qunused-arguments in pdfium too. ↵thakis
(patchset #1 id:1 of https://codereview.chromium.org/1887643002/ ) Reason for revert: pdfium still passes /GS Original issue's description: > clang/win: Stop passing -Qunused-arguments in pdfium too. > > We stopped passing this in Chromium a while ago. > > BUG=504658 > > Committed: https://pdfium.googlesource.com/pdfium/+/112be9813ed7bf4e082048eda5f4a7d3837d116c 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=504658 Review URL: https://codereview.chromium.org/1883823002
2016-04-13clang/win: Stop passing -Qunused-arguments in pdfium too.thakis
We stopped passing this in Chromium a while ago. BUG=504658 Review URL: https://codereview.chromium.org/1887643002
2016-04-12Cleanup various IFX_ text interfaces.dsinclair
This CL removes IFX_ArabicChar, IFX_RTFBreak, IFX_TxtBreak, IFX_WordBreak, IFX_FormatString, and IFX_GSUBTable. References were updated to be the concrete classes. The CFX_GSUBTable was also removed as it is unused. BUG=pdfium:468 Review URL: https://codereview.chromium.org/1882213002
2016-04-12Roll ICU to c291cde2.thestig
Review URL: https://codereview.chromium.org/1882673002
2016-04-12Make CJS_PublicMethods::StrTrim() take a CFX_ByteStringtsepez
Similar to https://codereview.chromium.org/1876203002 but in a different file. The result is still not as efficient as possible owing to the conversions back and forth to C types. Convert these methods to ordinary functions in anon namespace while we're at it. Review URL: https://codereview.chromium.org/1882173002
2016-04-12Fix the code which causes Windows GN build warningchromium/2709chromium/2708chromium/2707weili
The signed/unsigned comparison is causing the chromium windows GN build broken. Review URL: https://codereview.chromium.org/1884773002
2016-04-12Prevent an OOB access in CPDF_DIBSource::TranslateScanline24bppochang
if |m_Family| was RGB, the code assumed there were 3 components, which may not be the case. BUG=chromium:602046 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1877033003
2016-04-12Remove IFDE_Pen and IFDE_Brush.dsinclair
This Cl removes the two interfaces and renames CFDE_SolidBrush to CFDE_Brush. Uncalled methods are removed from both CFDE_Brush and CFDE_Pen and code simplified to match. BUG=pdfium:468 Review URL: https://codereview.chromium.org/1881803003
2016-04-12Fix Windows 32-bit GN build.ochang
R=tsepez@chromium.org,weili@chromium.org Review URL: https://codereview.chromium.org/1879083002
2016-04-12Roll DEPS for v8 to 47bcec7.thestig
Regular, but overdue roll. Review URL: https://codereview.chromium.org/1879923002
2016-04-12Remove ICodec_* Interfaces.dsinclair
All of the ICodec_* interfaces had a single implementation. This CL removes the interfaces and uses the concrete classes in their place. BUG=pdfium:468 Review URL: https://codereview.chromium.org/1876023003
2016-04-12Record all fonts, not just one per charset.dsinclair
Attempting to open bug_434.pdf on my Linux box would fail with: ../../xfa/fxfa/app/xfa_fwltheme.cpp:96: virtual FWL_ERR CXFA_FWLTheme::Initialize(): Assertion `__null != m_pCalendarFont' failed. I tracked the regression back to [1]. The issue seems to be in CFX_FontManager::AddInstalledFont we will only add one font for a given Charset. In my case I end up loading 6 charsets, but the fonts are all strange ones. When I open the PDF, it fails to find 'Arial' because I've registered these other fonts. To fix this I changed the m_FaceArray into a struct of {name, chraset}. Then we record all fonts into this list and search over that list for the charset when needed. This allows bug_434.pdf to open and the test to pass successfully. 1- https://pdfium.googlesource.com/pdfium/+/fe73e7849b8b4ce49408d2f52f3fc29b370b82b5 Review URL: https://codereview.chromium.org/1874433002
2016-04-12Remove unused FWL_WidgetMgrSnapshot() and FWL_WriteBMP().tsepez
Review URL: https://codereview.chromium.org/1878293002
2016-04-12Only SolidBrush types are created, remove other brushes.dsinclair
We only ever create a CFDE_SolidBrush, there is nothing which creates Texture, Hatch or LinearGradient brushes. This Cl removes all the code that isn't used for SolidBrush. A followup Cl will rename SolidBrush to Brush and remove the Brush interface in favour of the concrete class. BUG=pdfium:468 Review URL: https://codereview.chromium.org/1877383002
2016-04-12flesh out gradient shaderscaryclark
Using these webpages as guides http://www.globelegislators.org/pdfjs/test/pdfs/alphatrans.pdf http://www.antennahouse.com/antenna1/wp-content/uploads/2015/07/background-image-gradient-1.pdf flesh out the gradient shaders to include the PostScript Type 0 sampling function and to include radial gradients. This CL makes rendering these pages agree with Adobe Reader output. Some of these examples use an Extend array to clip the gradient. Skia does not currently support this natively, so construct the clip manually for now. Other PDF pages may construct gradients using alternate mechanisms -- this code will continue to be refactored as those come to light. In particular, this CL sets up the clip and matrix differently for axial gradients and radial gradients -- while it makes sense to do it one way only, I prefer to defer until I have more examples to work with. R=dsinclair@chromium.org,tsepez@chromium.org Review URL: https://codereview.chromium.org/1870463002
2016-04-11Remove CPDF_Object::GetConstString and overridestsepez
GetConstString() has sharp edges in that when applied to a CPDF_Number, it must return null whereas GetString() returns a the stringified number, because of the inability to control the lifetime of the underlying allocated string. Deleting this method showed several places where we actually wanted a *String, not a *StringC, so we were re-allocating a string we already had. Review URL: https://codereview.chromium.org/1879683002
2016-04-11Make CFX_{Byte,Wide}String::Remove() no-touch if possibletsepez
Don't try to copy the string until we are sure we need to change it. Review URL: https://codereview.chromium.org/1877993002
2016-04-11Pass CFX_ByteStrings rather than raw ptrs to JS_GlobalData.tsepez
Helps to avoid re-allocating strings when the caller already has one allocated. Review URL: https://codereview.chromium.org/1876203002
2016-04-11Cleaning up FDE_CSS Classes.dsinclair
This Cl removes the IFDE_CSSAccelerator header and replaces the usage with the concrete class. The interfaces and methods in the CSSComputedStyle class are cleanedup to remove any unused methods. BUG=pdfium:468 Review URL: https://codereview.chromium.org/1876253002