)]}'
{
  "commit": "e0a5e719c91ae3b60b3fc3d6d407b55e19337be4",
  "tree": "0eb4793e5825fe24c97c659f4de8a4f9d62f3e3e",
  "parents": [
    "fad20d0e3236b2a7ebad461f32b5ca016c60fe12"
  ],
  "author": {
    "name": "Corentin Wallez",
    "email": "cwallez@chromium.org",
    "time": "Sun Mar 22 12:04:12 2026 -0700"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Sun Mar 22 12:04:12 2026 -0700"
  },
  "message": "[dawn][wire] Check that buffer is mapped in DeserializeDataUpdate.\n\nPreviously the target of the WriteHandle for a buffer was set as soon as\nthe buffer is mapped. Between the time it was first mapped and the time\nDeserializeDataUpdate was called (right before Unmap), the buffer could\nbe implicitly unmapped by a call to Device::Destroy.\n\n - Instead check for the buffer being mapped directly in\n   DeserializeDataUpdate, which remove the need to track a mapWriteState\n   on the ObjectData\u003cWGPUBuffer\u003e.\n - Update the change detecting WireTests to account to GetMappedRange\n   being done in a different place now for writable buffers.\n - Add a new test that allows injecting WireCmds directly for even more\n   precise but even more change detecting tests.\n - Add necessary backdoors to WireClient and WireTest need for the new\n   tests.\n - Link dawn::wire statically in dawn_unittests as we now need to use\n   some of its internals directly.\n\nBug: 492139412\nChange-Id: Ibe9ab95ae7456c6629434d4978f439ebfe41c4d1\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/296817\nReviewed-by: Loko Kung \u003clokokung@google.com\u003e\nCommit-Queue: Corentin Wallez \u003ccwallez@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3b935ceb04e5611e333da1e69bca0abcd2ec3f1f",
      "old_mode": 33188,
      "old_path": "include/dawn/wire/WireClient.h",
      "new_id": "6472e4057edda0285c884c9072571476c34df492",
      "new_mode": 33188,
      "new_path": "include/dawn/wire/WireClient.h"
    },
    {
      "type": "modify",
      "old_id": "04900b6af7fa17f88ba040c996cbceaf3518ff5f",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/BUILD.gn",
      "new_id": "ed0fc2e6967865910e1d03a6bfb2e985c1a93aae",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "0346239f44f776dd359fe76c9600efa623be5a90",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/wire/WireBufferMappingTests.cpp",
      "new_id": "5fbfa97a1c38073941c70aa85a7db117be833b2c",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/wire/WireBufferMappingTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "54f8392efe8717457bedf351cb071d619794b4af",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/wire/WireMemoryTransferServiceTests.cpp",
      "new_id": "17933dcb55748b8e31c7ee56c3e591a4446746f0",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/wire/WireMemoryTransferServiceTests.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3f8087b3a27bd1da1512fb15e2ea4b9b4b3e0727",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/wire/WireSpecificCommandTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "f22285e713c16a41cc1f98b9ab81074310e1ee99",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/wire/WireTest.cpp",
      "new_id": "7d26e11cc2d039b1ac1287d0108f46021136f9bd",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/wire/WireTest.cpp"
    },
    {
      "type": "modify",
      "old_id": "41e8917d8a3080378eb6fd7677143e67be893b15",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/wire/WireTest.h",
      "new_id": "6688a5245eaef47336b41c08c167c5a125b25b35",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/wire/WireTest.h"
    },
    {
      "type": "modify",
      "old_id": "98b260a47405c560d642500d935c8685db8f06e1",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/WireClient.cpp",
      "new_id": "8244522e36fc3ea26a18e8f5918d543afe790205",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/WireClient.cpp"
    },
    {
      "type": "modify",
      "old_id": "c9ecb25a2ef47e11ff1521e61a2503272f7d2956",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/server/ObjectStorage.h",
      "new_id": "b6ee3905e7bd679d544589eee6dc65818c5b21a8",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/server/ObjectStorage.h"
    },
    {
      "type": "modify",
      "old_id": "059243b4fb526aa2d1b28b49b245925ff9d0825c",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/server/ServerBuffer.cpp",
      "new_id": "3b927e7c1083f7b888dece78359a1398b8e8f7ba",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/server/ServerBuffer.cpp"
    }
  ]
}
