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: 2fa45e01aa5c
Choose a base ref
...
head repository: flutter/flutter
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: c1b14e92dcfb
Choose a head ref
  • 19 commits
  • 79 files changed
  • 12 contributors

Commits on Apr 13, 2026

  1. Expose platform specific handles for multi-window API (#184662)

    Native windowing API has a very large surface with many platform
    specific areas (i.e. window collection behavior on macOS) and we can't
    possibly cover it all.
    
    This PR will provide the functionality for users and package authors to
    access the underlying platform handles.
    
    For every platform window controller (i.e. RegularWindowControllerMacOS)
    a new getter is added:
    ```dart
    ffi.Pointer<ffi.Void> get windowHandle;
    ```
    
    The interpretation of returned handle depends on platform:
    | Platform | Handle Type |
    | ---- |----|
    | macOS | Pointer to `NSWindow` |
    | Windows | `HWND` |
    | Linux | Pointer to `GtkWindow` |
    
    Because the handles are platform specific, it is necessary to cast the
    window controller to a platform specific controller first to obtain the
    handle:
    
    ```dart
    final RegularWindowController controller = ....
    if (controller is WindowControllerWin32) {
       final controllerWin32 = controller as WindowControllerWin32;
       SetWindowDisplayAffinity(controllerWin32.windowHandle, WDA_EXCLUDEFROMCAPTURE);
    }
    ```
    
    ## 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].
    
    **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: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>
    knopp and loic-sharma authored Apr 13, 2026
    Configuration menu
    Copy the full SHA
    5463d9c View commit details
    Browse the repository at this point in the history
  2. Roll Skia from 55ddd6bb8be5 to bc1df263ff3f (6 revisions) (#184968)

    https://skia.googlesource.com/skia.git/+log/55ddd6bb8be5..bc1df263ff3f
    
    2026-04-13 kjlubick@google.com Remove old Dawn file
    2026-04-13 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
    vulkan-deps from 3b423b7f63de to a4418d38ded4 (2 revisions)
    2026-04-13 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
    from 9015bc2851d8 to fd958ac6533e (13 revisions)
    2026-04-13 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn
    from cbeb98c08875 to d2eac07e6a1a (9 revisions)
    2026-04-13 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia
    Infra from e96d81a3b47e to a27de25378c2 (7 revisions)
    2026-04-13 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
    debugger-app-base from 396232912f82 to 13903d912e2d
    
    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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
    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
    engine-flutter-autoroll authored Apr 13, 2026
    Configuration menu
    Copy the full SHA
    b66c945 View commit details
    Browse the repository at this point in the history
  3. Reland "Disable async mode with LLDB" (#184970)

    Reland #184768 and fixed test:
    #184768 (comment)
    
    ## 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
    vashworth authored Apr 13, 2026
    Configuration menu
    Copy the full SHA
    cedb2a5 View commit details
    Browse the repository at this point in the history
  4. Preprovision Android NDK for flavored builds and reuse matching unfla…

    …vored NDKs (#183555)
    
    Flutter currently forces AGP to download the Android NDK by configuring
    a
    synthetic empty CMake project in `forceNdkDownload()`.
    
    For flavored Android apps, that synthetic native configuration can cause
    AGP
    to fold generic CMake tasks across flavors. In practice, building one
    flavor
    can pull native/CMake work from another flavor into the active build.
    
    This change moves NDK provisioning into the Flutter tool flow for
    flavored app
    builds:
    - query the effective `ndkVersion` with a lightweight Gradle metadata
    task
    - install the required NDK before the main build when needed
    - pass a preprovisioned NDK property so `forceNdkDownload()` can return
    early
    
    To avoid adding unnecessary Gradle overhead to common unflavored builds,
    the
    Flutter tool now also skips `forceNdkDownload()` when an existing NDK is
    already discoverable from the Android SDK or standard Android NDK
    environment
    variables.
    
    This preserves the original goal of ensuring the NDK is available, while
    avoiding flavored CMake/native graph contamination.
    
    Manual validation:
    - verified on a minimal flavored Android app that `dev` builds no longer
    pull
      `prod` native/CMake work into the task graph
    - verified locally on a downstream flavored Flutter app for `build apk`,
      `build appbundle`, and `flutter run`
    
    Fixes #183296
    
    ---------
    
    Co-authored-by: Gray Mackall <34871572+gmackall@users.noreply.github.com>
    kyungilcho and gmackall authored Apr 13, 2026
    Configuration menu
    Copy the full SHA
    fb3b552 View commit details
    Browse the repository at this point in the history
  5. Fix codesign verification test for SwiftPM Add to App (#184980)

    Test is failing in release branch:
    
    
    https://ci.chromium.org/ui/p/flutter/builders/prod/Mac%20tool_integration_tests_4_5/9265/overview
    
    ## 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
    vashworth authored Apr 13, 2026
    Configuration menu
    Copy the full SHA
    71e21c5 View commit details
    Browse the repository at this point in the history
  6. [flutter_tools] Cache pubspec reads and share PackageGraph/PackageCon…

    …fig across workspace packages during pub get post-processing (#184528)
    
    In large pub workspaces, `flutter pub get` post-processing was reading
    `pubspec.yaml` files redundantly — once per transitive dependency per
    workspace root package (O(N×deps) disk reads). On a repo with 500+
    plugin packages this caused `flutter pub get` to take ~10 minutes.
    
    This PR fixes that with three changes:
    
    **1. PubspecCache** — `buildPubspecCache()` reads every package's
    `pubspec.yaml` once and caches it by root URI. All workspace root
    packages share this cache during `findPlugins` /
    `computeTransitiveDependencies`,
    reducing pubspec reads from O(N×deps) to O(deps).
    
    **2. Shared PackageGraph and PackageConfig** — both are loaded once
    from the workspace root and passed down through
    `regeneratePlatformSpecificTooling`
    → `refreshPluginsList` / `injectPlugins` → `findPlugins` /
    `computeTransitiveDependencies`. A `useSharedResources` guard ensures
    shared caches are only used when the project is actually a member of
    the workspace graph (non-workspace projects and example apps that are
    not workspace roots fall back to loading their own resources).
    
    **3. Pool-based concurrency** — workspace root packages are processed
    concurrently using `package:pool`, capped to
    `platform.numberOfProcessors`,
    matching the pattern in `build_system.dart`.
    
    Tested changes on the
    https://github.com/aNOOBisTheGod/too-long-post-pub-get
    Before: 40-60 seconds
    After: ~8 seconds
    
    Also tested on our production application
    Before: 6-10 mins
    After: ~40 seconds
    
    Fixes #184515
    aNOOBisTheGod authored Apr 13, 2026
    Configuration menu
    Copy the full SHA
    2e3b7c0 View commit details
    Browse the repository at this point in the history
  7. Update autosubmit guide with the emergency label (#184993)

    The `warning: land on red to fix tree breakage` label was replaced with
    the `emergency` label. Update the autosubmit guide accordingly.
    
    ## 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
    
    ---------
    
    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    loic-sharma and gemini-code-assist[bot] authored Apr 13, 2026
    Configuration menu
    Copy the full SHA
    496ae90 View commit details
    Browse the repository at this point in the history
  8. Roll Skia from bc1df263ff3f to 0e98a9c635bb (1 revision) (#184995)

    https://skia.googlesource.com/skia.git/+log/bc1df263ff3f..0e98a9c635bb
    
    2026-04-13
    louhi-prod-1-6316342352543744@louhi-prod-1.iam.gserviceaccount.com
    Update fiddler-base for 701719264ab0
    
    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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
    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
    engine-flutter-autoroll authored Apr 13, 2026
    Configuration menu
    Copy the full SHA
    0f6c33b View commit details
    Browse the repository at this point in the history
  9. [Impeller] Commands that don't specify their own viewports get the vi…

    …ewport of the render pass. (#177473)
    
    Fixes #176945
    
    ---------
    
    Co-authored-by: gaaclarke <30870216+gaaclarke@users.noreply.github.com>
    chinmaygarde and gaaclarke authored Apr 13, 2026
    Configuration menu
    Copy the full SHA
    dc1c2c7 View commit details
    Browse the repository at this point in the history

Commits on Apr 14, 2026

  1. Configuration menu
    Copy the full SHA
    e4d0f3e View commit details
    Browse the repository at this point in the history
  2. Roll Fuchsia Linux SDK from K_2AkZL3Drs6cGE1q... to rB8LAuZL_DwHMssTU…

    …... (#185007)
    
    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 jimgraham@google.com,zra@google.com 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
    engine-flutter-autoroll authored Apr 14, 2026
    Configuration menu
    Copy the full SHA
    13ce1b0 View commit details
    Browse the repository at this point in the history
  3. Roll Dart SDK from ef28089d6533 to 5504504b38c2 (3 revisions) (#185008)

    https://dart.googlesource.com/sdk.git/+log/ef28089d6533..5504504b38c2
    
    2026-04-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
    Version 3.13.0-14.0.dev
    2026-04-13 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
    Version 3.13.0-13.0.dev
    2026-04-13 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
    Version 3.13.0-12.0.dev
    
    If this roll has caused a breakage, revert this CL and stop the roller
    using the controls here:
    https://autoroll.skia.org/r/dart-sdk-flutter
    Please CC dart-vm-team@google.com,jimgraham@google.com 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
    engine-flutter-autoroll authored Apr 14, 2026
    Configuration menu
    Copy the full SHA
    f6546c2 View commit details
    Browse the repository at this point in the history
  4. Roll Skia from 0e98a9c635bb to d34c84df4c37 (5 revisions) (#185009)

    https://skia.googlesource.com/skia.git/+log/0e98a9c635bb..d34c84df4c37
    
    2026-04-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
    vulkan-deps from a4418d38ded4 to 1d7928d07115 (7 revisions)
    2026-04-13
    recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
    Roll recipe dependencies (trivial).
    2026-04-13
    recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
    Roll recipe dependencies (trivial).
    2026-04-13 michaelludwig@google.com Make SkShader::isOpaque pure
    virtual; fill out missing cases
    2026-04-13 michaelludwig@google.com [skp] Validate image lattice counts
    
    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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
    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
    engine-flutter-autoroll authored Apr 14, 2026
    Configuration menu
    Copy the full SHA
    a52da1a View commit details
    Browse the repository at this point in the history
  5. [record_use] Add recorded uses to link hooks (#184869)

    Bug:
    
    * dart-lang/native#2690
    
    Invokes the Dart compiler with `--recorded-uses` and pipes the result to
    the link hook invocation if the Flutter experiment is enabled.
    
    Testing:
    
    * Changes the existing integration test to expect the right number of
    translations (4 -> 2).
    * Enables the web integration test, as fixes have rolled from Dart to
    Flutter now.
    
    Implementation quirks:
    
    * Accessing the experiment flag required updating a bunch of tests to
    have the feature flags accessible.
    
    Does not yet:
    
    * Split the build and link hooks into separate targets. The build hooks
    can run in parallel with the Dart compilation, the link hooks can not.
    (So for now, when the experiment is enabled run the dart build hooks
    _after_ dart compilation instead of concurrently.) I'll follow up with a
    separate CL to reshuffle the targets.
    dcharkes authored Apr 14, 2026
    Configuration menu
    Copy the full SHA
    c4391ec View commit details
    Browse the repository at this point in the history
  6. Roll Skia from d34c84df4c37 to 0851d988db03 (3 revisions) (#185012)

    https://skia.googlesource.com/skia.git/+log/d34c84df4c37..0851d988db03
    
    2026-04-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
    from fd958ac6533e to 5e591d03650d (6 revisions)
    2026-04-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia
    Infra from a27de25378c2 to 61363e8559c7 (9 revisions)
    2026-04-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn
    from d2eac07e6a1a to d0a283a7a5e6 (16 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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
    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
    engine-flutter-autoroll authored Apr 14, 2026
    Configuration menu
    Copy the full SHA
    2c7d1c4 View commit details
    Browse the repository at this point in the history
  7. [ci] Split up integration.shard record_use_test.dart (#185022)

    Bug:
    
    * #185013
    
    Splits up test.
    
    Manually split up by copy-pasting the file removing the other tests and
    moving the shared methods to
    packages/flutter_tools/test/integration.shard/isolated/record_use_utils.dart
    
    (Avoided using agents here to avoid having to review if the tests are
    still testing what they are supposed to test.)
    
    The new way to run all the relevant tests:
    
    ```
    flutter_tools $ GIT_CONFIG_PARAMETERS="'core.multiPackIndex=false'" flutter test test/integration.shard/isolated/record_use*test.dart --concurrency=1
    ```
    dcharkes authored Apr 14, 2026
    Configuration menu
    Copy the full SHA
    cc214c7 View commit details
    Browse the repository at this point in the history
  8. Roll Dart SDK from 5504504b38c2 to ee5afcef0596 (1 revision) (#185024)

    https://dart.googlesource.com/sdk.git/+log/5504504b38c2..ee5afcef0596
    
    2026-04-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
    Version 3.13.0-15.0.dev
    
    If this roll has caused a breakage, revert this CL and stop the roller
    using the controls here:
    https://autoroll.skia.org/r/dart-sdk-flutter
    Please CC aaclarke@google.com,dart-vm-team@google.com 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
    engine-flutter-autoroll authored Apr 14, 2026
    Configuration menu
    Copy the full SHA
    f5a4d59 View commit details
    Browse the repository at this point in the history
  9. Roll Skia from 0851d988db03 to 4c382df6a25a (1 revision) (#185025)

    https://skia.googlesource.com/skia.git/+log/0851d988db03..4c382df6a25a
    
    2026-04-14 robertphillips@google.com Expand the AndroidPaintOptions test
    to cover several new Pipelines
    
    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 aaclarke@google.com,kjlubick@google.com,thomsmit@google.com 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
    engine-flutter-autoroll authored Apr 14, 2026
    Configuration menu
    Copy the full SHA
    252d635 View commit details
    Browse the repository at this point in the history
  10. Rebuild flutter tool skill (#184975)

    Adds a skill that instructs an agent to rebuild the Flutter tool/CLI. 
    
    This skill allows you to ask your agent to rebuild for you without you
    needing to remember the location.
    
    <details>
      <summary>Example 1</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 the flutter tool
    
    *User accepted the command `flutter help`*
    
    *Viewed [SKILL.md](file:///Users/vashworth/Development/flutter/.agents/skills/rebuilding-flutter-tool/SKILL.md) *
    
    *User accepted the command `./rebuild.sh`*
    
    ### Planner Response
    
    `./rebuild.sh` is running in the background. I will wait for it to complete.
    
    ### Planner Response
    
    **Flutter tool rebuilt successfully!**
    ```
    
    </details>
    
    <details>
      <summary>Example 2</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
    
    *User accepted the command `flutter help`*
    
    *Viewed [SKILL.md](file:///Users/vashworth/Development/flutter/.agents/skills/rebuilding-flutter-tool/SKILL.md) *
    
    *User accepted the command `./rebuild.sh`*
    
    ### Planner Response
    
    I have started rebuilding the Flutter tool by executing the `rebuild.sh` script. I will wait for the background task to complete and verify the output.
    
    ### 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
    vashworth authored Apr 14, 2026
    Configuration menu
    Copy the full SHA
    c1b14e9 View commit details
    Browse the repository at this point in the history
Loading