)]}'
{
  "commit": "3c890398bda440703c55f25cdaf1f800a700970d",
  "tree": "05e180d089aaaa695f2ac152a3fdd31bc1bc0d58",
  "parents": [
    "d290e60754ba0824d1981b60902674ee70628cc4"
  ],
  "author": {
    "name": "Lokbondo Kung",
    "email": "lokokung@google.com",
    "time": "Mon Mar 16 12:47:12 2026 -0700"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Mar 16 12:47:12 2026 -0700"
  },
  "message": "[dawn][wire] Ensure that Devices on the Server always call Destroy.\n\n- Because the wire server creates and manages callback information\n  for all Devices, we need to ensure that all Devices\u0027 callbacks\n  are fired before the server goes away. Otherwise, if the server\n  is deleted, and somehow there is an outstanding reference to the\n  backing native Device, the callbacks can happen and reference\n  freed memory.\n- Updates Wire testing infrastructure to:\n  1) Use a NiceMock for the ProcTable to avoid overly strict tests\n     that end up adding a lot implementation detail expectations.\n  2) Add expecatations that successfully created Devices on the\n     server should call Destroy to ensure that their callbacks are\n     all flushed.\n  3) Remove some tech-debt/unused members and functions after the\n     change.\n\nBug: 491518608\nChange-Id: I136f7c94ee7e2d79b5b04796bf850a990300aba4\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/297136\nReviewed-by: Kai Ninomiya \u003ckainino@chromium.org\u003e\nCommit-Queue: Loko Kung \u003clokokung@google.com\u003e\nReviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "26cb32f8589815cad240328561ce0a3cd53a7e30",
      "old_mode": 33188,
      "old_path": "generator/templates/dawn/wire/server/ServerDoers.cpp",
      "new_id": "ebf8cad51397faa6c31badc88aa57460b68b7763",
      "new_mode": 33188,
      "new_path": "generator/templates/dawn/wire/server/ServerDoers.cpp"
    },
    {
      "type": "modify",
      "old_id": "37e4527af6e9e26a21110559dabe6ce878f931fd",
      "old_mode": 33188,
      "old_path": "generator/templates/mock_api.cpp",
      "new_id": "3d8ef4880167840cd1ffecd970cfa61f2789ac10",
      "new_mode": 33188,
      "new_path": "generator/templates/mock_api.cpp"
    },
    {
      "type": "modify",
      "old_id": "d286dbfd2a070d7899038f04dabe93cbcd4088bb",
      "old_mode": 33188,
      "old_path": "generator/templates/mock_api.h",
      "new_id": "0c669ae0356884e489e1d4bab45106cd5ffbe831",
      "new_mode": 33188,
      "new_path": "generator/templates/mock_api.h"
    },
    {
      "type": "modify",
      "old_id": "84d66b0b50157d005424db07d72e681fcdabccf6",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/wire/WireAdapterTests.cpp",
      "new_id": "6052aaec720fda5200b8d83572be9fb84f439dc6",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/wire/WireAdapterTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "f607fc2e42762e1a2d32771f964a8197aa0fada7",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/wire/WireBufferMappingTests.cpp",
      "new_id": "0346239f44f776dd359fe76c9600efa623be5a90",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/wire/WireBufferMappingTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "389a4684f6c3236e400e6affb34e3000e4799f87",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/wire/WireDisconnectTests.cpp",
      "new_id": "291c7590a27d1ebdf607e7f731d8a4c40dbdb1a8",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/wire/WireDisconnectTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "4ecfe81ee45ec87439223617a8950a5f5b249e64",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/wire/WireQueueTests.cpp",
      "new_id": "18813bfdedc56d209ee334681dae819b8d2908af",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/wire/WireQueueTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "41ef35466022603ffa24a9fbfe8e5e8bb722573b",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/wire/WireTest.cpp",
      "new_id": "f22285e713c16a41cc1f98b9ab81074310e1ee99",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/wire/WireTest.cpp"
    },
    {
      "type": "modify",
      "old_id": "b8d61a4ff4bf1bb9f739f3cdc5424667c1ee67e3",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/wire/WireTest.h",
      "new_id": "41e8917d8a3080378eb6fd7677143e67be893b15",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/wire/WireTest.h"
    },
    {
      "type": "modify",
      "old_id": "a02ea0b5fd5965a06868b24013a50e635e5b2fb6",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/server/Server.cpp",
      "new_id": "5694397fe652328e0985a474ccaafefa0c065f57",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/server/Server.cpp"
    },
    {
      "type": "modify",
      "old_id": "c94b4fc9611e738355f901c1eed028f81df14315",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/server/Server.h",
      "new_id": "0ea07108bc14ede5395a967c67292bea4a7dfcf7",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/server/Server.h"
    }
  ]
}
