summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-06-02The PDFium source in core/fxge/dib implements a bit-blitting backend.caryclark
This code has several disadvantages over a more modern graphics engine: - no SIMD support - no GPU support - limited quality Further, calling this code locks in the perceived resolution, so that the output cannot be scaled without additional loss. By directing all bitmap drawing through CFX_SkiaDeviceDriver::StartDIBits, Skia can handle all appropriate bitmap optimizations. To that end, SetDIBits and StretchDIBits now call StartDIBits. Other changes: Skia's bitmaps are premultiplied. PDF contains bitmaps that are unpremultiplied. PDFium appears to use premultiplied bitmaps sometimes, and unpremultiplied bitmaps elsewhere. Add a debug check for unpremultiplied bits in Skia's driver, and add a utility to premultiply PDFium's bitmaps' bits. PDFium supports a 24 bit RGB bitmap padded to a 32 bit word. Set the high byte so that Skia can treat this as an ARGB bitmap. Defer the application of the alpha value to the draw call rather than calling MultiplyAlpha where possible. Allow the destination bitmap to be alpha 8 or argb 32. Review-Url: https://codereview.chromium.org/2025043002
2016-06-02Change ThrowScriptErrorMessage() to just ThrowException().dsinclair
Shorter and easier to remember. Review-Url: https://codereview.chromium.org/2029043002
2016-06-01Change CFX_Font::GetPsName() to return a CFX_ByteString.thestig
So everyone can avoid doing Byte to WideString conversions. Also remove CFX_GEFont::GetPsName() and deduplicate a couple of GetPsName() calls. Review-Url: https://codereview.chromium.org/2019173002
2016-06-01xfa_fm2jscontext method cleanup - pt IIIdsinclair
Cleanup ::Min, ::Mod, ::Round, ::Date2Num, ::DateFmt and ::ISoTime2Num. Review-Url: https://codereview.chromium.org/2028063002
2016-06-01Remove unused LoadString values, cleanup remaining strings.dsinclair
These strings are not used anywhere, remove the defines and the strings. For the remaining strings, cleanup the contents. Review-Url: https://codereview.chromium.org/2020353004
2016-06-01Stop casting struct CFXJSE_ArgumentsImpl to unrelated class CFXJSE_Argumentstsepez
Remove the 'Impl entirely, and put the details into the class itself. Review-Url: https://codereview.chromium.org/2036513002
2016-06-01Don't use array for only one compatible mode scripttsepez
Also, don't invent an enum that has one possible value that is always set. Review-Url: https://codereview.chromium.org/2028343002
2016-06-01Clean up part of CXFA_Node classweili
Mainly clean up Script_NodeClass_Xxx() functions. There are no behavior or API changes. The clean up mainly includes moving static functions into namespace, remove unnecessary conditions or braces, changing NULL->nullptr and local FX_BOOL->bool. Review-Url: https://codereview.chromium.org/2018733002
2016-06-01Track shared isolates better in FXJSE.tsepez
Fix the asymmetry between creating only some isolates and releasing all of them, even the shared ones, by being more careful not to trash those we didn't create. Review-Url: https://codereview.chromium.org/2025193002
2016-06-01Relax checks added in commit 8f3a311.chromium/2760chromium/2759chromium/2758chromium/2757chromium/2756thestig
Some shading types do not use these fields. Review-Url: https://codereview.chromium.org/2027053002
2016-06-01Validate the BitsPerFlag entry in shading dictionaries.thestig
BUG=616248 Review-Url: https://codereview.chromium.org/2020183004
2016-06-01Remove use of v8:Lockerstsepez
The entire code base is single-threaded, hence the lockers ought not be required. Review-Url: https://codereview.chromium.org/2026933002
2016-06-01Fix some signed/unsigned comparisons in xfa_fm2jscontext.cppochang
Looks like this causes compile warnings on ARM where wchar_t is unsigned. Review-Url: https://codereview.chromium.org/2023173002
2016-06-01Fix Skia windows GN builddsinclair
This CL updates the GN files so the Skia port will build on Windows. This does not mean the functionaly is correct, just that the binaries link. Review-Url: https://codereview.chromium.org/2032553002
2016-06-01Remove XFA_HFM2JSCONTEXT.dsinclair
This CL removes XFA_HFM2JSCONTEXT and the supporting code. XFA_HFM2JSCONTEXT was replaced by CXFA_FM2JSContext. The translate method was moved to CXFA_FM2JSContext. Review-Url: https://codereview.chromium.org/2024833003
2016-05-31Validate a couple of fields in shading dictionaries.thestig
BUG=616246 Review-Url: https://codereview.chromium.org/2022263003
2016-05-31Remove unused CFXJSE_ScopeUtil_IsolateHandleRootOrNormalContexttsepez
Reformat along the way, and mark unimplemented methods as delete. Review-Url: https://codereview.chromium.org/2024283002
2016-05-31Replace void* with CFXJSE_HostObect and make wrapped objects inherit from ittsepez
This will avoid a re-occurrence of BUG 613607 should someone again optimize away CXFA_Object's virtual dtor. Review-Url: https://codereview.chromium.org/2019333006
2016-05-31Fix Asan build.dsinclair
Need the tools/memory directory in order for asan to find the blacklist during compilation. Review-Url: https://codereview.chromium.org/2028603003
2016-05-31Fix compile error ‘isnan’ was not declared in this scopephajdan.jr
BUG=none Review-Url: https://codereview.chromium.org/2022793002
2016-05-31xfa_fm2jscontext method clean - pt IIdsinclair
Cleanup ::Max, ::Floor, ::Count, ::Ceil, ::Avg and ::Abs. Remove unneeded strings from reservesForDecode (saves 4k when building pdfium_test). Review-Url: https://codereview.chromium.org/2024133002
2016-05-31Fix V8 isolate setup in embedder tests and roll V8 to 055bfa7.jochen
R=thestig@chromium.org BUG= Review-Url: https://codereview.chromium.org/2019383002
2016-05-31xfa_fm2jscontext formatting and cleanup - pt Idsinclair
Review-Url: https://codereview.chromium.org/2025723002
2016-05-31Replace CFXJSE_Value create/destroy with new and delete.dsinclair
In most cases, the destroy calls were removed and the object wrapped in a unique_ptr. Review-Url: https://codereview.chromium.org/2014323003
2016-05-31Fix a leak in CXFA_FontMgr.thestig
Review-Url: https://codereview.chromium.org/2024713002
2016-05-27Change IsGDIEnabled() to use a bool.Lei Zhang
TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/2017293002 .
2016-05-27Match GN and GYP compilation warning flagsweili
For GN build: Enable chromium_code compilation config for XFA code; Remove sign-compare suppression; Limit the strict-overflow warning suppression only to xfa target; For GYP build: Remove warning suppression 4800 from GYP non third-party code; After this, all the warning flags and levels for GN and GYP builds should match. BUG=pdfium:29, pdfium:475 Review-Url: https://codereview.chromium.org/2011303003
2016-05-27Workaround dubious casting between CXFA_Object and void* in FXJSEtsepez
This is just a crock to get things working until we fix the underlying issue. When there's single-inheritance, it may often work in practice to C-style (reinterpret) cast a Derived* ptr to void* and then back to a Base* ptr. One place where this blows up is if Derived has virtual functions but Base does not, in which case the world will be offset by the size of a vtable ptr. Because of the use of void* types in FXJSE, the above was happening when setting a CXFA_ThisProxy (Derived, virtual) to be a global object (void*). This would then be cast back to a CFXA_Object (Base, non-virtual) and chaos is ensured. Not sure how far back this goes. Along the way, pick up some tidying which was necessary for simplicity while tracking this down. BUG=613607 Review-Url: https://codereview.chromium.org/2015143005
2016-05-27Avoid two C-style FX_WCHAR* casts in pdfiumbrucedawson
FX_WCHAR* casts were hiding a number of misuses of narrow strings in pdfium, which /analyze identified. Now that those are fixed I did a search for other instances of (FX_WCHAR*) to see if any other bugs were lurking. No bugs were found but one unnecessary cast and one that should be a const_cast were identified. This change fixes those. No behavioral change. Review-Url: https://codereview.chromium.org/2024463002
2016-05-27Clean up some Android/Windows code.thestig
Review-Url: https://codereview.chromium.org/2004313007
2016-05-27Fix two bugs found by /analyze toolweili
The first one is about bitwise AND on zero, the result would always be zero. The second one is about using wrong bitmasks, the result would cause branches never get executed. BUG=chromium:613623, chromium:427616 Review-Url: https://codereview.chromium.org/2016243003
2016-05-27Change to disable a warning for GCC compilationchromium/2754chromium/2753chromium/2752chromium/2751weili
The warning was only shown and asked not to be treated as an error. However, some recent flag change of chromeos toolchain has some interference with the warning. To avoid future problem, disable the warning for GCC. BUG=chromium:615424 Review-Url: https://codereview.chromium.org/2013163003
2016-05-27Add back-pointer to "Associated widget" to CFWL_WidgetImp.tsepez
This is the last use of CFX_PrivateData, which is now removed. Review-Url: https://codereview.chromium.org/2016743002
2016-05-27Make sure CFDE_XMLSyntaxParser's buffer is null terminated.ochang
BUG=chromium:614962 Review-Url: https://codereview.chromium.org/2017803002
2016-05-26Fix MSVC C4800 build warnings.thestig
TBR=weili@chromium.org Review-Url: https://codereview.chromium.org/2017863002
2016-05-26Remove default arguments from CFX_FxgeDevice.thestig
Remove unused dithering code. Review-Url: https://codereview.chromium.org/2010813003
2016-05-26Fix a bug which may cause infinite loopweili
When the condition is "status == FXCODEC_STATUS_DECODE_TOBECONTINUE" while |status| never gets updated in the loop, it would enter infinite loop. Also, since Start_decode_MMR() never returns FXCODEC_STATUS_DECODE_TOBECONTINUE, there is no point to check on the return value for that. Review-Url: https://codereview.chromium.org/2013263002
2016-05-26Add opaque "layout item" to widgets for caller's use.tsepez
This avoids another use of CFX_PrivateData. Note that in the old code, we'd be calling through a m_pImpl onto the same underlying object as we passed as the "key" argument when setting the value, which explains why the get calls, happening one object lower, pass the same argument as which they are being inovked against. Review-Url: https://codereview.chromium.org/2010923002
2016-05-26Remove checks for _WIN32_WCE.thestig
Review-Url: https://codereview.chromium.org/2011563006
2016-05-26Make CPDF_IndirectObjectHolder::InsertIndirectObject return a bool.thestig
Fix some nits in CPDF_Parser::LoadCrossRefV5() and other callers. Review-Url: https://codereview.chromium.org/2019443002
2016-05-26skia: add bitmap color table supportcaryclark
Fix 2/4/8 bits per pixel bitmaps that PDFium transposes into 8 bpp indexed. R=tsepez@chromium.org,dsinclair@chromium.org,reed@google.com Review-Url: https://codereview.chromium.org/2011153002
2016-05-26Make additional FXJSE_CLASS_DESCRIPTORS constanttsepez
Also, no need to track these in the contexts since they are global. Review-Url: https://codereview.chromium.org/2014363002
2016-05-26Make fm2jscontext's class descriptor a static constant.tsepez
Review-Url: https://codereview.chromium.org/2010183002
2016-05-26Rename FXJSE_CLASS to avoid confusion with CFXJSE_CLASStsepez
BUG= Review-Url: https://codereview.chromium.org/2010013003
2016-05-26Enable chromium_code standard for XFA codeweili
Clean up the left code which causes warnings. Enable using chromium_code for XFA compilation, also re-enable all the msvs warning flags except 4267 (same as the main pdfium code). BUG=pdfium:29,pdfium:475 Review-Url: https://codereview.chromium.org/2009813004
2016-05-26Clean up CPDF_TextRenderer slightly.thestig
- Remove dead code - Remove default arguments - Move code into anonymous namespace Review-Url: https://codereview.chromium.org/2013023002
2016-05-26Remove unused FWL_Error::OutOfMemorytsepez
Interestingly, callers don't take different action based on the specific code, but that's a matter for another day. Review-Url: https://codereview.chromium.org/2010973003
2016-05-26Remove FXJSE_HOBJECT and FXJSE_HVALUE for CFXJSE_Value*dsinclair
This CL replaces FXJSE_HOBJECT and FXJSE_HVALUE with the concrete CFXJSE_Value* type. All variables are renamed to match. Review-Url: https://codereview.chromium.org/2012253002
2016-05-26Remove default arguments in CFX_RenderDevice.thestig
Review-Url: https://codereview.chromium.org/2011943004
2016-05-26Remove default argument from RestoreState() methods.thestig
Review-Url: https://codereview.chromium.org/2009803003