Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
d1c7b62
Roll Instrumented Libraries from e8cb570a9a2e to d15c278eed5d (1 revi…
Aug 3, 2026
0d5ebf0
Roll Code Coverage from 88b5286372e2 to f2c64929fbd5 (9 revisions)
Aug 3, 2026
2870fa9
Roll Catapult from 2cdd33999350 to e4d1a01c96de (23 revisions)
Aug 3, 2026
2cbb871
Add CheckNoIOStreamInHeaders() to PDFium's PRESUBMIT.py
LearnPRG-py Aug 4, 2026
eccf092
Refactor CPVT_Section layout tests to parameterized tests
Aug 6, 2026
ce16e24
Roll v8/ 7ed96d92b..caa723ab9 (635 commits)
leizleiz Aug 6, 2026
c9918d0
Roll third_party/llvm-libc/src/ 9a821f4e5..6622df0b6 (140 commits)
leizleiz Aug 6, 2026
5471608
Handle bidi_resolver failures in CPVT_Section
Aug 6, 2026
f36d5ea
Update gn_version to 3fd3b0624d8cba16927853600130b2c33d4e7928
leizleiz Aug 6, 2026
07c180e
Update siso_version to 7bc9a0bfe050ef97e1712ff61c6f11952799e951
leizleiz Aug 6, 2026
7e9f284
Roll third_party/rust/ 9bcbc5767..7c4e7d9b0 (62 commits)
leizleiz Aug 6, 2026
9a8834c
Introduce ProgressiveDecoderContextDelegate header and Format enum
tsepez Aug 6, 2026
900371d
Handle NextWord() failure in GetLineCaretX()
Aug 6, 2026
024e42f
Roll third_party/skia/ 3ba832f86..7ef86a5b0 (378 commits; 68 trivial …
leizleiz Aug 7, 2026
40ac5b5
Migrate BMP decoder to use ProgressiveDecoderContextDelegate
tsepez Aug 7, 2026
fa60d89
Roll android_ndk_version to 2@30.0.15729638
leizleiz Aug 7, 2026
68fccd3
Roll third_party/libc++abi/src/ 8f11bb1d4..14cefa839 (41 commits)
leizleiz Aug 7, 2026
e3af2d1
Remove display gamma of 1.7 for Apple devices.
tsepez Aug 7, 2026
7e7198b
Add pixel tests documenting CPWL_EditImpl selection behavior
Aug 7, 2026
38f15eb
Refactor CPWL_EditImpl to use GetWordRect helper
Aug 7, 2026
45f7ebc
Calculate absolute right edge for CPWL_EditImpl selection bounds
Aug 7, 2026
9b6f239
fxcrt: fix building against system ICU in cfx_bidi_resolver
Aug 7, 2026
6aee90b
Optimize CFX_BidiResolver initialization and restrict inheritance
Aug 7, 2026
0d5aa7a
Validate input boundaries for CFX_BidiResolver line extraction
Aug 7, 2026
7029ca5
Modernize CFX_BidiResolver unit tests with ElementsAre
Aug 7, 2026
f13ead9
Remove unused frame parameter from ProgressiveDecoderContext
tsepez Aug 7, 2026
e9fc018
Migrate GIF decoder to ProgressiveDecoderDelegate and evacuate state
tsepez Aug 8, 2026
2ba254b
Roll Zlib from 8b3aa8a1cd75 to c5cc9edf8992 (2 revisions)
Aug 10, 2026
c36f3d8
Migrate JPEG decoder call into ProgressiveDecoderContextDelegate
tsepez Aug 10, 2026
17c6f44
Use LoadScopedSavedPage() in embedder tests
LearnPRG-py Aug 10, 2026
3abda65
fxge: fix missing windows include in cfx_renderdevice.h
Aug 10, 2026
78ba146
Migrate PNG decoder to ProgressiveDecoderDelegate and evacuate state
tsepez Aug 10, 2026
6f8882c
Remove per-codec pdf_enable_xfa_<codec> GN arguments and macros
tsepez Aug 10, 2026
d6eec12
Add unit test for CPVT_Section::OutputLines() on an empty section
leizleiz Aug 11, 2026
694c027
Add unit tests for JpegModule
tsepez Aug 11, 2026
6d6af75
Handle CFX_BidiResolver failure in CPVT_Section
Aug 11, 2026
a178a0e
Move jpegmodule.cpp to libjpeg_scanline_decoder.cpp
tsepez Aug 11, 2026
3efbe60
Extract LibjpegScanlineDecoder from JpegModule
tsepez Aug 11, 2026
bf68edf
Add baseline embedder tests for OnKeyDown shortcuts
Aug 12, 2026
fb29123
Handle SelectAll and Undo/Redo in CPWL_Edit::OnKeyDownInternal()
Aug 12, 2026
3a53053
Support Ctrl+Y for Redo in CPWL_Edit
Aug 12, 2026
fd77136
Implement SkiaScanlineDecoder for JPEG decoding via Skia
tsepez Aug 12, 2026
acf52a0
Relayout and repaint text immediately in CPWL_EditImpl::SetTextDirection
Aug 12, 2026
04a05a5
Support Skia/Rust-based JPEG decoding in JpegModule
tsepez Aug 12, 2026
34cb570
Enforce GN build constraints for pdf_enable_rust_jpeg in pdfium.gni
tsepez Aug 12, 2026
875172e
Replace generic DCHECK checks with specific operator variants
LearnPRG-py Aug 13, 2026
09c9456
Roll build/ 73c0fa98c..0d8b711d9 (122 commits)
leizleiz Aug 14, 2026
1348385
Roll clang and rust
leizleiz Aug 14, 2026
4b1d0e0
Roll Depot Tools from 1709e20d5ca2 to 732902ab86f8 (81 revisions)
Aug 17, 2026
ec4f56e
Roll Memory Tools from a7e928b8bb8d to 8d3182bb3c86 (1 revision)
Aug 17, 2026
4dfa7d7
Replace CHECKs() in png_encode.cpp with CHECK_GE()
LearnPRG-py Aug 17, 2026
28d2c7a
Add missing include in cfxjse_formcalc_context.cpp
LearnPRG-py Aug 17, 2026
5da3e72
Replace DCHECK() checks with DCHECK_NE()
LearnPRG-py Aug 17, 2026
2beaa88
Roll abseil, buildtools and libc++
leizleiz Aug 17, 2026
365a141
Make jinja2 and markupsafe DEPS entries conditional on checkout_v8
leizleiz Aug 17, 2026
e186963
Roll base/allocator/partition_allocator/ 2723da2d1..29013c81d (35 com…
leizleiz Aug 17, 2026
ae277bf
Fix crash on invalid object numbers in xref table
ademuri Aug 17, 2026
e7961d6
Add dual max delta and MSE criteria for image fuzzy matching
tsepez Aug 18, 2026
5e7f267
Expose Rust decoder features and enable fuzzy matching in test runner
tsepez Aug 18, 2026
29fe6d6
Add unit tests for CPDFContentstreamWriteUtils
leizleiz Aug 18, 2026
9ce0009
Use Dragonbox to format floating-point numbers in content streams
leizleiz Aug 18, 2026
4f3ac49
Replace or remove some C-style casts in basicmodule.cpp
LearnPRG-py Aug 18, 2026
d62a2d0
Harmonize test image suffix order and rename local pixel expectations
tsepez Aug 18, 2026
7aac65d
Support Skia/Rust-based JPEG decoding in ProgressiveDecoder
tsepez Aug 18, 2026
24765ce
Remove temporary pdf_enable_rust_jpeg override in pdfium.gni
tsepez Aug 18, 2026
78adc7c
[DEPS] update gn and siso version.
AlexOvsienko Aug 19, 2026
2e7f123
Roll build/ 0d8b711d9..06f91b7a8 (1 commit)
leizleiz Aug 19, 2026
c623d31
Reduce TIFFFaxTabEnt size to save .rodata space
tsepez Aug 19, 2026
5a20d8e
Roll build/ 06f91b7a8..02e5d563d (55 commits)
leizleiz Aug 19, 2026
ce456f5
Replace C-style cast with FX_SAFE_UINT32 in scanline decoder
LearnPRG-py Aug 19, 2026
ec7ac67
Replace C-style casts with checked_cast for uint8_t
LearnPRG-py Aug 19, 2026
c7a22e1
Simplify various STL operations
leizleiz Aug 20, 2026
277d0d8
[DEPS] Add CPython CIPD package for hermetic Python toolchain
AlexOvsienko Aug 20, 2026
2ca2e91
[DEPS] replace internal python3 usage with DEPS provided one.
AlexOvsienko Aug 20, 2026
784a524
Add FPDFPath_GetBezierControlPoints() API
tycket033-tech Aug 20, 2026
7af6136
Make fp16 DEPS entry conditional on checkout_v8
leizleiz Aug 21, 2026
e2fba6a
Change CPDF_StreamParser::GetNextWord() to return a bool
leizleiz Aug 21, 2026
162c952
Roll goldctl from 61fc12903d68 to 9379dad302e0
Aug 24, 2026
5c96edb
Use Google C++ style in CPDF_StreamParser::ReadNextObject()
leizleiz Aug 24, 2026
3cbcab3
Split up CPDF_StreamParser::ReadNextObject()
leizleiz Aug 24, 2026
d0f00ac
Keep annotation AP BBox when resizing
tycket033-tech Aug 24, 2026
c9def55
Speed up CStretchEngine: Zip() the tap loops, interchange StretchVert
jerbob92 Aug 24, 2026
bd682d8
Add unit test for PNG decoding with gAMA chunk
tsepez Aug 24, 2026
98f4542
Replace Skia PNG decoder with direct Rust FFI (png crate)
tsepez Aug 24, 2026
cd0673c
Roll build/ 617bbaced..299066ef2 (3 commits)
atetubou Aug 25, 2026
1458c54
Add unit tests for BMP progressive decoding edge cases
tsepez Aug 25, 2026
5dd9f2f
Add still more unit tests for BMP progressive decoding
tsepez Aug 25, 2026
8133598
Replace Skia BMP decoder with direct Rust FFI (image crate)
tsepez Aug 25, 2026
2089ec1
Fix unit_test broken in prior commit.
tsepez Aug 25, 2026
463e0c5
Move PNG implementation files to testing/utils
tsepez Aug 25, 2026
9a7ad11
Fix Rust BMP/PNG build rules for embedders
leizleiz Aug 26, 2026
679c5ca
Fix annoying Clippy warnings in Rust codec and font code
tsepez Aug 27, 2026
921adfa
Reorganize testing/ directories and PNG codec structure
tsepez Aug 27, 2026
187ec5a
Use CPDF_SyntaxParser::kParserMaxRecursionDepth in CPDF_StreamParser
leizleiz Aug 27, 2026
0a809f8
Composite opaque BGR rows via Zip() and skip per-pixel alpha division
jerbob92 Aug 27, 2026
0f6645c
Reinterpret CStretchEngine destination spans as pixel structs
jerbob92 Aug 27, 2026
d42d3e0
Make recursion variables unsigned in CPDF_SyntaxParser
leizleiz Aug 27, 2026
b132d1c
Add tests for the 24bpp default-decode scanline translate
jerbob92 Aug 27, 2026
b1e25a9
Unify PNG codec API under namespace png_codec
tsepez Aug 28, 2026
ad5bc13
Add Rust PNG codec backend for testing and remove Skia PNG encoder
tsepez Aug 28, 2026
b1c9c9c
Add FPDFBookmark_GetStyle() API
LearnPRG-py Aug 28, 2026
6f2272e
Make third_party/libpng an optional dependency in DEPS
tsepez Aug 28, 2026
f9a8ad1
Roll Catapult from e4d1a01c96de to 50c971fc0958 (10 revisions)
Aug 31, 2026
aed37f0
Roll Code Coverage from f2c64929fbd5 to e1878fbb1ff7 (4 revisions)
Aug 31, 2026
64af343
Roll Harfbuzz and icu
Aug 31, 2026
4f86595
Roll third_party/freetype/src/ 656cb7777..4800589f7 (10 commits)
Aug 31, 2026
6239caf
Roll tools/win/ 45843c2c1..13cb6e5d2 (1 commit)
Aug 31, 2026
732796e
Roll base/allocator/partition_allocator/ 29013c81d..89615a645 (48 com…
Aug 31, 2026
6f6c0a8
Roll third_party/skia/ 7ef86a5b0..5549c93c9 (380 commits; 91 trivial …
Aug 31, 2026
b56125d
Roll build, clang, and rust
Aug 31, 2026
59b9c0a
Roll third_party/libunwind/src/ ec7ac638d..45120ee23 (3 commits)
Aug 31, 2026
74d47ee
Add tests for ToUnicode mapping precedence
jerbob92 Aug 31, 2026
dea29fe
Clean up flatemodule.cpp
LearnPRG-py Sep 1, 2026
52b8727
Rename variables in flatemodule.cpp to follow snake_case
LearnPRG-py Sep 1, 2026
1d751da
Roll buildtools, absl, libc++, libc++abi, and llvm-libc
Sep 1, 2026
083f217
Roll v8/ caa723ab9..df65d5c8f (603 commits)
Sep 1, 2026
0ba1870
Roll testing/scripts/rust/ 6712dc59f..ead1c91bc (1 commit)
Sep 1, 2026
73b7ef7
Roll third_party/rust/ 7c4e7d9b0..4dec6f65b (81 commits)
Sep 1, 2026
8e24756
Remove inactive owner
leizleiz Sep 1, 2026
297182c
Roll third_party/clang-format/script/ 6eddfb5ec..705100819 (1 commit)
Sep 1, 2026
cfe3a24
Update gn_version to 150a9d6ba0aa7f407aa4feeabc5f03ce9aa7e04b
Sep 1, 2026
1a16a6e
Merge commit 'cfe3a2413' into embedpdf/sync/cfe3a2413
bobsingor Oct 12, 2026
39eac5b
Fix Windows SDK pin for CI builds
bobsingor Oct 12, 2026
f6915df
Fix Windows SDK compatibility in runtime build
bobsingor Oct 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/release-libpdfium.yml
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,9 @@ jobs:
throw "rc.exe not found in $rcPath"
}
$rcPath | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
# build/ pins a Windows SDK the runner may not have; build with the
# newest one it does have (patches/embedpdf-runtime/win/build.patch).
"EMBEDPDF_WIN_SDK_VERSION=$($sdk.Name)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Build target
shell: bash
run: scripts/embedpdf-runtime/build-target.sh "${{ matrix.target }}"
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
/third_party/brotli
/third_party/catapult
/third_party/clang-format
/third_party/cpython3/host
/third_party/cpython3/linux-amd64
/third_party/cpu_features/src
/third_party/depot_tools
/third_party/dragonbox/src
Expand Down
5 changes: 4 additions & 1 deletion .gn
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ buildconfig = "//build/config/BUILDCONFIG.gn"

# The python interpreter to use by default. On Windows, this will look
# for python3.exe and python3.bat.
script_executable = "python3"
script_executable = "//third_party/cpython3/host/bin/python3"

default_args = {
# Use a production-performant allocator.
Expand All @@ -17,6 +17,9 @@ default_args = {
partition_alloc_is_debug = false
enable_pkeys = false

# This security tooling is not needed.
v8_enable_generated_code_validator = false

# PDFs only need to run JavaScript.
v8_enable_webassembly = false

Expand Down
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ Haoran Tang <haoran.tang.personal@gmail.com>
Helmut Januschka <helmut@januschka.com>
Huy Ngo <huyna89@gmail.com>
Ivan Odulo <ivanodulo@gmail.com>
Jeroen Bobbeldijk <jerbob92@gmail.com>
Jiang Jiang <jiangj@opera.com>
Justin Pierce <brkfstmnchr@gmail.com>
Ke Liu <stackexploit@gmail.com>
Expand Down
45 changes: 12 additions & 33 deletions BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,15 @@ config("pdfium_common_config") {
defines += [ "PDF_ENABLE_SKIA_TYPEFACE_CHECKS" ]
}

if (pdf_use_skia && pdf_enable_rust_bmp) {
if (pdf_enable_rust_bmp) {
defines += [ "PDF_ENABLE_RUST_BMP" ]
}

if (pdf_use_skia && pdf_enable_rust_png) {
if (pdf_use_skia && pdf_enable_rust_jpeg) {
defines += [ "PDF_ENABLE_RUST_JPEG" ]
}

if (pdf_enable_rust_png) {
defines += [ "PDF_ENABLE_RUST_PNG" ]
}

Expand Down Expand Up @@ -156,18 +160,6 @@ config("pdfium_public_config") {

if (pdf_enable_xfa) {
defines += [ "PDF_ENABLE_XFA" ]
if (pdf_enable_xfa_bmp) {
defines += [ "PDF_ENABLE_XFA_BMP" ]
}
if (pdf_enable_xfa_gif) {
defines += [ "PDF_ENABLE_XFA_GIF" ]
}
if (pdf_enable_xfa_png) {
defines += [ "PDF_ENABLE_XFA_PNG" ]
}
if (pdf_enable_xfa_tiff) {
defines += [ "PDF_ENABLE_XFA_TIFF" ]
}
}
}

Expand Down Expand Up @@ -360,7 +352,7 @@ group("pdfium_unittest_deps") {
"fpdfsdk/*",
"fxbarcode/*",
"fxjs/*",
"testing/image_diff/*",
"testing/*",
"xfa/*",
]
}
Expand All @@ -383,7 +375,8 @@ test("pdfium_unittests") {
"core/fxge:unittests",
"fpdfsdk:unittests",
"testing:unit_test_support",
"testing/image_diff:unittests",
"testing:unittests",
"testing/png_codec:unittests",
"//testing/gmock",
"//testing/gtest",
]
Expand Down Expand Up @@ -444,7 +437,7 @@ test("pdfium_embeddertests") {
"fpdfsdk:embeddertests",
"fpdfsdk/formfiller:embeddertests",
"fpdfsdk/pwl:embeddertests",
"testing/image_diff",
"testing/png_codec",
"//testing/gmock",
"//testing/gtest",
]
Expand Down Expand Up @@ -479,28 +472,14 @@ test("pdfium_embeddertests") {
}
}

executable("pdfium_diff") {
visibility += [ "testing/tools:test_runner_py" ]
testonly = true
sources = [ "testing/image_diff/image_diff.cpp" ]
deps = [
"core/fxcrt",
"testing:path_service",
"testing:pixel_diff_utils",
"testing/image_diff",
"//build/win:default_exe_manifest",
]
configs += [ ":pdfium_strict_config" ]
}

group("pdfium_all") {
testonly = true
deps = [
":pdfium_diff",
":pdfium_embeddertests",
":pdfium_unittests",
"testing:pdfium_test",
"testing:pdfium_diff",
"testing/fuzzers",
"testing/pdfium_test",
"testing/tools:epdf_layer_memory_benchmark",
"testing/tools:epdf_layer_replay_soak",
"testing/tools:epdf_thread_soak",
Expand Down
Loading
Loading