)]}'
{
  "commit": "ad5bc13610718aefe737bd9b2f1b258d08e39428",
  "tree": "7a17f761fbcaca163cef3575ed98a0a2058dbb3d",
  "parents": [
    "b1e25a915269097c65b7c5e7dcbe37c1a61e8f35"
  ],
  "author": {
    "name": "Tom Sepez",
    "email": "tsepez@google.com",
    "time": "Thu Aug 27 18:04:17 2026 -0700"
  },
  "committer": {
    "name": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Aug 27 18:04:17 2026 -0700"
  },
  "message": "Add Rust PNG codec backend for testing and remove Skia PNG encoder\n\nReplace the legacy Skia-based PNG backend in testing/png_codec with\na pure Rust backend using the png crate via CXX bindings:\n- Add testing/png_codec/png_codec_rust_ffi.rs implementing PNG\n  encoding (BGR, BGRA, RGBA, Gray) and decoding via the png crate.\n- Add testing/png_codec/png_codec_rust.cpp implementing the\n  png_codec C++ API using the Rust FFI.\n- Delete testing/png_codec/png_codec_skia.cpp, decoupling PNG\n  testing code completely from Skia.\n- Update testing/png_codec/BUILD.gn to switch between the Rust PNG\n  and libpng backends based on pdf_enable_rust_png.\n- Update testing/png_codec/DEPS.\n\nTAG\u003dagy\nCONV\u003ddb6cb163-190b-47d4-bbdc-b519626ce208\n\nChange-Id: I60a69517a58f9d6d53990daca30782d0c3b20004\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/156030\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\nCommit-Queue: Tom Sepez \u003ctsepez@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2afa9862d8e92ffbfd8ef7ae7f3dbd747695d2c4",
      "old_mode": 33188,
      "old_path": "testing/png_codec/BUILD.gn",
      "new_id": "5b1d7940ea91ae2e6b792d76334330275271a04b",
      "new_mode": 33188,
      "new_path": "testing/png_codec/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "a9cc1c682e4517553171a3f85dbe43ee85bca4f7",
      "old_mode": 33188,
      "old_path": "testing/png_codec/DEPS",
      "new_id": "17b552adced963fc530df3f702627f4f1f3af906",
      "new_mode": 33188,
      "new_path": "testing/png_codec/DEPS"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8d5cf1f12db7e8d231e408ab7fc9e13355bf1d92",
      "new_mode": 33188,
      "new_path": "testing/png_codec/png_codec_rust.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0dfa81d16f52df5c1555691b858e7ab47b82f3b6",
      "new_mode": 33188,
      "new_path": "testing/png_codec/png_codec_rust_ffi.rs"
    },
    {
      "type": "delete",
      "old_id": "2e1b7ed4db9171ded9390b7a77a2d7dcb16f9f19",
      "old_mode": 33188,
      "old_path": "testing/png_codec/png_codec_skia.cpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
