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

Commits on Nov 6, 2025

  1. [tool] Fix IP parsing by using Uri constructor (#178083)

    Also DRY'd up use of `"any"` constant is several places.
    
    Fixes #178082
    kevmoo authored Nov 6, 2025
    Configuration menu
    Copy the full SHA
    e979e16 View commit details
    Browse the repository at this point in the history
  2. Use aria-hidden attribute for platform view accessibility on web (#17…

    …7969)
    
    Use aria-hidden attribute for platform view accessibility on web
    
    Before change:
    https://map-1023-before.web.app/
    
    After change:
    https://map-1023-after.web.app/
    
    Fixes #171948.
    
    Note: When a descendant element receives focus (for example, a marker),
    the browser automatically overrides aria-hidden. This behavior is
    correct and expected for accessibility compliance.
    flutter-zl authored Nov 6, 2025
    Configuration menu
    Copy the full SHA
    f19a80a View commit details
    Browse the repository at this point in the history
  3. Respect product flavor abiFilters by adding a disable-abi-filtering…

    … Android project flag. (#177753)
    
    This PR introduces a flag (`disable-abi-filtering`) that disables the
    FlutterPlugin's abiFiltering on buildTypes. This should only be used
    when the developers know what they are doing. Specifically this allows
    developers to set their own abiFilters in ProductFlavors or
    defaultConfig.
    
    Because Gradle has complex merging logic, there is a hierarchy of
    priority when calculating settings (like abiFilters). For example:
    defaultConfig < productFlavors < buildTypes when combining the three
    into the final build variant. If abiFilters are set in buildType, it
    will override abiFilters in productFlavors.
    
    When the FlutterPlugin executes, it cannot know about the developers
    build.gradle settings and therefore we cannot add logic that checks to
    see if abiFilters are set in productFlavors. Therefore, this flag gives
    developers an escape hatch so they can implement what they want.
    
    Fixes: #175845 
    
    ## 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.
    mboetger authored Nov 6, 2025
    Configuration menu
    Copy the full SHA
    767fac1 View commit details
    Browse the repository at this point in the history
  4. Allow label to be used to compute InputDecorator Intrinsic width (#17…

    …8101)
    
    ## Description
    
    This PR adds `InputDecorator.maintainLabelSize` (similar to
    `InputDecorator.maintainHintSize`) to allow the label to be used in the
    intrinsic width calculation (if could be used for the intrinsic height
    calculation later if needed).
    
    I opted for this flag (and defaulting to false) because changing the
    default calculation would probably break various usages.
    See
    #178099 (comment)
    for why this change will be helpful to simplify and fix DropdownMenu
    implementation.
    
    
    ## Before
    
    The label might be cut off:
    
    <img width="126" height="71" alt="Screenshot 2025-11-05 at 20 16 43"
    src="https://github.com/user-attachments/assets/61d9f817-5c58-43f9-9307-976f9c124ec7"
    />
    
    ## After
    
    The label is entirely visible because it is part of the intrinsic width
    calculation:
    
    <img width="126" height="71" alt="Screenshot 2025-11-05 at 20 16 09"
    src="https://github.com/user-attachments/assets/47360e17-3cde-4f05-8a6b-cc9e86644ffc"
    />
    
    
    ## Related Issue
    
    Fixes [DropdownMenu menu panel does not close when pressing ESC and
    requestFocusOnTap is
    false](#177993)
    Part of #123797
     
    ## Tests
    
    - Adds 4 tests.
    - Updates 1 non-related test where I spotted some nits.
    bleroux authored Nov 6, 2025
    Configuration menu
    Copy the full SHA
    411566a View commit details
    Browse the repository at this point in the history
  5. Add haptic notifications support. (#177721)

    Closes #150029
    
    ### Description
    - Adds `successNotification`, `warningNotification` and
    `errorNotification` haptics to the framework
    - Adds `UINotificationFeedbackTypeSuccess`,
    `UINotificationFeedbackTypeWarning` and
    `UINotificationFeedbackTypeError` haptics support on iOS
    - Adds `HapticFeedbackConstants.CONFIRM` and
    `HapticFeedbackConstants.REJECT` haptics support on Android
    - Adds tests
    
    
    | iOS | Android | Web |
    |:-:|:-:|:-:|
    | UINotificationFeedbackTypeSuccess | HapticFeedbackConstants.CONFIRM |
    20ms vibration |
    | UINotificationFeedbackTypeWarning |
    HapticFeedbackConstants.KEYBOARD_TAP | 20ms vibration |
    | UINotificationFeedbackTypeError | HapticFeedbackConstants.REJECT |
    30ms vibration |
    
    ## 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.
    
    <!-- Links -->
    [Contributor Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
    [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
    ksokolovskyi authored Nov 6, 2025
    Configuration menu
    Copy the full SHA
    c0e0529 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1e94ac4 View commit details
    Browse the repository at this point in the history

Commits on Nov 7, 2025

  1. fix: findChildIndexCallback to take seperators into account for seper…

    …ated named constructor in ListView and SliverList (#174491)
    
    FindChildIndexCallback to take seperators into account for seperated
    named constructor in ListView and SliverList
    fixes: #174261
    
    ## Migration guide
    
    flutter/website#12636
    
    ## 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.
    rkishan516 authored Nov 7, 2025
    Configuration menu
    Copy the full SHA
    8308135 View commit details
    Browse the repository at this point in the history
  2. Roll Fuchsia Linux SDK from cm88aTLui5yorSGYQ... to qDVe2mrpSgQdxra7p…

    …... (#178144)
    
    If this roll has caused a breakage, revert this CL and stop the roller
    using the controls here:
    https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter
    Please CC [email protected],[email protected] on the revert to ensure
    that a human
    is aware of the problem.
    
    To file a bug in Flutter:
    https://github.com/flutter/flutter/issues/new/choose
    
    To report a problem with the AutoRoller itself, please file a bug:
    https://issues.skia.org/issues/new?component=1389291&template=1850622
    
    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
    engine-flutter-autoroll authored Nov 7, 2025
    Configuration menu
    Copy the full SHA
    58e5b30 View commit details
    Browse the repository at this point in the history
  3. Roll Skia from 116f237bb39d to 360fe72b5bf4 (4 revisions) (#178146)

    https://skia.googlesource.com/skia.git/+log/116f237bb39d..360fe72b5bf4
    
    2025-11-06 [email protected] Add script and language to
    SkShaper::RunHandler
    2025-11-06 [email protected] Add kR16_unorm_SkColorType
    2025-11-06
    recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
    Roll recipe dependencies (trivial).
    2025-11-06 [email protected] Roll
    vulkan-deps from c8f0766414a4 to feb8f7b1cf78 (3 revisions)
    
    If this roll has caused a breakage, revert this CL and stop the roller
    using the controls here:
    https://autoroll.skia.org/r/skia-flutter-autoroll
    Please CC [email protected],[email protected],[email protected] on
    the revert to ensure that a human
    is aware of the problem.
    
    To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
    To file a bug in Flutter:
    https://github.com/flutter/flutter/issues/new/choose
    
    To report a problem with the AutoRoller itself, please file a bug:
    https://issues.skia.org/issues/new?component=1389291&template=1850622
    
    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
    engine-flutter-autoroll authored Nov 7, 2025
    Configuration menu
    Copy the full SHA
    3ee372c View commit details
    Browse the repository at this point in the history
  4. Roll Skia from 360fe72b5bf4 to eb3c5b280ae6 (1 revision) (#178147)

    https://skia.googlesource.com/skia.git/+log/360fe72b5bf4..eb3c5b280ae6
    
    2025-11-07 [email protected] Roll Skia
    Infra from ff55757db3ba to 97d930843592 (21 revisions)
    
    If this roll has caused a breakage, revert this CL and stop the roller
    using the controls here:
    https://autoroll.skia.org/r/skia-flutter-autoroll
    Please CC [email protected],[email protected],[email protected] on
    the revert to ensure that a human
    is aware of the problem.
    
    To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
    To file a bug in Flutter:
    https://github.com/flutter/flutter/issues/new/choose
    
    To report a problem with the AutoRoller itself, please file a bug:
    https://issues.skia.org/issues/new?component=1389291&template=1850622
    
    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
    engine-flutter-autoroll authored Nov 7, 2025
    Configuration menu
    Copy the full SHA
    b296302 View commit details
    Browse the repository at this point in the history
  5. Roll Skia from eb3c5b280ae6 to f838c4b31edb (3 revisions) (#178149)

    https://skia.googlesource.com/skia.git/+log/eb3c5b280ae6..f838c4b31edb
    
    2025-11-07 [email protected] Roll ANGLE
    from 8c5e129d48ad to eea1fcf95a58 (2 revisions)
    2025-11-07 [email protected] Roll Dawn
    from 516bf37a739d to 090cac345695 (15 revisions)
    2025-11-07 [email protected] Roll
    SwiftShader from 153470c12fdf to 1e0c6ee5dcff (1 revision)
    
    If this roll has caused a breakage, revert this CL and stop the roller
    using the controls here:
    https://autoroll.skia.org/r/skia-flutter-autoroll
    Please CC [email protected],[email protected],[email protected] on
    the revert to ensure that a human
    is aware of the problem.
    
    To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
    To file a bug in Flutter:
    https://github.com/flutter/flutter/issues/new/choose
    
    To report a problem with the AutoRoller itself, please file a bug:
    https://issues.skia.org/issues/new?component=1389291&template=1850622
    
    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
    engine-flutter-autoroll authored Nov 7, 2025
    Configuration menu
    Copy the full SHA
    da952a4 View commit details
    Browse the repository at this point in the history
  6. Roll Skia from f838c4b31edb to 581d1ecd5029 (1 revision) (#178157)

    https://skia.googlesource.com/skia.git/+log/f838c4b31edb..581d1ecd5029
    
    2025-11-07 [email protected] Roll
    vulkan-deps from feb8f7b1cf78 to a34bdd1b0084 (2 revisions)
    
    If this roll has caused a breakage, revert this CL and stop the roller
    using the controls here:
    https://autoroll.skia.org/r/skia-flutter-autoroll
    Please CC [email protected],[email protected],[email protected] on
    the revert to ensure that a human
    is aware of the problem.
    
    To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
    To file a bug in Flutter:
    https://github.com/flutter/flutter/issues/new/choose
    
    To report a problem with the AutoRoller itself, please file a bug:
    https://issues.skia.org/issues/new?component=1389291&template=1850622
    
    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
    engine-flutter-autoroll authored Nov 7, 2025
    Configuration menu
    Copy the full SHA
    00e8d9f View commit details
    Browse the repository at this point in the history
  7. Fix text input actions in DropdownMenu. (#177313)

    Fixes #177009
    
    ### Description
    
    - Moves `MenuButton` submit logic from `onEditingComplete` to
    `onSubmitted` to allow `TextField` to handle the `textInputAction` logic
    - Wraps each item into `ExcludeFocus` to enable proper
    `TextInputAction.previous` handling. If we don't wrap each child in
    `ExcludeFocus`, then focus will be moved to one of them, which is not
    the expected behavior for `TextInputAction.previous`.
    
    | BEFORE | AFTER |
    | - | - |
    | <video alt="before"
    src="https://github.com/user-attachments/assets/a50d41de-7e54-409b-bf81-80dfb1db132f"
    /> | <video alt="after"
    src="https://github.com/user-attachments/assets/152e47e6-d774-481c-8478-af526b5f6749"
    /> |
    
    <details closed><summary>Code sample</summary>
    
    ```dart
    import 'package:flutter/material.dart';
    
    void main() {
      runApp(const DropdownMenuExample());
    }
    
    class DropdownMenuExample extends StatefulWidget {
      const DropdownMenuExample({super.key});
    
      @OverRide
      State<DropdownMenuExample> createState() => _DropdownMenuExampleState();
    }
    
    class _DropdownMenuExampleState extends State<DropdownMenuExample> {
      final FocusNode _previousFocusNode = FocusNode(debugLabel: 'previous');
      final FocusNode _textFieldFocusNode = FocusNode(debugLabel: 'textField');
      final FocusNode _nextFocusNode = FocusNode(debugLabel: 'next');
    
      @OverRide
      void dispose() {
        _previousFocusNode.dispose();
        _textFieldFocusNode.dispose();
        _nextFocusNode.dispose();
        super.dispose();
      }
    
      @OverRide
      Widget build(BuildContext context) {
        return MaterialApp(
          theme: ThemeData(colorSchemeSeed: Colors.green),
          home: Scaffold(
            body: Center(
              child: Column(
                mainAxisSize: MainAxisSize.min,
                crossAxisAlignment: CrossAxisAlignment.center,
                mainAxisAlignment: MainAxisAlignment.center,
                spacing: 20,
                children: [
                  TextField(
                    focusNode: _previousFocusNode,
                    textInputAction: TextInputAction.next,
                    decoration: InputDecoration(
                      border: OutlineInputBorder(),
                      labelText: 'Previous TextField',
                    ),
                  ),
                  DropdownMenu<String>(
                    label: Text('Dropdown with filter cannot close keyboard'),
                    initialSelection: 'green',
                    focusNode: _textFieldFocusNode,
                    requestFocusOnTap: true,
                    showTrailingIcon: false,
                    textInputAction: TextInputAction.next,
                    onSelected: (String? color) {
                      print('SELECTED $color');
                    },
                    dropdownMenuEntries: [
                      DropdownMenuEntry(value: 'red', label: 'red'),
                      DropdownMenuEntry(value: 'green', label: 'green'),
                      DropdownMenuEntry(value: 'blue', label: 'blue'),
                    ],
                  ),
                  TextField(
                    focusNode: _nextFocusNode,
                    textInputAction: TextInputAction.done,
                    decoration: InputDecoration(
                      border: OutlineInputBorder(),
                      labelText: 'Next TextField',
                    ),
                  ),
                ],
              ),
            ),
          ),
        );
      }
    }
    ```
    
    </details>
    
    There is still one behavior I would like to discuss. When the
    `showTrailingIcon: true` and `textInputAction: TextInputAction.previous`
    are used, the focus moves not to the previous field but to the
    `IconButton`. If we wrap the `IconButton` with `ExcludeFocus`, then this
    is fixed, but I am not sure whether this is the correct way to proceed.
    
    | TextInputAction.previous and no ExcludeFocus on IconButton |
    TextInputAction.previous and ExcludeFocus on IconButton |
    | - | - |
    | <video alt="before"
    src="https://github.com/user-attachments/assets/76c90dcf-3ea1-492f-8e67-7e987b08c2ff"
    /> | <video alt="after"
    src="https://github.com/user-attachments/assets/2a1600a2-e308-430e-a12f-acdc06cbf81c"
    /> |
    
    ## 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.
    - [ ] I updated/added relevant documentation (doc comments with `///`).
    - [X] I added new tests to check the change I am making, or this PR is
    [test-exempt].
    - [X] I followed the [breaking change policy] and added [Data Driven
    Fixes] where supported.
    - [X] All existing and new tests are passing.
    
    <!-- Links -->
    [Contributor Guide]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
    [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
    ksokolovskyi authored Nov 7, 2025
    Configuration menu
    Copy the full SHA
    fc3c5a2 View commit details
    Browse the repository at this point in the history
  8. Roll Packages from f13bad3 to 3caa48b (5 revisions) (#178164)

    flutter/packages@f13bad3...3caa48b
    
    2025-11-06 [email protected] [go_router]
    Migrates test for leak testing (flutter/packages#10276)
    2025-11-06 [email protected] Run tests on macOS 15.5 or 15.7
    (flutter/packages#10336)
    2025-11-06 [email protected] [pigeon] Encode custom enum as
    long in Kotlin generator (flutter/packages#10085)
    2025-11-06 [email protected] [tool] Ensure that all packages
    format with correct language version (flutter/packages#10374)
    2025-11-06 [email protected] Roll Flutter from
    e5d5c01 to c5e809a (29 revisions) (flutter/packages#10369)
    
    If this roll has caused a breakage, revert this CL and stop the roller
    using the controls here:
    https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
    Please CC [email protected] on the revert to ensure that a
    human
    is aware of the problem.
    
    To file a bug in Flutter:
    https://github.com/flutter/flutter/issues/new/choose
    
    To report a problem with the AutoRoller itself, please file a bug:
    https://issues.skia.org/issues/new?component=1389291&template=1850622
    
    Documentation for the AutoRoller is here:
    https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
    engine-flutter-autoroll authored Nov 7, 2025
    4 Configuration menu
    Copy the full SHA
    ee23168 View commit details
    Browse the repository at this point in the history
Loading