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: c5a061b18fa2
Choose a base ref
...
head repository: flutter/flutter
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 55b8f88e855f
Choose a head ref
  • 8 commits
  • 37 files changed
  • 8 contributors

Commits on Sep 28, 2026

  1. Cleanup DDC SDK build targets (#193193)

    Replace the two existing DDC sdk.js build targets:
    ```
    flutter/web_sdk:flutter_dartdevc_canvaskit_kernel_sdk_amd
    flutter/web_sdk:flutter_dartdevc_canvaskit_kernel_sdk_ddcLibraryBundle
    ```
    with new variants:
    ```
    flutter/web_sdk:flutter_ddc_canary_sdk
    flutter/web_sdk:flutter_ddc_stable_sdk
    ```
    
    This removes the dart_sdk.js artifact built with the AMD module system
    flags. It is no longer supported and inaccessible from the flutter_tools
    CLI. Other PRs are in flight to delete the remaining test references to
    this module system that are no longer running.
    
    This also prepares for the eventual flip of the DDC `--canary` flag
    default back to `false`. We are now building a dart_sdk.js artifact with
    the flag disabled.
    
    Issue: #142060
    
    ## 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 in-code documentation (doc comments with
    `///`).
    - [x] If this PR introduces a new feature or capability, I created and
    linked a website documentation issue or PR in [flutter/website] (or
    verified none is needed).
    - [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/
    [flutter/tests]: https://github.com/flutter/tests
    [flutter/website]: https://github.com/flutter/website
    [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: Ben Konyi <[email protected]>
    nshahan and bkonyi authored Sep 28, 2026
    Configuration menu
    Copy the full SHA
    929df56 View commit details
    Browse the repository at this point in the history
  2. Allow macOS tests to use macOS 15 or 26 (#193317)

    Part of #192568
    
    The following tests are kept on 15 due to failing testing. We will fix
    once we have macOS 26 bots in the try pool:
    * Mac framework_tests_libraries
    * Mac framework_tests_impeller
    * Mac framework_tests_widgets
    * Mac_build_test flutter_gallery__transition_perf_e2e_ios
    * Mac mac_unopt < ci/mac_release_arm64_tests
    * Linux linux_web_engine_tests < Mac run safari suites
    
    ## 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 in-code documentation (doc comments with
    `///`).
    - [x] If this PR introduces a new feature or capability, I created and
    linked a website documentation issue or PR in [flutter/website] (or
    verified none is needed).
    - [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
    [flutter/website]: https://github.com/flutter/website
    [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: Jackson Gardner <[email protected]>
    vashworth and eyebrowsoffire authored Sep 28, 2026
    Configuration menu
    Copy the full SHA
    4d8bbce View commit details
    Browse the repository at this point in the history
  3. [engine] Decode animation frames with alpha after an opaque first fra…

    …me (#193113)
    
    Fixes #85831
    
    While working on webp encoder for `image` package i noticed that flutter
    does not render some animated webp and gifs with following exception:
    ```
    ======== Exception caught by image resource service ================================================
    The following _Exception was thrown resolving an image frame:
    Exception: Could not getPixels for frame 1
    
    When the exception was thrown, this was the stack: 
    Path: \\Mac\Downloads\gif\200w.webp
    ====================================================================================================
    ```
    <details>
    <summary>Code sample and visual demo with the files used, since the
    issue has no screenshots and author did not provide his code
    sample:</summary>
    
    <img width="1491" height="819" alt="image"
    src="https://github.com/user-attachments/assets/04e7dc17-bc7f-453f-ba28-5621d47c3f23"
    />
    
    ```dart
    import 'dart:io';
    
    import 'package:flutter/material.dart';
    
    void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
      @OverRide
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Material App',
          home: Scaffold(
            appBar: AppBar(title: Text('Material App Bar')),
            body: Center(child: Column(children: <Widget>[
              Image.file(File(r'\\Mac\Downloads\gif\200w.gif'), height: 100,),
              Image.file(File(r'\\Mac\Downloads\gif\200w.webp'), height: 100,),
    
              Image.file(File(r'\\Mac\Downloads\gif\giphy.gif'), height: 100,),
              Image.file(File(r'\\Mac\Downloads\gif\giphy.webp'), height: 100,),
    
              Image.file(File(r'\\Mac\Downloads\gif\opaque_first_frame_bug.gif'), height: 100,),
            ])),
          ),
        );
      }
    }
    ```
    
    <details>
    <summary>Webp and gif Images used for this sample:</summary>
    
    <img width="200" height="356" alt="200w"
    src="https://github.com/user-attachments/assets/abcbdd6e-d4d0-4e23-b88d-04c0e3d4a79e"
    />
    <img width="56" height="100" alt="200w"
    src="https://github.com/user-attachments/assets/8df4d356-1297-4aad-af85-a2b4bd23b606"
    />
    
    <img width="480" height="480" alt="giphy"
    src="https://github.com/user-attachments/assets/13b6952e-1bf9-49ec-b58f-52c5caf6fa04"
    />
    <img width="100" height="100" alt="giphy"
    src="https://github.com/user-attachments/assets/4d3bb3dc-0f8c-4384-9b1d-86e3a4474206"
    />
    <img width="200" height="200" alt="opaque_first_frame_bug"
    src="https://github.com/user-attachments/assets/5e41e321-04f4-4ad5-a9cd-90c0164e4c6a"
    />
    </details>
    
    </details>
    
    It appears that this is an old issue in how Flutter uses Skia, because
    for animated WebP and GIF, Skia's SkCodec::getInfo() reports the alpha
    type of the first frame only, and its documentation doesn't mention that
    (or at least i did not find it). Flutter allocates every frame's bitmap
    from that info without checking getFrameInfo(i).fAlphaType, so Skia
    rejects any later frame with alpha after an opaque first frame with
    kInvalidConversion.
    
    Tested on an engine built from master (e619960, Windows x64 release)
    with an app that decodes every frame through `ui.instantiateImageCodec`:
    
    | file | without the change | with the change |
    |---|---|---|
    | WebP, 59 frames, frames 46 and 53 have alpha | frames 46, 53 fail |
    all decode |
    | 3 WebP files, 15 frames each, frames 1-14 have alpha (lossy and
    lossless) | frames 1-14 fail | all decode |
    | GIF, opaque frame 0, frame 1 with transparency, disposal to background
    | frame 1 fails | all decode |
    | the same WebP frames with one alpha pixel in frame 0, and a GIF with
    disposal none | all decode | all decode |
    
    Fix: when `SkCodec::getInfo()` reports `kOpaque_SkAlphaType` for an
    animation, `BuiltinSkiaCodecImageGenerator` now reports
    `kPremul_SkAlphaType` if any later frame reports a non-opaque
    `SkCodec::FrameInfo::fAlphaType`. Animations whose later frames all
    report `kOpaque_SkAlphaType` stay opaque. APNG is decoded by
    APNGImageGenerator, which this change doesn't touch.
    
    The new tests in `testing/dart/codec_test.dart` use a 140-byte WebP and
    a 70-byte GIF fixture. I ran `codec_test.dart` with `flutter_tester`
    from a `host_debug_unopt_x64` build (Windows x64) with the Skia and
    Impeller Vulkan backends, single and multithreaded: all 16 tests pass.
    Without the change the two new tests fail with `Could not getPixels for
    frame 1`. The Impeller OpenGL ES tests were not tested locally.
    
    <details>
    <summary>Screenshot after the fix, both with impeller enabled and
    disabled:</summary>
    <img width="1329" height="760" alt="image"
    src="https://github.com/user-attachments/assets/a01da7d8-3c40-49a1-a312-4941d23128a2"
    />
    </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].
    - [x] I listed at least one issue that this PR fixes in the description
    above.
    - [ ] I updated/added relevant in-code documentation (doc comments with
    `///`).
    - [ ] If this PR introduces a new feature or capability, I created and
    linked a website documentation issue or PR in [flutter/website] (or
    verified none is needed).
    - [x] 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.
    
    <!-- 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/website]: https://github.com/flutter/website
    [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
    krll-kov authored Sep 28, 2026
    Configuration menu
    Copy the full SHA
    9c3ea4e View commit details
    Browse the repository at this point in the history
  4. Upgrade flutter/flutter to Roblectric 4.17 (#193369)

    Upgrade flutter/flutter to Roblectric 4.17. Includes all neccessary
    engine updates too. This is the latest and only version of Robolectric
    that supports SDK 37.
    
    Added a bunch of flags because JDK 17+ blocks reflective access to JDK
    internals by default. Starting with 4.17, Robolectric's test environment
    setup reflects into `jdk.internal.access`, so these are required. This
    is the flag set
    recommended by Robolectric, see
    https://robolectric.org/getting-started/#running-with-java-17-and-higher.
    
    Partially Addresses #189518
    
    ## 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 in-code documentation (doc comments with
    `///`).
    - [x] If this PR introduces a new feature or capability, I created and
    linked a website documentation issue or PR in [flutter/website] (or
    verified none is needed).
    - [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.
    - [ ] 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
    [flutter/website]: https://github.com/flutter/website
    [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
    jesswrd authored Sep 28, 2026
    Configuration menu
    Copy the full SHA
    6363ecb View commit details
    Browse the repository at this point in the history
  5. Enable unawaited_futures lint across the Flutter repository (#193125)

    Enables the `unawaited_futures` lint rule in
    `analysis_options_common.yaml` across the Flutter repository.
    
    Closes #168555
    
    ## Pre-launch Checklist
    
    - [x] I read the [Contributor Guide] and followed the process outlined
    there for submitting PRs.
    - [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.
    victorsanni authored Sep 28, 2026
    Configuration menu
    Copy the full SHA
    3475a9e View commit details
    Browse the repository at this point in the history

Commits on Sep 29, 2026

  1. shell: Rename first-frame tests AddFirstFrameCallback* (#193418)

    In #191841, we replaced `Shell::WaitForFirstFrame` with
    `Shell::AddFirstFrameCallback` but didn't update the test names to match
    the new API.
    
    In particular, `WaitForFirstFrameTimeout` no longer tested that any
    caller-visible timeout fired, since the new API manages the timeout
    internally. The test now just verifies the first frame callback doesn't
    fire when no frame has rendered.
    
    Just naming changes, no semantic changes.
    
    Issue: b/521830222
    
    
    ## 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 in-code documentation (doc comments with
    `///`).
    - [X] If this PR introduces a new feature or capability, I created and
    linked a website documentation issue or PR in [flutter/website] (or
    verified none is needed).
    - [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
    [flutter/website]: https://github.com/flutter/website
    [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
    cbracken authored Sep 29, 2026
    Configuration menu
    Copy the full SHA
    fab9915 View commit details
    Browse the repository at this point in the history
  2. [engine] Fix remaining unawaited_futures lints (#193508)

    Resolves the remaining `unawaited_futures` lints in
    `engine/src/flutter/` after `unawaited_futures` was enabled in
    `analysis_options_common.yaml` (#193125).
    
    Part of #168555
    
    ## Pre-launch Checklist
    
    - [x] I read the [Contributor Guide] and followed the process outlined
    there for submitting PRs.
    - [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.
    bkonyi authored Sep 29, 2026
    Configuration menu
    Copy the full SHA
    22e75fa View commit details
    Browse the repository at this point in the history
  3. [Android 17] Added Android 17 device to Firebase tests (#193251)

    Added Android 17 device `cubs` to Firebase tests. Ran `gcloud firebase
    test android models list` to check the device exists.
    
    Partially Addresses #189518
    
    ## 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 in-code documentation (doc comments with
    `///`).
    - [x] If this PR introduces a new feature or capability, I created and
    linked a website documentation issue or PR in [flutter/website] (or
    verified none is needed).
    - [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
    [flutter/website]: https://github.com/flutter/website
    [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
    jesswrd authored Sep 29, 2026
    Configuration menu
    Copy the full SHA
    55b8f88 View commit details
    Browse the repository at this point in the history
Loading