)]}'
{
  "log": [
    {
      "commit": "07248566708bbd98447f948b61731e6cc275c5fd",
      "tree": "0366f5e28e571bae3b79f32e7eac776e8c602931",
      "parents": [
        "ddb43a36077c7fa8b61ce2a1aa55e71d008ed480"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Thu Jul 30 02:32:06 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 30 06:32:06 2026 +0000"
      },
      "message": "Roll Skia from 78afc18c9ba0 to b8bda91f02db (3 revisions) (#190268)\n\nhttps://skia.googlesource.com/skia.git/+log/78afc18c9ba0..b8bda91f02db\n\n2026-07-30 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\ndebugger-app-base from 3824c8346c38 to 8f7ec5882f46\n2026-07-30\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n2026-07-30\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC aaclarke@google.com,bwils@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "ddb43a36077c7fa8b61ce2a1aa55e71d008ed480",
      "tree": "eadaad43b11fa4d8fb6aaf8b3a9a39e24e16a262",
      "parents": [
        "d2248aaa228bff240d4a8398afc41ee34e36a19a"
      ],
      "author": {
        "name": "flutteractionsbot",
        "email": "154381524+flutteractionsbot@users.noreply.github.com",
        "time": "Wed Jul 29 22:44:13 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 30 05:44:13 2026 +0000"
      },
      "message": "Revert: Split the platform and cpuArch part of TargetPlatform (#190258)\n\nReverts: [Split the platform and cpuArch part of\nTargetPlatform](https://github.com/flutter/flutter/pull/189479)\n\nInitiated by: @chingjun\n\nReason for reverting: Broke postsubmit test. See\nhttps://github.com/flutter/flutter/issues/190252\n\nOriginal PR Author: @chingjun\n\nReviewed By: @bkonyi\n\nThe original PR description is provided below:\n\nConvert `enum TargetPlatform` into a class with two fields:\n`TargetPlatformType` and `CpuArch`.\n\nFixes: https://github.com/flutter/flutter/issues/190252"
    },
    {
      "commit": "d2248aaa228bff240d4a8398afc41ee34e36a19a",
      "tree": "32349952afc993e14ebbdebbe0fc211cd83c576b",
      "parents": [
        "1e927971a0f98ae14a9ad38b45c4024ae7f0d25a"
      ],
      "author": {
        "name": "Yusuf İhsan Görgel",
        "email": "developeryusuf@icloud.com",
        "time": "Thu Jul 30 06:00:00 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 30 03:00:00 2026 +0000"
      },
      "message": "Return null from RenderProxyBoxMixin.computeDryBaseline when the child has no baseline (#189723)\n\n`RenderProxyBoxMixin.computeDryBaseline` forwards the child\u0027s dry\nbaseline as `result ?? super.computeDryBaseline(constraints, baseline)`.\nWhen a child is present but has no baseline, the null falls through to\n`RenderBox.computeDryBaseline`, which asserts that the class \"does not\nimplement computeDryBaseline\". Returning null is explicitly allowed by\nthe `computeDryBaseline` contract, so any proxy box above such a child\ncrashes when queried for a dry baseline, for example a baseline-aligned\n`WidgetSpan` wrapping `Semantics`.\n\nThe mixin now returns the child\u0027s answer as-is when a child is present,\nand only falls back to the base implementation when there is no child.\nThis matches what `RenderConstrainedBox` already does in the same file.\n\nAdded a rendering-layer regression test. The widget-level reproduction\nfrom the issue also passes with this change.\n\nFixes https://github.com/flutter/flutter/issues/189711\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n\n---------\n\nCo-authored-by: chunhtai \u003c47866232+chunhtai@users.noreply.github.com\u003e"
    },
    {
      "commit": "1e927971a0f98ae14a9ad38b45c4024ae7f0d25a",
      "tree": "3c0f7a75b46e66ae29e7a56dbe2e10bf585b1230",
      "parents": [
        "ad372d343dab4ff77d57a916f84dafa584917cc5"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Wed Jul 29 21:24:33 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 30 01:24:33 2026 +0000"
      },
      "message": "Roll Skia from 6fea713d32ec to 78afc18c9ba0 (4 revisions) (#190257)\n\nhttps://skia.googlesource.com/skia.git/+log/6fea713d32ec..78afc18c9ba0\n\n2026-07-29 kjlubick@google.com Fix mismatch with maps in SkRP\n2026-07-29 kjlubick@google.com Address incorrect handling of a map\npointer in SkRP\n2026-07-29 jmbetancourt@google.com Add a global logging handler for Skia\nclients\n2026-07-29 alexisdavidc@google.com [Bug] Replaced reliance on FcFontSort\nwith FcFontMatch\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC aaclarke@google.com,bwils@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "ad372d343dab4ff77d57a916f84dafa584917cc5",
      "tree": "318d0d9e1fbcd9a4ff683d4be877888eb211e4fb",
      "parents": [
        "f63d93bf3088ba05952d1dbc4663e016dd913e0d"
      ],
      "author": {
        "name": "flutter-pub-roller-bot",
        "email": "137456488+flutter-pub-roller-bot@users.noreply.github.com",
        "time": "Wed Jul 29 17:42:05 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 30 00:42:05 2026 +0000"
      },
      "message": "Roll pub packages (#190259)\n\nThis PR was generated by `flutter update-packages --force-upgrade`."
    },
    {
      "commit": "f63d93bf3088ba05952d1dbc4663e016dd913e0d",
      "tree": "236cb148fc956b32ed25d1773d5b25a14619ffe4",
      "parents": [
        "b1ae9ca144127fa87eb86d0cdf73f6c028964ec3"
      ],
      "author": {
        "name": "Navaron Bracke",
        "email": "brackenavaron@gmail.com",
        "time": "Thu Jul 30 01:02:05 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 23:02:05 2026 +0000"
      },
      "message": "[cross imports] Check examples cross imports (#187662)\n\nThis PR adds a check that checks examples under \u003cflutter root\u003e/examples\nfor cross imports.\n\nSince most of the structure is shared with the existing cross imports\nchecker, I opted to share some bits and pieces in a utils file as well.\n\nA new test suite was added, which mirrors most of the setup in the\nexisting test.\n\nCurrently the examples checker is too strict by design, as it does not\nallow any cross imports at all (including Material examples importing\nCupertino). There are some edge cases that we should fix (such as\ncontext menu examples?) where both imports _are_ allowed. But for now,\nsince we have no checks in place, I opted for strict first,\nexempt later, since this gives us a good starting point.\n\nI did notice that examples like\n`examples/api/lib/material/context_menu/editable_text_toolbar_builder.0.dart`,\ncould definitely be cleaned up before we add exemptions. To be looked at\nlater.\n\nFixes https://github.com/flutter/flutter/issues/187645\n\n*If you had to change anything in the [flutter/tests] repo, include a\nlink to the migration guide as per the [breaking change policy].*\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "b1ae9ca144127fa87eb86d0cdf73f6c028964ec3",
      "tree": "b8689e2fd9075929e86ae7e038629791a4b0efb4",
      "parents": [
        "a79793d530b775f6efd74a653ebcad2b681ee9f4"
      ],
      "author": {
        "name": "John \"codefu\" McDole",
        "email": "codefu@google.com",
        "time": "Wed Jul 29 15:30:07 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 22:30:07 2026 +0000"
      },
      "message": "ci: mac verify binaries still has to wait on linux_host_engine (#190239)\n\nThe `Linux linux_host_engine` builds the required engine stamp file;\nthis is required for the tool to work correctly... without this extra\nwait, the workflow races mac builds vs linux builds."
    },
    {
      "commit": "a79793d530b775f6efd74a653ebcad2b681ee9f4",
      "tree": "68f2095c7710fd25f4d280ab4b04ffeb7157cce6",
      "parents": [
        "b242a054ce9c727be54ea23d32dd4037c2698f72"
      ],
      "author": {
        "name": "gaaclarke",
        "email": "30870216+gaaclarke@users.noreply.github.com",
        "time": "Wed Jul 29 22:26:10 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 22:26:10 2026 +0000"
      },
      "message": "Adds analytics to macos impeller opt in/out (#190220)\n\nfixes https://github.com/flutter/flutter/issues/190164\n\nThis matches the logic that shows up in\n[`build_ios.dart`](https://github.com/flutter/flutter/blob/e769fffb6c3346381b62693fe6ca16bee5ad2144/packages/flutter_tools/lib/src/commands/build_ios.dart#L1100)\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "b242a054ce9c727be54ea23d32dd4037c2698f72",
      "tree": "ddac7a9e6333784796354a50019b7e55cb70f155",
      "parents": [
        "a54899ee83d032c03cd16545b403b06df8f37c2c"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Wed Jul 29 18:26:09 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 22:26:09 2026 +0000"
      },
      "message": "Roll Skia from 0f35bba4945c to 6fea713d32ec (6 revisions) (#190230)\n\nhttps://skia.googlesource.com/skia.git/+log/0f35bba4945c..6fea713d32ec\n\n2026-07-29 borenet@google.com [infra] Remove BuildStats jobs\n2026-07-29 jmbetancourt@google.com Fix SkLog license\n2026-07-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from 863cb98140c0 to 952256d4e39e (1 revision)\n2026-07-29 michaelludwig@google.com [graphite] Allow appending to\nbinding lists within a layer when overlaps detected\n2026-07-29 borenet@google.com [infra] Move all results uploads into the\ntasks themselves\n2026-07-29 thomsmit@google.com [graphite] Rename GradientBuffer to\nStorageBuffer\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC aaclarke@google.com,bwils@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "a54899ee83d032c03cd16545b403b06df8f37c2c",
      "tree": "d6436f0cb5d3251775bab64640f3d939d8191c05",
      "parents": [
        "3e04a2d231267450a81f425840bf9c0062913bb0"
      ],
      "author": {
        "name": "Chris Bracken",
        "email": "chris@bracken.jp",
        "time": "Thu Jul 30 06:39:01 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 21:39:01 2026 +0000"
      },
      "message": "iOS: Fix Swift warning in TracingTests (#190203)\n\nFixes the following warning due to unnecessary use of `defer` on the\nlast line of a scope:\n\n\n./engine/src/flutter/shell/platform/darwin/common/framework/Source/TracingTests.swift:44:5:\nwarning: \u0027defer\u0027 statement at end of scope always executes immediately;\nreplace with \u0027do\u0027 statement to silence this warning\n    42 |   @Test func testTraceScopeTokenDoesNotCrash() {\n    43 |     let scope \u003d Tracing.beginScope(\"TestScope\")\n    44 |     defer { scope.end() }\n| `- warning: \u0027defer\u0027 statement at end of scope always executes\nimmediately; replace with \u0027do\u0027 statement to silence this warning\n    45 |   }\n    46 | }\n\n## Pre-launch Checklist\n\n- [X] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [X] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [X] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [X] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [X] I signed the [CLA].\n- [ ] I listed at least one issue that this PR fixes in the description\nabove.\n- [X] I updated/added relevant documentation (doc comments with `///`).\n- [X] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [X] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [X] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "3e04a2d231267450a81f425840bf9c0062913bb0",
      "tree": "ef88018bf001cf25c20aae3d6b5102d0f133740c",
      "parents": [
        "5473876cb6179b54d4281252f01b11e7b0acf2be"
      ],
      "author": {
        "name": "Matt Boetger",
        "email": "matt.boetger@gmail.com",
        "time": "Wed Jul 29 11:54:26 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 18:54:26 2026 +0000"
      },
      "message": "Convert all gradle-wrapper.properties in /dev to use distribution \u0027bin\u0027 (#190226)\n\ns/all/bin\n\n## Pre-launch Checklist\n\n- [X] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [X] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [X] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [X] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [X] I signed the [CLA].\n- [X] I listed at least one issue that this PR fixes in the description\nabove.\n- [X] I updated/added relevant documentation (doc comments with `///`).\n- [X] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [X] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [X] All existing and new tests are passing."
    },
    {
      "commit": "5473876cb6179b54d4281252f01b11e7b0acf2be",
      "tree": "0e85fe5d2418a23555e7a6da8cbd9332036ba2cf",
      "parents": [
        "484df22fe9b898277598b8ef42e20b54db1f023f"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Wed Jul 29 12:47:08 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 16:47:08 2026 +0000"
      },
      "message": "Roll Packages from 3e636359fb00 to dd11626c81a3 (11 revisions) (#190216)\n\nhttps://github.com/flutter/packages/compare/3e636359fb00...dd11626c81a3\n\n2026-07-29 stuartmorgan@google.com [pigeon] Clean up legacy registrant\ncode (flutter/packages#12205)\n2026-07-29 me@davidmiguel.com [go_router] Add\nBlockedInitialNavigationException for blocked initial deep links\n(flutter/packages#12213)\n2026-07-28 stuartmorgan@google.com [file_selector] Switch to Swift\nTesting (flutter/packages#12235)\n2026-07-28 269567208+reidbaker-agent@users.noreply.github.com Exempt\nevals directories from version checks (flutter/packages#12299)\n2026-07-28 dkwingsmt@users.noreply.github.com [material_ui,\ncupertino_ui] Migrate macros that contain `@tool`\n(flutter/packages#12271)\n2026-07-28 katelovett@google.com [material_ui, cupertino_ui] Fix API doc\nreferences (flutter/packages#12274)\n2026-07-28 43054281+camsim99@users.noreply.github.com\n[camera_android_camerax] Delete `GeneratedCameraxLibrary.java`\n(flutter/packages#12294)\n2026-07-28 engine-flutter-autoroll@skia.org Roll Flutter from\n99889603182d to 0f0246377b1c (16 revisions) (flutter/packages#12300)\n2026-07-28 developeryusuf@icloud.com [vector_graphics_compiler] Ignore\nunrecognized font-weight values (flutter/packages#12199)\n2026-07-28 stuartmorgan@google.com [tool] Support promoting to 1.0 in\nbatch releases (flutter/packages#12262)\n2026-07-28 1063596+reidbaker@users.noreply.github.com ci: Fix Zizmor\ngithub-env failure in install_flutter action (flutter/packages#12298)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/flutter-packages-flutter-autoroll\nPlease CC flutter-ecosystem@google.com on the revert to ensure that a\nhuman\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "484df22fe9b898277598b8ef42e20b54db1f023f",
      "tree": "638430202aa30e2e19e2758ff3a6654e58ab0050",
      "parents": [
        "9c98b2622b4dcc656c1d822a6c2497cfd6c316f4"
      ],
      "author": {
        "name": "Navaron Bracke",
        "email": "brackenavaron@gmail.com",
        "time": "Wed Jul 29 18:47:07 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 16:47:07 2026 +0000"
      },
      "message": "[test cross imports] flutter_test cross import fixes (#189265)\n\nThis PR fixes some more tests in flutter_test in relation to importing\nMaterial\n\nThe `finders_test` was cleaned up a lot, but the remainder in that file\nis related to Material Tooltip, which is still a point of discussion\nrelating to its test Finders.\n\nPart of https://github.com/flutter/flutter/issues/177415\n\n*If you had to change anything in the [flutter/tests] repo, include a\nlink to the migration guide as per the [breaking change policy].*\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "9c98b2622b4dcc656c1d822a6c2497cfd6c316f4",
      "tree": "ec776af793c753d1166263a53e176c94fcd7b7c8",
      "parents": [
        "ec66198385678c262df0886445a387772c646866"
      ],
      "author": {
        "name": "Ram-Dawson",
        "email": "135011905+Ram-Dawson@users.noreply.github.com",
        "time": "Thu Jul 30 00:43:03 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 16:43:03 2026 +0000"
      },
      "message": "fix(tool): parse ADB device lists by connection state (#189973)\n\nFixes #189972\n\nRelated to #189430 and #189369. This supersedes the narrower parser\napproach from closed PR #189431.\n\n## Summary\n\nADB formats long device-list rows as [`%-22s\n%s`](https://android.googlesource.com/platform/packages/modules/adb/+/1cf2f017d312f73b3dc53bda85ef2610e35a80e9/transport.cpp#1410):\nthe serial field has a minimum width, so a long wireless serial can be\nseparated from its connection state by a single space. mDNS conflict\nsuffixes can also introduce whitespace inside the serial.\n\n[PR #189369](https://github.com/flutter/flutter/pull/189369) correctly\nprotects serials containing whitespace by requiring two spaces or a tab\nbefore the state. [PR\n#189431](https://github.com/flutter/flutter/pull/189431) proposed a\nnarrower one-space fallback for serials without whitespace and was\nclosed after #189369 landed. The combined case has both an mDNS conflict\nsuffix and a valid single-space state delimiter, so neither earlier rule\naccepts it.\n\nThis change parses the explicit known ADB connection-state field instead\nof inferring a boundary from whitespace width. The serial capture is\ngreedy so state-like words and mDNS conflict suffixes remain part of the\nserial, and right-side padding from ADB\u0027s minimum-width field is\nremoved.\n\n## Tests\n\nAdded regression coverage for:\n\n- ordinary single-space wireless mDNS serials;\n- mDNS conflict serials containing ` (2)` with `device` and `offline`\nstates;\n- every state currently recognized by Flutter Tools;\n- serials that contain state-like words; and\n- existing padded and tab-separated output forms.\n\nRan:\n\n```text\nflutter test packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart\nflutter analyze packages/flutter_tools\n```\n\nThe device-discovery test file passed with 16 tests, and analysis\nreported no issues.\n\n## Real-device validation\n\nAfter deleting `bin/cache/flutter_tools.snapshot`, unmodified\n`upstream/master` at `0ed149e63db1f68d2042063baf0a99d969ccd84b` omitted\nthe wireless Android device and reported an unexpected ADB parsing\nfailure. With this patch, `flutter devices -v` listed the device with\nthe complete mDNS conflict serial and successfully used that serial for\n`adb -s ... shell getprop`.\n\n## Scope\n\nThis PR changes only Flutter Tools parsing and its Android\ndevice-discovery tests. It does not change ADB, mDNS pairing, wireless\ntransport behavior, or device-state handling after a row has been\nparsed.\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing."
    },
    {
      "commit": "ec66198385678c262df0886445a387772c646866",
      "tree": "0f3862fbcf2372410eef2bbcacbc21f50ffc2734",
      "parents": [
        "2757a77a73df6a78eeb4a52637edcb12cc66d98b"
      ],
      "author": {
        "name": "Lau Ching Jun",
        "email": "chingjun@google.com",
        "time": "Wed Jul 29 09:43:02 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 16:43:02 2026 +0000"
      },
      "message": "Split the platform and cpuArch part of TargetPlatform (#189479)\n\nConvert `enum TargetPlatform` into a class with two fields:\n`TargetPlatformType` and `CpuArch`."
    },
    {
      "commit": "2757a77a73df6a78eeb4a52637edcb12cc66d98b",
      "tree": "6616fb9ed46337e7d91434ecede4ff915e468dbc",
      "parents": [
        "2e990feef7557a9e6db3dc656922b0bc020bad65"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Wed Jul 29 12:41:15 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 16:41:15 2026 +0000"
      },
      "message": "Roll Skia from 3ae9e364d30b to 0f35bba4945c (2 revisions) (#190215)\n\nhttps://skia.googlesource.com/skia.git/+log/3ae9e364d30b..0f35bba4945c\n\n2026-07-29 borenet@google.com Reapply \"[infra] Remove all remaining\nreferences to gsutil\"\n2026-07-29 kjlubick@google.com Update fuzz docs\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC aaclarke@google.com,bwils@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "2e990feef7557a9e6db3dc656922b0bc020bad65",
      "tree": "44f2a0ae95c647bf9aaa4e9d85a42ceb5571ea24",
      "parents": [
        "e769fffb6c3346381b62693fe6ca16bee5ad2144"
      ],
      "author": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Wed Jul 29 17:06:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 15:06:22 2026 +0000"
      },
      "message": "[web] Fix deferred loading with wasm (#190140)\n\nIt seemed deferred loading via the recently added ([0])\n`--enable-wasm-deferred-loading` never really worked.\n\nThe embedder (flutter in this case) needs to invoke the callback\nfunction with either the wasm module bytes or a response object (which\nis a stream of bytes).\n\nCurrently it invokes it with a promise of a response object which does\nnot work atm.\n\n[0] flutter/flutter@80157ee66cdc2ffd0d61b3f8ca586a245c4fd040"
    },
    {
      "commit": "e769fffb6c3346381b62693fe6ca16bee5ad2144",
      "tree": "c0f1f65f87b1428cd6d3a6baca131c64a5a27d2c",
      "parents": [
        "00e0a73384b86671457f091d3b327dc597cd3d1a"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Wed Jul 29 10:21:39 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 14:21:39 2026 +0000"
      },
      "message": "Roll Dart SDK from 1bbaacba6a5a to 43f7de5f4977 (1 revision) (#190211)\n\nhttps://dart.googlesource.com/sdk.git/+log/1bbaacba6a5a..43f7de5f4977\n\n2026-07-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-76.0.dev\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/dart-sdk-flutter\nPlease CC aaclarke@google.com,dart-vm-team@google.com on the revert to\nensure that a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "00e0a73384b86671457f091d3b327dc597cd3d1a",
      "tree": "857f9ebf8890b42fd2d668dcf57d8fd0d594fb39",
      "parents": [
        "5a238f5812b38b924785a79448497b583006af38"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Wed Jul 29 08:42:39 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 12:42:39 2026 +0000"
      },
      "message": "Roll Skia from 119cae396625 to 3ae9e364d30b (6 revisions) (#190208)\n\nhttps://skia.googlesource.com/skia.git/+log/119cae396625..3ae9e364d30b\n\n2026-07-29\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n2026-07-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE\nfrom ff4855759c68 to c09abf1d3a9f (9 revisions)\n2026-07-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia\nInfra from 42f146e4e61d to 1ec13b321130 (2 revisions)\n2026-07-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nbazel_build from 348e064d2951b8209... to 70733f74d415bf389... (1\nrevision)\n2026-07-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\ndebugger-app-base from a46a65d7ba05 to 3824c8346c38\n2026-07-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn\nfrom 10934785b43b to 92c4ae4cfeb2 (21 revisions)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC aaclarke@google.com,bwils@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "5a238f5812b38b924785a79448497b583006af38",
      "tree": "4a2f6ead1859dbd47a4f09f1f7d077bbc892b686",
      "parents": [
        "89d96ef494ad6bd8e83a154018a0a338860570f9"
      ],
      "author": {
        "name": "Matej Knopp",
        "email": "matej.knopp@gmail.com",
        "time": "Wed Jul 29 14:03:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 12:03:47 2026 +0000"
      },
      "message": "[Win32] Ignore mouse move events without capture when dragging (#190029)\n\nFixes https://github.com/flutter/flutter/issues/189583\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "89d96ef494ad6bd8e83a154018a0a338860570f9",
      "tree": "a120177b92aa3ae6fcac7fc7a4b9cd42b4a3104d",
      "parents": [
        "d776076fe2f7470f4da43cc6084137e5bbe35b6d"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Wed Jul 29 05:23:36 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 09:23:36 2026 +0000"
      },
      "message": "Roll Dart SDK from 49c637261348 to 1bbaacba6a5a (7 revisions) (#190196)\n\nhttps://dart.googlesource.com/sdk.git/+log/49c637261348..1bbaacba6a5a\n\n2026-07-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-75.0.dev\n2026-07-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-74.0.dev\n2026-07-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-73.0.dev\n2026-07-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-72.0.dev\n2026-07-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-71.0.dev\n2026-07-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-70.0.dev\n2026-07-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-69.0.dev\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/dart-sdk-flutter\nPlease CC aaclarke@google.com,dart-vm-team@google.com on the revert to\nensure that a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "d776076fe2f7470f4da43cc6084137e5bbe35b6d",
      "tree": "15499155de16667924c90e65175265d41185297a",
      "parents": [
        "abb7f63412c1df28384e0d4e7a8f7fb43122989d"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Wed Jul 29 02:31:32 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 06:31:32 2026 +0000"
      },
      "message": "Roll Skia from 30ad01017a46 to 119cae396625 (2 revisions) (#190183)\n\nhttps://skia.googlesource.com/skia.git/+log/30ad01017a46..119cae396625\n\n2026-07-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\njsfiddle-base from 3c8958265e84 to 3b978e3a5600\n2026-07-29\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC aaclarke@google.com,bwils@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "abb7f63412c1df28384e0d4e7a8f7fb43122989d",
      "tree": "6c8afa41d3c7edf25217f29173c5202001cd9584",
      "parents": [
        "cb0b0dd674c1f2d39700ca70dab0c902a282bd88"
      ],
      "author": {
        "name": "Soroush Yousefpour",
        "email": "46920873+gabrimatic@users.noreply.github.com",
        "time": "Wed Jul 29 07:45:42 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 05:45:42 2026 +0000"
      },
      "message": "Fix NestedScrollView example crash when switching tabs on desktop (#186993)\n\nFixes https://github.com/flutter/flutter/issues/183199\n\nThe `NestedScrollView` API example that uses a `TabBar`/`TabBarView`\nthrows on desktop when you scroll an inner list and then switch tabs.\nThe inner `CustomScrollView`s are coordinated by the `NestedScrollView`\nthrough a shared controller, which can be attached to more than one\n`ScrollPosition` at a time (for example mid-transition between tabs).\nThe automatic desktop scrollbar attaches to that shared controller, and\na single scrollbar cannot represent multiple positions, so\n`RawScrollbar` throws the multiple-position assertion.\n\nThis leaves the framework unchanged and fixes the example itself: the\n`TabBarView` body is wrapped in a `ScrollConfiguration` that disables\nthe default scrollbars, since a single scrollbar cannot correctly\nrepresent the coordinated inner positions. A regression test reproduces\nthe exact assertion from the issue (scroll, then a mouse-wheel pointer\nsignal during a tab transition) and confirms it no longer throws.\n\n## Tests\n\n- `flutter test\nexamples/api/test/widgets/nested_scroll_view/nested_scroll_view.0_test.dart`\n- `flutter analyze\nexamples/api/lib/widgets/nested_scroll_view/nested_scroll_view.0.dart\nexamples/api/test/widgets/nested_scroll_view/nested_scroll_view.0_test.dart`\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "cb0b0dd674c1f2d39700ca70dab0c902a282bd88",
      "tree": "ae93423c564429c721a1bdcb7f72d75ccdb72be8",
      "parents": [
        "e47832bd1ccf074a65dadcc9e97df785d54fde06"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Tue Jul 28 23:41:23 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 03:41:23 2026 +0000"
      },
      "message": "Roll Fuchsia Linux SDK from OZkZC_2CZ_G5rbMIS... to J8rVTlBnjnUpuHYk3... (#190174)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/fuchsia-linux-sdk-flutter\nPlease CC aaclarke@google.com,zra@google.com on the revert to ensure\nthat a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "e47832bd1ccf074a65dadcc9e97df785d54fde06",
      "tree": "150d489393ed99b9eac75ee1ff64c5b30f3d8e18",
      "parents": [
        "3392c917d5615ebde5b16c11450001ed9e38df5b"
      ],
      "author": {
        "name": "Kilian Schulte",
        "email": "git@schultek.dev",
        "time": "Wed Jul 29 05:24:08 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 03:24:08 2026 +0000"
      },
      "message": "Update widget location tracking to use the new generalized api (#189725)\n\nThis refactors Flutters widget tracking setup to use the new generalized\n`CreationLocation` API introduced in\nhttps://github.com/dart-lang/sdk/commit/9e8fdef17c0a8a346e233188ba8170e9dc95bcc4\n\nCC @dcharkes \n\n## Pre-launch Checklist\n\n- [ ] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [ ] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [ ] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [ ] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [ ] I signed the [CLA].\n- [ ] I listed at least one issue that this PR fixes in the description\nabove.\n- [ ] I updated/added relevant documentation (doc comments with `///`).\n- [ ] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [ ] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [ ] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "3392c917d5615ebde5b16c11450001ed9e38df5b",
      "tree": "38e1a27dee6130b6e2b3cffca3b09d258e2da789",
      "parents": [
        "9d9836621d8a7afaf83b047909b789e19fe38f1b"
      ],
      "author": {
        "name": "Bernardo Ferrari",
        "email": "bernaferrari2@gmail.com",
        "time": "Wed Jul 29 00:16:24 2026 -0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 03:16:24 2026 +0000"
      },
      "message": "Avoid unnecessary work in `BoxDecoration` and `RenderPhysicalModel` (#187891)\n\nPart of https://github.com/flutter/flutter/issues/187894\n\nImprove `box_decoration.dart` \n\n\nIn Flutter’s codebase that pattern already exists in similar hit-test\ncode (RenderClipOval.hitTest\nhttps://github.com/flutter/flutter/blob/8c17c5e0677a5c923a9f606d8963e2e0350e6ec2/packages/flutter/lib/src/rendering/proxy_box.dart#L1932).\n\nOld code:\n```dart\nfinal double distance \u003d (position - center).distance;\nreturn distance \u003c\u003d math.min(size.width, size.height) / 2.0;\n```\nOffset.distance computes: `sqrt(dx * dx + dy * dy)`\n\n---\n\nNew code:\n```dart\nfinal double radius \u003d math.min(size.width, size.height) / 2.0;\nreturn (position - center).distanceSquared \u003c\u003d radius * radius;\n```\nOffset.distanceSquared computes only: `dx * dx + dy * dy`\nThen it compares that to radius * radius.\nMathematically: `sqrt(dx² + dy²) \u003c\u003d r` is equivalent to: `dx² + dy² \u003c\u003d\nr²`\n\n\nThen, I also found an issue: `elevated` shadow path doesn\u0027t need to be\ninitialized when there is no elevation to use it for."
    },
    {
      "commit": "9d9836621d8a7afaf83b047909b789e19fe38f1b",
      "tree": "8822fb4979bd6edcfbb96830f56ba79de904701f",
      "parents": [
        "ec81c5f4c4effdb2539cd0063289753e1f892626"
      ],
      "author": {
        "name": "David Miguel Lozano",
        "email": "me@davidmiguel.com",
        "time": "Wed Jul 29 04:56:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 02:56:20 2026 +0000"
      },
      "message": "Fix web context-menu client lifecycle in SelectableRegion (#189587)\n\nOn web, `PlatformSelectableRegionContextMenu._activeClient` — the static\n`SelectionContainerDelegate` that the right-click `mousedown` listener\nreads — can end up pointing at a detached or disposed delegate, because\nof three lifecycle defects:\n\n1. `detach` has an inverted condition — `if (_activeClient !\u003d client) {\n_activeClient \u003d null; }`. Detaching the active client leaves it\nregistered, while detaching an unrelated client wipes another region\u0027s\nregistration.\n2. `SelectableRegionState._handleFocusChanged` calls `attach`\nunconditionally at the end of the method, so a region that just lost\nfocus is immediately re-registered.\n3. `SelectableRegionState.dispose` never detaches, so the static can\nkeep pointing at a disposed delegate.\n\nTogether these produce a crash on web when the user right-clicks during\na route transition: the listener calls `getTransformTo(null)` on the\nstale delegate and hits `\"getTransformTo cannot be called before\nSelectionContainer is laid out\"` (`selection_container.dart:303`). We\nhit this in a production web app.\n\nThis PR flips the `detach` condition, moves the re-attach into the\nfocused branch, and detaches in `dispose` before disposing the delegate.\nIt also adds a `@visibleForTesting` `debugActiveClient` getter,\nmirroring the existing `debugOverrideRegisterViewFactory` pattern, since\nthe delegate is otherwise unobservable from tests. Three new browser\ntests in `selectable_region_context_menu_test.dart` isolate the defects;\neach is red before the fix and green after it.\n\nA follow-up commit hardens the detach paths against\n`BrowserContextMenu.enabled` changing at runtime. Attach stays gated on\nthe full dynamic check, but the focus-loss and dispose detach paths now\ngate on `kIsWeb` alone, so a delegate attached while the menu was\nenabled is still detached after the menu is disabled. This is safe\nbecause `detach` is identity-selective: calling it for a never-attached\ndelegate is a no-op. Two more browser tests cover unfocus and disposal\nafter `BrowserContextMenu.disableContextMenu()`, bringing it to five\nlifecycle tests, each red before its fix and green after.\n\nFixes https://github.com/flutter/flutter/issues/189575\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "ec81c5f4c4effdb2539cd0063289753e1f892626",
      "tree": "835b01a0e1c09f5272fab9f9175ae102307a4750",
      "parents": [
        "a92b95206b981c6f1570ab427f35392938fc01fa"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Tue Jul 28 22:28:55 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 02:28:55 2026 +0000"
      },
      "message": "Roll Skia from 70733f74d415 to 30ad01017a46 (2 revisions) (#190173)\n\nhttps://skia.googlesource.com/skia.git/+log/70733f74d415..30ad01017a46\n\n2026-07-29 jrosengren@microsoft.com Adding override for incremental\ndecoding as both Rust PNG and Rust BMP support it while the base class\nSkCodec returns false.\n2026-07-28 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from 0d9c229af89c to 863cb98140c0 (4 revisions)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC aaclarke@google.com,bwils@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "a92b95206b981c6f1570ab427f35392938fc01fa",
      "tree": "99d98922b485d475b23be3454cee31310c056ff9",
      "parents": [
        "2a230d1e8037a412a52374bda191dccfb2a1bd61"
      ],
      "author": {
        "name": "Jason Simmons",
        "email": "jason-simmons@users.noreply.github.com",
        "time": "Wed Jul 29 01:58:00 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 01:58:00 2026 +0000"
      },
      "message": "Manual roll of Dart from 28e63ac22d8d to 49c637261348 (#190158)\n\nThis contains a change to the Dart analyzer that affects how exclude\npaths are used in analysis_options.yaml files.\n\n(see\nhttps://dart.googlesource.com/sdk.git/+/7c44c487f41e3a19bafa1fb7c309d6035d5e036b)\n\nfixes https://github.com/flutter/flutter/issues/190169"
    },
    {
      "commit": "2a230d1e8037a412a52374bda191dccfb2a1bd61",
      "tree": "0ed665a3d437fff775a47f535a675672ab71b4d0",
      "parents": [
        "59c14b661c6cf20f60200b5ff5c9cd474d654210"
      ],
      "author": {
        "name": "awnoa",
        "email": "zerouali.bardai.omar@gmail.com",
        "time": "Wed Jul 29 03:20:08 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 01:20:08 2026 +0000"
      },
      "message": "Clarify CustomScrollView use cases (#189692)\n\n\u003c!--\nThanks for filing a pull request!\nReviewers are typically assigned within a week of filing a request.\nTo learn more about code review, see our documentation on Tree Hygiene:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n--\u003e\n\nThis updates the `CustomScrollView` API documentation to describe its\ncommon use case more directly: combining different kinds of scrollable\ncontent. The introduction now also calls out `SliverToBoxAdapter`, so\nreaders can see how regular box widgets fit alongside lists, grids, and\nexpanding headers.\n\nFixes #142673.\n\nTests: not run (documentation-only change; comment-only changes are\nautomatically test-exempt).\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [ ] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [ ] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [ ] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "59c14b661c6cf20f60200b5ff5c9cd474d654210",
      "tree": "da6b2223f610bc193ae515c86b7c26facdbd193e",
      "parents": [
        "83c28004460586b54281185896995da882e3f338"
      ],
      "author": {
        "name": "Bruno Corona",
        "email": "brunocorona.alcantar@gmail.com",
        "time": "Tue Jul 28 19:09:55 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 01:09:55 2026 +0000"
      },
      "message": "Fix TreeSliver first node clipping during expand/collapse animation (#188626)\n\n## Description\n\nWhile a `TreeSliver` node expands/collapses, its children should be\nclipped beneath the node (at the node\u0027s trailing edge). This worked for\nevery node except the first: node index 0 clipped at its *leading* edge,\nso its children painted over the node during the animation.\n\nThe cause was a special case in `RenderTreeSliver.paint` that conflated\n\"no parent\" with \"parent is index 0\":\n\n```dart\n(parentIndex \u003d\u003d 0 ? 0.0 : itemExtentBuilder(parentIndex, layoutDimensions)!)\n```\n\nThis branch only runs for the clipped segments after the first (the\nfirst segment is painted unclipped beforehand), so `parentIndex` is\nalways a real animating parent whose extent must be added — including\nindex 0. The fix always adds the parent\u0027s extent.\n\n## Demo\n\nVideo showing the bug and the fix:\n\n\nhttps://github.com/user-attachments/assets/db19c35c-c249-4a92-afde-5fb1e6f9f2fb\n\n## Related Issues\n\nFixes https://github.com/flutter/flutter/issues/188305\n\n## Tests\n\nI added the following tests:\n\nRegression tests in `sliver_tree_test.dart` that pump the toggle\nanimation to its midpoint and assert the clip-rect top edge:\n- First node (index 0) clips at its trailing edge (`rowExtent`), not\n`0.0`.\n- Non-first node (index 1) clips at its trailing edge (`rowExtent * 2`),\nconfirming no regression for other nodes.\n\n\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing."
    },
    {
      "commit": "83c28004460586b54281185896995da882e3f338",
      "tree": "b69239dfdc7dbf8c7a441089fc84e06e7305e40c",
      "parents": [
        "e26a93d9a4f780bf377c97bbfe5d426111a4d614"
      ],
      "author": {
        "name": "Chris Bracken",
        "email": "chris@bracken.jp",
        "time": "Wed Jul 29 09:50:56 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 00:50:56 2026 +0000"
      },
      "message": "iOS: Migrate VSyncClient tests to Swift Testing (#190054)\n\nSwift Testing has no equivalent of XCTest\u0027s expectation /\nwaitForExpectations, so the object-lifetime tests have have been updated\nto use DispatchSemaphore, which is what we do in ResizeSynchronizerTest\nand what most closely resembles the previous code, plus provides the\nwait semantics and thread synchronisation we need.\n\n`confirmation()`/`confirm()` can\u0027t be used since it provides no\nwait/signal semantics. `confirmation` returns as soon as its block\nreturns (whether or not `confirm` was called). Ref: [Validate\nasynchronous\nbehaviors](https://developer.apple.com/documentation/testing/migratingfromxctest#Validate-asynchronous-behaviors)\nsection.\n\n`withCheckedContinuation` can\u0027t be used since its docs clearly state \n\"you must invoke the continuation’s resume method exactly once\", which\nisn\u0027t viable with a CADisplayLink vsync callback. Ref:\n[Discussion](https://developer.apple.com/documentation/swift/withcheckedcontinuation(function:_:)#discussion)\nsection.\n\nNo semantic changes; this is just migrating the tests.\n\n## Pre-launch Checklist\n\n- [X] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [X] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [X] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [X] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [X] I signed the [CLA].\n- [ ] I listed at least one issue that this PR fixes in the description\nabove.\n- [X] I updated/added relevant documentation (doc comments with `///`).\n- [X] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [X] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [X] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "e26a93d9a4f780bf377c97bbfe5d426111a4d614",
      "tree": "45542ba773c2e0d6edf4e864dfa605abb286e11f",
      "parents": [
        "1b19b36e85baea6cfd25cc597318ee11db979c84"
      ],
      "author": {
        "name": "Valentin Vignal",
        "email": "32538273+ValentinVignal@users.noreply.github.com",
        "time": "Wed Jul 29 08:11:55 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 00:11:55 2026 +0000"
      },
      "message": "Remove no shuffle from flutter_driver extension_test.dart and mock flutter.process channel (#187559)\n\nPart of https://github.com/flutter/flutter/issues/85160\n\n\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "1b19b36e85baea6cfd25cc597318ee11db979c84",
      "tree": "46570f674fe458f19028c48a7c93234be747c410",
      "parents": [
        "5631ff3e9c42b4f52604fced587a7de57fb441c4"
      ],
      "author": {
        "name": "Felipe Morschel",
        "email": "52160996+FMorschel@users.noreply.github.com",
        "time": "Tue Jul 28 21:09:04 2026 -0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 00:09:04 2026 +0000"
      },
      "message": "Adds missing await on `instantiateImageCodecFromBuffer` (#188910)\n\n\u003c!--\nThanks for filing a pull request!\nReviewers are typically assigned within a week of filing a request.\nTo learn more about code review, see our documentation on Tree Hygiene:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n--\u003e\n\nThis is merely a work towards:\n\n- https://github.com/dart-lang/sdk/issues/62555.\n\nWe are now making the new `analyzer` warning trigger on non-`async`\ncases too because that is probably what the code is _meant_ to do.\n\nI don\u0027t expect this change to break any tests. If it does, we caught an\nuntracked error.\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [ ] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\n\nCo-authored-by: zhongliugo \u003czhongliu88889@gmail.com\u003e"
    },
    {
      "commit": "5631ff3e9c42b4f52604fced587a7de57fb441c4",
      "tree": "202f576f4f11df707c7b8a7e1739a4523a0c4ade",
      "parents": [
        "c83f80b2367baf0560fd9c73553a10b2fc51df5b"
      ],
      "author": {
        "name": "Harry Terkelsen",
        "email": "1961493+harryterkelsen@users.noreply.github.com",
        "time": "Tue Jul 28 17:07:33 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 00:07:33 2026 +0000"
      },
      "message": "[web] Provide Content-Length header for CanvasKit files in flutter test (#190155)\n\nThis adds the `Content-Length` header when serving CanvasKit files in\nthe `shelf` test server. This prevents `shelf` from falling back to\n`Transfer-Encoding: chunked`, which triggers a bug in Chrome 145\u0027s\nWebAssembly compilation that causes random test hangs. This builds upon\nPR #189623 which partially mitigated the issue via caching.\n\nFixes https://github.com/flutter/flutter/issues/189275\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "c83f80b2367baf0560fd9c73553a10b2fc51df5b",
      "tree": "a95823532120c44254e586b7c6386c9c3004d321",
      "parents": [
        "365616426cc5a5c90548825b8f6c68d0d2d2c30c"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Tue Jul 28 17:07:33 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 00:07:33 2026 +0000"
      },
      "message": "Use super-parameter in two_dimensional_utils (#189957)\n\nWork towards https://github.com/dart-lang/sdk/issues/59226\n\nWe are reporting some missed cases of \u0027use_super_parameters\u0027.\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [ ] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "365616426cc5a5c90548825b8f6c68d0d2d2c30c",
      "tree": "dc564a70de8a8f740c2863ddab6c5be3ea9ca60a",
      "parents": [
        "d2e37546701ea4e80447ffcda148335e8463d056"
      ],
      "author": {
        "name": "Bruno Corona",
        "email": "brunocorona.alcantar@gmail.com",
        "time": "Tue Jul 28 18:06:01 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 00:06:01 2026 +0000"
      },
      "message": "Scope SemanticsTester per test in scrollable_semantics_test (#189800)\n\nThe test file used a single top-level `SemanticsTester semantics;`\nshared across all tests. That is an anti-pattern: state can bleed\nbetween tests if one fails to dispose it.\n\nThis scopes the `SemanticsTester` locally within each test instead,\nremoving the shared top-level variable. No behavior change to the tests\nthemselves.\n\nFixes #189799\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord]."
    },
    {
      "commit": "d2e37546701ea4e80447ffcda148335e8463d056",
      "tree": "3f63c5d9128bc9947d67701f5d25432d62ae1f9e",
      "parents": [
        "99a98f13425921c8339a4f8d438c0130fe2df355"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Tue Jul 28 20:06:01 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 00:06:01 2026 +0000"
      },
      "message": "Roll Skia from d78865e708ad to 70733f74d415 (2 revisions) (#190168)\n\nhttps://skia.googlesource.com/skia.git/+log/d78865e708ad..70733f74d415\n\n2026-07-28 michaelludwig@google.com [graphite] Start refactoring\nLayer::test for more early-out conditions\n2026-07-28 borenet@google.com Revert \"[infra] Remove all remaining\nreferences to gsutil\"\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC aaclarke@google.com,bwils@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "99a98f13425921c8339a4f8d438c0130fe2df355",
      "tree": "fda5627cdea551a4bd9852043f890d51d5e30a36",
      "parents": [
        "d063bd83f71608aa257f6c0fb7906ce5e9e42720"
      ],
      "author": {
        "name": "Chris Bracken",
        "email": "chris@bracken.jp",
        "time": "Wed Jul 29 06:16:35 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 21:16:35 2026 +0000"
      },
      "message": "iOS: Fix use-after-free race during shell teardown (#190132)\n\n-[FlutterEngine waitForFirstFrame:callback:] dispatches a block to a\nQOS_CLASS_BACKGROUND queue that dereferences the `_shell` unique_ptr and\nblocks in `Shell::WaitForFirstFrame()` on Shell-owned\n`waiting_for_first_frame_mutex_`/`waiting_for_first_frame_condition_`.\n\nPreviously, nothing prevented `-destroyContext` from running\nconcurrently on the main thread and calling `_shell.reset()` while that\nbackground block was still running, or hadn\u0027t started yet.\n`Shell::~Shell` only joins the platform/UI/raster/IO task runners. It\nhas no idea a separate GCD thread might be parked (or about to park)\ninside the object, so `_shell.reset()` can free the Shell out from under\nthe block, which then reads and locks/unlocks freed memory.\n\nSpecifically:\n* We dispatch the background block in `-[FlutterEngine\nwaitForFirstFrame:callback:]`, which captures `weakSelf`.\n* Before the block runs, or while it\u0027s blocked on the condition\nvariable, the main thread calls `destroyContext`, which resets `_shell`.\n* The block resolves `strongSelf` which is still valid -- that\u0027s the\nFlutterEngine wrapper, not `_shell`, and calls\n`strongSelf.shell.WaitForFirstFrame(...)` on a Shell that\u0027s already been\nfreed.\n\nThis is reachable via -sendDeepLinkToFramework:completionHandler:, which\ncalls waitForFirstFrame: with a 3s timeout, racing any concurrent\nlifecycle teardown (scene disconnect, view controller dealloc).\n\nThis adds `Shell::CancelWaitForFirstFrame()`, which flips a cancelled\nflag under `waiting_for_first_frame_mutex_` and notifies the condition\nvar, causing any current/upcoming `WaitForFirstFrame()` call to return\n`kAborted` promptly instead of blocking out its timeout. We call this\nbefore resetting the shell in `-destroyContext`, then wait on a\ndispatch_group for that block to actually finish touching `_shell`\nbefore freeing it.\n\nThis is a separate dispatch_group to the one that already blocks the\ncompletion callback, so that concurrent waitForFirstFrame: calls don\u0027t\nhave their callbacks coupled to each other.\n\nThe unit tests was copied (near-)verbatim from repro on the bug.\n\nIssue: b/521830222\n\n\u003c!--\nThanks for filing a pull request!\nReviewers are typically assigned within a week of filing a request.\nTo learn more about code review, see our documentation on Tree Hygiene:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n--\u003e\n\n## Pre-launch Checklist\n\n- [X] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [X] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [X] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [X] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [X] I signed the [CLA].\n- [X] I listed at least one issue that this PR fixes in the description\nabove.\n- [X] I updated/added relevant documentation (doc comments with `///`).\n- [X] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [X] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [X] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "d063bd83f71608aa257f6c0fb7906ce5e9e42720",
      "tree": "1b2e1407ca9705325c17e352799057b193645af8",
      "parents": [
        "6bfd8f4d381163edda287984adc2811e32d1c285"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Tue Jul 28 15:02:17 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 19:02:17 2026 +0000"
      },
      "message": "Roll Skia from 62442d6cf0ec to d78865e708ad (30 revisions) (#190152)\n\nhttps://skia.googlesource.com/skia.git/+log/62442d6cf0ec..d78865e708ad\n\n2026-07-28 kjlubick@google.com Use hermetic Python directly from\ndawn_repo.bzl\n2026-07-28 kjlubick@google.com Add missing GN deps on shaper\n2026-07-28 borenet@google.com [infra] Remove all remaining references to\ngsutil\n2026-07-28 kjlubick@google.com [bazel] Add Windows CI job for building\nviewer\n2026-07-28\nchrome-branch-day@chops-service-accounts.iam.gserviceaccount.com Merge 4\nrelease notes into RELEASE_NOTES.md\n2026-07-28\nchrome-branch-day@chops-service-accounts.iam.gserviceaccount.com Update\nSkia milestone to 153\n2026-07-28 jianlin.qiu@intel.com Ganesh: honor subset when flattening a\nYUVA image to a special image\n2026-07-28 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll\nSkia Infra from d47334d0785d to 42f146e4e61d (40 revisions)\n2026-07-28 borenet@google.com [recipes] Switch from \"gsutil\" to \"gcloud\nstorage\"\n2026-07-28 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from b97f97b70455 to 0d9c229af89c (6 revisions)\n2026-07-28\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n2026-07-28\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n2026-07-28 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn\nfrom 1e897275172a to 10934785b43b (18 revisions)\n2026-07-28 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE\nfrom c3ede28106e9 to ff4855759c68 (11 revisions)\n2026-07-28 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\ndebugger-app-base from b4889b3141e3 to a46a65d7ba05\n2026-07-27 ndesaulniers@google.com Add missing \u003ccstdlib\u003e header to\nFrontBufferedStream.cpp\n2026-07-27\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n2026-07-27 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from 70a303980973 to b97f97b70455 (5 revisions)\n2026-07-27 arthursonzogni@chromium.org miracleptr: Add RAW_PTR_EXCLUSION\nfor pointers in stable C ABIs\n2026-07-27 wenting_shi@apple.com [skottie] Add support for Skottie\nColorOverlay style\n2026-07-27 thomsmit@google.com [graphite] SparseStrips approximate\nconics with cubics\n2026-07-27\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n2026-07-27 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE\nfrom 92de898b7a32 to c3ede28106e9 (3 revisions)\n2026-07-27 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from f147dcdbea36 to 70a303980973 (2 revisions)\n2026-07-27 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn\nfrom a56ab87a19a0 to 1e897275172a (16 revisions)\n2026-07-27 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\ndebugger-app-base from 773cb2ff3ea5 to b4889b3141e3\n2026-07-27\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n2026-07-26 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from 59e03a8479a3 to f147dcdbea36 (1 revision)\n2026-07-26 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SKP\nCIPD package from 569 to 570\n2026-07-25 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from 8e393ad533ce to 59e03a8479a3 (1 revision)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC aaclarke@google.com,bwils@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "6bfd8f4d381163edda287984adc2811e32d1c285",
      "tree": "1662290dcf9fba43e42d81b9f352cbd684fc8e79",
      "parents": [
        "d6d999e765822756b6e13679b7ac03e88dcf1371"
      ],
      "author": {
        "name": "gaaclarke",
        "email": "30870216+gaaclarke@users.noreply.github.com",
        "time": "Tue Jul 28 08:42:21 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 15:42:21 2026 +0000"
      },
      "message": "Made linter more robust to non-utf8 files (#190012)\n\nFixing a problem a ran into locally.\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\n\n---------\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "d6d999e765822756b6e13679b7ac03e88dcf1371",
      "tree": "cb3ec49fa45ca62ded26029aeab2d69dc12bb3b1",
      "parents": [
        "0f0246377b1c9d8bc365a439c520a7de6c3f590b"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Tue Jul 28 11:32:14 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 15:32:14 2026 +0000"
      },
      "message": "Roll Packages from 69693296b8df to 3e636359fb00 (6 revisions) (#190142)\n\nhttps://github.com/flutter/packages/compare/69693296b8df...3e636359fb00\n\n2026-07-28 269567208+reidbaker-agent@users.noreply.github.com\n[camera_android_camerax] Add the ability to unit test skills.\n(flutter/packages#12285)\n2026-07-28 stuartmorgan@google.com [ci] Tag dependabot PRs with\n`triage-android` (flutter/packages#12142)\n2026-07-26 engine-flutter-autoroll@skia.org Roll Flutter from\ne2921977d4cc to 99889603182d (1 revision) (flutter/packages#12288)\n2026-07-25 engine-flutter-autoroll@skia.org Roll Flutter from\nb65f4d9bc3fe to e2921977d4cc (19 revisions) (flutter/packages#12287)\n2026-07-24 engine-flutter-autoroll@skia.org Roll Flutter from\n2a2a79d36624 to b65f4d9bc3fe (30 revisions) (flutter/packages#12284)\n2026-07-24 engine-flutter-autoroll@skia.org Roll Flutter (stable) from\n84fc5cbb223b to 058e0af2c2b5 (6 revisions) (flutter/packages#12282)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/flutter-packages-flutter-autoroll\nPlease CC flutter-ecosystem@google.com on the revert to ensure that a\nhuman\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "0f0246377b1c9d8bc365a439c520a7de6c3f590b",
      "tree": "19268d1a76b8f7d9b04793e1b0d5c4e62097364c",
      "parents": [
        "78703736057924baeb2b885dbfa2599c578e4f3d"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Tue Jul 28 06:03:41 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 10:03:41 2026 +0000"
      },
      "message": "Roll Fuchsia Test Scripts from E8hJ1AfK8CtGtaES0... to 1frGe_KltAJKkeyPg... (#190134)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/fuchsia-test-scripts-flutter\nPlease CC aaclarke@google.com,chrome-fuchsia-engprod@google.com on the\nrevert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "78703736057924baeb2b885dbfa2599c578e4f3d",
      "tree": "17ca086186122c8d5144a63ee7666580a2d09abb",
      "parents": [
        "5aa364b65ed8c7f6d029981baa017e936bed1032"
      ],
      "author": {
        "name": "Chris Bracken",
        "email": "chris@bracken.jp",
        "time": "Tue Jul 28 12:32:27 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 03:32:27 2026 +0000"
      },
      "message": "iOS: Reject merged-platform-ui-thread\u003dmergeAfterLaunch (#190051)\n\niOS runs with the platform and UI threads merged from launch and only\nimplements fully-merged (`kEnabled`) threading. The `mergeAfterLaunch`\napproach starts the engine on a separate UI thread and merges it onto\nthe platform thread once the root isolate is running.\n\nThe `mergeAfterLaunch` merge/unmerge code lives entirely in\n`shell/common`. The iOS embedder has never implemented it, and no iOS\ncode has ever referenced it. On iOS, the flag was never wired up, and it\nisn\u0027t reachable through any supported configuration. The\n`FLTEnableMergedPlatformUIThread` Info.plist key only ever selects\n`kEnabled` or `kDisabled`.\n\nThe only way to reach it is the raw command-line flag, which nothing\nrejects today, so passing `--merged-platform-ui-thread\u003dmergeAfterLaunch`\nslips through and produces a broken engine since:\n\n* `Shell::Spawn` refuses `kMergeAfterLaunch` and returns null, so\n`FlutterEngineGroup` fails to spawn secondary engines outright.\n* The CADisplayLink-backed vsync waiter registers on the run loop of\nwhichever thread services the UI task runner when it\u0027s constructed.\nUnder the merged model iOS actually ships (`kEnabled`) that\u0027s the\nplatform thread, which is correct. Under `mergeAfterLaunch` it would be\nthe temporary UI thread that the model abandons after launch, and which\nwon\u0027t work.\n\nThis has been unsupported since `mergeAfterLaunch` was introduced. \n\nSince every iOS `Settings` setting passes through `FlutterDartProject`,\nwe can fail startup there with an `FML_CHECK` if this configuration is\nset. Normally this would live in `shell/common/switches.cc` but Android\nalso passes `require_merged_platform_ui_thread` to\n`SettingsFromCommandLine` and still supports `mergeAfterLaunch` as a\nlaunch-latency optimization used by internal customers.\n\nAlso added a test that hints that `mergeAfterLaunch` is an intentional,\nsupported configuration so that people like me don\u0027t try to lock it down\nagain. See: https://github.com/flutter/flutter/pull/189893\n\nThis is part of cleanup work intended to simplify the iOS embedder prior\nto an eventual migration to the embedder API.\n\nIssue: https://github.com/flutter/flutter/issues/112232\n\n\n## Pre-launch Checklist\n\n- [X] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [X] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [X] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [X] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [X] I signed the [CLA].\n- [X] I listed at least one issue that this PR fixes in the description\nabove.\n- [X] I updated/added relevant documentation (doc comments with `///`).\n- [X] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [X] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [X] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "5aa364b65ed8c7f6d029981baa017e936bed1032",
      "tree": "b3af79d4860e5612d4dfe67f886e51f7b44e1d10",
      "parents": [
        "2d3957cbfb85676acc4016ff91c76d3e7432825c"
      ],
      "author": {
        "name": "Chris Bracken",
        "email": "chris@bracken.jp",
        "time": "Tue Jul 28 12:14:35 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 03:14:35 2026 +0000"
      },
      "message": "iOS: Migrate TaskRunner tests to Swift Testing (#190055)\n\nThese tests use a TaskRunner on the test main thread, which posts to the\ncurrent thread\u0027s fml::MessageLoop, backed by its CFRunLoop.\n\nUnder XCTest, waitForExpectations spins the run loop, which ensures the\nposted tasks run. Since Swift Testing has no direct equivalent this adds\na `runLoopUntil` helper that runs `RunLoop.current` until the task\ncompletes or the timeout elapses, giving us the same behaviour.\n\nNo semantic changes; this just migrates to Swift Testing.\n\n## Pre-launch Checklist\n\n- [X] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [X] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [X] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [X] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [X] I signed the [CLA].\n- [ ] I listed at least one issue that this PR fixes in the description\nabove.\n- [X] I updated/added relevant documentation (doc comments with `///`).\n- [X] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [X] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [X] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "2d3957cbfb85676acc4016ff91c76d3e7432825c",
      "tree": "314d348fda919d439f72a26a3d2ebfdf33b91ae6",
      "parents": [
        "b79b4f9fc3300ec3433a6c60663ea7013d1f80ab"
      ],
      "author": {
        "name": "Jenn Magder",
        "email": "magder@google.com",
        "time": "Mon Jul 27 19:10:24 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 02:10:24 2026 +0000"
      },
      "message": "Run Mac golden tests on ARM bots (#189465)\n\nIntel bots are being deprecated. Pin the builds that generate goldens to\nARM instead of Intel (see\nhttps://github.com/flutter/flutter/issues/119880). This PR indeed\n[generated new\ngoldens](https://flutter-gold.skia.org/search?crs\u003dgithub\u0026issue\u003d189465\u0026patchsets\u003d2\u0026untriaged\u003dfalse)\nas described in https://github.com/flutter/flutter/issues/119880.\n\n- Mac framework_tests_libraries\n- Mac framework_tests_impeller\n- Mac framework_tests_widgets\n\nFixes https://github.com/flutter/flutter/issues/119880\nPart of https://github.com/flutter/flutter/issues/189144\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "b79b4f9fc3300ec3433a6c60663ea7013d1f80ab",
      "tree": "adc509a324a3582c4afaab51fcf81eef3c6ebc32",
      "parents": [
        "1efa3bc53e7533c091bf865e31289708eaa66c3e"
      ],
      "author": {
        "name": "Chris Bracken",
        "email": "chris@bracken.jp",
        "time": "Tue Jul 28 11:07:04 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 02:07:04 2026 +0000"
      },
      "message": "iOS,macOS: Rename Swift test files to end in Tests.swift (#190063)\n\nStandardizes our Swift test file naming and migrates all `FooTest.swift`\nfiles to use the `FooTests.swift` naming used by Xcode\u0027s test templates\nand the rest of the Swift ecosystem.\n\nPreviously we used a mix of both.\n\n\u003c!--\nThanks for filing a pull request!\nReviewers are typically assigned within a week of filing a request.\nTo learn more about code review, see our documentation on Tree Hygiene:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n--\u003e\n\n## Pre-launch Checklist\n\n- [X] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [X] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [X] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [X] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [X] I signed the [CLA].\n- [ ] I listed at least one issue that this PR fixes in the description\nabove.\n- [X] I updated/added relevant documentation (doc comments with `///`).\n- [X] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [X] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [X] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "1efa3bc53e7533c091bf865e31289708eaa66c3e",
      "tree": "4a59893042023062b6bdabb420b476174216bcb6",
      "parents": [
        "6d3bf8e8055e9df3c976e93949677ffe826f5ac1"
      ],
      "author": {
        "name": "Gray Mackall",
        "email": "34871572+gmackall@users.noreply.github.com",
        "time": "Mon Jul 27 18:44:20 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 01:44:20 2026 +0000"
      },
      "message": "Fix hcpp cliprect being behind by 1 frame when scrolling (#189946)\n\nPreviously, the clipping was behind by 1 frame. \n\nThis is because `onDisplayPlatformView2()` was getting called after\n`jni_facade-\u003eswapTransaction()`, and so was adding new pending\ntransactions after the swap from pending to active (and so the clips\nwere lagging for a frame, waiting till next frame to be made active). We\nneed to call `jni_facade-\u003eswapTransaction()` last.\n\nThe ordering (c++ bug) was introduced in\nhttps://github.com/flutter/flutter/pull/181009/ in combination with\nhttps://github.com/flutter/flutter/pull/184732/\n\nSee videos:\n\n\u003ctable width\u003d\"100%\"\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth align\u003d\"center\"\u003eWith Change (After)\u003c/th\u003e\n      \u003cth align\u003d\"center\"\u003eWithout Change (Before)\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align\u003d\"center\" width\u003d\"50%\"\u003e\n\u003cvideo\nsrc\u003d\"https://github.com/user-attachments/assets/d9fedd3a-d7a8-4040-bc2e-dae555d1a4ad\"\ncontrols\u003d\"controls\" style\u003d\"max-width: 100%;\"\u003e\u003c/video\u003e\n      \u003c/td\u003e\n      \u003ctd align\u003d\"center\" width\u003d\"50%\"\u003e\n\u003cvideo\nsrc\u003d\"https://github.com/user-attachments/assets/118cae5f-9996-425d-b8f3-9e0f965f841d\"\ncontrols\u003d\"controls\" style\u003d\"max-width: 100%;\"\u003e\u003c/video\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e"
    },
    {
      "commit": "6d3bf8e8055e9df3c976e93949677ffe826f5ac1",
      "tree": "35272c0aba5fafb31f02e42c4f5b718c2c54e01b",
      "parents": [
        "a23e8598188792f9e71a00ed2d9db27e735fb33e"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Mon Jul 27 21:44:19 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 01:44:19 2026 +0000"
      },
      "message": "Roll Fuchsia Linux SDK from vpboK5fPPIoFteqRq... to OZkZC_2CZ_G5rbMIS... (#190115)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/fuchsia-linux-sdk-flutter\nPlease CC jsimmons@google.com,zra@google.com on the revert to ensure\nthat a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "a23e8598188792f9e71a00ed2d9db27e735fb33e",
      "tree": "0ea27463db13dfea7fb2425baaff447bd3852824",
      "parents": [
        "7adec80e233871bb04efba1b7419edbea32b2e2d"
      ],
      "author": {
        "name": "Ishaq Hassan",
        "email": "ishaquehassan@gmail.com",
        "time": "Tue Jul 28 03:23:16 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 22:23:16 2026 +0000"
      },
      "message": "Add Ishaq Hassan to AUTHORS (#190064)\n\nAdds my name to the `AUTHORS` file, as the file itself invites:\n\n\u003e Anyone who has contributed to the Flutter project in any way (not\nlimited to submitting PRs) is welcome to submit a PR to add their name\nto this file.\n\nI\u0027ve had a number of PRs merged into `flutter/flutter`, including:\n\n- #185938 Add `blendMode` parameter to `RawImage` and `RenderImage`\n- #184545 Add `clipBehavior` parameter to `AnimatedCrossFade`\n- #183109 Add `scrollPadding` property to `DropdownMenu`\n- #186943, #184569, #184572, #183097, #183081 (docs + template fixes)\n\nCLA is already signed (required for the merges above).\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide].\n- [x] I signed the [CLA].\n- [x] This is a change to the `AUTHORS` file only; no code, tests, or\ndocs are affected ([test-exempt]).\n\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#overview\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md\n[CLA]: https://cla.developers.google.com/\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#tests"
    },
    {
      "commit": "7adec80e233871bb04efba1b7419edbea32b2e2d",
      "tree": "8e9b94b9a92af05902f2527ac2ef47d59e140607",
      "parents": [
        "5506de29377ec9f5078e8138f8b99a1e6d7c4978"
      ],
      "author": {
        "name": "gaaclarke",
        "email": "30870216+gaaclarke@users.noreply.github.com",
        "time": "Mon Jul 27 15:18:14 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 22:18:14 2026 +0000"
      },
      "message": "[wimp] fixes ubo padding size issue (#189958)\n\nissue https://github.com/flutter/flutter/issues/187212\n\nThis clamps the minimum bound size of a UBO to\nGL_UNIFORM_BLOCK_DATA_SIZE. This was causing a crash in firefox\u0027s webgl2\nimplementation.\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "5506de29377ec9f5078e8138f8b99a1e6d7c4978",
      "tree": "d76bf23f43c343adaeb72aee3955818377429473",
      "parents": [
        "2b4b7054507d169aa2628e5d269620645c729aa2"
      ],
      "author": {
        "name": "flutter-pub-roller-bot",
        "email": "137456488+flutter-pub-roller-bot@users.noreply.github.com",
        "time": "Mon Jul 27 15:07:04 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 22:07:04 2026 +0000"
      },
      "message": "Roll pub packages (#189872)\n\nThis PR was generated by `flutter update-packages --force-upgrade`."
    },
    {
      "commit": "2b4b7054507d169aa2628e5d269620645c729aa2",
      "tree": "ac9fe35a40fe91fdfbf5e1009af845c3b526e27c",
      "parents": [
        "2256bdd8e17030f3880c2a7e9c459c0a04b1d45b"
      ],
      "author": {
        "name": "Jenn Magder",
        "email": "magder@google.com",
        "time": "Mon Jul 27 14:32:16 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 21:32:16 2026 +0000"
      },
      "message": "Move tool host_cross_arch tests into different shards (#189470)\n\nThe intention of the tool_host_cross_arch_tests shard was to run\narchitecture-specific tests that should be run on ARM and Intel. Since\nwe are deprecating Intel Macs and they will only be run on one\narchitecture, ARM, remove the shard entirely.\n\nKeep the builder and test runner around as a no-op so nothing breaks in\nreleases. We can remove them totally (builder, TESTOWNER, test runner,\netc) once this code reaches stable.\n\nhttps://github.com/flutter/flutter/issues/188328\nFirst part of https://github.com/flutter/flutter/issues/189302\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "2256bdd8e17030f3880c2a7e9c459c0a04b1d45b",
      "tree": "fab543ae73cc0db0cb9a301e62df07f66429c044",
      "parents": [
        "56c717ca3c53754c4fd22c816741aacb83380a60"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jul 27 21:26:25 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 21:26:25 2026 +0000"
      },
      "message": "Bump actions/labeler from 6.2.0 to 7.0.0 in the all-github-actions group (#190099)\n\nBumps the all-github-actions group with 1 update:\n[actions/labeler](https://github.com/actions/labeler).\n\nUpdates `actions/labeler` from 6.2.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/actions/labeler/releases\"\u003eactions/labeler\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003ch3\u003eEnhancements:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate to ESM and update dependencies by \u003ca\nhref\u003d\"https://github.com/chiranjib-swain\"\u003e\u003ccode\u003e@​chiranjib-swain\u003c/code\u003e\u003c/a\u003e\nin \u003ca\nhref\u003d\"https://redirect.github.com/actions/labeler/pull/949\"\u003eactions/labeler#949\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/actions/labeler/compare/v6...v7.0.0\"\u003ehttps://github.com/actions/labeler/compare/v6...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/actions/labeler/commit/bf12e9b00b37c5c0ca2b87b79b2daf7891dbda13\"\u003e\u003ccode\u003ebf12e9b\u003c/code\u003e\u003c/a\u003e\nfeat: migrate to ESM and update dependencies (\u003ca\nhref\u003d\"https://redirect.github.com/actions/labeler/issues/949\"\u003e#949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/actions/labeler/compare/b8dd2d9be0f68b860e7dae5dae7d772984eacd6d...bf12e9b00b37c5c0ca2b87b79b2daf7891dbda13\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dactions/labeler\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d6.2.0\u0026new-version\u003d7.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s major version (unless you unignore this specific\ndependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this\ngroup update PR and stop Dependabot creating any more for the specific\ndependency\u0027s minor version (unless you unignore this specific\ndependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR\nand stop Dependabot creating any more for the specific dependency\n(unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore\nconditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will\nremove the ignore condition of the specified dependency and ignore\nconditions\n\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "56c717ca3c53754c4fd22c816741aacb83380a60",
      "tree": "ceae68987120e96b60a0b16cefde204902734057",
      "parents": [
        "8747e2ff61de94f230f3ff59d3a8c923dfa97eda"
      ],
      "author": {
        "name": "hellohuanlin",
        "email": "41930132+hellohuanlin@users.noreply.github.com",
        "time": "Mon Jul 27 12:09:38 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 19:09:38 2026 +0000"
      },
      "message": "[ios]do not nuke user input path when running uiscene integration test (#186436)\n\nAs discussed in\nhttps://github.com/flutter/flutter/issues/186412#issuecomment-4435590832.\n\n\u003e It\u0027s safer to only delete the folders/files that flutter itself\ncontrols. The script can create the project folder under the path (e.g.\ngenerated_project). Then when deleting, we only delete generated_project\nfolder (the \"Expected\" behavior in the description)\n\nNote: \n\n1. The documentation itself is fine tho, so I will keep it untouched. \n\n2. It looks like we don\u0027t have infra setup to write unit tests for test\nscripts, so I will leave it as out-of-scope of this PR.\n\n3. But in the future we should be heading towards dumb logic in test\nscripts, and leverage Xcode build targets \u0026 file memberships instead.\n\n4. I think this is a broader security issue than just this particular\nscript - I wish our flutter/dart tooling could have asked for permission\nfor dangerous operations like this. I filed\nhttps://github.com/flutter/flutter/issues/186419\n\n\n\n*Replace this paragraph with a description of what this PR is changing\nor adding, and why. Consider including before/after screenshots.*\n\nFixes https://github.com/flutter/flutter/issues/186412\n\n*If you had to change anything in the [flutter/tests] repo, include a\nlink to the migration guide as per the [breaking change policy].*\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [ ] I updated/added relevant documentation (doc comments with `///`).\n- [ ] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [ ] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [ ] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "8747e2ff61de94f230f3ff59d3a8c923dfa97eda",
      "tree": "f6c6004d55486c05f8a31f9da0d566ee4264f4a4",
      "parents": [
        "5bb20d2bbde4f9ae0265f9463f6b07e5f0d1a9b1"
      ],
      "author": {
        "name": "John \"codefu\" McDole",
        "email": "codefu@google.com",
        "time": "Mon Jul 27 11:22:00 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 18:22:00 2026 +0000"
      },
      "message": "ci: verify_binaries_pre_codesigned part 2 (#190078)\n\nmacos runners don\u0027t let you touch /opt!\n\nfixes: #189995"
    },
    {
      "commit": "5bb20d2bbde4f9ae0265f9463f6b07e5f0d1a9b1",
      "tree": "f27764a746e30e5429192f720a36c7102aac8881",
      "parents": [
        "be9b20458a46e6b87f572d8ed681e3ddae6efd3a"
      ],
      "author": {
        "name": "Jason Simmons",
        "email": "jason-simmons@users.noreply.github.com",
        "time": "Mon Jul 27 18:19:37 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 18:19:37 2026 +0000"
      },
      "message": "Roll Abseil to ff6e8ce3e932 (#189998)"
    },
    {
      "commit": "be9b20458a46e6b87f572d8ed681e3ddae6efd3a",
      "tree": "03b9bccb1ae4c6516000cfa0b80757f73b232b20",
      "parents": [
        "99889603182d2a9bb69504c3befbcda77e6c0c27"
      ],
      "author": {
        "name": "Andy Wolff",
        "email": "awolff@google.com",
        "time": "Mon Jul 27 07:51:21 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 14:51:21 2026 +0000"
      },
      "message": "Android_hardware_smoke_test: clean up golden copy in CI (#189948)\n\nIn PR https://github.com/flutter/flutter/pull/189390 (part of issue\nhttps://github.com/flutter/flutter/issues/187538) we configured some new\nCI test shards which run the instrumented tests subsequently after the\ndriver tests. As part of that, we had to copy the goldens to the asset\ndirectory so they would be bundled into the instrumented test APK. This\nPR proposes to skip the copy by configuring the skia gold comparator to\nwrite directly to the desired directory, via a new optional\n`localOutputDir` parameter.\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "99889603182d2a9bb69504c3befbcda77e6c0c27",
      "tree": "a59b486ea2e1d9993faf7d9b73192f52b245f516",
      "parents": [
        "e2921977d4cc8741eb51b85febf95b3f41e643e5"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Sat Jul 25 15:37:20 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 25 19:37:20 2026 +0000"
      },
      "message": "Roll Fuchsia Linux SDK from Cdb1RGKCqpcz9z4cl... to vpboK5fPPIoFteqRq... (#190028)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/fuchsia-linux-sdk-flutter\nPlease CC jsimmons@google.com,zra@google.com on the revert to ensure\nthat a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "e2921977d4cc8741eb51b85febf95b3f41e643e5",
      "tree": "2cbe178a5b1efa9d95e08609311f0ac9de45afe6",
      "parents": [
        "9ef3f4e925ed853678da60390c10342a1d044df4"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Sat Jul 25 05:18:41 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 25 09:18:41 2026 +0000"
      },
      "message": "Roll Skia from 2c014dc494f1 to 62442d6cf0ec (1 revision) (#190022)\n\nhttps://skia.googlesource.com/skia.git/+log/2c014dc494f1..62442d6cf0ec\n\n2026-07-25 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from 1f2cbadfb9c8 to 8e393ad533ce (8 revisions)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC jlavrova@google.com,jsimmons@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "9ef3f4e925ed853678da60390c10342a1d044df4",
      "tree": "9a6fa22078aab4037e32b236c4390545c5b7863c",
      "parents": [
        "a50ad51fed3e9001ce6b9a2c9be945a9af139133"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Sat Jul 25 03:24:32 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 25 07:24:32 2026 +0000"
      },
      "message": "Roll Skia from d8d20eef4dbd to 2c014dc494f1 (1 revision) (#190020)\n\nhttps://skia.googlesource.com/skia.git/+log/d8d20eef4dbd..2c014dc494f1\n\n2026-07-24 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll\nANGLE from e316181208fd to 92de898b7a32 (10 revisions)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC jlavrova@google.com,jsimmons@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "a50ad51fed3e9001ce6b9a2c9be945a9af139133",
      "tree": "ef593d989a109a6b942421c18a0e7f182959d69d",
      "parents": [
        "a6ab6a5c3a458233cab98343834180e94e7f430d"
      ],
      "author": {
        "name": "Brandon DeRosier",
        "email": "bdero@google.com",
        "time": "Fri Jul 24 18:02:40 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 25 01:02:40 2026 +0000"
      },
      "message": "[Impeller] Add 2D texture array support (kTexture2DArray) (#188778)\n\nPart of flutter/flutter#188776.\n\nAdds a 2D texture array texture type to Impeller\n(`TextureType::kTexture2DArray`, sampled as `sampler2DArray`), with the\nlayer count carried by a new `TextureDescriptor::array_layer_count`. The\nexisting cube map is the closest analog (it is already a layered\ntexture), so each backend follows the same path, except the layer count\nis explicit rather than fixed at 6.\n\nBackends:\n- Metal maps the type to `MTLTextureType2DArray` and sets `arrayLength`.\n- Vulkan maps it to a 2D-array image view (`e2DArray`) with the\ndescriptor\u0027s layer count.\n- OpenGL ES allocates the array with `glTexImage3D` and fills layers\nwith `glTexSubImage3D`, gated on a new\n`CapabilitiesGLES::SupportsTextureArray` that is true on ES 3.0+ (and\ndesktop GL 3.0+) and false on ES 2.0, where there is no array-texture\nequivalent so callers fall back to a texture atlas.\n\nPer-layer upload already worked through the existing `slice` parameter\non Metal and Vulkan.\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide] and the [C++,\nObjective-C, Java style guides].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I added new tests to check the change I am making or feature I am\nadding, or the PR is [test-exempt]. See [testing the engine] for\ninstructions on writing and running engine tests.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I signed the [CLA].\n- [x] All existing and new tests are passing.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#overview\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md\n[C++, Objective-C, Java style guides]:\nhttps://github.com/flutter/flutter/blob/main/engine/src/flutter/CONTRIBUTING.md#style\n[testing the engine]:\nhttps://github.com/flutter/flutter/blob/main/docs/engine/testing/Testing-the-engine.md\n[CLA]: https://cla.developers.google.com/"
    },
    {
      "commit": "a6ab6a5c3a458233cab98343834180e94e7f430d",
      "tree": "a21c6c5cbd556d6849d58c7ef8a289445e5c668c",
      "parents": [
        "5a599f2439883f71157d8986341c00c06db74355"
      ],
      "author": {
        "name": "jesswrd",
        "email": "jesswon@google.com",
        "time": "Fri Jul 24 16:44:09 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 23:44:09 2026 +0000"
      },
      "message": "Bumped Engine AGP Dependencies to 9.1.0 for 3.50 (#189417)\n\nBumped the Engine AGP dependencies to 9.1.0 for Flutter 3.50. This only\naffects engine contributors so it will not be CP\u0027ed.\n\nPartially Addresses https://github.com/flutter/flutter/issues/189232\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [ ] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "5a599f2439883f71157d8986341c00c06db74355",
      "tree": "f6e5647df3ac7c17757877ca66277f8c3c3d0628",
      "parents": [
        "9007e14016be88d04eaa57d5b3c7913c47954ea6"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Fri Jul 24 19:23:06 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 23:23:06 2026 +0000"
      },
      "message": "Roll Dart SDK from 153abd9a8296 to 28e63ac22d8d (2 revisions) (#190013)\n\nhttps://dart.googlesource.com/sdk.git/+log/153abd9a8296..28e63ac22d8d\n\n2026-07-24 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-65.0.dev\n2026-07-24 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-64.0.dev\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/dart-sdk-flutter\nPlease CC dart-vm-team@google.com,jsimmons@google.com on the revert to\nensure that a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "9007e14016be88d04eaa57d5b3c7913c47954ea6",
      "tree": "49343893cd9e4b075ba495632fce76fc87cc182f",
      "parents": [
        "849e8a226dfc080b621cd8aa9c8b56356c1df1ee"
      ],
      "author": {
        "name": "John \"codefu\" McDole",
        "email": "codefu@google.com",
        "time": "Fri Jul 24 16:09:07 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 23:09:07 2026 +0000"
      },
      "message": "ci: add mac verify binaries workflow (#190010)\n\n- Extracts engine change detection logic from `wait-for-engine-build`\ninto a reusable `has-engine-changes` composite action.\n- Introduces a new `mac-verify-binaries` GitHub Actions workflow.\n- Fixes an empty string check for `PUSH_BEFORE_SHA` in the\n`wait-for-engine-build` action.\n\nfixes: https://github.com/flutter/flutter/issues/189995"
    },
    {
      "commit": "849e8a226dfc080b621cd8aa9c8b56356c1df1ee",
      "tree": "f96ace83169e2dc8d039c5746f2e1a5a3c5fc3ee",
      "parents": [
        "f62aded0cc8359ce88a955900d2b8f1dbaad039e"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Fri Jul 24 18:53:19 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 22:53:19 2026 +0000"
      },
      "message": "Roll Skia from f2f9b52fe1ee to d8d20eef4dbd (21 revisions) (#190011)\n\nhttps://skia.googlesource.com/skia.git/+log/f2f9b52fe1ee..d8d20eef4dbd\n\n2026-07-24 michaelludwig@google.com Handle global resource tracing when\nSK_DISABLE_TRACING is defined\n2026-07-24 jlavrova@google.com Revert \"miracleptr: Add RAW_PTR_EXCLUSION\nfor pointers to global/static state\"\n2026-07-24 arthursonzogni@chromium.org miracleptr: Add RAW_PTR_EXCLUSION\nfor pointers to global/static state\n2026-07-24 borenet@google.com Fix README.chromium for skcms\n2026-07-24 kjlubick@google.com Revert \"miracleptr: Add RAW_PTR_EXCLUSION\nfor pointers in unions\"\n2026-07-24 kjlubick@google.com Revert \"miracleptr: Add RAW_PTR_EXCLUSION\nfor pointers used to pack integers\"\n2026-07-24 alexisdavidc@google.com [SkCapture] Get Captures Working on\nViewer\n2026-07-24 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from 808860b25bf7 to 1f2cbadfb9c8 (1 revision)\n2026-07-24 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll\nbazel_build from b5d31abb7bc772a69... to 348e064d2951b8209... (1\nrevision)\n2026-07-24 michaelludwig@google.com [ganesh] Check results of internal\nflushes for internalWritePixels success\n2026-07-24 michaelludwig@google.com Move GlobalResourceStats::Singleton\ndefinition into CPP file\n2026-07-24 arthursonzogni@chromium.org miracleptr: Add RAW_PTR_EXCLUSION\nfor pointers used to pack integers\n2026-07-24 arthursonzogni@chromium.org miracleptr: Add RAW_PTR_EXCLUSION\nfor pointers in unions\n2026-07-24 fmalita@google.com Remove SkPath::updateBoundsCache\n2026-07-24\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n2026-07-24 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\ndebugger-app-base from e2e7fdda0991 to 773cb2ff3ea5\n2026-07-24 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE\nfrom 8521722b7ebc to e316181208fd (9 revisions)\n2026-07-24 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia\nInfra from 7a6f0a35a522 to d47334d0785d (12 revisions)\n2026-07-24 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn\nfrom 9b8c24f3b4ee to a56ab87a19a0 (13 revisions)\n2026-07-24 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from afc9d8707b53 to 808860b25bf7 (4 revisions)\n2026-07-24\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC jlavrova@google.com,jsimmons@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "f62aded0cc8359ce88a955900d2b8f1dbaad039e",
      "tree": "382d639b6a6a1d65e7971befde224f65ee4cb1fc",
      "parents": [
        "bc2162e2701c9688c3f1f3356ca8fbcc9dabe00a"
      ],
      "author": {
        "name": "John \"codefu\" McDole",
        "email": "codefu@google.com",
        "time": "Fri Jul 24 13:02:30 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 20:02:30 2026 +0000"
      },
      "message": "fix(ci): quote labels to fix yaml mapping error (#190002)\n\n`env:` block requires `string: string` types."
    },
    {
      "commit": "bc2162e2701c9688c3f1f3356ca8fbcc9dabe00a",
      "tree": "d77c123205eef2e1dfb8141986c11d5849066bc6",
      "parents": [
        "e128b431c4c17c84dcc17c5f7492c93d6ff383e1"
      ],
      "author": {
        "name": "Reid Baker",
        "email": "1063596+reidbaker@users.noreply.github.com",
        "time": "Fri Jul 24 16:00:08 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 20:00:08 2026 +0000"
      },
      "message": "Update contributing guidelines for commit message format (#189922)\n\nThis style of putting code terms in backticks is implied not stated. \n\nhttps://github.com/flutter/packages/pull/12145/changes#r3625889893"
    },
    {
      "commit": "e128b431c4c17c84dcc17c5f7492c93d6ff383e1",
      "tree": "2624bdf46da2c58107aa035cae382adc4d34c446",
      "parents": [
        "a74d9b73b8c06cadbcb570e85593834dd482c480"
      ],
      "author": {
        "name": "LouiseHsu",
        "email": "louisehsu@google.com",
        "time": "Fri Jul 24 12:29:28 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 19:29:28 2026 +0000"
      },
      "message": "Migrate a11y_assessments to uiscene (#189960)\n\nMigrate dev/a11y_assessments/ to uiscene in preperation for\naccessibility bug bash\n(and so it can launch w/ xcode 27)\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing."
    },
    {
      "commit": "a74d9b73b8c06cadbcb570e85593834dd482c480",
      "tree": "03867c65cc1fefa9b6c40e531a11a9db0724a003",
      "parents": [
        "eb5f7d8a4956121ac10a1a4f16c1cccf931c2367"
      ],
      "author": {
        "name": "John \"codefu\" McDole",
        "email": "codefu@google.com",
        "time": "Fri Jul 24 11:14:21 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 18:14:21 2026 +0000"
      },
      "message": "docs(contributing): add git worktree and rebase workflow guide (#189992)\n\nDocumentation for worktree and other `git` features. Making an internal\ndoc public."
    },
    {
      "commit": "eb5f7d8a4956121ac10a1a4f16c1cccf931c2367",
      "tree": "9b19b882d914dc8f6ec136fcfbbcb5726e87f372",
      "parents": [
        "cb2ddfd7bdddf2c541b691d8cb2649978c2411d9"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Fri Jul 24 13:51:26 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 17:51:26 2026 +0000"
      },
      "message": "Roll Dart SDK from e3fc57eae9eb to 153abd9a8296 (3 revisions) (#189987)\n\nhttps://dart.googlesource.com/sdk.git/+log/e3fc57eae9eb..153abd9a8296\n\n2026-07-24 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-63.0.dev\n2026-07-24 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-62.0.dev\n2026-07-24 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-61.0.dev\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/dart-sdk-flutter\nPlease CC dart-vm-team@google.com,jsimmons@google.com on the revert to\nensure that a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "cb2ddfd7bdddf2c541b691d8cb2649978c2411d9",
      "tree": "c5e0486135a8b6d2ad727c9bc06407faed367254",
      "parents": [
        "be25aae20d1b393ef1955628c25c56984b028075"
      ],
      "author": {
        "name": "Matthew Kosarek",
        "email": "matt.kosarek@canonical.com",
        "time": "Fri Jul 24 13:39:02 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 17:39:02 2026 +0000"
      },
      "message": "Rename RegularWindow* to Window* in the windowing API + rename sizedToContent to shrinkWrap in the windowing API (#189363)\n\n## What\u0027s new?\n- Renamed `RegularWindow*` to `Window*` across the windowing API\n- Rename sizedToContent to shrinkWrap in the windowing API\n- Left the engine untouched because it is not user-facing\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing."
    },
    {
      "commit": "be25aae20d1b393ef1955628c25c56984b028075",
      "tree": "aa46e43b81ca481a5d9ad17949735a98874c990d",
      "parents": [
        "285bf671f395d4e4a3e1592e50826cd30fafdd3e"
      ],
      "author": {
        "name": "Gray Mackall",
        "email": "34871572+gmackall@users.noreply.github.com",
        "time": "Fri Jul 24 10:32:06 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 17:32:06 2026 +0000"
      },
      "message": "Remove ancient `tools:tools` dep from `android_sdk` bundle (#189962)\n\nThis dep has been abandoned\nhttps://developer.android.com/tools/releases/sdk-tools\n\nAlso bumps to include sdk 37, because the underlying script had been\nbumped without a corresponding bump in the ci.yaml"
    },
    {
      "commit": "285bf671f395d4e4a3e1592e50826cd30fafdd3e",
      "tree": "39392125b15fdf1fc2bd83a365fbb760ef918855",
      "parents": [
        "3a5c2cefdfc73bd2e4e47d8ef80489c060436b37"
      ],
      "author": {
        "name": "Jason Simmons",
        "email": "jason-simmons@users.noreply.github.com",
        "time": "Fri Jul 24 17:16:11 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 17:16:11 2026 +0000"
      },
      "message": "Reduce the number of gtest-parallel workers when running Impeller tests on Mac Minis used by CI (#189813)\n\nhttps://github.com/flutter/flutter/pull/188889 started using the\nImpeller rendering backends in playground tests run by the\nimpeller_unittests harness.\n\nSince then, runs of OpenGLESSDF tests on macOS CI have been flaky. These\nflakes show up as gtest-parallel child processes that fail with exit\ncode -5 (SIGTRAP).\n\nThe affected CI machines are M1 Mac Minis (hardware model \"Macmini9,1\")\nThis is an experiment to see if limiting the number of test cases run in\nparallel on these machines reduces the crashes.\n\nSee https://github.com/flutter/flutter/issues/189748"
    },
    {
      "commit": "3a5c2cefdfc73bd2e4e47d8ef80489c060436b37",
      "tree": "33d07c5c32aacb93e4c2b4153cbee2673a778224",
      "parents": [
        "5d4979dca32beaed486bf2a04b0806e94fccc5da"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Fri Jul 24 12:35:14 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 16:35:14 2026 +0000"
      },
      "message": "Roll Packages from 8260a1e5670c to 69693296b8df (21 revisions) (#189983)\n\nhttps://github.com/flutter/packages/compare/8260a1e5670c...69693296b8df\n\n2026-07-24 ionutzubascu@yahoo.com [packages] Migrate all iOS example\napps in flutter/packages to UIScene (flutter/packages#12182)\n2026-07-23 absarhshah@gmail.com [in_app_purchase] Fixes StoreKit 2 date\nformat does not match in_app_… (flutter/packages#11717)\n2026-07-23 269567208+reidbaker-agent@users.noreply.github.com [packages]\nAdd changelog style references to AGENTS.md (flutter/packages#12277)\n2026-07-23 ntosarno11@gmail.com [file_selector_android] Surface\nfile-copy failures to Dart instead of crashing (flutter/packages#12107)\n2026-07-23 puneetkukreja98@gmail.com [google_maps_flutter] Add support\nfor mapType, fullscreen, and Street View controls on web\n(flutter/packages#11955)\n2026-07-22 engine-flutter-autoroll@skia.org Manual roll Flutter (stable)\nfrom ee80f08bbf97 to 84fc5cbb223b (5 revisions) (flutter/packages#12273)\n2026-07-22 50643541+Mairramer@users.noreply.github.com\n[camera_avfoundation] Move camera_avfoundation to Darwin\n(flutter/packages#11847)\n2026-07-22 engine-flutter-autoroll@skia.org Roll Flutter from\n1ac2e82fa65c to 2a2a79d36624 (22 revisions) (flutter/packages#12272)\n2026-07-22 puneetkukreja98@gmail.com [google_maps_flutter_web]: Adds\nsupport for mapTypeControlEnabled, fullscreenControlEnabled, and\nstreetViewControlEnabled. (flutter/packages#12254)\n2026-07-21 jmccandless@google.com [material_ui] Prerelease setup\n(flutter/packages#12258)\n2026-07-21 kienhantrung@gmail.com [go_router_builder] Allow users to\nspecify onExit as optional (flutter/packages#11151)\n2026-07-21 fluttergithubbot@gmail.com Sync release-cupertino_ui-0.0.2 to\nmain (flutter/packages#12265)\n2026-07-21 tarrinneal@gmail.com [pigeon] add support for top level\nconsts (flutter/packages#12032)\n2026-07-21 49699333+dependabot[bot]@users.noreply.github.com\n[dependabot]: Bump androidx.activity:activity from 1.12.4 to 1.13.0 in\n/packages/image_picker/image_picker_android/android\n(flutter/packages#11253)\n2026-07-21 49699333+dependabot[bot]@users.noreply.github.com\n[dependabot]: Bump cameraxVersion from 1.6.0 to 1.6.1 in\n/packages/camera/camera_android_camerax/android (flutter/packages#11862)\n2026-07-21 49699333+dependabot[bot]@users.noreply.github.com\n[dependabot]: Bump com.google.guava:guava from 33.5.0-android to\n33.6.0-android in /packages/espresso/android (flutter/packages#11864)\n2026-07-21 stuartmorgan@google.com [tool] Rename batch change override\nlabel (flutter/packages#12263)\n2026-07-21 jmccandless@google.com [cupertino_ui] Bump minor to get to\n0.0.2, not patch (flutter/packages#12260)\n2026-07-21 stuartmorgan@google.com [tool] Support pre-1.0 versions in\nbatch releases (flutter/packages#12257)\n2026-07-21 jmccandless@google.com [material_ui] Remove manual version\nchanges (flutter/packages#12253)\n2026-07-21 engine-flutter-autoroll@skia.org Roll Flutter from\ncab057d904b6 to 1ac2e82fa65c (23 revisions) (flutter/packages#12256)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/flutter-packages-flutter-autoroll\nPlease CC flutter-ecosystem@google.com on the revert to ensure that a\nhuman\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "5d4979dca32beaed486bf2a04b0806e94fccc5da",
      "tree": "5628605497e45cd71bd63e817194fe41643a6bbc",
      "parents": [
        "994902bc91adae20a3aafb704085d682d6448386"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Fri Jul 24 12:29:15 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 16:29:15 2026 +0000"
      },
      "message": "Roll Fuchsia Linux SDK from 9org0yL3yZkp80x5S... to Cdb1RGKCqpcz9z4cl... (#189975)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/fuchsia-linux-sdk-flutter\nPlease CC jsimmons@google.com,zra@google.com on the revert to ensure\nthat a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "994902bc91adae20a3aafb704085d682d6448386",
      "tree": "a183c63586ba71a844a4c72d6055733e2dc5afdd",
      "parents": [
        "b4f79899379349bd12b9bc3ca0c70ed9bea18e65"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Fri Jul 24 12:27:18 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 16:27:18 2026 +0000"
      },
      "message": "Roll Skia from 6e9c4687c001 to f2f9b52fe1ee (3 revisions) (#189959)\n\nhttps://skia.googlesource.com/skia.git/+log/6e9c4687c001..f2f9b52fe1ee\n\n2026-07-23 michaelludwig@google.com Trace detailed ResourceCache\nsummaries for Ganesh and Graphite\n2026-07-23\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n2026-07-23 sergiog@microsoft.com [rust bmp] Cleanup experimental\nrust_bmp\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC jlavrova@google.com,jsimmons@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "b4f79899379349bd12b9bc3ca0c70ed9bea18e65",
      "tree": "b973f8238d819065dcc115c81a9d1c69ecf5cd57",
      "parents": [
        "b65f4d9bc3fed2dc2fabdce3122ebf50f503e848"
      ],
      "author": {
        "name": "zhongliugo",
        "email": "zhongliu88889@gmail.com",
        "time": "Fri Jul 24 09:27:18 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 16:27:18 2026 +0000"
      },
      "message": "[web] Cancel touch pointers WebKit abandons mid-gesture (#189608)\n\nFixes #188781\n\n**Problem**\nOn iOS 27, WebKit stops dispatching pointer events for a touch it\npromotes to a native gesture, such as dragging the caret in a text\nfield, and delivers neither `pointerup` nor `pointercancel`. The\nframework is left holding a pointer that never lifts, which wedges\n`BaseTapAndDragGestureRecognizer` so every later tap is silently\ndropped: the field never regains focus and the keyboard never returns.\nAffects every iOS 27 browser, since they all run WebKit; iOS 26 is\nunaffected.\n\n**Fix**\n`_PointerAdapter` tracks which touch devices are down and, on `touchend`\nand `touchcancel`, cancels any the browser no longer lists in `touches`.\nGated to iOSWebKit.\n\n**Demo**\nBefore: https://flutter-demo-47-before.web.app\nAfter:  https://flutter-demo-47-after.web.app\n\n**Repro steps:** \ntype in the field, long-press the caret and drag it, lift, then tap the\nfield.\nBefore, the field is permanently dead after a few tries. \nAfter, it recovers."
    },
    {
      "commit": "b65f4d9bc3fed2dc2fabdce3122ebf50f503e848",
      "tree": "2412a873e59129a00d1e12680cbb4e48586ca56d",
      "parents": [
        "0ed149e63db1f68d2042063baf0a99d969ccd84b"
      ],
      "author": {
        "name": "Jason Simmons",
        "email": "jason-simmons@users.noreply.github.com",
        "time": "Fri Jul 24 15:10:44 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 15:10:44 2026 +0000"
      },
      "message": "Add dart_runtime_service_vm_aot.dart.snapshot to the snapshot list in the macOS code signing configuration (#189981)\n\nThis file was added by a recent Dart SDK roll\n(see https://github.com/flutter/flutter/pull/189949)"
    },
    {
      "commit": "0ed149e63db1f68d2042063baf0a99d969ccd84b",
      "tree": "c4ab1802a4c12e90a1646988f1267e985621406f",
      "parents": [
        "162f1d6e33ee5304540869966f2bee62597473d8"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Thu Jul 23 20:34:05 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 00:34:05 2026 +0000"
      },
      "message": "Roll Fuchsia Test Scripts from wLST_A-xfOeGT_5mj... to E8hJ1AfK8CtGtaES0... (#189956)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/fuchsia-test-scripts-flutter\nPlease CC chrome-fuchsia-engprod@google.com,jsimmons@google.com on the\nrevert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "162f1d6e33ee5304540869966f2bee62597473d8",
      "tree": "9eba8209966ab8ab314545ee9af52e22757512fd",
      "parents": [
        "406508a059078f62407df2d854fb16ef183b95f4"
      ],
      "author": {
        "name": "Lau Ching Jun",
        "email": "chingjun@google.com",
        "time": "Thu Jul 23 16:34:07 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 23:34:07 2026 +0000"
      },
      "message": "Consolidate AndroidArch and DarwinArch into CpuArch (#189315)\n\nFollow up to #189207, this PR removes all usages of AndroidArch and\nDarwinArch, replacing them with the newly added CpuArch."
    },
    {
      "commit": "406508a059078f62407df2d854fb16ef183b95f4",
      "tree": "ef335dc0fed4e08d28cc6ce809b7b319abe4d67c",
      "parents": [
        "3a1c4698caed58243353136e38746a0363fc85fe"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Thu Jul 23 19:20:23 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 23:20:23 2026 +0000"
      },
      "message": "Roll Dart SDK from 9258584f98b8 to e3fc57eae9eb (7 revisions) (#189949)\n\nhttps://dart.googlesource.com/sdk.git/+log/9258584f98b8..e3fc57eae9eb\n\n2026-07-23 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-60.0.dev\n2026-07-23 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-59.0.dev\n2026-07-23 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-58.0.dev\n2026-07-23 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-57.0.dev\n2026-07-23 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-56.0.dev\n2026-07-23 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-55.0.dev\n2026-07-22 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-54.0.dev\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/dart-sdk-flutter\nPlease CC dart-vm-team@google.com,jsimmons@google.com on the revert to\nensure that a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "3a1c4698caed58243353136e38746a0363fc85fe",
      "tree": "7805d4cf813e39eabc5778933d35016df9432cad",
      "parents": [
        "efe7ac6167ef570a8522b3da831f56fbdc9ad61c"
      ],
      "author": {
        "name": "Jason Simmons",
        "email": "jason-simmons@users.noreply.github.com",
        "time": "Thu Jul 23 23:09:18 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 23:09:18 2026 +0000"
      },
      "message": "[flutter_tools] Do not always wait for the full timeout when running Spotlight to locate Android Studio on macOS (#189952)\n\nhttps://github.com/flutter/flutter/pull/189461 introduced a script in\nthe flutter_tools AndroidStudio class that wraps the Spotlight mdfind\ncommand with a timeout.\n\nThis script had been waiting for the full 3 second timeout even if the\nmdfind process exited before then. The extra wait showed up in\nperformance benchmarks of tasks that invoke AndroidStudio such as app\ncompilation.\n\nSee https://github.com/flutter/flutter/issues/189177"
    },
    {
      "commit": "efe7ac6167ef570a8522b3da831f56fbdc9ad61c",
      "tree": "262e8d0a5606287f7042500a80404aba00ceac07",
      "parents": [
        "817671ee42b6d20e8528562060f6c4a80d811f01"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Thu Jul 23 19:00:12 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 23:00:12 2026 +0000"
      },
      "message": "Roll Skia from 1d8bf9270d8c to 6e9c4687c001 (15 revisions) (#189954)\n\nhttps://skia.googlesource.com/skia.git/+log/1d8bf9270d8c..6e9c4687c001\n\n2026-07-23 jrosengren@microsoft.com [rust_ico] Add Rust-based ICO\ndecoder using image-rs\n2026-07-23 thomsmit@google.com [graphite] Move FloatStorageManager to\nStorageBufferManager\n2026-07-23 kjlubick@google.com Fix Bazel build on Windows\n2026-07-23 alexisdavidc@google.com [Maintenance] Add a match_override\nfor tryjob machines\n2026-07-23 michaelludwig@google.com [graphite] Remove Insertion helper\nstruct\n2026-07-23 michaelludwig@google.com [graphite] Exit searchBinding() loop\nat shading/non-shading boundary\n2026-07-23 samfort@microsoft.com Add SkRRect::contains(const SkPoint\u0026)\n2026-07-23 michaelludwig@google.com [graphite] Always specialize xfer\nfns for color spaces\n2026-07-23 michaelludwig@google.com [graphite] Add more details to\nDrawListLayer types\n2026-07-23 thomsmit@google.com [graphite] Storage usage flags to\nrendersteps\n2026-07-23 michaelludwig@google.com Reland \"[graphite] Trace more\nDrawPass details\"\n2026-07-23 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from b65fca8cfc87 to afc9d8707b53 (1 revision)\n2026-07-23 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll\nDawn from 85891e8dcf47 to 9b8c24f3b4ee (6 revisions)\n2026-07-23 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE\nfrom 3d3c181bdcf2 to 8521722b7ebc (24 revisions)\n2026-07-23\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC jlavrova@google.com,jsimmons@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "817671ee42b6d20e8528562060f6c4a80d811f01",
      "tree": "08b778cdd92aa174da8f8710416b2f66579ec128",
      "parents": [
        "89af7cd8a7f6795fc65185612558575e40137797"
      ],
      "author": {
        "name": "Jason Simmons",
        "email": "jason-simmons@users.noreply.github.com",
        "time": "Thu Jul 23 21:31:04 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 21:31:04 2026 +0000"
      },
      "message": "[flutter_tools] Initialize Cache.flutterRoot at the start of the upgrade_test suite (#189937)\n\nFixes https://github.com/flutter/flutter/issues/189919"
    },
    {
      "commit": "89af7cd8a7f6795fc65185612558575e40137797",
      "tree": "8b24489c7ca460ef61eadaf37db3b3e8ae9a50db",
      "parents": [
        "974dc3ba062df6eb0e47570b1dd8b73a73eba054"
      ],
      "author": {
        "name": "Faheem Abbas",
        "email": "faheemabbas766@gmail.com",
        "time": "Fri Jul 24 02:12:08 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 21:12:08 2026 +0000"
      },
      "message": "Parse AndroidX property in gradle.properties (#188372)\n\nParses `android.useAndroidX` from `gradle.properties` instead of using a\nraw substring match.\n\nThis avoids false positives from commented-out lines such as\n`#android.useAndroidX\u003dtrue`, and false negatives for valid Gradle syntax\nsuch as `android.useAndroidX \u003d true`.\n\nThis PR intentionally keeps the change scoped to property parsing and\ndoes not change the broader behavior for projects that omit the property\nentirely.\n\nPart of #188306\n\n## Tests\n\n```console\n./bin/flutter test packages/flutter_tools/test/general.shard/android/gradle_test.dart\n```\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`),\nor this change does not require documentation updates.\n- [x] I added new tests to check the change I am making.\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported, or this change is not a breaking change.\n- [x] All existing and new tests are passing.\n\n---------\n\nCo-authored-by: jesswrd \u003cjesswon@google.com\u003e"
    },
    {
      "commit": "974dc3ba062df6eb0e47570b1dd8b73a73eba054",
      "tree": "b9ad3e5d088df9256cdf5a729138d60d6c75e21e",
      "parents": [
        "f3ece6366037cc8976acf6d8c87bd7a35a2d9061"
      ],
      "author": {
        "name": "xiaowei guan",
        "email": "60122246+xiaowei-guan@users.noreply.github.com",
        "time": "Fri Jul 24 05:10:14 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 21:10:14 2026 +0000"
      },
      "message": "[Impeller]Use the IO context for OpenGL program setup (#185723)\n\nFix https://github.com/flutter/flutter/issues/176657\n\u003c!--\nThanks for filing a pull request!\nReviewers are typically assigned within a week of filing a request.\nTo learn more about code review, see our documentation on Tree Hygiene:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n--\u003e\n\nThis PR can improve app startup time for impeller+GLES on low-end\ndevices.\nhttps://github.com/flutter/flutter/pull/180022 has provided solution for\nimpeller + vulkan.\n\nImpeller+GLES has a special case: resource loading cannot be arbitrarily\nplaced on other threads; it needs to be done on the I/O thread because\nthis thread shares the context with the GPU thread. Therefore, this PR\nintroduces the I/O task runner into PipelineCompileQueueGLES. However,\nsince the I/O task runner may handle other tasks, we cannot put all jobs\ninto the I/O thread at once. My current solution is to wait for the\nprevious job to finish before putting the next one into the I/O thread.\n\n\nMain changes:\n1. Introduce fml::RefPtr\u003cfml::TaskRunner\u003e into PipelineCompileQueueGLES.\n2. Extract new class PipelineCompileQueueVulkan for vulkan, because the\nrunners are on different threads.\n\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\n\n---------\n\nCo-authored-by: Jason Simmons \u003cjsimmons@google.com\u003e"
    },
    {
      "commit": "f3ece6366037cc8976acf6d8c87bd7a35a2d9061",
      "tree": "f877497e0cb77504c38a0812ee5737f1973e3a4e",
      "parents": [
        "0900317224709e921c24401dee2df970d5a2fb0c"
      ],
      "author": {
        "name": "Chikamatsu Kazuya",
        "email": "43089218+chika3742@users.noreply.github.com",
        "time": "Fri Jul 24 05:27:32 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 20:27:32 2026 +0000"
      },
      "message": "Allow building projects lacking Runner.xcworkspace (#186239)\n\n\u003c!--\nThanks for filing a pull request!\nReviewers are typically assigned within a week of filing a request.\nTo learn more about code review, see our documentation on Tree Hygiene:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n--\u003e\n\nRelated: #185924 \n\nI have ensured that Flutter commands do not throw errors even in\nprojects without `Runner.xcworkspace`, such as those that have migrated\nto SwiftPM.\n\nSome migration processes checked for the existence of a workspace, but\nthese do not read or write to the workspace directory and function\ncorrectly even if it is absent. While the exact intent is unclear, it is\nlikely that they were checking whether Cocoapods was included in the\nproject.\n\nAlso, it was causing an error in `buildXcodeProject` by not passing\nscheme and BUILD_DIR as arguments when the workspace did not exist .\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [ ] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "0900317224709e921c24401dee2df970d5a2fb0c",
      "tree": "01ca70fa3871a7b05dea3bf791f9c43a2d51eb8d",
      "parents": [
        "2eb7d318d696ed9289f058496aa8cddfcd24b82e"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Thu Jul 23 13:24:04 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 20:24:04 2026 +0000"
      },
      "message": "[flutter_tools] Invalidate WebEntrypointTarget when plugin set changes (#189460)\n\nAdd `.dart_tool/package_config.json`, `pubspec.yaml`, and\n`.flutter-plugins-dependencies` (optional) to\n`WebEntrypointTarget.inputs`, and\n`{BUILD_DIR}/web_plugin_registrant.dart` to\n`WebEntrypointTarget.outputs`.\n\nPreviously, `WebEntrypointTarget` only declared `{BUILD_DIR}/main.dart`\nin `outputs` and its own source file in `inputs`. When plugins were\nadded or removed between consecutive `flutter build web` invocations,\n`FlutterBuildSystem` evaluated `WebEntrypointTarget` as up-to-date,\nskipping target execution and leaving `web_plugin_registrant.dart`\nstale.\n\nFixes https://github.com/flutter/flutter/issues/189128"
    },
    {
      "commit": "2eb7d318d696ed9289f058496aa8cddfcd24b82e",
      "tree": "52b56426100c9f75a8309091356747b4be259853",
      "parents": [
        "2deea746d398dd89812a59a58565776f0702e6b7"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Thu Jul 23 11:21:23 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 18:21:23 2026 +0000"
      },
      "message": "Bump devtools_shared to 13.1.0 (#189507)\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [ ] I listed at least one issue that this PR fixes in the description\nabove.\n- [ ] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "2deea746d398dd89812a59a58565776f0702e6b7",
      "tree": "826558c91192a6990e2f2dead346c6b779316d28",
      "parents": [
        "c3f6236f61f5650c315cd21da8bc58bb66f77a5f"
      ],
      "author": {
        "name": "Matt Boetger",
        "email": "matt.boetger@gmail.com",
        "time": "Thu Jul 23 10:27:38 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 17:27:38 2026 +0000"
      },
      "message": "forceNdkDownload should skip configuring cmake when ndk-build is used (#187201)\n\nFixes: #175968 \n\n## Pre-launch Checklist\n\n- [X] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [X] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [X] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [X] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [X] I signed the [CLA].\n- [X] I listed at least one issue that this PR fixes in the description\nabove.\n- [X] I updated/added relevant documentation (doc comments with `///`).\n- [X] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [X] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [X] All existing and new tests are passing.\n\n---------\n\nCo-authored-by: Reid Baker \u003creidbaker@google.com\u003e"
    },
    {
      "commit": "c3f6236f61f5650c315cd21da8bc58bb66f77a5f",
      "tree": "65af8936a93b37357ad355491d527df526f0dafe",
      "parents": [
        "22fcba1c30a8ddb0bbde396ead16094955000fd3"
      ],
      "author": {
        "name": "Jason Simmons",
        "email": "jason-simmons@users.noreply.github.com",
        "time": "Thu Jul 23 15:44:18 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 15:44:18 2026 +0000"
      },
      "message": "Disable execution order shuffling for the flutter_tools upgrade_test suite (#189920)\n\nThis test is failing when run with today\u0027s randomized order seed.\n\nSee https://github.com/flutter/flutter/issues/189919"
    },
    {
      "commit": "22fcba1c30a8ddb0bbde396ead16094955000fd3",
      "tree": "419bb2587539c20908bea5a5f8f972a0eafd893f",
      "parents": [
        "e69e703dce29fda392f8024109c1961306cb365a"
      ],
      "author": {
        "name": "Matej Knopp",
        "email": "matej.knopp@gmail.com",
        "time": "Thu Jul 23 14:54:02 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 14:54:02 2026 +0000"
      },
      "message": "Move WindowManager outside of WidgetsApp (#188866)\n\nThis is a prototype branch for moving `WindowManager` outside of\n`WidgetsApp`.\n\nOur current approach where first window is \"blessed\" and other windows\nare anchored inside first window hierarchy is causing multiple issues:\n- Only the first window has navigator\n- Secondary windows focus zones are inside primary window focus zone so\nit is always focused.\n- Widget inspector only works in primary window\n\nIn general there is no reason for one window to be special. Normally for\na desktop application all windows should be equal. The closest we can\nget to this is to give each top level window its own\nWidgets/MaterialApp. While this duplicates some elements that should\nnormally be shared, arguably it behaves better than doing what we do\nright now.\n\nIdeally we\u0027d want to split the App widget into shared and per window\nparts, but that will be a much bigger change.\n\nWith this branch the top level Dialog/Regular window have each their own\nMaterialApp widget and separate focus trees, solving the issues above.\n\n`Popup` and `Tooltip` window work and are anchored at proper place in\nwindow hierarchy (they should not be top level window). However we might\nwant to consider a convenience Widget to anchoring these instead of\nusing `ViewAnchor` + `View`.\n\nScreenshot of example app running in this mode - notice the Debug banner\nand widget inspector buttons in each window.\n\n\u003cimg width\u003d\"900\" height\u003d\"800\" alt\u003d\"Screenshot 2026-07-01 at 5 48 13 PM\"\nsrc\u003d\"https://github.com/user-attachments/assets/bbb6e646-e9d8-4618-9702-19afe0749b11\"\n/\u003e"
    },
    {
      "commit": "e69e703dce29fda392f8024109c1961306cb365a",
      "tree": "6500c63587368b8c3a7c2028710d143166706793",
      "parents": [
        "2ce938cfdf9782275ad8d5073ce8ab2fc2d7a0ab"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Thu Jul 23 06:55:22 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 06:55:22 2026 +0000"
      },
      "message": "Roll Skia from 3424966b8a2b to 1d8bf9270d8c (3 revisions) (#189901)\n\nhttps://skia.googlesource.com/skia.git/+log/3424966b8a2b..1d8bf9270d8c\n\n2026-07-23 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia\nInfra from ed73bb996e6d to 7a6f0a35a522 (13 revisions)\n2026-07-23 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn\nfrom 63af03bd26e2 to 85891e8dcf47 (6 revisions)\n2026-07-23 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from a5843ef093d3 to b65fca8cfc87 (6 revisions)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC jlavrova@google.com,jsimmons@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "2ce938cfdf9782275ad8d5073ce8ab2fc2d7a0ab",
      "tree": "6b83c929036f0928f9c041de6fc4b91febe0ccf2",
      "parents": [
        "2dcbfd49ea1484ad016bb70355c015ba03aa6995"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Thu Jul 23 05:28:55 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 05:28:55 2026 +0000"
      },
      "message": "Roll Fuchsia Linux SDK from GswhlPRO-D1qSNclx... to 9org0yL3yZkp80x5S... (#189898)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/fuchsia-linux-sdk-flutter\nPlease CC jsimmons@google.com,zra@google.com on the revert to ensure\nthat a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md"
    },
    {
      "commit": "2dcbfd49ea1484ad016bb70355c015ba03aa6995",
      "tree": "adbb26e7cc3110ba28a461ffc118742797eb3536",
      "parents": [
        "ea1bc5dc4f6fedce69957417b6907e45615146e2"
      ],
      "author": {
        "name": "Mohellebi Abdessalem",
        "email": "116356835+AbdeMohlbi@users.noreply.github.com",
        "time": "Thu Jul 23 05:27:36 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 05:27:36 2026 +0000"
      },
      "message": "Remove outdated logs that were added to track #172636 (#189282)\n\nremoves the prints that were used to track\nhttps://github.com/flutter/flutter/issues/172636\nthe PR that added the prints\nhttps://github.com/flutter/flutter/pull/174073\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [ ] I listed at least one issue that this PR fixes in the description\nabove.\n- [ ] I updated/added relevant documentation (doc comments with `///`).\n- [ ] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\n\n---------\n\nCo-authored-by: Ben Konyi \u003cbkonyi@google.com\u003e"
    },
    {
      "commit": "ea1bc5dc4f6fedce69957417b6907e45615146e2",
      "tree": "9d088592573561a2a86eb9e2c4b844b6b09bc1db",
      "parents": [
        "fd81b3a9d65738fb68abc2339d0ed635dabed021"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Thu Jul 23 02:06:38 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 02:06:38 2026 +0000"
      },
      "message": "Roll Skia from 5e183e5aeac5 to 3424966b8a2b (33 revisions) (#189890)\n\nRoll Skia from 5e183e5aeac5 to 3424966b8a2b (33 revisions)\n\nhttps://skia.googlesource.com/skia.git/+log/5e183e5aeac5..3424966b8a2b\n\n2026-07-22 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll\nDawn from 4527b42f1a95 to 63af03bd26e2 (8 revisions)\n2026-07-22 michaelludwig@google.com Revert \"[graphite] Trace more\nDrawPass details\"\n2026-07-22 robertphillips@google.com Suppress failure cases for new\nTestManyStopLinearHardstopsGanesh test\n2026-07-22 arthursonzogni@chromium.org Disable partition_alloc on\nMac/iOS when using Xcode clang\n2026-07-22 egdaniel@google.com [ganesh] Fully clear initial stencil bits\nwhen stencil clear is a draw\n2026-07-22 michaelludwig@google.com [graphite] Only use\nCompressedPaintersOrder to stop layer search\n2026-07-22 sergiog@microsoft.com [rust bmp] Move rust bmp out of\nexperimental\n2026-07-22 thomsmit@google.com [graphite] SparseStrips SIMD coverage\nimprovements\n2026-07-22 egdaniel@google.com Make sure partition alloc is disabled on\nall clang mac names.\n2026-07-22 michaelludwig@google.com [viewer] Avoid fLastImage polluting\nGraphite caches\n2026-07-22 robertphillips@google.com [ganesh] Skip resolve/mipmap step\non flush failure\n2026-07-22 michaelludwig@google.com [graphite] Trace more DrawPass\ndetails\n2026-07-22 helmut@januschka.com [ganesh] Add many-stop analytic gradient\ncolorizer\n2026-07-22 kjlubick@google.com Fix ganesh_native_vulkan target\n2026-07-22 michaelludwig@google.com [skif] Request expected child output\nfor Magnifier\n2026-07-22 michaelludwig@google.com [tracing] Add TRACE_COUNTER1_ALWAYS\nvariant\n2026-07-22 jiawei.shao@intel.com Compare the return value of\n`GetLimits()` with `wgpu::Status::Success`\n2026-07-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from 218432abf71f to a5843ef093d3 (2 revisions)\n2026-07-22\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n2026-07-22\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n2026-07-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE\nfrom 80d793462953 to 3d3c181bdcf2 (7 revisions)\n2026-07-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia\nInfra from b8df33bbc301 to ed73bb996e6d (15 revisions)\n2026-07-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn\nfrom 7c60d39b65ee to 4527b42f1a95 (3 revisions)\n2026-07-22\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n2026-07-22\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n2026-07-22 thomsmit@google.com [ganesh][gl] ARM FBO query workaround\n2026-07-21 michaelludwig@google.com [tracing] Remove TRACE_COUNTER2;\nimplement counters in SkPerfettoTrace\n2026-07-21 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll\nANGLE from d6247827bfd0 to 80d793462953 (6 revisions)\n2026-07-21 michaelludwig@google.com [graphite] Add BoundsFlags and\nadjust test result names\n2026-07-21 kjlubick@google.com Add sanitization proc to\nSkTypeface::MakeDeserialize\n2026-07-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from f7e4835de105 to 218432abf71f (2 revisions)\n2026-07-21 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll\nDawn from 1b6954523e35 to 7c60d39b65ee (6 revisions)\n2026-07-21 fmalita@google.com Deprecate SkPath::updateBoundsCache\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC jlavrova@google.com,jsimmons@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\n..."
    },
    {
      "commit": "fd81b3a9d65738fb68abc2339d0ed635dabed021",
      "tree": "381e9246462575be59d0cc9e92c0321c5fc87e56",
      "parents": [
        "e70d250e32c557c85141c6cd978206aeee90e31f"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Thu Jul 23 01:59:27 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 01:59:27 2026 +0000"
      },
      "message": "[examples] Use super parameters in missed spots (#186194)\n\nWork towards https://github.com/dart-lang/sdk/issues/59226\n\nThe analyzer will start reporting cases where a super parameter could be\nused, and the type of the supar parameter is tightened in the subclass\nconstructor. This is still a perfectly valid super parameter use case.\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md"
    },
    {
      "commit": "e70d250e32c557c85141c6cd978206aeee90e31f",
      "tree": "66786cc1dd6e9cff1d76be51fcdcc663343a5e51",
      "parents": [
        "2b9bbc8589390d07f3719f8e0049d28827283cdc"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Thu Jul 23 01:01:08 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 01:01:08 2026 +0000"
      },
      "message": "[flutter_tools] Bound Spotlight mdfind execution with timeout on macOS (#189461)\n\n## Description\n\nOn macOS, `AndroidStudio.allInstalled()` calls `mdfind` via `runSync` to\nlocate Android Studio installations outside standard locations. When\nSpotlight (`mds_stores`/`mdworker`) is unresponsive or re-indexing,\n`mdfind` hangs indefinitely and blocks `flutter doctor` and `flutter\ndaemon`.\n\nThis PR wraps `mdfind` in a shell execution with a 3-second process\ntimeout and killer subshell cleanup to prevent `flutter doctor` and\n`flutter daemon` from hanging indefinitely. If the query times out or\nfails, `_allMacOS` gracefully falls back to standard candidate paths.\n\nFixes https://github.com/flutter/flutter/issues/189177\n\n## Tests\n\n- Added `installation detection on MacOS gracefully handles unresponsive\nSpotlight query (issue #189177)` unit test in\n`packages/flutter_tools/test/general.shard/android/android_studio_test.dart`."
    },
    {
      "commit": "2b9bbc8589390d07f3719f8e0049d28827283cdc",
      "tree": "9479f4a240729329c59e3bf08bf6473d6ba9f709",
      "parents": [
        "c72bd32b3788b3a44c837a38732a317f65da2e71"
      ],
      "author": {
        "name": "CodeDoctor",
        "email": "codedoctor@linwood.dev",
        "time": "Thu Jul 23 00:33:51 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 23 00:33:51 2026 +0000"
      },
      "message": "Fix non primary buttons not being captured on windows (#188394)\n\n\u003c!--\nThanks for filing a pull request!\nReviewers are typically assigned within a week of filing a request.\nTo learn more about code review, see our documentation on Tree Hygiene:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n--\u003e\n\nCloses #166309.\n\nWindows only captured mouse input for primary-button drags. As a result,\ndrag gestures using middle, secondary, or X buttons received a pointer\nremove when leaving the client area.\n\nCapture is now enabled for every supported mouse button and released\nonly\nafter the last pressed mouse button is released.\n\nAlso tested on my universal flutter input demo:\nhttps://github.com/CodeDoctorDE/flutter-input-demo/tree/e448c2cf42981d9c8b5186a7e43d1b82a0239619.\n\n~~Currently in draft since I cannot have 2 pull requests open at the\nsame time.~~\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\n\n---------\n\nCo-authored-by: Matthew Kosarek \u003cmatt.kosarek@canonical.com\u003e"
    }
  ],
  "next": "c72bd32b3788b3a44c837a38732a317f65da2e71"
}
