)]}'
{
  "commit": "91f250b5a4154059e42c5f61d85dba0250cccdb0",
  "tree": "d3c3ce342a2e649e4ae97305c8a0be57191bb5a3",
  "parents": [
    "65c8c6e8d7581c1a87504960c51fa4b21282f9bb"
  ],
  "author": {
    "name": "Jonah Williams",
    "email": "jonahwilliams@google.com",
    "time": "Tue Nov 26 14:34:00 2024 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Nov 26 22:34:00 2024 +0000"
  },
  "message": "[engine] reland: more consistently flush message loops tasks (#56815)\n\nChanges the following shell callbacks to flush the dart event loop:\r\n\r\n* OnPlatformViewSetViewportMetrics\r\n* OnPlatformViewDispatchPointerDataPacket\r\n* OnPlatformViewDispatchPlatformMessage\r\n* OnPlatformViewSetSemanticsEnabled\r\n* OnPlatformViewSetAccessibilityFeatures\r\nUsing a new TaskRunner API RunNowAndFlushMessages. If the task runner can run tasks on the current thread, this will immediately invoke a callback and then post an empty task to the event loop to ensure dart listeners fire.\r\n\r\nUnlike https://github.com/flutter/engine/pull/56738, does not touch the vsync API - which looks like it depends on scheduling behavior today, at least for iOS.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5f9dd019c685ec31ba81b5e55a1f0c5701059196",
      "old_mode": 33188,
      "old_path": "fml/task_runner.cc",
      "new_id": "8920a8f73ab257d2d16a407b7f81c45f1df467d8",
      "new_mode": 33188,
      "new_path": "fml/task_runner.cc"
    },
    {
      "type": "modify",
      "old_id": "885c1b3efb566855df67757799e447d88e664632",
      "old_mode": 33188,
      "old_path": "fml/task_runner.h",
      "new_id": "6bc1c1a06cd8ad017c14d70bcf6bef71d1ab830d",
      "new_mode": 33188,
      "new_path": "fml/task_runner.h"
    },
    {
      "type": "modify",
      "old_id": "60727567e5737b33a458b1a65e7779168bd454b8",
      "old_mode": 33188,
      "old_path": "shell/common/fixtures/shell_test.dart",
      "new_id": "24dc227aa8f407b408e37e4b62bc94d37ec573cd",
      "new_mode": 33188,
      "new_path": "shell/common/fixtures/shell_test.dart"
    },
    {
      "type": "modify",
      "old_id": "c6078f78c7de6e8f29431cb02b2cf02486cae5d1",
      "old_mode": 33188,
      "old_path": "shell/common/shell.cc",
      "new_id": "ba28d8e950514a3d3f7a7b3c99a616512907f2fb",
      "new_mode": 33188,
      "new_path": "shell/common/shell.cc"
    },
    {
      "type": "modify",
      "old_id": "ba56e9fb57944cc6e80dfffe744037a254f0013e",
      "old_mode": 33188,
      "old_path": "shell/common/shell_unittests.cc",
      "new_id": "8c6a0c2f4788cb53f7c7836f8917e164e2d985a7",
      "new_mode": 33188,
      "new_path": "shell/common/shell_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "80074fa3ef9826331c77c2e6b27febed7eca6618",
      "old_mode": 33188,
      "old_path": "shell/common/vsync_waiter.cc",
      "new_id": "fdc8c648466e99790a149d62593699b44bc83882",
      "new_mode": 33188,
      "new_path": "shell/common/vsync_waiter.cc"
    }
  ]
}
