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/packages
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0e0a032a4a9b
Choose a base ref
...
head repository: flutter/packages
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 1aa892c09c8b
Choose a head ref
  • 9 commits
  • 127 files changed
  • 5 contributors

Commits on Apr 7, 2026

  1. [various] Convert remaining Groovy files to Kotlin (#11443)

    This is the last in the series of PRs to convert all of our legacy Groovy Gradle files to Kotlin. This converts all remaining Groovy files in the repository to Kotlin (with the exception of legacy_project; see flutter/flutter#184656). This is the app-facing plugin example apps, as well as the Pigeon example app, as those were the ones not yet converted.
    
    As with #11421 I did this as an in-place update primarily done via Gemini, rather than by recreating the entire test app, since plugins tend to have special setup/configs in their example apps:
    - I had Gemini mass-convert the remaining files using the previous conversions as a template.
    - I had Gemini specifically re-review the results for any accidental changes.
    - I did some manual checks for unexpected diffs between resulting files.
    - I did a small amount of manual fixup where Gemini didn't convert correctly.
    - I removed `settings_aar.gradle` from local_auth's example (the only package containing it); it seems to have been something auto-created by an old version of `flutter` for AndroidX compat during a transition phase, and no longer seems to be relevant.
    
    I also removed all the logic from the repo tool to validate Groovy versions of files, now that we don't need to support them, and simplified/updated the tests accordingly.
    
    Fixes flutter/flutter#176065
    
    ## Pre-Review Checklist
    
    [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
    stuartmorgan-g authored Apr 7, 2026
    Configuration menu
    Copy the full SHA
    e37fa8f View commit details
    Browse the repository at this point in the history
  2. [flutter_svg] Remove generated CMake files (#11459)

    Removes files that were missed in
    #11455, causing `pub publish` checks to fail due to a mismatch between checked in and ignored files.
    stuartmorgan-g authored Apr 7, 2026
    Configuration menu
    Copy the full SHA
    d9a2050 View commit details
    Browse the repository at this point in the history
  3. [google_maps_flutter] Android cluster pin info window onTap callback …

    …not firing (#11390)
    
    As described in flutter/flutter#184338, Google Maps Flutter Android has an issue where the cluster pin info window doesn't fire the `onTap` callback. That's the info window that shows when you tap a clustered pin (a pin which is part of a cluster manager). While the info window shows properly, the `onTap` doesn't fire in Android, but properly fires in other platforms.
    
    Fixes flutter/flutter#184338
    
    ## Pre-Review Checklist
    
    **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.
    
    [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
    elitree authored Apr 7, 2026
    Configuration menu
    Copy the full SHA
    221eb21 View commit details
    Browse the repository at this point in the history
  4. Roll Flutter from 9cd60b512fbc to a0924c76b0fd (13 revisions) (#11463)

    flutter/flutter@9cd60b5...a0924c7
    
    2026-04-07 [email protected] Reland "[data_assets] Cleanup tests" (flutter/flutter#184714)
    2026-04-07 [email protected] Use the WindowRegistry in the multiple_windows example app (flutter/flutter#184579)
    2026-04-07 [email protected] Introduce command to build a swift package for SwiftPM add to app integration (flutter/flutter#184660)
    2026-04-07 [email protected] Have `flutter create` create a pubspec.lock to ensure pinned versions are being used. (flutter/flutter#175352)
    2026-04-07 [email protected] [widgets/raw_menu_anchor.dart] Always call onClose and onCloseRequested on descendants before parent. (flutter/flutter#182357)
    2026-04-07 [email protected] `WindowsPlugin` should not crash when ffiPlugin enabled (flutter/flutter#184695)
    2026-04-06 [email protected] Use full goto.google.com hostname for go/ links (flutter/flutter#184679)
    2026-04-06 [email protected] Apply rect clipping to surface views (flutter/flutter#184471)
    2026-04-06 [email protected] [A11y] Allow percentage strings like "50%" as `SemanticsValue` for `ProgressIndicator` (flutter/flutter#183670)
    2026-04-06 [email protected] Fix invisible accessibility element before scroll view (flutter/flutter#184155)
    2026-04-06 [email protected] Roll Skia from 163dfdf500c7 to e264d870a380 (2 revisions) (flutter/flutter#184674)
    2026-04-06 [email protected] Keep last character obscured when toggling obscureText (flutter/flutter#183488)
    2026-04-06 [email protected] Parse scheme file with XML parser for SwiftPM migrator (flutter/flutter#184525)
    
    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
    Please CC [email protected],[email protected] on the revert to ensure that a human
    is aware of the problem.
    
    To file a bug in Packages: 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
    engine-flutter-autoroll authored Apr 7, 2026
    Configuration menu
    Copy the full SHA
    d2316b2 View commit details
    Browse the repository at this point in the history
  5. [all] Prepare packages for skills (#11430)

    go/flutter-flutter-skills-initial-adoption
    
    Longer term we will want the ability to have per package skills but to start out we will just go with one skills directory. 
    
    ## Pre-Review Checklist
    reidbaker authored Apr 7, 2026
    Configuration menu
    Copy the full SHA
    8c3019e View commit details
    Browse the repository at this point in the history

Commits on Apr 8, 2026

  1. [path_provider] Remove dependency on engine PathUtils (#11467)

    Removes the calls to the Flutter engine's `PathUtils`, and replaces them with direct `Context` calls that have the same logic as the expected codepath for those methods so that there will be continuity with previous releases of `path_provider`. This avoids reliance on `PathUtils` not being removed by R8, and also means that engine changes can't unexpectedly change the paths returned by `path_provider`, since we want to make sure any such changes in this package's return values follow semver.
    
    This does not include the fallback logic from
    flutter-team-archive/engine#30367 because unlike the engine callers, `path_provider` doesn't try to assert a non-null return value, and if the paths aren't available (e.g., due to the device being full) we should return null rather than silently return a different directory than was previously returned.
    
    Fixes flutter/flutter#184750
    
    ## Pre-Review Checklist
    
    [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
    stuartmorgan-g authored Apr 8, 2026
    Configuration menu
    Copy the full SHA
    f52df41 View commit details
    Browse the repository at this point in the history
  2. [pigeon] Make Kotlin FlutterError a runtime error (#11469)

    Change the Kotlin generator's `FlutterError` to inherit from `RuntimeException`, rather than just `Runnable`, so that it behaves as an unchecked error when used from Java (as is the case for the Java version).
    
    Fixes flutter/flutter#184200
    
    ## Pre-Review Checklist
    
    [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
    stuartmorgan-g authored Apr 8, 2026
    Configuration menu
    Copy the full SHA
    617d2bd View commit details
    Browse the repository at this point in the history
  3. Roll Flutter from a0924c76b0fd to 05e0ae02600d (24 revisions) (#11470)

    flutter/flutter@a0924c7...05e0ae0
    
    2026-04-08 [email protected] Fix Android engine flags defaulting to true for malformed values (flutter/flutter#184631)
    2026-04-08 [email protected] Try one more again (flutter/flutter#184767)
    2026-04-08 [email protected] Remove custom `analysis_options.yaml` from `imitation_game_flutter` (flutter/flutter#184717)
    2026-04-08 [email protected] Add more error handling to unawaited callsites (flutter/flutter#184526)
    2026-04-08 [email protected] Refactor: remove material from absorb_ponter_test, container_test,  lookup_boundary_test, page_view_test, router_test, semantics_clipping_test, semantics_merge_test, shadow_test, text_test (flutter/flutter#183309)
    2026-04-08 [email protected] Remove editable_text_utils cross-imports from material and cupertino … (flutter/flutter#184519)
    2026-04-08 [email protected] Replace hard coded max path length with system defined one. (flutter/flutter#184697)
    2026-04-08 [email protected] [Re-land] Add Support For Built-in Kotlin (flutter/flutter#184745)
    2026-04-08 [email protected] Manually stop and continue LLDB breakpoints on Xcode 26.4+ (flutter/flutter#184690)
    2026-04-08 [email protected] Code freeze workflow (flutter/flutter#184246)
    2026-04-08 [email protected] [Dot shorthands] Migrate examples/api/lib/widgets (flutter/flutter#183965)
    2026-04-08 [email protected] [cupertino.dart] Implement CupertinoMenuAnchor and CupertinoMenuItem using RawMenuAnchor (flutter/flutter#182036)
    2026-04-08 [email protected] [Semantics] clarify Android header docs (flutter/flutter#183573)
    2026-04-08 [email protected] [ci] mac build_test bringup false (flutter/flutter#184738)
    2026-04-08 [email protected] Reland "Apply rect clipping to surface views" (flutter/flutter#184732)
    2026-04-08 [email protected] Remove bringup label for resharded Windows tool_integration_tests shards (flutter/flutter#184721)
    2026-04-08 [email protected] Tool: Add search and filtering to widget preview scaffold (flutter/flutter#184023)
    2026-04-08 [email protected] Update localization from translation console (flutter/flutter#184742)
    2026-04-07 [email protected] Revert "Add Support For Built-in Kotlin (#184227)" (flutter/flutter#184739)
    2026-04-07 [email protected] Collect HCPP adoption analytics for flutter run/build apk/build appbundle (flutter/flutter#184225)
    2026-04-07 [email protected] Add a github workflow for reverting PRs. (flutter/flutter#184593)
    2026-04-07 [email protected] Add Support For Built-in Kotlin (flutter/flutter#184227)
    2026-04-07 [email protected] Revert "Apply rect clipping to surface views (#184471)" (flutter/flutter#184728)
    2026-04-07 [email protected] [Fix-forward] Added Compose plugin to Add-to-app Integration Test (flutter/flutter#184681)
    
    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
    Please CC [email protected],[email protected] on the revert to ensure that a human
    is aware of the problem.
    
    To file a bug in Packages: 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
    engine-flutter-autoroll authored Apr 8, 2026
    Configuration menu
    Copy the full SHA
    03b36d6 View commit details
    Browse the repository at this point in the history

Commits on Apr 9, 2026

  1. [webview_flutter_android] Adds support to opt out of Android inset ch…

    …anges (#11192)
    
    For WebView versions >=144, support has been added for [displayCutout()](https://developer.android.com/reference/androidx/core/view/WindowInsetsCompat.Type#displayCutout%28%29) insets and [systemBars()](https://developer.android.com/reference/androidx/core/view/WindowInsetsCompat.Type#systemBars%28%29) insets. This is causing WebViews to incorrectly report that it is obscured by a system bar or display cutout as demonstrated in this [issue](flutter/flutter#182208). 
    
    This adds the opt out for inset changes as explained [in this chromium doc](https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/insets.md#opt_out). It seems Flutter handles safe areas for platform views, so the `AndroidWebViewController` can zero out inset changes to the WebContent.
    
    iOS does [something similar](https://github.com/flutter/packages/blob/main/packages/webview_flutter/webview_flutter_wkwebview/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/WebViewProxyAPIDelegate.swift#L50). And it also sets [UIScrollView.contentInsetAdjustmentBehavior](https://developer.apple.com/documentation/uikit/uiscrollview/contentinsetadjustmentbehavior-swift.property) to `Never`. My assumption was that this was never done for Android, because `WebView`s didn't receive these inset changes until this version.
    
    <details open><summary>Code sample</summary>
    
    main.dart in `webview_flutter_android`:
    
    ```dart
    import 'package:flutter/material.dart';
    import 'package:webview_flutter_android/webview_flutter_android.dart';
    import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart';
    
    const String htmlPage = '''
    <!DOCTYPE html>
    <html lang="de">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>WebView Test</title>
        <style>
            header {
                position: absolute;
                top: 0;
                left: 0;
                right: 0;
                padding-top: env(safe-area-inset-top);
                background-color: blue;
                color: #ffffff;
            }
            .content {
                padding-top: 72px;
            }
        </style>
    </head>
    <body>
    <div class="container">
        <header><h1>Webview AppBar</h1></header>
        <div class="content">
            <p>This is some webview content</p>
        </div>
    </div>
    </body>
    </html>
    ''';
    
    void main() {
      runApp(const MyApp());
    }
    
    class MyApp extends StatelessWidget {
      const MyApp({super.key});
    
      @OverRide
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
          ),
          home: const MyHomePage(title: 'Flutter Demo Home Page'),
        );
      }
    }
    
    class MyHomePage extends StatefulWidget {
      const MyHomePage({super.key, required this.title});
    
      final String title;
    
      @OverRide
      State<MyHomePage> createState() => _MyHomePageState();
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      late final PlatformWebViewController _controller;
    
      @OverRide
      void initState() {
        super.initState();
    
        _controller =
            PlatformWebViewController(
                const PlatformWebViewControllerCreationParams(),
              )
              ..setJavaScriptMode(JavaScriptMode.unrestricted)
              ..loadHtmlString(htmlPage);
        // Uncomment to fix.
        /*
       (_controller as AndroidWebViewController).setInsetsForWebContentToIgnore(
          <AndroidWebViewInsets>[
            AndroidWebViewInsets.displayCutout,
            AndroidWebViewInsets.systemBars,
          ],
        );
        */
      }
    
      @OverRide
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            backgroundColor: Theme.of(context).colorScheme.primary,
            toolbarHeight: 0,
          ),
          body: PlatformWebViewWidget(
            PlatformWebViewWidgetCreationParams(controller: _controller),
          ).build(context),
        );
      }
    }
    ```
    
    </details>
    
    <details open><summary>Screenshots</summary>
    
    | Before      | After |
    | ----------- | ----------- |
    | <img width="1080" height="2424" alt="Screenshot_20260313_151847" src="https://github.com/user-attachments/assets/202da750-dc9e-4bfd-8a84-72462e405781" /> | <img width="1080" height="2424" alt="Screenshot_20260313_151957" src="https://github.com/user-attachments/assets/900554b9-2e85-4e28-83e9-71f795974191" />       |
    
    </details>
    
    Fixes flutter/flutter#182208
    
    ## Pre-Review Checklist
    
    **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.
    
    [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
    bparrishMines authored Apr 9, 2026
    Configuration menu
    Copy the full SHA
    1aa892c View commit details
    Browse the repository at this point in the history
Loading