Releases: bblanchon/pdfium-binaries
Release list
PDFium 155.0.8057.0
This version was built with branch chromium/8057 of PDFium
Changes
Commits between chromium/8044 and chromium/8057:
- Add unit test for CFX_PSRenderer::SetClip_PathFill()
- Provide shared CFX_V8ArrayBufferAllocator instance
- Make FXJS object definition IDs constexpr constants.
- Consolidate predictor switching into image_predictors
- Better document FPDF_GetMetaText() behavior
- Move engine refcount from global state into CFXJS_PerIsolateData
- Use CFX_Point in CFX_GlyphBitmap
- Add m_IsolatePerDocument to FPDF_LIBRARY_CONFIG for version 7
- Fix strict deps violation for pdfium.
- Fix 12-hour time parsing in FX_ParseDateUsingFormat()
- Add test cases for 12-hour time parsing in FX_ParseDateUsingFormat()
- Use readNBits to read N bits in CJBig2_SDDProc::DecodeHuffman
- Move default global object template into CFXJS_PerIsolateData
- Remove Skia typeface checks in CFX_Face while keeping Fontations
- Extract a CeilLog2() helper, use it in jbig2 code
- Extend the JPEG BGR decode to ICCBased color spaces with sRGB profiles
- Decode 3-component JPEGs straight to BGR when the DIB wants BGR
- Add tests for Brotli /DecodeParms
- Extract and validate decode parameters using a helper function
- Several minor huffman-related cleanups
- Rename SBHUFFRDX to SBHUFFRDXRDY
- Avoid compiling libjpeg when pdf_enable_rust_jpeg is true
- Remove another duplicated jbig2 huffman code reading loop
- Move Flate predictor functions to standalone files
- Rename confusing bSkipImageTypeCheck argument.
- Add FPDFPageObj_GetRenderedStrokePattern() API
- Reject unsupported component counts in JPEG progressive decoder
- Improve error handling in libjpeg encoding
- Revert "Remove PDF_ENABLE_SKIA_TYPEFACE_CHECKS and dead parity assertions"
- Copy MCC record count in OpenJPEG tile setup
- Remove PDF_ENABLE_SKIA_TYPEFACE_CHECKS and dead parity assertions
- Ignore re-entrant form calls during passive FFI callbacks
PDFium 155.0.8044.0
This version was built with branch chromium/8044 of PDFium
Changes
Commits between chromium/8035 and chromium/8044:
- Roll Zlib from c5cc9edf8992 to 285e94b8fa95 (4 revisions)
- Remove one duplicated jbig2 huffman code reading loop
- Refactor FX_ParseDateUsingFormat() (2/2)
- Refactor FX_ParseDateUsingFormat() (1/2)
- Speed up PngPredictLine: hoist row boundaries, carry Sub in registers
- Replace Skia JPEG decoder with direct Rust FFI (zune-jpeg)
- Fix reversed channel order when loading transfer function array
- Clamp transfer function sample values to [0, 255]
- Implement 50-year pivot for two-digit year parsing
- Fix weekday formatting in CJS_Util::printd()
- Fix leap year calculation in fx_date_helpers
- Rename Format::kRgb to Format::kBgr in progressive decoder
- Return std::optional<uint16_t> from FaxGetRun()
- Bound run lengths in FaxG4GetRow()
- Fix typo that prevented LargeImageDoesNotRenderBlank from being disabled
- Roll back blanket fuzziness in light of better image comparison tools
- Decouple Fontations from Skia to support standalone AGG builds
- Enable large window mode for Brotli decoding
- Bound the run length in FaxGet1DLine()
- Add windowed MSE verification to EmbedderTest
- Consolidate pixel comparison loop into CalculatePixelsDifferent
- Introduce DiffOptions aggregate struct for pixel comparisons
- Support windowed MSE and custom parameters in image differ
- Update android_ndk_version to 2@30.0.16138531
- Update siso_version to efbbe7f1892211b5e9512576843a3c247b6a6d7c
- Update gn_version to 150a9d6ba0aa7f407aa4feeabc5f03ce9aa7e04b
- Roll third_party/clang-format/script/ 6eddfb5ec..705100819 (1 commit)
- Remove inactive owner
- Roll third_party/rust/ 7c4e7d9b0..4dec6f65b (81 commits)
- Roll testing/scripts/rust/ 6712dc59f..ead1c91bc (1 commit)
- Roll v8/ caa723ab9..df65d5c8f (603 commits)
- Roll buildtools, absl, libc++, libc++abi, and llvm-libc
- Rename variables in flatemodule.cpp to follow snake_case
- Clean up flatemodule.cpp
- Add tests for ToUnicode mapping precedence
- Roll third_party/libunwind/src/ ec7ac638d..45120ee23 (3 commits)
- Roll build, clang, and rust
- Roll third_party/skia/ 7ef86a5b0..5549c93c9 (380 commits; 91 trivial rolls)
- Roll base/allocator/partition_allocator/ 29013c81d..89615a645 (48 commits)
- Roll tools/win/ 45843c2c1..13cb6e5d2 (1 commit)
- Roll third_party/freetype/src/ 656cb7777..4800589f7 (10 commits)
- Roll Harfbuzz and icu
- Roll Code Coverage from f2c64929fbd5 to e1878fbb1ff7 (4 revisions)
- Roll Catapult from e4d1a01c96de to 50c971fc0958 (10 revisions)
PDFium 154.0.8035.0
This version was built with branch chromium/8035 of PDFium
Changes
Commits between chromium/8021 and chromium/8035:
- Make third_party/libpng an optional dependency in DEPS
- Add FPDFBookmark_GetStyle() API
- Add Rust PNG codec backend for testing and remove Skia PNG encoder
- Unify PNG codec API under namespace png_codec
- Add tests for the 24bpp default-decode scanline translate
- Make recursion variables unsigned in CPDF_SyntaxParser
- Reinterpret CStretchEngine destination spans as pixel structs
- Composite opaque BGR rows via Zip() and skip per-pixel alpha division
- Use CPDF_SyntaxParser::kParserMaxRecursionDepth in CPDF_StreamParser
- Reorganize testing/ directories and PNG codec structure
- Fix annoying Clippy warnings in Rust codec and font code
- Fix Rust BMP/PNG build rules for embedders
- Move PNG implementation files to testing/utils
- Fix unit_test broken in prior commit.
- Replace Skia BMP decoder with direct Rust FFI (image crate)
- Add still more unit tests for BMP progressive decoding
- Add unit tests for BMP progressive decoding edge cases
- Roll build/ 617bbaced..299066ef2 (3 commits)
- Replace Skia PNG decoder with direct Rust FFI (png crate)
- Add unit test for PNG decoding with gAMA chunk
- Speed up CStretchEngine: Zip() the tap loops, interchange StretchVert
- Keep annotation AP BBox when resizing
- Split up CPDF_StreamParser::ReadNextObject()
- Use Google C++ style in CPDF_StreamParser::ReadNextObject()
- Roll goldctl from 61fc12903d68 to 9379dad302e0
- Change CPDF_StreamParser::GetNextWord() to return a bool
- Make fp16 DEPS entry conditional on checkout_v8
PDFium 154.0.8021.0
This version was built with branch chromium/8021 of PDFium
Changes
Commits between chromium/8009 and chromium/8021:
- Add FPDFPath_GetBezierControlPoints() API
- [DEPS] replace internal python3 usage with DEPS provided one.
- [DEPS] Add CPython CIPD package for hermetic Python toolchain
- Simplify various STL operations
- Replace C-style casts with checked_cast for uint8_t
- Replace C-style cast with FX_SAFE_UINT32 in scanline decoder
- Roll build/ 06f91b7a8..02e5d563d (55 commits)
- Reduce TIFFFaxTabEnt size to save .rodata space
- Roll build/ 0d8b711d9..06f91b7a8 (1 commit)
- [DEPS] update gn and siso version.
- Remove temporary pdf_enable_rust_jpeg override in pdfium.gni
- Support Skia/Rust-based JPEG decoding in ProgressiveDecoder
- Harmonize test image suffix order and rename local pixel expectations
- Replace or remove some C-style casts in basicmodule.cpp
- Use Dragonbox to format floating-point numbers in content streams
- Add unit tests for CPDFContentstreamWriteUtils
- Expose Rust decoder features and enable fuzzy matching in test runner
- Add dual max delta and MSE criteria for image fuzzy matching
- Fix crash on invalid object numbers in xref table
- Roll base/allocator/partition_allocator/ 2723da2d1..29013c81d (35 commits)
- Make jinja2 and markupsafe DEPS entries conditional on checkout_v8
- Roll abseil, buildtools and libc++
- Replace DCHECK() checks with DCHECK_NE()
- Add missing include in cfxjse_formcalc_context.cpp
- Replace CHECKs() in png_encode.cpp with CHECK_GE()
- Roll Memory Tools from a7e928b8bb8d to 8d3182bb3c86 (1 revision)
- Roll Depot Tools from 1709e20d5ca2 to 732902ab86f8 (81 revisions)
- Roll clang and rust
- Roll build/ 73c0fa98c..0d8b711d9 (122 commits)
- Replace generic DCHECK checks with specific operator variants
- Enforce GN build constraints for pdf_enable_rust_jpeg in pdfium.gni
- Support Skia/Rust-based JPEG decoding in JpegModule
PDFium 153.0.8009.0
This version was built with branch chromium/8009 of PDFium
Changes
Commits between chromium/7999 and chromium/8009:
- Relayout and repaint text immediately in CPWL_EditImpl::SetTextDirection
- Implement SkiaScanlineDecoder for JPEG decoding via Skia
- Support Ctrl+Y for Redo in CPWL_Edit
- Handle SelectAll and Undo/Redo in CPWL_Edit::OnKeyDownInternal()
- Add baseline embedder tests for OnKeyDown shortcuts
- Extract LibjpegScanlineDecoder from JpegModule
- Move jpegmodule.cpp to libjpeg_scanline_decoder.cpp
- Handle CFX_BidiResolver failure in CPVT_Section
- Add unit tests for JpegModule
- Add unit test for CPVT_Section::OutputLines() on an empty section
- Remove per-codec pdf_enable_xfa_ GN arguments and macros
- Migrate PNG decoder to ProgressiveDecoderDelegate and evacuate state
- fxge: fix missing windows include in cfx_renderdevice.h
- Use LoadScopedSavedPage() in embedder tests
- Migrate JPEG decoder call into ProgressiveDecoderContextDelegate
- Roll Zlib from 8b3aa8a1cd75 to c5cc9edf8992 (2 revisions)
PDFium 153.0.7999.0
This version was built with branch chromium/7999 of PDFium
Changes
Commits between chromium/7988 and chromium/7999:
- Migrate GIF decoder to ProgressiveDecoderDelegate and evacuate state
- Remove unused frame parameter from ProgressiveDecoderContext
- Modernize CFX_BidiResolver unit tests with ElementsAre
- Validate input boundaries for CFX_BidiResolver line extraction
- Optimize CFX_BidiResolver initialization and restrict inheritance
- fxcrt: fix building against system ICU in cfx_bidi_resolver
- Calculate absolute right edge for CPWL_EditImpl selection bounds
- Refactor CPWL_EditImpl to use GetWordRect helper
- Add pixel tests documenting CPWL_EditImpl selection behavior
- Remove display gamma of 1.7 for Apple devices.
- Roll third_party/libc++abi/src/ 8f11bb1d4..14cefa839 (41 commits)
- Roll android_ndk_version to 2@30.0.15729638
- Migrate BMP decoder to use ProgressiveDecoderContextDelegate
- Roll third_party/skia/ 3ba832f86..7ef86a5b0 (378 commits; 68 trivial rolls)
- Handle NextWord() failure in GetLineCaretX()
- Introduce ProgressiveDecoderContextDelegate header and Format enum
- Roll third_party/rust/ 9bcbc5767..7c4e7d9b0 (62 commits)
- Update siso_version to 7bc9a0bfe050ef97e1712ff61c6f11952799e951
- Update gn_version to 3fd3b0624d8cba16927853600130b2c33d4e7928
- Handle bidi_resolver failures in CPVT_Section
- Roll third_party/llvm-libc/src/ 9a821f4e5..6622df0b6 (140 commits)
- Roll v8/ 7ed96d92b..caa723ab9 (635 commits)
- Refactor CPVT_Section layout tests to parameterized tests
- Add CheckNoIOStreamInHeaders() to PDFium's PRESUBMIT.py
- Roll Catapult from 2cdd33999350 to e4d1a01c96de (23 revisions)
- Roll Code Coverage from 88b5286372e2 to f2c64929fbd5 (9 revisions)
- Roll Instrumented Libraries from e8cb570a9a2e to d15c278eed5d (1 revision)
PDFium 153.0.7988.0
This version was built with branch chromium/7988 of PDFium
Changes
Commits between chromium/7961 and chromium/7988:
- Introduce CPDF_TextPage::CharType::kActualText for /ActualText
- Roll third_party/harfbuzz/src/ 511df88b8..28f4dc622 (15 commits)
- Remove JPEG decoder wrapper and inline progressive decoder helpers
- Rename CJpegContext to LibjpegJpegContext and rename files
- Remove TIFF decoder wrappers and inline progressive decoder helpers
- Fix an OpenJPEG double-free on early OOM return
- Roll third_party/libunwind/src/ 1b601b7f0..ec7ac638d (19 commits)
- Rename CTiffContext to LibtiffTiffContext and rename files
- Roll third_party/freetype/src/ 12f5eb32a..656cb7777 (6 commits)
- Rename variables in CPDF_TextPage::ProcessInsertObject()
- Avoid overloading CPDF_TextPage::ProcessTextObject()
- Update CFX_FileAccess_Posix::Open() to use a Bytestring
- Remove PNG decoder wrappers and inline progressive decoder helpers
- Rename CPngContext to LibpngPngContext and rename files
- Remove skia_bmp_decoder wrapper and inline progressive decoder helpers
- Avoid a nullptr dereference in CPDF_TextPage::ProcessTextObjectItems()
- Expose SetTextDirection through public FPDF FormFill API
- Plumb text direction through PWL Window widgets
- Fix live editing overlap for LTR text following RTL text
- Add embedder tests for mixed-direction live editing
- Remove obsolete static wrapper methods across progressive decoders
- Add boolean entries to pieceinfo test files
- Add fflush calls in pdfium_test to prevent buffered output truncation
- Move progressive decoder contexts to separate files.
- Fix out-of-bounds index in CFXJSE_FormCalcContext::IsIsoDateFormat
- Update formatting in bitmap and gif decoders
- Convert
2toToin core/fxge/dib/cfx_dibbase.cpp - Use Zip() in remaining variable stride DIB conversions
- Use templating and Zip() in ConvertBuffer_Rgb2Gray()
- Virtualize DecodeImage in ProgressiveDecoderContext
- Collapse 5 context members into context_ in ProgressiveDecoder
- Add test PDFs containing /PieceInfo dictionaries
- Virtualize ProgressiveDecoderContext and add decoder factory methods
- Set opaque alpha on BMP palette entries and unify palette resampling
- Unify progressive decoder Status return types
- Improve memory and type safety in CPDF_DIB::GetScanline()
- Fix color key masking for images with > 8 bits per pixel
- Add class comment to CPDF_DIB
- Add pixel test for 16-bit grayscale masking
- Roll goldctl from f88222fee08c to 42a268cbf8f7
- Document CFFL_InteractiveFormFiller::Get*PageView()
- Make embedder test delegates fixture-owned
- Fix mixed-direction line extraction
- Add Rust-based BMP decoder
- Partially fix RTL character and line reading order in CPDF_TextPage
- Give CFX_BidiString a way to turn off auto-ordering
- third_party/agg23: mark as a fork
- Refactor CPDF_TextPage::ProcessTextObjectItems() to return boolean
- Change CFX_BidiString segment tie-breaking to favor LTR
- Rewrite CPVT_Section layout using ICU UBA
- Add unit tests for empty CPVT_VariableText caret positioning
- Add MaybeOwnedDataVector and use in CJBig2_Image
- Add unit tests documenting existing CPVT_Section layout behavior
- Introduce TextDirection enum in CPVT_VariableText
- Introduce CFX_BidiResolver for ICU paragraph layout
- Clean up CPVT_Section::OutputLines() implementation
- Fix some looming linker issues with rust codecs
- Add test case for literal Hebrew text preceding /ActualText span
- Remove CPDF_ICCBasedCS::cache_
- third_party/bigint: add the missing README.pdfium file
- Add pdf_enable_rust_bmp GN argument and preprocessor macro
- Rename Hungarian notation in CPDF_DIB::GetScanline()
- Reject XFA-only pages in FPDFPage_Flatten()
- Move parts of hebrew_mirrored.in into .fragment files
- Clean up CPDF_TextPage::SwapTempTextBuf()
- Refactor CPVT_Section::GetWordRangeSpan()
- Add /Length1 to hebrew_mirrored.pdf font stream
- Refactor CPVT_Section layout alignment calculation
- third_party/NotoSans*: attach bug number to Static
- [Modernize Alignment enum in CPVT_VariableText](https://pdfium.googlesource.com/pdfium/+/98aefa3af5309a13e2a3465c4fb91a4a6...
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