Releases: bblanchon/pdfium-binaries
Release list
PDFium 152.0.7961.0
This version was built with branch chromium/7961 of PDFium
Changes
Commits between chromium/7947 and chromium/7961:
- Rename CPDF_Type3Cache::LoadGlyph() to LoadGlyphBitmap().
- Test mirror chars with rtl in /ActualText
- Test mirror characters in /ActualText
- Improve V8 embedder data type tag hygiene across FXJS and FXJSE
- Refactor fx_bidi_unittest to use constexpr and kStr
- Fix UBSAN float-cast-overflow error in CPDF_PSEngine::PopInt()
- Fix unsafe buffers in CompositeRow_Rgb2Mask().
- Reland "Decode JPEGs at reduced size via libjpeg scale_denom"
- Convert CFX_GEModule::user_font_paths_ to pdfium::span.
- Fix FPDFAttachment_SetStringValue() encoding problem
- Demonstrate FPDFAttachment_SetStringValue() encoding problem
- Add APIs to read and write attachment descriptions
- Roll Zlib from 3246f1b60849 to 8b3aa8a1cd75 (1 revision)
PDFium 152.0.7947.0
This version was built with branch chromium/7947 of PDFium
Changes
Commits between chromium/7934 and chromium/7947:
- Replace buggy CompositeRowBgraPremul2BgraPremul() with Skia calls
- Move GetSkiaBlendMode() to fx_dib.h
- Add ScanlineCompositorTest cases for Soft Light blend mode
- Add more ScanlineCompositorTest cases for non-separable blend modes
- Add ScanlineCompositorTest.CompositeRgbBitmapLineBgra(Premul)Screen
- Revert "Decode JPEGs at reduced size via libjpeg scale_denom"
- Added missing include in cpvt_section
- Replace PNG_ERROR_SIZE with a constexpr
- Refactor CPWL_Edit::SetEditCaret() and related code
- Replace FWLTHEME color and capacity defines with constexpr
- Caret calculation for RTL text in CPWL_Edit
- Add CPVT_VariableText layout unit test for GetLineCaretX
- Interactive UI drawing fixes for pure RTL text
- Add LTR and RTL pixel tests for interactive form textfields
- Decode JPEGs at reduced size via libjpeg scale_denom
- Support visual rendering for pure RTL text
- Add
is_rtlboolean to CPVT_WordInfo - Support pure RTL text in form field through CPVT_section
- Add FPDFText_GetText() embeddertest for RTL /ActualText
- Support brotli in pdfium_test
- Add configuration option to control Brotli decoding
- Roll v8/ 0c6c73eea..7ed96d92b (664 commits)
- Roll tools/win/ faefd1b6f..45843c2c1 (1 commit)
- Update siso_version to 24b80aff540b202a88417f9f93b0dc86229eca7a
- Roll third_party/skia/ e4281d5a7..3ba832f86 (344 commits; 55 trivial rolls)
- Roll third_party/libunwind/src/ d6c7a21e9..1b601b7f0
- Roll third_party/icu/ 3859e64ee..d578f2e8b (2 commits)
- Roll third_party/harfbuzz/src/ d639197ed..511df88b8 (28 commits)
- Consistently use IS_APPLE
- Roll Catapult from a6e9d089883c to 2cdd33999350 (9 revisions)
- Roll Code Coverage from 06dcbbe49e67 to 88b5286372e2 (6 revisions)
PDFium 152.0.7934.0
This version was built with branch chromium/7934 of PDFium
Changes
Commits between chromium/7920 and chromium/7934:
- Roll third_party/freetype/src/ b08a2eb0d..12f5eb32a (11 commits)
- Update gn_version to 1d86777e7f2562a86ecea77d1809ac4f82bb5bfe
- Roll base/allocator/partition_allocator/ 390c4b91f..2723da2d1 (31 commits)
- Roll third_party/fp16/src/ 3d2de1816..782eea126 (1 commit)
- Remove -Wc++11-narrowing build rule
- Roll third_party/cpu_features/src/ d3b2440fc..81d13c496
- Roll third_party/fast_float/src/ 05087a303..34164f547 (29 commits)
- Turn on -Wctad-maybe-unsupported
- Roll build, buildtools, clang, rust, and llvm-libc
- Use CPDF_Document::New() instead of pdfium::MakeRetain()
- De-templatize StringPoolTemplate into concrete ByteStringPool
- Add text_form_multiline.in pixel test
- Roll third_party/abseil-cpp/ 5e42a36a8..d8e483edd (25 commits)
- Optimize JBig2ArithCtx size to 2 bytes (75% savings).
- Change TextCharPos::font_style_ to is_cid_font_.
- Refactor AP generation loops for reuse and readability
- Encapsulate font variation and emboldening logic in CFX_SubstFont
- Use CFX_RenderDevice static factories across codebase
- Replace GIF defines with enums and constants
- Introduce static factory CreateFor... methods on CFX_RenderDevice
- Fix CFX_Color operators to only affect active components
- Replace ISLATINWORD macro with a helper function
- Consolidate CFX_RenderDevice and remove CPDF_WindowsRenderDevice
- Allow FPDF_SetPrintMode() to be called before library init.
- Roll goldctl from 5f1b700481b1 to 39511f7e4262
- Use in-header member initializers in CTextOnlyPrinterDriver
- Refactor CPDF_TextPage::CloseTempLine() to use spans and fxcrt::Zip()
- Use std::vector instead of std::deque for CPDF_TextPage char lists
- Change struct CFX_BidiChar::Segment to have size_t fields
- Move PostScript encoder registration to CFX_GEModule
- Move WindowsPrintMode to CFX_GEModule
- Add timezone offset to new document creation date
- Use form_flags constants in GenerateTextFieldAP()
- Change CPVT_Section::OutputLines() to work with spans
- Modernize a for-loop in CPVT_Section::OutputLines()
- Refactor CPVT_Section::Clear*Words()
- Add some unit tests for CPVT_Section
- Document Clear*Words() methods in CPVT_Section
- PA: Use
Alloc()(not inline) - Encapsulate and rename one CPVT_Section::SearchWordPlace() overload
PDFium 151.0.7920.0
This version was built with branch chromium/7920 of PDFium
Changes
Commits between chromium/7906 and chromium/7920:
- Replace FWL_STYLE_WGT defines with WidgetStyle enum and Mask
- Refactor font mapper logic
- Replace CFX_StandardFont::kNumStandardFonts sentinel with std::optional.
- Add BrotliDecode filter support for PDF 2.0 streams
- Be stricter about CFX_StandardFont::Index.
- Rename CFX_StandardFont::StandardFont to CFX_StandardFont::Index.
- Simplify CFX_StandardFont standard font lookup
- Refactor CFX_FontMgr and CFX_FontMapper to break circular dependency
- Move standard font data and accessors to CFX_StandardFont
- Replace FWL_STATE defines with WidgetState enum and Mask
- Move StandardFont enum and utilities to CFX_StandardFont.
- Replace FX_NUMSTYLE defines with NumStyle enum + Mask
- Add FPDFBookmark_GetColor public API
- Replace BOM macros with constexpr constants
- Clean up CPVT_VariableText
- Pass CFX_FontMapper to SystemFontInfoIface::MapFont
- Refactor CPVT_Word caret calculations
- Pass CFX_FontMapper to CFX_FolderFontInfo methods.
- Refactor manual font table parsing in CFX_FolderFontInfo
- Cleanup CPVT_WordInfo constructors
- Refactor Skrifa integration to use member methods.
- Remove unused nTotalWord field from struct CPVT_LineInfo
- Fix exponent parsing in CFGAS_StringFormatter::ParseNum backward loop
- Add -Wlifetime-safety-permissive flag and fix CPDF_DIB lifetime warning.
- Rename CPVT_Word member variables to follow Google C++ style
- Roll Depot Tools from ed3a6fdd519a to 7d99ed58dd53 (49 revisions)
PDFium 151.0.7906.0
This version was built with branch chromium/7906 of PDFium
Changes
Commits between chromium/7891 and chromium/7906:
- Encapsulate CPVT_Word
- Replace FXFONT_USEEXTERNATTR define with constexpr kFontUseExternAttr
- Make CPDF_Font and CPDF_PageObject Is*() methods wrap As()* methods.
- Remove flattened fields from AcroForm
- Make CFX_Face::GetSfntTable() private.
- Deduplicate virtual methods for page objects and fonts.
- Remove unused getter methods.
- Make StringViewTemplate constexpr-compatible
- Combine CPDF_TextPage::AddCharInfoBy*Direction()
- Use more Google C++ style in CPDF_TextPage
- Refactor CPDF_SimpleFont hierarchy to introduce CPDF_FaceBasedSimpleFont.
- Defensively protect form fields and dictionary objects.
- Implement CFX_FolderFontInfo::GetFontCharset
- [Android] Rewrite Skia Font Manager in CFX_AndroidFontInfo
- Make CPDF_ReadValidator a final class.
- [v8] Stop using soon-to-be-deprecated V8 Apis
- Add unit tests for CFPF_SkiaFontMgr.
- Add /AGENTS.md and /GEMINI.md to .gitgnore
- Refactor/modernize CPVT_Word and CPVT_WordInfo structs
- Address post-landing review comments for CL 148813.
- Add one-line comments about what CPDF_ font classes represent.
- Replace the EM_ADJUST macro with a function
- Clear more object bindings in CFXJSE_Engine destructor.
- Replace FX_LB short-alias defines with constexpr constants
- Split and move Skia font tables to CFX_AndroidFontInfo
- Prepare CFX_FolderFontInfo for Android Refactoring
- Roll Memory Tools from 66b0df34a721 to a7e928b8bb8d (1 revision)
- Roll Zlib from 5c1dfd53066b to 3246f1b60849 (1 revision)
- Roll libpng from 8a5b4ace0c2a to 6d5341764ef4 (1 revision)
PDFium 151.0.7891.0
This version was built with branch chromium/7891 of PDFium
Changes
Commits between chromium/7881 and chromium/7891:
- Make CFX_FolderFontInfo file-reading helpers static methods.
- Update Chrome security bug reporting location
- Correct Johab mapping and add Vietnamese/OEM support
- Include missing charsets in CFX_FolderFontInfo from OS2 table.
- Define global FX_CharsetFlag and use it in font managers.
- Replace XFA_FWL_PSBSTYLEEXT defines with an enum class.
- Add missing FXSYS_ToLowerASCII().
- Add simple tests for Brotli compression
- Reduce object churn in CPDF_NameTree::GetNodeLimits.
- Add hash-to-string mapping to CFPF_SkiaFontMgr.
- Declare several FXSYS_ functions as constexpr.
- Add unit tests for CPVT_VariableText
- Avoid invalid tiling pattern ranges
- Replace FXMATH_DECIMAL macros with constexpr in cfgas_decimal.cpp
- Fix return value in CFX_AndroidFontInfo::GetFontCharset().
- Unconditionally check out simdutf
- Rename FX_LINEBREAKTYPE to LineBreakType
- Replace JBIG2_MIN_SEGMENT_SIZE with a constexpr
- Roll Code Coverage from 74d04576e893 to 06dcbbe49e67 (4 revisions)
- Roll Catapult from 9fd976b2695e to a6e9d089883c (22 revisions)
PDFium 151.0.7881.0
This version was built with branch chromium/7881 of PDFium
Changes
Commits between chromium/7869 and chromium/7881:
- Make mt-constants private to FX_Random.
- Add span-based I/O wrappers as core/fxcrt/span_io.h
- Bring FX_Random into conformance with the usual mt19937 constants.
- Add constants for ISO 32000-1:2008 spec, table 28
- Add brotli build override
- Add build_overrides/crubit.gni to PDFium tree
- Enforce unsafe_buffers in testing/image_diff/ directory.
- Opt more testing/ sub-directories into unsafe buffers.
- Start list rearrangement at requested item
- Update PDF 1.7 spec references to ISO 32000-1:2008.
- Roll base/allocator/partition_allocator/ fafdd4c9f..390c4b91f (23 commits)
- Update gn_version to 3357c4f51b1a9e676378c695dd9c7e9911c35ee6
- Fix logic botch in cpdf_nametree.cpp
- Update siso_version to b18cb0f263cfcc2f17a925cb211972a32dc211f6
- Roll third_party/skia/ d10ea850c..e4281d5a7 (283 commits; 48 trivial rolls)
- Roll third_party/libunwind/src/ 71192be15..d6c7a21e9 (1 commit)
- Roll tools/win/ d16e6b55b..faefd1b6f (2 commits)
- Roll third_party/clang-format/script/ 08cce2b81..6eddfb5ec (2 commits)
- Roll clang+rust
- Roll v8/ 8e10f842e..0c6c73eea (692 commits)
- Replace c-style casts in cfgas_decimal.cpp with static_casts
- Roll third_party/rust/ dbc491d22..19243287c (57 commits)
- Prevent import hang on circular page parents
- Roll build, buildtools, libc++, and llvm-libc
- Roll third_party/nasm/ 358842b6b..525a09a81 (4 commits)
- Roll third_party/libjpeg_turbo/ d1f5f2393..640f254ad (2 commits)
- Roll third_party/freetype/src/ 6d9fc45fc..b08a2eb0d (29 commits)
- Roll Harfbuzz and icu
- Roll third_party/brotli/ 143b119f4..803ac7166 (1 commit)
- [Android] Nest font metadata privately in manager
- Roll third_party/brotli/ aaafc7036..143b119f4 (2 commits)
- Roll goldctl from 3df8f33fc497 to ac4d1516c500
PDFium 150.0.7869.0
This version was built with branch chromium/7869 of PDFium
Changes
Commits between chromium/7857 and chromium/7869:
- [Android] Remove unnecessary CFPF_SkiaDeviceModule singleton
- Create FDPFPageObj_AddExistingMark()
- Rename core/fxge/apple/ files to match their classes
- Introduce CFX_DIBitmap::PopulateFromSpan() and PopulateFrom1bppSpan()
- Move font substitution arrays and helpers to CFX_SubstFont
- Make FX_Random::Fill() the only entry point to FX_Random.
- Use slightly better random numbers for GenerateFileId().
- Remove some kTable* constants from the global namespace.
- Tidy CPDF_FontSubsetter
- Move TT Name Table parsing down to fxge/ layer.
- Move guts of CFX_CTTGSUBTable creation to CFX_Font.
- Clean up legacy CFX_ prefixes and move font table parser
- Move CFX_CTTGSUBTable to core/fxge
- Remove obsolete import of //build/config/chromeos/ui_mode.gni
- Add FPDFTextObj_SetFontSize() public API
- Add CFX_Font::GetCharBBox() helper method
- Encapsulate more of CFX_Face in CFX_Font
- Add still more fontations equivalents to cfx_face.cpp
- Continue adding fontations equivalents to cfx_face.cpp
- Add coverage for invalid bfchar CIDs
- Use GetFileContents() to simplify fx_skrifa_unittest.cpp
- Simply rust Slice construction in CFX_Face.
- Add fontations equivalent for CFX_Face::GetCharCodesAndIndices().
- Roll Depot Tools from 64b2927117d0 to ed3a6fdd519a (54 revisions)
PDFium 150.0.7857.0
This version was built with branch chromium/7857 of PDFium
Changes
Commits between chromium/7843 and chromium/7857:
- Add fontations calls and checks to CFX_Face::GetGlyphBBox()
- Add additional Fontations calls to CFX_Face.
- Add fontations code for CanEmbed().
- Add Fontations support for CFX_Face::GetOs2CodePageRange().
- Call skrifa APIs in parallel in CFX_Face::LoadGlyphPath().
- Fix missing use of fontmetrics when checking skia bounding boxes.
- Remove isolate argument from JSGetObject().
- Rename CFX_V8 to CFX_IsolateWrapper
- Refactor dynamic property adapters to avoid nested ifs.
- Use v8::Local<> in DynPropGetterAdapter()
- Rename CidSet enum entries
- Collapse std::unique_ptrv8::Global to v8::Global in XFA.
- Remove CFXJSE_Value wrapper in favor of v8::Global
- Fix width calculation under skia in CFX_Face.
- Make CJBig2_GRDProc::DecodeArithOpt3() templated
- Make PDF_ENABLE_SKIA_TYPEFACE_CHECKS a GN build argument.
- Add missing config to //testing:test_support target
- Fix cffl_formfield.h reference in some comments
- Replace some static_casts with fxcrt::to_underlying()
- Remove dead code from CFXJSE_Value.
- Do not access form_fill_env_ until after last re-entrant JS call.
- Patch CVE-2026-6192 in libopenjpeg
- Make equivalent Skia calls in CFX_Face under Fontations builds.
- Verify document in CFXJSE_Engine::ToXFAObject()
- Roll Zlib from 89921383f1f5 to 5c1dfd53066b (1 revision)
- Roll Memory Tools from b635f27e9323 to 66b0df34a721 (3 revisions)
- Do line fetching inside CJBig2_Image in bulk
- Add CJBig2_Image::stride32()
- Fix variants of prior CJS_Field::set_display() issue.
- Add big scary term "Reentrant" to fxjs methods that enter JS.
- Make several CJBig2_Image methods private
- Avoid order-of-evaluation issues in CJS_Field::set_display().
- Encode property names when generating a page.
- Git ignore .jetskicli files.
PDFium 150.0.7843.0
This version was built with branch chromium/7843 of PDFium
Changes
Commits between chromium/7834 and chromium/7843:
- Roll third_party/skia/ 163dfdf50..d10ea850c (329 commits; 49 trivial rolls)
- Move fx_dib.h into namespace fxge
- Use GetWritableScanline() in more places inside CFX_DIBitmap
- Roll third_party/cpu_features/src/ 936b9ab55..d3b2440fc (88 commits)
- Roll third_party/nasm/ 452528587..358842b6b (507 commits)
- Roll abseil, android_ndk, build, buildtools, clang, libc++, and rust
- Rename array name in CRYPT_SHA1Finish()
- Roll third_party/libpng/ 367bb5ca4..8a5b4ace0 (1 commit)
- Cache data size in CJBig2_Image
- Mark CFX_DIBBase::FlipImage() as Windows / XFA-only
- Change FXDIB_ALPHA_MERGE() from a macro to a function
- Rename functions in fx_crypt.cpp to follow UpperCamelCase
- Rename SHA functions to follow UpperCamelCase
- Upgrade to lcms 2.19
- Rename JBig2 files to have lower case, snake_case names
- Add FxDibTest.AlphaMerge
- Roll Catapult from 7343182d94b7 to 9fd976b2695e (71 revisions)
- Roll Code Coverage from f9e72c2a3ad1 to 74d04576e893 (4 revisions)
- Make some fxge code Windows / AGG-only
- Fold CFX_DIBitmap::ConvertBGRColorScale() into ConvertColorScale()
- Simplify CFX_DIBitmap::ConvertColorScale() and ConvertBGRColorScale()
- Make CFX_RenderDevice::Get{Horz,Vert}Size() Windows-only
- Remove more CFX_RenderDevice getters
- Remove RenderCapAlphaPath()