)]}'
{
  "commit": "eaebc130d0eb72496e8a43cbdea4f500d4252c53",
  "tree": "90b7998bd29805ea9bb95705c678bba10c956040",
  "parents": [
    "e0b782b232789a68e6fc03f784b0d37033cbca70"
  ],
  "author": {
    "name": "April Kallmeyer",
    "email": "ask@chromium.org",
    "time": "Fri Oct 17 13:17:55 2025 -0700"
  },
  "committer": {
    "name": "Pdfium LUCI CQ",
    "email": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Oct 17 13:17:55 2025 -0700"
  },
  "message": "Fix undo/redo when typing over selected text\n\nThe return key also, in some cases before this CL, created multiple undo\nitems so undo/redo didn\u0027t work correctly for return either. Backspace\nincidentally did work correctly before this.\n\nThis CL adds CPWL_EditImpl::TypeChar() to encapsulate the logic of\nhandling the backspace and return key which was previously in\nCPWL_Edit::OnCharInternal(). This way CPWL_Edit isn\u0027t responsible for\nmanaging the tricky undo queue state.\n\nThe logic in TypeChar() could be simpler but I went to extra lengths to\nminimize the number of items in the undo queue. Mainly I did this\nbecause the queue limit test expects typing to be exactly one undo item.\nI also didn\u0027t want to effectively divide the undo limit by 3 by adding 3\nundo items for every character typed.\n\nAlso deleted some now-dead code for forwarding calls to CPWL_EditImpl.\n\nFixed: 446727801\nChange-Id: Id9a82cb40aedca7ca2605a7362a83050fca0da51\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/136992\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\nCommit-Queue: April Kallmeyer \u003cask@chromium.org\u003e\nReviewed-by: Tom Sepez \u003ctsepez@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8e9a3f2bd2a80924cc78196f01fd6b204bd003ca",
      "old_mode": 33188,
      "old_path": "fpdfsdk/pwl/cpwl_edit.cpp",
      "new_id": "d6ff46f65ffb12e29a85f1e281ba2bfd9ed286e9",
      "new_mode": 33188,
      "new_path": "fpdfsdk/pwl/cpwl_edit.cpp"
    },
    {
      "type": "modify",
      "old_id": "0ca52dcf4eaaec18d116114fbcde0c3df3ae56b0",
      "old_mode": 33188,
      "old_path": "fpdfsdk/pwl/cpwl_edit.h",
      "new_id": "d409a321b3feefc984d957d7a61db2baa0f36b3f",
      "new_mode": 33188,
      "new_path": "fpdfsdk/pwl/cpwl_edit.h"
    },
    {
      "type": "modify",
      "old_id": "f6f178d331c76344b0d9205fe809ea0b2cb15671",
      "old_mode": 33188,
      "old_path": "fpdfsdk/pwl/cpwl_edit_embeddertest.cpp",
      "new_id": "4f3ee1c08e662fe410ae8e29f800850d34d56eeb",
      "new_mode": 33188,
      "new_path": "fpdfsdk/pwl/cpwl_edit_embeddertest.cpp"
    },
    {
      "type": "modify",
      "old_id": "f5a73d0d2e0971a7ea36be1fdc54df0369104287",
      "old_mode": 33188,
      "old_path": "fpdfsdk/pwl/cpwl_edit_impl.cpp",
      "new_id": "bf05094949d5f0b451782f872405fb64d9c2fdef",
      "new_mode": 33188,
      "new_path": "fpdfsdk/pwl/cpwl_edit_impl.cpp"
    },
    {
      "type": "modify",
      "old_id": "51f0855f26ee2dc9cb0c801ff551f37cf5201912",
      "old_mode": 33188,
      "old_path": "fpdfsdk/pwl/cpwl_edit_impl.h",
      "new_id": "e8154abe537bd154dee3c25b92c71a38e65b3362",
      "new_mode": 33188,
      "new_path": "fpdfsdk/pwl/cpwl_edit_impl.h"
    }
  ]
}
