)]}'
{
  "commit": "2fa0023677fe7df035346890aab175e1570b365a",
  "tree": "ec35eb0a3914df212b56d78f4acac8b17db0a1d5",
  "parents": [
    "5c52c5d1fdc12e390f15fd658f33d70df2fe8f64"
  ],
  "author": {
    "name": "Tarun Saini",
    "email": "sainitarun@google.com",
    "time": "Thu Jun 04 01:52:16 2026 -0700"
  },
  "committer": {
    "name": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Jun 04 01:52:16 2026 -0700"
  },
  "message": "[android][webgpu] Fix thread safety and resource leaks in WebGpu helper.\n\nMigrates the WebGpu helper and associated instrumentation tests to run\nsequentially on a dedicated single-threaded CoroutineDispatcher.\n- Prevents thread leaks by closing the dispatcher service upon close()\n  if owned by the instance.\n- Prevents reentrancy deadlocks during teardown by using a ThreadLocal\n  to run cleanup inline when already on the WebGPU thread.\n- Updates all tests to run within the dispatcher\u0027s execution context\n  and clean up dispatchers on teardown.\n\nBug: 490019860\nChange-Id: I716ce0e616105c65a8dce7d489c62d9b3156df69\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/311456\nReviewed-by: Loko Kung \u003clokokung@google.com\u003e\nCommit-Queue: Tarun Saini \u003csainitarun@google.com\u003e\nReviewed-by: Mridul Goyal \u003cmridulgoyal@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2005bc2892fc429f3d72486a08173ad57b02aa94",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ApiRequirement.kt",
      "new_id": "5470787a72b838b626427f45376e8505493cf002",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ApiRequirement.kt"
    },
    {
      "type": "modify",
      "old_id": "cd39d32a5255f03374d829c53a78c11862729e9e",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/AsyncHelperTest.kt",
      "new_id": "691dbf269233474f396c1f31507a71ca1bdce79d",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/AsyncHelperTest.kt"
    },
    {
      "type": "modify",
      "old_id": "aeafa2eeda797a8f69ec5b92e31bb6d86fe280dc",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/BitmapUtils.kt",
      "new_id": "9b7c2ecabef33c422d29e1da7b1b2961dce9e2a4",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/BitmapUtils.kt"
    },
    {
      "type": "modify",
      "old_id": "327be564d9a50080f720a7e9dfe9806bafe5f900",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/BufferTest.kt",
      "new_id": "8fdbe4a1f0108221ef0c4e4758ee78411552102c",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/BufferTest.kt"
    },
    {
      "type": "modify",
      "old_id": "bb2726e78ad260260629781ff18427ee8ef78b17",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/CommandEncoderTest.kt",
      "new_id": "0f60a56e2de6f24545126d5820b5875b92d4d470",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/CommandEncoderTest.kt"
    },
    {
      "type": "modify",
      "old_id": "9662ba626049d0d6c3a6ffe5a1bcf5bc404f32f7",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ComputePassEncoderTest.kt",
      "new_id": "cfca2b5343cfd09d7715c3c22b3a63f248e50ceb",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ComputePassEncoderTest.kt"
    },
    {
      "type": "modify",
      "old_id": "5a14a2d3b7df5f7e61a171593893f098d48b1e91",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/DeviceTest.kt",
      "new_id": "b922e649da2ce53cf59c2f23b474e328b9894537",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/DeviceTest.kt"
    },
    {
      "type": "modify",
      "old_id": "4c48eae616f32545ecfecbb0ec7177924fb506ed",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ErrorTest.kt",
      "new_id": "7a8c77d278184129536bf223a6caa3e8af6dcd69",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ErrorTest.kt"
    },
    {
      "type": "modify",
      "old_id": "690d1868ae5f4c0c54115e940f8647d70e92e001",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ExtensionsTest.kt",
      "new_id": "e3d12d7acc4997b6ee7215b4ecf7e27150797f98",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ExtensionsTest.kt"
    },
    {
      "type": "modify",
      "old_id": "241ba7aacf0c7ae58ca28ba42cbef0d256e24197",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ExternalCacheStorage.kt",
      "new_id": "9d6a5ba4872d525961bf775fb2f2970609e4a4b7",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ExternalCacheStorage.kt"
    },
    {
      "type": "modify",
      "old_id": "e5d820a1e7cc90e4373ab7c73bd059fe1a552598",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/FeaturesTest.kt",
      "new_id": "fba8cbf643be646ee48d9dd33da81c14dbe4dbe9",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/FeaturesTest.kt"
    },
    {
      "type": "modify",
      "old_id": "d72228c76e8d6311a82b762d40566f2c38482eff",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ImageCompare.kt",
      "new_id": "2c8f2668737091bbcdf5445f90465ca1ffb58cee",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ImageCompare.kt"
    },
    {
      "type": "modify",
      "old_id": "4bd2e396ab8c5eae8b48191029d0372bc6e747ef",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ImageTest.kt",
      "new_id": "edb1b6a82310442fca6fcc2242c488a13c6bbdea",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ImageTest.kt"
    },
    {
      "type": "modify",
      "old_id": "6c6e4cebbde05d4d32631e783d2cac039e42af26",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/MultisampleStateTest.kt",
      "new_id": "ea6f1ffe8c30843c40b2079d0b72ec75e4f9b102",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/MultisampleStateTest.kt"
    },
    {
      "type": "modify",
      "old_id": "d8f5adcd80f1d101be1ae9464920784bf74ef951",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ObjectTest.kt",
      "new_id": "96df7dbd4b4ce0f7ba83dd5089d02cc2cb2cbcbc",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ObjectTest.kt"
    },
    {
      "type": "modify",
      "old_id": "afab25c2ece655654e70e306d937b16e4badcb77",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/QuerySetTest.kt",
      "new_id": "94f1f51c3f1ce0f5c4d76ed7008c31df50a60401",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/QuerySetTest.kt"
    },
    {
      "type": "modify",
      "old_id": "88dc7f6183baed24a04002abc188405413474d4e",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/RenderBundleEncoderTest.kt",
      "new_id": "de1f45067a37c872e027a49f2f43dfec38ce9fa6",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/RenderBundleEncoderTest.kt"
    },
    {
      "type": "modify",
      "old_id": "b27b998ea3abc077152fc9e9765df8a50e3f70ee",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/RenderPassEncoderTest.kt",
      "new_id": "aa83f40bb579287b47a6e227938fe01b2ce45ab2",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/RenderPassEncoderTest.kt"
    },
    {
      "type": "modify",
      "old_id": "e51c1d07ab832662e1025e4abb2cb73ed38e50ac",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ShaderModuleTest.kt",
      "new_id": "fc848c29303a10a3941a40d52737cc0f2dbb0f8e",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/ShaderModuleTest.kt"
    },
    {
      "type": "modify",
      "old_id": "ee4ed241c5b072f46566cad06be9a57a7ba2cdb4",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/Storage.kt",
      "new_id": "76af4621018ad0739b5d131f2c8d1f8d15cc0733",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/Storage.kt"
    },
    {
      "type": "modify",
      "old_id": "fc59c9b381123b3e1173d044f385b5f405f991ca",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/StorageFactory.kt",
      "new_id": "f74f6ec707e55ffe75a2ba50dee2cf6dcd0d010e",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/StorageFactory.kt"
    },
    {
      "type": "modify",
      "old_id": "82cb8051f3b02aff59ff8e273095ebdd32fc7ce5",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/StorageProvider.kt",
      "new_id": "e03328c12cb4d79813b28b8582b25eefcbfe5bf1",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/StorageProvider.kt"
    },
    {
      "type": "modify",
      "old_id": "8ba93faeb310d7d1182a0c0ab8f2dac376f93570",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/SurfaceTest.kt",
      "new_id": "fcc8ba5b2d41efa30e69b2780ddaa7cc2e09dd00",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/SurfaceTest.kt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bbff5910f1f114c3f12708a044344534d6be2b40",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/TestUtils.kt"
    },
    {
      "type": "modify",
      "old_id": "35f096fb2d74717680cfb434d7c0568009ccae34",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/TextureTest.kt",
      "new_id": "4a8ff84594233e81a3111d66710e510da3888bef",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/androidTest/java/androidx/webgpu/TextureTest.kt"
    },
    {
      "type": "modify",
      "old_id": "92003b0c50178b89c9c8803dd15132e545486d19",
      "old_mode": 33188,
      "old_path": "tools/android/webgpu/src/main/java/androidx/webgpu/helper/WebGpu.kt",
      "new_id": "729d8198c539b742b966adf12b5d99f504744de6",
      "new_mode": 33188,
      "new_path": "tools/android/webgpu/src/main/java/androidx/webgpu/helper/WebGpu.kt"
    }
  ]
}
