-
Notifications
You must be signed in to change notification settings - Fork 30.4k
Comparing changes
Open a pull request
base repository: flutter/flutter
base: master@{1day}
head repository: flutter/flutter
compare: master
- 20 commits
- 82 files changed
- 12 contributors
Commits on May 11, 2026
-
Roll Packages from 92552b16bcc1 to 19ec8b861676 (4 revisions) (#186350)
flutter/packages@92552b1...19ec8b8 2026-05-11 49699333+dependabot[bot]@users.noreply.github.com Bump actions/labeler from 6.0.1 to 6.1.0 in the all-github-actions group (flutter/packages#11686) 2026-05-08 [email protected] [flutter_svg] add imageBuilder property to SvgPicture (flutter/packages#11615) 2026-05-08 [email protected] [material_ui, cupertino_ui, infra] Support skipping golden files for the design migration (flutter/packages#11649) 2026-05-08 [email protected] [video_player] Add missing swift_version to podspec (flutter/packages#11670) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Configuration menu - View commit details
-
Copy full SHA for 1072bb6 - Browse repository at this point
Copy the full SHA 1072bb6View commit details -
Roll Skia from 2514f6b5f92b to 32281401997e (1 revision) (#186349)
https://skia.googlesource.com/skia.git/+log/2514f6b5f92b..32281401997e 2026-05-11 [email protected] Roll vulkan-deps from e069d6e7382e to 4391cb02adc5 (1 revision) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/skia-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Configuration menu - View commit details
-
Copy full SHA for aba6abf - Browse repository at this point
Copy the full SHA aba6abfView commit details -
Remove
currentMainUrifromgenerateMainDartWithPluginRegistrant(#……185907) Fixes #185600. `currentMainUri` was unused. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [ ] I updated/added relevant documentation (doc comments with `///`). - [ ] I added new tests to check the change I am making, or this PR is [test-exempt]. - [ ] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ ] All existing and new tests are passing.
Configuration menu - View commit details
-
Copy full SHA for 35ed55b - Browse repository at this point
Copy the full SHA 35ed55bView commit details -
Switches `lldb` to `xcrun lldb`. Xcode's `lldb` seems to be optimized and has better performance. Towards #185762 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Configuration menu - View commit details
-
Copy full SHA for 3ee0842 - Browse repository at this point
Copy the full SHA 3ee0842View commit details -
Convert rebuilding-flutter-tool script to dart (#185089)
Converts a bash script to dart. <details> <summary>Example</summary> ``` # Chat Conversation Note: _This is purely the output of the chat conversation and does not contain any raw data, codebase snippets, etc. used to generate the output._ ### User Input rebuild cli *Viewed [SKILL.md](file:///Users/vashworth/Development/flutter/.agents/skills/rebuilding-flutter-tool/SKILL.md) * *User accepted the command `dart .agents/skills/rebuilding-flutter-tool/scripts/rebuild.dart`* *Checked command status* ### Planner Response **Flutter tool rebuilt successfully!** ``` </details> ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [ ] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Configuration menu - View commit details
-
Copy full SHA for 496e76f - Browse repository at this point
Copy the full SHA 496e76fView commit details -
Show SwiftPM warnings right before iOS/macOS build (#185984)
Currently, we show SwiftPM warnings during `ensureReadyForPlatformSpecificTooling`, which can happen while targeting any build (such as targeting an Android device on a macOS host). We should only show SwiftPM warnings when building for iOS or macOS, so we move the logic to be called right before the build. Fixes #185775. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Configuration menu - View commit details
-
Copy full SHA for 927c1a6 - Browse repository at this point
Copy the full SHA 927c1a6View commit details -
Roll Skia from 32281401997e to 91d3c1e730af (4 revisions) (#186368)
https://skia.googlesource.com/skia.git/+log/32281401997e..91d3c1e730af 2026-05-11 [email protected] Make SkYUVAPixmap comments match behavior 2026-05-11 [email protected] Manually created dawn roll. 2026-05-11 recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com Roll recipe dependencies (trivial). 2026-05-11 [email protected] [graphite] Add Sparse Strips tiler If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/skia-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Configuration menu - View commit details
-
Copy full SHA for b85162a - Browse repository at this point
Copy the full SHA b85162aView commit details -
docs: fix doubled-word typos in comments (#186320)
## Summary Removes accidentally repeated words ("the the", "is is") in dartdoc and inline comments across lutter and lutter_tools. Comment-only follow-up to #186319. No code, public API, or behavior is touched. The fix is mechanical and was verified by re-grepping the modified files. ## Changes - `packages/flutter/lib/src/widgets/text_selection.dart`: `the the start handle` -> `the start handle`; `the the end handle` -> `the end handle` - `packages/flutter_tools/lib/src/ios/lldb.dart`: dartdoc on `_LLDBProcess` — `[Process] that is is running LLDB` -> `[Process] that is running LLDB` - `packages/flutter_tools/test/host_cross_arch.shard/ios_content_validation_test.dart`: `This is is the default for CocoaPods` -> `This is the default for CocoaPods` ## Tests No tests added. This is a comment-only change with no executable lines touched. Verified locally by grepping the touched files for residual `the the` / `is is` / `to to` / similar doubled tokens — none remain. ## Notes for maintainers - Pre-launch checklist read; no engineering doc rewrite needed (docs-only). - No Material or Cupertino source paths are modified, so the active code freeze is not impacted. - Authored by a human (Nicoreia) with AI tooling assistance, in line with Flutter's AI contribution policy: scope is small, mechanical, and reviewable; no generated logic. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] page and followed its process for submitting this PR. - [x] I read and followed the [Flutter Style Guide]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] All existing and new tests are passing. [Contributor Guide]: https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md [Flutter Style Guide]: https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md [CLA]: https://cla.developers.google.com/Configuration menu - View commit details
-
Copy full SHA for 4613306 - Browse repository at this point
Copy the full SHA 4613306View commit details -
[ImpellerC] Write a depfile when --shader-bundle is in use (#186341)
Fixes #186340 When `impellerc` is invoked with both `--depfile=<path>` and `--shader-bundle=<json>`, the depfile is silently dropped. `impellerc_main.cc` takes an early return into `GenerateShaderBundle(switches)` when `--shader-bundle` is set, and the depfile-writing branch only runs on the non-bundle path. Build systems consuming impellerc for shader bundles (notably Dart's `hooks` framework, which `flutter_gpu_shaders`'s `buildShaderBundleJson` goes through) have no way to discover which source files and transitive `#include` headers contributed to the produced bundle, and therefore cannot rerun the bundle build when any input changes. The user-visible effect is that editing a `.frag` referenced by a shader bundle manifest does not invalidate the cached bundle output until `flutter clean` is run, which makes shader iteration painful and confuses new users. This change threads an optional `std::set<std::string>* out_dependencies` parameter through `GenerateShaderBundleFlatbuffer`, `GenerateShaderFB`, and `GenerateShaderBackendFB`. Each `Compiler` instance reports its `GetIncludedFileNames()` plus the primary shader source file into the set, which dedupes naturally across the five target-platform compiles per shader. After successful bundle generation, `GenerateShaderBundle` emits a Ninja-style depfile when `--depfile` is set, mirroring the format produced by `Compiler::CreateDepfileContents` on the single-shader compile path. Manually verified end to end against a real bundle whose only shader transitively `#include`s a header: the resulting depfile lists both files. The new unit tests cover both the explicit-collector path (set contains the primary source files) and the null-collector path (callers that don't pass a set get exactly today's behaviour). Existing shader-bundle unit tests continue to pass unchanged. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Configuration menu - View commit details
-
Copy full SHA for 037b916 - Browse repository at this point
Copy the full SHA 037b916View commit details -
[ci] update no-response workflow to also look for old label name in e… (
#186373) …vents <!-- Thanks for filing a pull request! Reviewers are typically assigned within a week of filing a request. To learn more about code review, see our documentation on Tree Hygiene: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md --> fixes #186223 ## Pre-launch Checklist - [ ] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [ ] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [ ] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [ ] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [ ] I signed the [CLA]. - [ ] I listed at least one issue that this PR fixes in the description above. - [ ] I updated/added relevant documentation (doc comments with `///`). - [ ] I added new tests to check the change I am making, or this PR is [test-exempt]. - [ ] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ ] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Configuration menu - View commit details
-
Copy full SHA for a77a280 - Browse repository at this point
Copy the full SHA a77a280View commit details
Commits on May 12, 2026
-
[Android] Propagate --enable-flutter-gpu Intent extra to engine args (#…
…186298) Fixes #186297. `flutter run --enable-flutter-gpu` now opts the app into Flutter GPU on Android, matching the documented behavior on iOS and macOS. The flutter tool already sends `--ez enable-flutter-gpu true` as an Intent boolean extra to the launched activity (`packages/flutter_tools/lib/src/android/android_device.dart:668`), the same way it ships `enable-impeller`, `enable-vulkan-validation`, `enable-hcpp-and-surface-control`, etc. `FlutterActivity.getFlutterShellArgs()` calls `FlutterShellArgs.fromIntent(getIntent())` to convert those extras into engine arguments, but `fromIntent` is a hardcoded list of intent-key to engine-arg conversions, and the `enable-flutter-gpu` case was never added. So the extra was silently dropped on the floor, no `--enable-flutter-gpu` ever reached `FlutterLoader.ensureInitializationComplete`, and `settings.enable_flutter_gpu` stayed `false`. The runtime check in `lib/gpu/context.cc` then threw the manifest-required exception, even though its own error message explicitly says the CLI flag is one of the valid opt-ins. This PR adds two new constants and one new branch in `FlutterShellArgs.fromIntent`: ```java public static final String ARG_KEY_ENABLE_FLUTTER_GPU = "enable-flutter-gpu"; public static final String ARG_ENABLE_FLUTTER_GPU = "--enable-flutter-gpu"; // In fromIntent, alongside the other boolean extras: if (intent.getBooleanExtra(ARG_KEY_ENABLE_FLUTTER_GPU, false)) { args.add(ARG_ENABLE_FLUTTER_GPU); } ``` Plus two unit tests covering the present-and-absent cases. `FlutterShellArgs` is marked deprecated in favor of `FlutterEngineFlags` (per the pending intent-deprecation work in #180686). The fix is kept in `FlutterShellArgs` because (1) `FlutterShellArgs.fromIntent` is still the operative path for converting tool-side Intent extras into engine args, and (2) `FlutterEngineFlags.getFlagFromIntentKey` is currently only used to log a deprecation warning, not to actually convert the extras. When #180686 lands and the conversion moves entirely to `FlutterEngineFlags`, this hardcoded entry will go away with the rest of `FlutterShellArgs`. `FlutterShellArgsTest.itPropagatesEnableFlutterGpuFromIntent` and `itDoesNotPropagateEnableFlutterGpuWhenAbsent` lock in the behavior at the unit level. Manually verified on a Pixel 10 Pro (Android 16, Vulkan/Impeller) with a flutter_scene-based app: with this patch applied, `flutter run --enable-flutter-gpu --enable-impeller` no longer throws "Flutter GPU must be enabled via the Flutter GPU manifest setting", and the `gpu.gpuContext` access proceeds normally. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Configuration menu - View commit details
-
Copy full SHA for adcd006 - Browse repository at this point
Copy the full SHA adcd006View commit details -
[Impeller] GLES: lazily allocate texture mip levels on first per-leve…
…l write (#186302) `glTexSubImage2D` into a mip level not previously defined by `glTexImage2D` raises `GL_INVALID_OPERATION`. Both the lazy slice-init in `BlitCopyBufferToTextureCommandGLES::Encode` and `TextureGLES::InitializeContentsIfNecessary` only ever allocated level 0, so any non-zero mip upload aborted with a fatal GL error. The pre-existing cubemap path in `InitializeContentsIfNecessary` was also broken: it would re-bind a `GL_TEXTURE_CUBE_MAP` handle to `GL_TEXTURE_2D` and call `glTexImage2D` on the wrong target, a latent crash on the first cubemap sampler bind without a prior face upload. #185890 depends on this PR. ## Approach Per-`(slice, mip_level)` initialization tracking with lazy allocation on first write: 1. `slices_initialized_` becomes `std::array<std::bitset<16>, 6>` (six cubemap faces by up to 16 mip levels, covering a 32k base dimension). 2. `InitializeContentsIfNecessary` allocates only the base mip level. This is byte-identical to pre-fix behavior on the 2D path, so Impeller's snapshot pipeline (`Picture.toImage(generate_mips: true)` -> `RenderTargetAllocator::CreateOffscreen[MSAA]` -> render at level 0 -> `glGenerateMipmap`) keeps its existing GL footprint. For cubemaps the function now correctly binds `GL_TEXTURE_CUBE_MAP` and allocates the base level for each of the six face targets. 3. `BlitCopyBufferToTextureCommandGLES::Encode` allocates the requested `(slice, mip_level)` lazily before `glTexSubImage2D`. Per-level uploads pay only for the levels they touch, and writes to a level after `glGenerateMipmap` (or `MarkContentsInitialized` from the Android external-texture path) are skipped because those bits are already set. 4. `OnSetContents` (the legacy upload path) is updated to use the new bit-marking API. Side-effect fix: the old `slices_initialized_ = AddOperation(...)` assignment clobbered all six cubemap bits on every upload; the new API marks only the face that was actually written. ## Behavior table | Code path | Pre-fix | This PR | |---|---|---| | 2D mip_count=1 (overwhelming majority) | 1 `TexImage2D` | identical | | Snapshot path with `generate_mips=true` | 1 `TexImage2D` upfront + `glGenerateMipmap` driven implicit allocations | identical | | Flutter GPU per-level upload (#185890) | crash (`GL_INVALID_OPERATION` on `glTexSubImage2D`) | works; 1 `TexImage2D` per mip on first write | | Cubemap face upload via blit | works | identical | | Cubemap rebind via `Bind()` before any upload | crash (rebind to `GL_TEXTURE_2D` of cube handle) | works; bind to `GL_TEXTURE_CUBE_MAP` and allocate face base level | This PR does not have a dedicated issue: it is a prerequisite bug fix for the per-`(mip, slice)` upload path required by #185890, and the failure modes (`GL_INVALID_OPERATION` on `glTexSubImage2D`, cubemap rebind to wrong target) are documented above. Verified via new `BlitCommandGLES` unit tests covering base-level, non-zero-mip, repeated-upload, every-mip-on-first-write, and cubemap face cases (`MockGLES` wires `glTexImage2D` and `glBindTexture` to the existing `MOCK_METHOD` declarations); the full GLES test suite passes locally (749 tests); manually confirmed with `flutter_tester_opengles --enable-flutter-gpu` against `gpu_test.dart` from #185890 that `Texture.overwrite writes to a non-zero mip level` and the cubemap-face tests pass. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [ ] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Configuration menu - View commit details
-
Copy full SHA for 2fe6ec5 - Browse repository at this point
Copy the full SHA 2fe6ec5View commit details -
Roll Fuchsia Linux SDK from rFhU-YPqdCRCtCz7b... to z7ICmPtn4hspu02zk…
…... (#186384) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Configuration menu - View commit details
-
Copy full SHA for ad84f8d - Browse repository at this point
Copy the full SHA ad84f8dView commit details -
Fix
EmbedderTest.CanRenderTextWithImpellerMetaltest breakage (#186262) Fix `EmbedderTest.CanRenderTextWithImpellerMetal` test breakage. This broke due to #186074. That PR modified how light text is rendered on macOS, but did not update this test's golden image. This updates the image. It also changes the test to explicitly render dark text on a light background and light text on a dark background. Previously it rendered white text on a transparent background. ## Pre-launch Checklist - [ ] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [ ] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [ ] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [ ] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [ ] I signed the [CLA]. - [ ] I listed at least one issue that this PR fixes in the description above. - [ ] I updated/added relevant documentation (doc comments with `///`). - [ ] I added new tests to check the change I am making, or this PR is [test-exempt]. - [ ] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ ] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Jason Simmons <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 095d8cf - Browse repository at this point
Copy the full SHA 095d8cfView commit details -
[Flutter GPU] Allow customizing the vertex layout on a RenderPipeline (…
…#186310) Adds an explicit `VertexLayout` value type that the caller can pass to `GpuContext.createRenderPipeline` to override the default interleaved layout declared by the bound vertex shader's shader bundle, plus a `slot:` parameter on `RenderPass.bindVertexBuffer` so multiple vertex buffers can be bound to a single draw. This unblocks structure-of-arrays mesh loading (positions in one buffer, normals + UVs in another, etc.) and lets a renderer reorder attributes from the impellerc-generated default. The shipped scope intentionally pins only what's expressible against today's HAL without backing the API into a corner. The deferred capabilities (instancing, sparse bindings, normalized / packed / half-float / BGRA / 64-bit formats) are tracked at #186307, #186308, and #186309, with TODO comments at the relevant call sites pointing at each tracking issue. ### Dart surface ```dart enum VertexFormat { float32, float32x2, float32x3, float32x4, uint32, uint32x2, uint32x3, uint32x4, sint32, sint32x2, sint32x3, sint32x4, } class VertexAttribute { String name; VertexFormat format; int offsetInBytes; // defaults to 0 } class VertexBuffer { int strideInBytes; List<VertexAttribute> attributes; } class VertexLayout { List<VertexBuffer> buffers; } GpuContext.createRenderPipeline(vertex, fragment, {VertexLayout? vertexLayout}); RenderPass.bindVertexBuffer(BufferView, int vertexCount, {int slot = 0}); ``` If `vertexLayout` is `null`, the default for the bound vertex shader is used (today's behavior). The new `slot:` parameter defaults to `0`, so all existing single-buffer call sites compile unchanged. Attributes nest under the `VertexBuffer` they read from; each buffer's position in `VertexLayout.buffers` determines the binding slot it must be bound to via `RenderPass.bindVertexBuffer` (the first buffer is slot 0, the second is slot 1, and so on). `offsetInBytes` defaults to 0 so the common structure-of-arrays case (one attribute per buffer at the start of each element) doesn't need to spell it out. Attributes are keyed by the shader-side input `name` rather than a raw integer location, mirroring how uniform bindings are resolved via `Shader.getUniformSlot('VertInfo')`. This keeps the Dart layout robust to shader edits that reorder `in` declarations (the underlying location, which is what every backend ultimately consumes, is read from the shader's reflection at pipeline build time). ### Example: structure-of-arrays glTF mesh Most glTF mesh primitives store each vertex attribute (POSITION, NORMAL, TEXCOORD_0, ...) in its own accessor, often inside its own buffer view. Without a configurable vertex layout, callers were forced to interleave those attributes on the CPU before upload. With this change, each attribute can keep its own buffer and bind at its own slot. Given a vertex shader that declares three named inputs: ```glsl in vec3 position; in vec3 normal; in vec2 texcoord; ``` A renderer can describe the SoA layout once at pipeline creation and then bind one buffer per slot per draw: ```dart import 'package:flutter_gpu/gpu.dart' as gpu; final pipeline = gpu.gpuContext.createRenderPipeline( vertexShader, fragmentShader, vertexLayout: const gpu.VertexLayout( buffers: <gpu.VertexBuffer>[ gpu.VertexBuffer( strideInBytes: 12, attributes: <gpu.VertexAttribute>[ gpu.VertexAttribute(name: 'position', format: gpu.VertexFormat.float32x3), ], ), gpu.VertexBuffer( strideInBytes: 12, attributes: <gpu.VertexAttribute>[ gpu.VertexAttribute(name: 'normal', format: gpu.VertexFormat.float32x3), ], ), gpu.VertexBuffer( strideInBytes: 8, attributes: <gpu.VertexAttribute>[ gpu.VertexAttribute(name: 'texcoord', format: gpu.VertexFormat.float32x2), ], ), ], ), ); // Per draw call: bind one buffer per slot. renderPass.bindPipeline(pipeline); renderPass.bindVertexBuffer(positionsView, vertexCount, slot: 0); renderPass.bindVertexBuffer(normalsView, vertexCount, slot: 1); renderPass.bindVertexBuffer(texcoordsView, vertexCount, slot: 2); renderPass.draw(); ``` Interleaved layouts work too: declare one `VertexBuffer` whose `strideInBytes` covers the whole vertex, list every attribute under it, and give each attribute past the first an explicit `offsetInBytes` into the element: ```dart vertexLayout: const gpu.VertexLayout( buffers: <gpu.VertexBuffer>[ gpu.VertexBuffer( strideInBytes: 32, attributes: <gpu.VertexAttribute>[ gpu.VertexAttribute(name: 'position', format: gpu.VertexFormat.float32x3), gpu.VertexAttribute( name: 'normal', format: gpu.VertexFormat.float32x3, offsetInBytes: 12, ), gpu.VertexAttribute( name: 'texcoord', format: gpu.VertexFormat.float32x2, offsetInBytes: 24, ), ], ), ], ), ``` This is also how a caller would override the impellerc-generated default to skip an unused attribute or reorder the components. ### Validation `createRenderPipeline` throws a Dart exception when: - A `VertexAttribute.format` doesn't match the bound vertex shader's declared scalar type class (float vs signed int vs unsigned int). Component-count mismatches are NOT errors, mirroring the default-substitution rules every modern HAL uses ((0, 0, 0, 1) fill). - An attribute's `offsetInBytes + format.bytesPerElement` overruns the owning `VertexBuffer`'s stride. - Two attributes within the same `VertexBuffer` occupy overlapping byte ranges (i.e. `[offsetInBytes, offsetInBytes + format.bytesPerElement)` ranges that intersect). - An attribute's `name` doesn't match any vertex shader input declaration. `RenderPass.bindVertexBuffer` throws `RangeError` if `slot` is outside `[0, 16)`. ### C++ plumbing - `Shader::GetStageInputs()` exposes the impellerc-reflected attribute metadata so the pipeline initializer can resolve user attribute names to `(location, set, columns, relaxed_precision)` and validate user formats against the shader's declared scalar type. - `RenderPipeline` stores its own `impeller::VertexDescriptor`, built from the user layout when supplied or fetched from the shader's reflection otherwise. - `RenderPass` upgrades `vertex_buffer` to a `std::array<BufferView, 16>` indexed by binding slot, tracks the highest bound slot, and forwards the whole array to `impeller::RenderPass::SetVertexBuffer(BufferView*, count)`. The packed `(buffer layouts, attributes, attribute names)` data is passed via FFI as three `ByteData` handles and copied out of the typed-data handles before any callback into the Dart VM (else `Dart_TypedDataAcquireData` would forbid the callback). With nested attributes, `bufferLayouts` rows shrink to `[strideInBytes, attributeCount]` and `attributes` rows shrink to `[offsetInBytes, formatIndex, nameByteLength]`; binding slots are implicit in each buffer's position, and the C++ side walks attribute rows by consuming each buffer's `attributeCount` in order. Attribute names are encoded as concatenated UTF-8 bytes walked in parallel with the attributes integer table using each entry's `nameByteLength`. ### Tests Adds six `gpu_test.dart` tests covering an explicit-layout-matching-default render, a slot-range check, and four `createRenderPipeline` validation paths (wrong format, overrun stride, overlapping attributes within a buffer, unknown attribute name). All pass on `flutter_tester_opengles` (SwANGLE) and `flutter_tester` (Metal) locally. Fixes #145013. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Configuration menu - View commit details
-
Copy full SHA for 12d86bc - Browse repository at this point
Copy the full SHA 12d86bcView commit details -
Roll Skia from 91d3c1e730af to ad0aff15b9fa (7 revisions) (#186391)
https://skia.googlesource.com/skia.git/+log/91d3c1e730af..ad0aff15b9fa 2026-05-12 [email protected] Roll vulkan-deps from 4391cb02adc5 to c95bf9c5e989 (13 revisions) 2026-05-11 recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com Roll recipe dependencies (trivial). 2026-05-11 [email protected] [graphite] Add isOpaque to PrecompileShader 2026-05-11 recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com Roll recipe dependencies (trivial). 2026-05-11 [email protected] Reland "Manually created dawn roll." 2026-05-11 recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com Roll recipe dependencies (trivial). 2026-05-11 [email protected] Revert "Manually created dawn roll." If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/skia-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Configuration menu - View commit details
-
Copy full SHA for ac04c44 - Browse repository at this point
Copy the full SHA ac04c44View commit details -
Migrate focus_node.unfocus.0.dart to use
RadioGroup(#183979)Fixes #179088 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [ ] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ ] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Victor Sanni <[email protected]> Co-authored-by: Justin McCandless <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 48a522d - Browse repository at this point
Copy the full SHA 48a522dView commit details -
Roll Skia from ad0aff15b9fa to 77a21bc723dc (2 revisions) (#186396)
https://skia.googlesource.com/skia.git/+log/ad0aff15b9fa..77a21bc723dc 2026-05-12 [email protected] Roll ANGLE from 2d8f36f37859 to 4a6d53434044 (14 revisions) 2026-05-12 [email protected] Roll Skia Infra from 4ff5776b821e to 4bf523d4b47c (19 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/skia-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Configuration menu - View commit details
-
Copy full SHA for f470294 - Browse repository at this point
Copy the full SHA f470294View commit details -
Update iOS scenario app test goldens to match changes from #182662 (#…
…186390) That PR affected golden image tests that use platform views. But the images had not been updated in the PR because errors in the "Mac mac_unopt" suite were suppressed on the dashboard when the PR landed.
Configuration menu - View commit details
-
Copy full SHA for 2b7ca0c - Browse repository at this point
Copy the full SHA 2b7ca0cView commit details -
Pass XcodeBasedProject instead of String to functions in XcodeProject…
…Interpreter (#186378) Pass `XcodeBasedProject` instead of the project path string. This will enable us to be able to get more information about the project (other than just the project path) from places in `xcodeproj.dart`. Needed for #185218, https://github.com/flutter/flutter/pull/186006/changes#r3191012567 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [ ] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Configuration menu - View commit details
-
Copy full SHA for 9ca95e5 - Browse repository at this point
Copy the full SHA 9ca95e5View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff master@{1day}...master