)]}'
{
  "commit": "16d6eb8b6204a91bc40b9431ba31a9503169b00b",
  "tree": "478759a09cefbef7fa8c4955fd3e2a172a379971",
  "parents": [
    "53cec0ad6b12d51f818199f8564b18893a844bd4"
  ],
  "author": {
    "name": "Hui Yingst",
    "email": "nigi@chromium.org",
    "time": "Sat Aug 26 00:33:16 2023 +0000"
  },
  "committer": {
    "name": "Pdfium LUCI CQ",
    "email": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Sat Aug 26 00:33:16 2023 +0000"
  },
  "message": "[Skia] Fix issues for printing 24 BPP images\n\nWhen using `CFX_SkiaDeviceDriver` for rendering to a 24 BPP bitmap, it\ncreates an internal bitmap buffer for fast processing and saves the\nactual output bitmap as `m_pOriginalBitmap`. Keeping both the original\nand the internal bitmaps up-to-date is the key to get the correct\nprinting result.\n\nThis CL improves the rendering process in the following ways:\n\n1. For `CFX_SkiaDeviceDriver` only: Add\n   `CFX_RenderDevice::SyncInternalBitmaps()` method to make the\n   underlying `m_pDeviceDriver` transfer the rendering result from its\n   internal buffer to the `CFX_RenderDevice` bitmap. This allows\n   syncing without destroying the `m_pDeviceDriver`.\n\n2. In `CPDF_DeviceBuffer::OutputToDevice()`, `pBuffer` is used for\n   creating a `CFX_RenderDevice` already before it got passed into\n   `GetBackground()` to be painted white. This means the \"old\"\n   `CFX_RenderDevice`\u0027s device driver contains an internal buffer\n   that\u0027s out-dated (without the white paint). To keep the existing\n   `CFX_RenderDevice` buffers fresh, use it as a parameter of\n   `GetBackground()` and replace `pBuffer` so that its buffer gets\n   updated and we can avoid creating a new layer of `CFX_RenderDevice`.\n\nAlso, removes the pixel tests that are fixed by this CL from the\nsuppression list.\n\nBug: chromium:1470768, pdfium:2054\nChange-Id: I8442664ae58dc528442b40a8503100f9501f5ea1\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/111431\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\nCommit-Queue: Nigi \u003cnigi@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b7722f184bcf13edbaad7f9b8e202abc28af81e1",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/render/cpdf_devicebuffer.cpp",
      "new_id": "5bf308a775d21b43109af4c8f522277eb1dd23e9",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/render/cpdf_devicebuffer.cpp"
    },
    {
      "type": "modify",
      "old_id": "41168407e953ccf2ea8338181e33706b2bd8952e",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/render/cpdf_rendercontext.cpp",
      "new_id": "7589b410e8a5d8d6277f2f21e5e242a67793d811",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/render/cpdf_rendercontext.cpp"
    },
    {
      "type": "modify",
      "old_id": "383e79818a9e1a07b2b37568045c817953cab23d",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/render/cpdf_rendercontext.h",
      "new_id": "1012e8150c75bbac64e9eaeb48fc69408201e456",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/render/cpdf_rendercontext.h"
    },
    {
      "type": "modify",
      "old_id": "26e8b7ff4bb3a6623da5d8ee2df4592c9428c4ca",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp",
      "new_id": "4cba877897f59f6878037620ed3d3e9be6a34044",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp"
    },
    {
      "type": "modify",
      "old_id": "2280f6fe7ab6fbfe8f8720dc331ce820440dcce4",
      "old_mode": 33188,
      "old_path": "core/fxge/cfx_renderdevice.cpp",
      "new_id": "93c330646fe6e8c0e3aac858b32318cad6e1c7e5",
      "new_mode": 33188,
      "new_path": "core/fxge/cfx_renderdevice.cpp"
    },
    {
      "type": "modify",
      "old_id": "8e6e38014e146566200efe7b6d53a8a3318a92c0",
      "old_mode": 33188,
      "old_path": "core/fxge/cfx_renderdevice.h",
      "new_id": "b7ce80961a8dc88bdf14ac99d91bfb9a8918c396",
      "new_mode": 33188,
      "new_path": "core/fxge/cfx_renderdevice.h"
    },
    {
      "type": "modify",
      "old_id": "b549ea256cae5654b56758a041926af25d2842a9",
      "old_mode": 33188,
      "old_path": "core/fxge/renderdevicedriver_iface.cpp",
      "new_id": "1b97a0842afec9ff24610dab3914be9bd5d764fb",
      "new_mode": 33188,
      "new_path": "core/fxge/renderdevicedriver_iface.cpp"
    },
    {
      "type": "modify",
      "old_id": "09dd93cc0da55a76a7ea9e9d7c0a587bc2780c71",
      "old_mode": 33188,
      "old_path": "core/fxge/renderdevicedriver_iface.h",
      "new_id": "4f9690bb364a95b5ce6614f432b49be1233fd478",
      "new_mode": 33188,
      "new_path": "core/fxge/renderdevicedriver_iface.h"
    },
    {
      "type": "modify",
      "old_id": "25d4a1eef75e33fd7fe86256c7609f055df864c2",
      "old_mode": 33188,
      "old_path": "core/fxge/skia/fx_skia_device.cpp",
      "new_id": "6a7927286aec2e962b3bf186589816826818c157",
      "new_mode": 33188,
      "new_path": "core/fxge/skia/fx_skia_device.cpp"
    },
    {
      "type": "modify",
      "old_id": "c66ceb8ca9d70f31cbdbe0126f5346e92808fd53",
      "old_mode": 33188,
      "old_path": "core/fxge/skia/fx_skia_device.h",
      "new_id": "29d699b111897cd7d1a34b448822b50dd3410015",
      "new_mode": 33188,
      "new_path": "core/fxge/skia/fx_skia_device.h"
    },
    {
      "type": "modify",
      "old_id": "377aef59800a0c5375fd536e09ab2e7880b05bf4",
      "old_mode": 33188,
      "old_path": "testing/SUPPRESSIONS",
      "new_id": "51eefa41417da6da3b89c8fd51454e3a8d71dfba",
      "new_mode": 33188,
      "new_path": "testing/SUPPRESSIONS"
    }
  ]
}
