)]}'
{
  "commit": "f8ecbc0c3d021e1077234bfa2e66245a09a685bd",
  "tree": "cb1eab31a9d24ac651fbeaf0443b21a2e8eb7150",
  "parents": [
    "818191d11404ad8381d64f2f4647744b1fc7baa9"
  ],
  "author": {
    "name": "Loïc Sharma",
    "email": "737941+loic-sharma@users.noreply.github.com",
    "time": "Wed Apr 17 09:44:28 2024 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Apr 17 16:44:28 2024 +0000"
  },
  "message": "[Windows] Add/remove view failures should not hang (#52164)\n\nIf the embedder API\u0027s `FlutterEngineAddView` and `FlutterEngineRemoveView` don\u0027t return `kSuccess`, their callbacks won\u0027t be invoked. See: [flutter.dev/go/multi-view-embedder-apis](https://flutter.dev/go/multi-view-embedder-apis).\r\n\r\nPreviously, the Windows embedder would hang in this scenario as it blocks until the callbacks are invoked. Now, the Windows embedder only blocks if these embedder APIs return `kSuccess`.\r\n\r\nKudos to @dkwingsmt for catching this!\r\n\r\nPart of https://github.com/flutter/flutter/issues/144810\r\nPart of https://github.com/flutter/flutter/issues/142845\r\n\r\n[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bd1705440040d0dd32fafe376e86755f40feb2d3",
      "old_mode": 33188,
      "old_path": "shell/platform/windows/flutter_windows_engine.cc",
      "new_id": "69621369096c5464979751862f0e235e9a68e5bd",
      "new_mode": 33188,
      "new_path": "shell/platform/windows/flutter_windows_engine.cc"
    },
    {
      "type": "modify",
      "old_id": "f9ebdbc278dfb84b9b5d999e7cd99e4d902aabaf",
      "old_mode": 33188,
      "old_path": "shell/platform/windows/flutter_windows_engine_unittests.cc",
      "new_id": "a7b45f7490ef32824b4a0bd28821323ca1090cec",
      "new_mode": 33188,
      "new_path": "shell/platform/windows/flutter_windows_engine_unittests.cc"
    }
  ]
}
