Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: flutter/flutter
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: d3b14c876900
Choose a base ref
...
head repository: flutter/flutter
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 9584c6713b32
Choose a head ref
  • 15 commits
  • 50 files changed
  • 4 contributors

Commits on Sep 1, 2026

  1. [CP-stable]Denylists b-series powervr from vulkan (#191903)

    This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
    Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.
    
    ### Issue Link:
    What is the link to the issue this cherry-pick is addressing?
    
    - #181315
    - #191457
    - #191351
    
    ### Impact Description:
    What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)?
    Does it impact development (ex. flutter doctor crashes when Android Studio is installed),
    or the shipping of production apps (the app crashes on launch).
    This information is for domain experts and release engineers to understand the consequences of saying yes or no to the cherry pick.
    
    There are a slew of oddities associated with this GPU, graphical glitches and suboptimal performance.
    
    ### Changelog Description:
    Explain this cherry pick:
    * In one line that is accessible to most Flutter developers.
    * That describes the state prior to the fix.
    * That includes which platforms are impacted.
    See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples.
    
    [flutter/181315] When using Impeller on Android devices with B-Series PowerVR GPUs, visual oddities and performance drops can be experienced.
    
    ### Workaround:
    Is there a workaround for this issue?
    
    No.
    
    ### Risk:
    What is the risk level of this cherry-pick?
    
    ### Test Coverage:
    Are you confident that your fix is well-tested by automated tests?
    
    ### Validation Steps:
    What are the steps to validate that this fix works?
    
    This just reverts us to a preexisting state and sends these devices down a well known path.
    flutteractionsbot authored Sep 1, 2026
    Configuration menu
    Copy the full SHA
    ad4b29a View commit details
    Browse the repository at this point in the history
  2. [stable] [flutter_tools] Handle missing Xcode gracefully in getInfo a…

    …nd buildMacOS (#191902)
    
    This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
    Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.
    
    ### Issue Link:
    #191176
    
    ### Impact Description:
    When running `flutter build macos` or `flutter build ios` on systems where Xcode is uninstalled, incomplete (e.g. Command Line Tools only), or misconfigured, `XcodeProjectInterpreter.getInfo` invokes `xcrun xcodebuild -list` which exits with code 72 (`unable to find utility "xcodebuild"`). Because code 72 was not in the allowed exit codes, `flutter_tools` crashes with an unhandled `ProcessException`. In Flutter 3.47.1 telemetry, this was a top crash with 320 crashes (15.2% share of top 10 crashes). This impacts development workflows on macOS.
    
    **Conflict Resolution Note**: Resolved a minor merge conflict in `packages/flutter_tools/lib/src/macos/build_macos.dart` by ordering the Xcode installation pre-flight check ahead of workspace validation.
    
    ### Changelog Description:
    [flutter/191176] When building for macOS or iOS on machines with missing or incomplete Xcode installations, flutter_tools displays an actionable error message instead of crashing with an unhandled ProcessException.
    
    ### Workaround:
    Install Xcode or configure the active developer directory via:
    `sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer`
    
    ### Risk:
    
    ### Test Coverage:
    
    ### Validation Steps:
    1. On a macOS machine, switch `xcode-select` to Command Line Tools: `sudo xcode-select -s /Library/Developer/CommandLineTools`.
    2. Run `flutter build macos` in a Flutter project.
    3. Verify `flutter_tools` displays a clean `ToolExit` instructing the user to install or configure Xcode, rather than crashing with an unhandled `ProcessException` and stack trace.
    4. Run automated test suite: `dart test test/general.shard/ios/xcodeproj_test.dart` and `dart test test/commands.shard/hermetic/build_macos_test.dart`.
    bkonyi authored Sep 1, 2026
    Configuration menu
    Copy the full SHA
    115c53d View commit details
    Browse the repository at this point in the history

Commits on Sep 2, 2026

  1. [CP-stable]Fix Android license detection for cmdline-tools 23.0+ (#19…

    …2133)
    
    This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
    Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.
    
    ### Issue Link:
    #191487
    
    ### Impact Description:
    Android SDK Command-line Tools 23.0 deprecated `sdkmanager --licenses` in favor of the new `android` CLI. When invoked, `sdkmanager --licenses` now only outputs a deprecation notice (`Warning: The --licenses option is no longer needed.`) rather than the parseable license summary `flutter doctor` previously depended on.
    
    As a result, `flutter doctor` fails to parse license status and reports `✗ Android license status unknown.` while prompting users to run `flutter doctor --android-licenses`, which fails to resolve the issue. 
    
    ### Changelog Description:
    [flutter/191487] When using Android SDK Command-line Tools 23.0+ for Android, flutter doctor incorrectly reports "Android license status unknown".
    
    ### Workaround:
    1. Downgrade Android SDK Command-line Tools to version 22.0 via the Android Studio SDK Manager or CLI.
    2. If licenses have already been accepted on disk in `<Android-SDK>/licenses/`, Android Gradle builds still succeed and the `flutter doctor` warning can be safely ignored (if the user knows to ignore).
    
    ### Risk:
    What is the risk level of this cherry-pick?
    
    ### Test Coverage:
    Are you confident that your fix is well-tested by automated tests?
    
    ### Validation Steps:
    1. Ensure Android SDK Command-line Tools 23.0 is installed (verify in `$ANDROID_HOME/cmdline-tools/latest/source.properties` that `Pkg.Revision=23.0`).
    2. Run `flutter doctor -v`.
    3. Verify that under `Android toolchain`, it reports `• All Android licenses accepted.` instead of `✗ Android license status unknown.`
    4. (Optional negative check) Temporarily rename the `$ANDROID_HOME/licenses` directory, run `flutter doctor -v`, and verify it reports `Android licenses not accepted`. Restore the directory.
    flutteractionsbot authored Sep 2, 2026
    Configuration menu
    Copy the full SHA
    383b332 View commit details
    Browse the repository at this point in the history
  2. [CP-stable]Fix Actions.handler to forward the intent type to maybeFind (

    #192203)
    
    This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
    Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.
    
    ### Issue Link:
    What is the link to the issue this cherry-pick is addressing?
    
    #191045
    
    ### Impact Description:
    What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)?
    Does it impact development (ex. flutter doctor crashes when Android Studio is installed),
    or the shipping of production apps (the app crashes on launch).
    This information is for domain experts and release engineers to understand the consequences of saying yes or no to the cherry pick.
    
    All users of the `Actions.handler` API on all platforms are broken by this bug.
    
    ### Changelog Description:
    Explain this cherry pick:
    * In one line that is accessible to most Flutter developers.
    * That describes the state prior to the fix.
    * That includes which platforms are impacted.
    See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples.
    
    [flutter/191045] When `calling Actions.handler` on all platforms, `null` was always returned.
    
    ### Workaround:
    Is there a workaround for this issue?
    
    End users would need to reimplement Actions.handler and Action._isEnabled, or switch to master/main channel, or revert to 3.44
    
    ### Risk:
    What is the risk level of this cherry-pick?
    
    ### Test Coverage:
    Are you confident that your fix is well-tested by automated tests?
    
    ### Validation Steps:
    What are the steps to validate that this fix works?
    
    Compare use of Actions.handler on Flutter 3.47 (broken) vs 3.44.
    
    ```dart
    final callback = Actions.handler(context, MyIntent(...));
    ```
    
    When broken, `callback` is always null. When fixed it is the VoidCallback that has been set up to handle the given intent.
    flutteractionsbot authored Sep 2, 2026
    Configuration menu
    Copy the full SHA
    75a5dd9 View commit details
    Browse the repository at this point in the history
  3. [flutter-3.47-candidate.0] Sync engine.version to ad4b29a (#192211)

    Updates the engine.version file from `a804b261645ef8c13eb3d5c44a5c2fb0340c5539` to `ad4b29ad6eb09fbfc827fa7defe115aedbe1e347`.
    flutteractionsbot authored Sep 2, 2026
    Configuration menu
    Copy the full SHA
    b29eb3f View commit details
    Browse the repository at this point in the history

Commits on Sep 3, 2026

  1. [flutter-3.47-candidate.0] Update Flutter DEPS to Dart 1d1a730ef918d6…

    …02aedafc939a4cf5940e7589ab (#192210)
    
    This PR updates the transitive dependencies in the engine `DEPS` file based on Dart SDK hash `1d1a730ef918d602aedafc939a4cf5940e7589ab`.
    flutteractionsbot authored Sep 3, 2026
    Configuration menu
    Copy the full SHA
    06a2e2a View commit details
    Browse the repository at this point in the history
  2. Changelog entries from all CPs (#192214)

    This PR contains the changelog entries for stable hotfix 3.47.3 (#192086).
    justinmc authored Sep 3, 2026
    Configuration menu
    Copy the full SHA
    858dc66 View commit details
    Browse the repository at this point in the history

Commits on Sep 4, 2026

  1. [flutter-3.47-candidate.0] Sync engine.version to 06a2e2a (#192312)

    Updates the engine.version file from `ad4b29ad6eb09fbfc827fa7defe115aedbe1e347` to `06a2e2a110089dff50fe635cffd2a61e1b24fbcd`.
    flutteractionsbot authored Sep 4, 2026
    Configuration menu
    Copy the full SHA
    e8113bf View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2026

  1. [stable] [flutter_tools] Gracefully handle Windows Application Contro…

    …l and security policy execution blocks (#192254)
    
    This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
    Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.
    
    ### Issue Link:
    #191899
    
    ### Impact Description:
    When Windows Smart App Control (SAC), Windows Defender Application Control (WDAC), or Group Policy blocks execution of Flutter binaries (such as `dartaotruntime.exe` executing `frontend_server_aot.dart.snapshot`), the Flutter tool crashes with an unhandled `ProcessException` instead of providing an actionable error message. This was the #1 tool crash in Flutter 3.47.1 (accounting for 354 crashes / 16.9% of the top 10 crashes). This fix catches the policy block error codes and displays a clear `ToolExit` explaining how to configure exclusions in Windows Security.
    
    ### Changelog Description:
    [flutter/191899] When Windows Smart App Control or security policies block binary execution on Windows, gracefully handle the error with an actionable message instead of crashing.
    
    ### Workaround:
    Manually add an exclusion for the Flutter SDK directory in Windows Security / Smart App Control / WDAC settings, or disable Smart App Control. However, users experiencing the crash currently receive an unhandled stack trace without clear indication of why execution was blocked.
    
    ### Risk:
    
    ### Test Coverage:
    
    ### Validation Steps:
    1. Run `flutter test test/general.shard/base/error_handling_io_test.dart` to verify that Windows error codes 4551, 1260, and 454 are mapped to the expected `ToolExit` message.
    2. On a Windows machine with Smart App Control or AppLocker configured to block unsigned binaries in user space, run `flutter build` or compile a Flutter project to verify that the tool exits cleanly with the explanatory error message rather than crashing with an unhandled `ProcessException`.
    flutteractionsbot authored Sep 9, 2026
    Configuration menu
    Copy the full SHA
    e71ed18 View commit details
    Browse the repository at this point in the history
  2. [stable] [flutter_tools] Report preview reload timing analytics in Ls…

    …pPreviewDetector (#192256)
    
    This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
    Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.
    
    ### Issue Link:
    #192120
    
    ### Impact Description:
    In Flutter 3.44 ([#184473](#184473)), `LspPreviewDetector` became the default preview detector, but did not instrument preview reload timing analytics (`previewAnalytics.startPreviewReloadStopwatch()` and `previewAnalytics.reportPreviewReloadTiming()`). This caused a severe drop in reported `preview-reload-time` telemetry events for the widget previewer. This cherry-pick restores reporting of reload timing metrics and filters out non-Dart file edits to avoid spurious reload timing events.
    
    ### Changelog Description:
    [flutter/192120] Fixes missing preview reload timing analytics in LspPreviewDetector across all platforms.
    
    ### Workaround:
    None. Telemetry for widget preview reload timing is omitted unless instrumented.
    
    ### Risk:
    What is the risk level of this cherry-pick?
    
    ### Test Coverage:
    Are you confident that your fix is well-tested by automated tests?
    
    ### Validation Steps:
    Run `packages/flutter_tools` unit tests:
    `dart test test/commands.shard/hermetic/widget_preview/lsp_preview_detector_test.dart`
    bkonyi authored Sep 9, 2026
    Configuration menu
    Copy the full SHA
    4c685f8 View commit details
    Browse the repository at this point in the history
  3. [CP-stable] Collect analytics about SwiftPM errors and warnings (#191746

    ) (#192303)
    
    ### Issue Link:
    #181560
    
    ### Impact Description:
    
    Flutter team is trying to improve SwiftPM migration experience by gathering more metrics. 
    
    ### Changelog Description:
    [flutter/181560] When building iOS and macOS app, SwiftPM migration warnings and errors are not tracked in analytics.
    
    ### Workaround:
    None
    
    ### Risk:
    What is the risk level of this cherry-pick?
    
    ### Test Coverage:
    Are you confident that your fix is well-tested by automated tests?
    
    ### Validation Steps:
    N/A
    vashworth authored Sep 9, 2026
    Configuration menu
    Copy the full SHA
    7d70527 View commit details
    Browse the repository at this point in the history
  4. [CP-stable][native assets] Bump minimum iOS version from 13 to 15 (#1…

    …92506)
    
    This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
    Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.
    
    ### Issue Link:
    What is the link to the issue this cherry-pick is addressing?
    
    https://github.com/flutter/flutter/issues/< Replace with issue link here >
    
    ### Impact Description:
    What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)?
    Does it impact development (ex. flutter doctor crashes when Android Studio is installed),
    or the shipping of production apps (the app crashes on launch).
    This information is for domain experts and release engineers to understand the consequences of saying yes or no to the cherry pick.
    
    Developers cannot submit iOS apps to App Store Connect / TestFlight when using native assets compiled with -mios-version-min >= 14 (such as libraries using C++20).
    
    This impacts shipping production apps. Apple rejects the uploaded IPA with error ITMS-90208: Invalid Bundle because flutter_tools generates a framework Info.plist with MinimumOSVersion = 13.0, conflicting with the binary's higher OS requirement.
    
    ### Changelog Description:
    Explain this cherry pick:
    * In one line that is accessible to most Flutter developers.
    * That describes the state prior to the fix.
    * That includes which platforms are impacted.
    See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples.
    
    #191964: On iOS, apps bundling native assets fail App Store submission when native libraries are compiled with deployment targets above iOS 13.
    
    ### Workaround:
    Is there a workaround for this issue?
    
    Manually edit Info.plist inside Runner.app/Frameworks/.framework/Info.plist in the built archive to set MinimumOSVersion to 15.0, and re-sign the framework and app before uploading to App Store Connect
    
    ### Risk:
    What is the risk level of this cherry-pick?
    
    ### Test Coverage:
    Are you confident that your fix is well-tested by automated tests?
    
    ### Validation Steps:
    What are the steps to validate that this fix works?
    
    1) Build an iOS app with native assets: flutter build ios --release --no-codesign.
    2) Check the framework Info.plist
    ```
    plutil -p build/ios/iphoneos/Runner.app/Frameworks/*.framework/Info.plist | grep MinimumOSVersion
    
    ```
    3)Confirm it reads "15.0" instead of "13.0"
    flutteractionsbot authored Sep 9, 2026
    Configuration menu
    Copy the full SHA
    015aafa View commit details
    Browse the repository at this point in the history
  5. [CP-stable] Prepare and warn when missing iOS Device Support Symbols (#…

    …192301)
    
    ### Issue Link:
    #189284
    
    ### Impact Description:
    
    When debugging on iOS 27 devices, the app may launch and hang for multiple minutes.
    
    ### Changelog Description:
    [flutter/189284] When debugging with an iOS 27 device, the app may launch to a white screen and hang for multiple minutes.
    
    ### Workaround:
    Run `xcrun xcodebuild -prepareDeviceSupport -destination id=[insert device id]`
    
    ### Risk:
    What is the risk level of this cherry-pick?
    
    ### Test Coverage:
    Are you confident that your fix is well-tested by automated tests?
    
    ### Validation Steps:
    See repro steps in #189284.
    vashworth authored Sep 9, 2026
    Configuration menu
    Copy the full SHA
    c41a033 View commit details
    Browse the repository at this point in the history
  6. [CP-stable]fix(tool): remove redundant --enable-experiment=record-use…

    … flag (#192318)
    
    This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
    Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.
    
    ### Issue Link:
    #190465
    
    ### Impact Description:
    In Dart 3.7 (shipped in Flutter 3.47), `record-use` was enabled by default. Passing `--enable-experiment=record-use` emitted a non-fatal warning on `stderr`. Because `flutter_tools` evaluated `if (stderr.isNotEmpty) result = 'failure'`, this non-fatal compiler warning caused dry runs to bypass `stdout` findings parsing and omit `E00`–`E17` package incompatibility telemetry keys.
    
    ### Changelog Description:
    
    #190465 When running WebAssembly dry-run builds on Web, remove redundant experiment flag warning that dropped telemetry error findings.
    
    ### Workaround:
    Is there a workaround for this issue?
    
    None. Telemetry payload parameters were dropped internally by the CLI tool.
    
    ### Risk:
    What is the risk level of this cherry-pick?
    
    ### Test Coverage:
    Are you confident that your fix is well-tested by automated tests?
    
    ### Validation Steps:
    What are the steps to validate that this fix works?
    
    1. Run `flutter build web --no-wasm-dry-run` vs dry-run mode on a project with legacy web dependencies (`dart:html` or `package:js`).
    2. Verify `Event.flutterWasmDryRunPackage` emits `result: "findings"` and attaches `E...` error keys without `stderr` warning spam.
    flutteractionsbot authored Sep 9, 2026
    Configuration menu
    Copy the full SHA
    5743177 View commit details
    Browse the repository at this point in the history

Commits on Sep 10, 2026

  1. [CP-stable][flutter_tools] Safely handle non-JSON messages in test st…

    …ream parsers (#192419)
    
    This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
    Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.
    
    ### Issue Link:
    #191898
    
    ### Impact Description:
    Top crash in Flutter 3.47.1 accounting for 245 crashes (11.7% share of top crashes). When a test runner process or browser socket dumps unformatted non-JSON error output (such as dynamic library loading errors or missing snapshot warnings) directly onto the test communication stream or WebSocket, `_ChunkedJsonParser` throws an unhandled `FormatException: Unexpected character (at character 1)`, terminating the `flutter test` CLI process.
    
    ### Changelog Description:
    [flutter/191898] When remote test processes emit plain-text error output on all platforms, prevent flutter_tools from crashing with an unhandled FormatException.
    
    ### Workaround:
    None. Any test execution where a child runner or socket prints plain text instead of JSON fatal crashes the test runner CLI.
    
    ### Risk:
    
    ### Test Coverage:
    
    ### Validation Steps:
    Run `flutter test test/general.shard/flutter_platform_test.dart` and `flutter test test/commands.shard/hermetic/flutter_web_platform_test.dart`.
    Specifically, `pipeHarnessToRemote safely ignores non-JSON string and logs warning` validates that plain text received over the stream logs a warning/trace without crashing the process, and subsequent valid JSON packets are processed normally.
    flutteractionsbot authored Sep 10, 2026
    Configuration menu
    Copy the full SHA
    9584c67 View commit details
    Browse the repository at this point in the history
Loading