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

Commits on Jul 29, 2026

  1. Manual roll of Dart from 28e63ac22d8d to 49c637261348 (#190158)

    This contains a change to the Dart analyzer that affects how exclude
    paths are used in analysis_options.yaml files.
    
    (see
    https://dart.googlesource.com/sdk.git/+/7c44c487f41e3a19bafa1fb7c309d6035d5e036b)
    
    fixes #190169
    jason-simmons authored Jul 29, 2026
    Configuration menu
    Copy the full SHA
    a92b952 View commit details
    Browse the repository at this point in the history
  2. Roll Skia from 70733f74d415 to 30ad01017a46 (2 revisions) (#190173)

    engine-flutter-autoroll authored Jul 29, 2026
    Configuration menu
    Copy the full SHA
    ec81c5f View commit details
    Browse the repository at this point in the history
  3. Fix web context-menu client lifecycle in SelectableRegion (#189587)

    On web, `PlatformSelectableRegionContextMenu._activeClient` — the static
    `SelectionContainerDelegate` that the right-click `mousedown` listener
    reads — can end up pointing at a detached or disposed delegate, because
    of three lifecycle defects:
    
    1. `detach` has an inverted condition — `if (_activeClient != client) {
    _activeClient = null; }`. Detaching the active client leaves it
    registered, while detaching an unrelated client wipes another region's
    registration.
    2. `SelectableRegionState._handleFocusChanged` calls `attach`
    unconditionally at the end of the method, so a region that just lost
    focus is immediately re-registered.
    3. `SelectableRegionState.dispose` never detaches, so the static can
    keep pointing at a disposed delegate.
    
    Together these produce a crash on web when the user right-clicks during
    a route transition: the listener calls `getTransformTo(null)` on the
    stale delegate and hits `"getTransformTo cannot be called before
    SelectionContainer is laid out"` (`selection_container.dart:303`). We
    hit this in a production web app.
    
    This PR flips the `detach` condition, moves the re-attach into the
    focused branch, and detaches in `dispose` before disposing the delegate.
    It also adds a `@visibleForTesting` `debugActiveClient` getter,
    mirroring the existing `debugOverrideRegisterViewFactory` pattern, since
    the delegate is otherwise unobservable from tests. Three new browser
    tests in `selectable_region_context_menu_test.dart` isolate the defects;
    each is red before the fix and green after it.
    
    A follow-up commit hardens the detach paths against
    `BrowserContextMenu.enabled` changing at runtime. Attach stays gated on
    the full dynamic check, but the focus-loss and dispose detach paths now
    gate on `kIsWeb` alone, so a delegate attached while the menu was
    enabled is still detached after the menu is disabled. This is safe
    because `detach` is identity-selective: calling it for a never-attached
    delegate is a no-op. Two more browser tests cover unfocus and disposal
    after `BrowserContextMenu.disableContextMenu()`, bringing it to five
    lifecycle tests, each red before its fix and green after.
    
    Fixes #189575
    
    ## 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.
    
    <!-- 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/
    [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
    davidmigloz authored Jul 29, 2026
    Configuration menu
    Copy the full SHA
    9d98366 View commit details
    Browse the repository at this point in the history
  4. Avoid unnecessary work in BoxDecoration and RenderPhysicalModel (#…

    …187891)
    
    Part of #187894
    
    Improve `box_decoration.dart` 
    
    
    In Flutter’s codebase that pattern already exists in similar hit-test
    code (RenderClipOval.hitTest
    https://github.com/flutter/flutter/blob/8c17c5e0677a5c923a9f606d8963e2e0350e6ec2/packages/flutter/lib/src/rendering/proxy_box.dart#L1932).
    
    Old code:
    ```dart
    final double distance = (position - center).distance;
    return distance <= math.min(size.width, size.height) / 2.0;
    ```
    Offset.distance computes: `sqrt(dx * dx + dy * dy)`
    
    ---
    
    New code:
    ```dart
    final double radius = math.min(size.width, size.height) / 2.0;
    return (position - center).distanceSquared <= radius * radius;
    ```
    Offset.distanceSquared computes only: `dx * dx + dy * dy`
    Then it compares that to radius * radius.
    Mathematically: `sqrt(dx² + dy²) <= r` is equivalent to: `dx² + dy² <=
    r²`
    
    
    Then, I also found an issue: `elevated` shadow path doesn't need to be
    initialized when there is no elevation to use it for.
    bernaferrari authored Jul 29, 2026
    Configuration menu
    Copy the full SHA
    3392c91 View commit details
    Browse the repository at this point in the history
  5. Update widget location tracking to use the new generalized api (#189725)

    This refactors Flutters widget tracking setup to use the new generalized
    `CreationLocation` API introduced in
    dart-lang/sdk@9e8fdef
    
    CC @dcharkes 
    
    ## Pre-launch Checklist
    
    - [ ] I read the [Contributor Guide] and followed the process outlined
    there for submitting PRs.
    - [ ] I read the [AI contribution guidelines] and understand my
    responsibilities, or I am not using AI tools.
    - [ ] I read the [Tree Hygiene] wiki page, which explains my
    responsibilities.
    - [ ] I read and followed the [Flutter Style Guide], including [Features
    we expect every widget to implement].
    - [ ] I signed the [CLA].
    - [ ] I listed at least one issue that this PR fixes in the description
    above.
    - [ ] I updated/added relevant documentation (doc comments with `///`).
    - [ ] 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.
    
    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
    schultek authored Jul 29, 2026
    Configuration menu
    Copy the full SHA
    e47832b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    cb0b0dd View commit details
    Browse the repository at this point in the history
  7. Fix NestedScrollView example crash when switching tabs on desktop (#1…

    …86993)
    
    Fixes #183199
    
    The `NestedScrollView` API example that uses a `TabBar`/`TabBarView`
    throws on desktop when you scroll an inner list and then switch tabs.
    The inner `CustomScrollView`s are coordinated by the `NestedScrollView`
    through a shared controller, which can be attached to more than one
    `ScrollPosition` at a time (for example mid-transition between tabs).
    The automatic desktop scrollbar attaches to that shared controller, and
    a single scrollbar cannot represent multiple positions, so
    `RawScrollbar` throws the multiple-position assertion.
    
    This leaves the framework unchanged and fixes the example itself: the
    `TabBarView` body is wrapped in a `ScrollConfiguration` that disables
    the default scrollbars, since a single scrollbar cannot correctly
    represent the coordinated inner positions. A regression test reproduces
    the exact assertion from the issue (scroll, then a mouse-wheel pointer
    signal during a tab transition) and confirms it no longer throws.
    
    ## Tests
    
    - `flutter test
    examples/api/test/widgets/nested_scroll_view/nested_scroll_view.0_test.dart`
    - `flutter analyze
    examples/api/lib/widgets/nested_scroll_view/nested_scroll_view.0.dart
    examples/api/test/widgets/nested_scroll_view/nested_scroll_view.0_test.dart`
    
    ## 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.
    
    <!-- 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/
    [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
    gabrimatic authored Jul 29, 2026
    Configuration menu
    Copy the full SHA
    abb7f63 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    d776076 View commit details
    Browse the repository at this point in the history
  9. Roll Dart SDK from 49c637261348 to 1bbaacba6a5a (7 revisions) (#190196)

    https://dart.googlesource.com/sdk.git/+log/49c637261348..1bbaacba6a5a
    
    2026-07-29 [email protected]
    Version 3.14.0-75.0.dev
    2026-07-29 [email protected]
    Version 3.14.0-74.0.dev
    2026-07-28 [email protected]
    Version 3.14.0-73.0.dev
    2026-07-28 [email protected]
    Version 3.14.0-72.0.dev
    2026-07-28 [email protected]
    Version 3.14.0-71.0.dev
    2026-07-28 [email protected]
    Version 3.14.0-70.0.dev
    2026-07-28 [email protected]
    Version 3.14.0-69.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 [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 Jul 29, 2026
    Configuration menu
    Copy the full SHA
    89d96ef View commit details
    Browse the repository at this point in the history
  10. [Win32] Ignore mouse move events without capture when dragging (#190029)

    Fixes #189583
    
    ## 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
    knopp authored Jul 29, 2026
    Configuration menu
    Copy the full SHA
    5a238f5 View commit details
    Browse the repository at this point in the history
  11. Roll Skia from 119cae396625 to 3ae9e364d30b (6 revisions) (#190208)

    https://skia.googlesource.com/skia.git/+log/119cae396625..3ae9e364d30b
    
    2026-07-29
    recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
    Roll recipe dependencies (trivial).
    2026-07-29 [email protected] Roll ANGLE
    from ff4855759c68 to c09abf1d3a9f (9 revisions)
    2026-07-29 [email protected] Roll Skia
    Infra from 42f146e4e61d to 1ec13b321130 (2 revisions)
    2026-07-29 [email protected] Roll
    bazel_build from 348e064d2951b8209... to 70733f74d415bf389... (1
    revision)
    2026-07-29 [email protected] Roll
    debugger-app-base from a46a65d7ba05 to 3824c8346c38
    2026-07-29 [email protected] Roll Dawn
    from 10934785b43b to 92c4ae4cfeb2 (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 Jul 29, 2026
    Configuration menu
    Copy the full SHA
    00e0a73 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    e769fff View commit details
    Browse the repository at this point in the history
  13. [web] Fix deferred loading with wasm (#190140)

    It seemed deferred loading via the recently added ([0])
    `--enable-wasm-deferred-loading` never really worked.
    
    The embedder (flutter in this case) needs to invoke the callback
    function with either the wasm module bytes or a response object (which
    is a stream of bytes).
    
    Currently it invokes it with a promise of a response object which does
    not work atm.
    
    [0] 80157ee
    mkustermann authored Jul 29, 2026
    Configuration menu
    Copy the full SHA
    2e990fe View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    2757a77 View commit details
    Browse the repository at this point in the history
Loading