)]}'
{
  "commit": "2a9bb984e11334c3f13f4dc7d331b109a7099884",
  "tree": "f72fd20312f512c9551adccea8b0d4dc54544ae3",
  "parents": [
    "3255b0618db473adb5ca217bd0c6f1e6013ce37d"
  ],
  "author": {
    "name": "Andy Phan",
    "email": "andyphan@chromium.org",
    "time": "Mon Jul 27 15:36:46 2026 -0700"
  },
  "committer": {
    "name": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jul 27 15:36:46 2026 -0700"
  },
  "message": "Fix color key masking for images with \u003e 8 bits per pixel\n\nIn CPDF_DIB::GetScanline(), color key masking was only implemented for\nimages with 8 or fewer bits per pixel, or for 24-bit RGB images. For\nother image formats, such as 16-bit grayscale, the code fell back to\nfilling the mask buffer\u0027s alpha channel with 0xFF (opaque), effectively\nignoring the color key mask. This caused masked pixels to render with\ntheir raw color (usually black) instead of being transparent.\n\nTo resolve this, generalize the fallback path in CPDF_DIB::GetScanline()\nto handle arbitrary bit-depths and component counts. A new helper\nfunction IsPixelInColorKeyRange() extracts pixel components using\nGetBits8() and checks them against the color key bounds. The fallback\npath uses this helper to correctly populate the alpha channel, setting\nit to 0 for masked pixels and 0xFF for opaque pixels.\n\nTAG\u003dagy\nCONV\u003d40e28386-4f52-4db6-a72f-2fbe86431c92\n\nBug: 536543461\nChange-Id: I5f7f96adfc35cad5251375ff52aaad12f175eae6\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/152711\nCommit-Queue: Andy Phan \u003candyphan@chromium.org\u003e\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "12ee1d989bf2b0cf0b70e8f7cee5d448585ef4bf",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_dib.cpp",
      "new_id": "5869e30afa2dc20baed76f6c14fb7c405b7d99cf",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_dib.cpp"
    },
    {
      "type": "modify",
      "old_id": "a2970a04a4a95d1c1a57ece8480df91b7a345b84",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_dib.h",
      "new_id": "812b98b6f89685c38da3f0cebb8fa1de72f6b4ed",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_dib.h"
    },
    {
      "type": "modify",
      "old_id": "a1e8e743349ea8bc7e6e8614ce5b3a2ab09acdae",
      "old_mode": 33188,
      "old_path": "testing/SUPPRESSIONS",
      "new_id": "7497bbbd84ebd7925cdc0fb4fc65f8ecb1805151",
      "new_mode": 33188,
      "new_path": "testing/SUPPRESSIONS"
    }
  ]
}
