85553 Commits

Author SHA1 Message Date
auto-submit[bot]
c5465e9eb7
Reverts "feat: start using the content aware hash for downloading artifacts (#171927)" (#172505)
<!-- start_original_pr_link -->
Reverts: flutter/flutter#171927
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: matanlurey
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: Broke the tree, due to naughty tests but too
intensive to fix forward.
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: jtmcdole
<!-- end_original_pr_author -->

<!-- start_reviewers -->
Reviewed By: {matanlurey, chingjun}
<!-- end_reviewers -->

<!-- start_revert_body -->
This change reverts the following previous change:
towards #171790 

Use the content aware hash when downloading engine artifacts. These are
currently produced when changes to DEPs, engine/, or the release file
are changed in a not-seen-before way.

We can eventually remove `engine.version` being tracked in release
branches as an optimization.

`FLUTTER_PREBUILT_ENGINE_VERSION` will stay for overriding the
engine.version for testing. Though Cocoon does not need to actually set
it for framework only PRs anymore.
<!-- end_revert_body -->

Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2025-07-21 23:09:47 +00:00
Robert Ancell
407c051ec9
Render Flutter in its own EGL context (#172330)
This allows Flutter to render without any GTK windows present (required
for multi-window)
2025-07-21 21:59:37 +00:00
Kishan Rathore
89b7248437
Feat: Add momentary varient of CupertinoSlidingSegmentedControl (#164262)
This PR introduces a new boolean flag, `isMomentary`, to the
`CupertinoSlidingSegmentedControl` widget.

When `isMomentary` is set to `true`, the segmented control behaves like
a momentary switch. Selecting a segment triggers its associated action
(e.g., via `onValueChanged`), but the segment doesn't stay visually
selected after the interaction ends. The control visually returns to its
previous state or a default state (often no segment selected).

When `isMomentary` is `false` (the default behavior), the control
maintains the selection state visually, highlighting the last chosen
segment.

**Motivation**

Currently, `CupertinoSlidingSegmentedControl` always maintains a
selected state. There are use cases where developers might want to use
the segmented control purely for triggering actions without persisting a
visual selection state, similar to how a `UISegmentedControl` can be
configured on iOS with `isMomentary = true`. This provides more
flexibility and aligns the Flutter widget closer to its native
counterpart's capabilities.

For example, this could be useful for triggering sorting actions, view
changes, or other immediate operations where maintaining a persistent
"selected" state isn't desired or meaningful.

**Related Issues**
fixes: #164077 

**Videos**
UISegmentedControl behaviour when `isMomentary` flag is set to true.

https://github.com/user-attachments/assets/84d00312-4530-4b7a-9696-142f60ad89c0

CupertinoSlidingSegmentedControl behaviour when `isMomentary` flag is
set to true.

https://github.com/user-attachments/assets/b308b4fa-e641-417a-a518-4e0908876eed

## 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.
2025-07-21 20:59:34 +00:00
engine-flutter-autoroll
989e196fec
Roll Packages from cb8fef62993f to 9c85e5e72e7b (10 revisions) (#172479)
cb8fef6299...9c85e5e72e

2025-07-21 engine-flutter-autoroll@skia.org Roll Flutter from
70a3c3cc935e to 70cdc0c933d6 (4 revisions) (flutter/packages#9658)
2025-07-21 stuartmorgan@google.com [google_sign_in] Update to
GoogleSignIn-iOS 9 (flutter/packages#9655)
2025-07-20 engine-flutter-autoroll@skia.org Roll Flutter from
440713c3b287 to 70a3c3cc935e (11 revisions) (flutter/packages#9653)
2025-07-20 stuartmorgan@google.com Have Gemini ignore Flutter version
pin (flutter/packages#9647)
2025-07-18 engine-flutter-autoroll@skia.org Roll Flutter from
9c626d9f9afa to 440713c3b287 (19 revisions) (flutter/packages#9646)
2025-07-18 robert.odrowaz@leancode.pl [camera_avfoundation]
Implementation swift migration - part 8 (flutter/packages#9635)
2025-07-17 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.android.tools.build:gradle from 8.9.0 to 8.11.1
in /packages/webview_flutter/webview_flutter_android/android
(flutter/packages#9609)
2025-07-17 katelovett@google.com [two_dimensional_scrollables] Fix
missing leading cache extent for TableView (flutter/packages#9636)
2025-07-17 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.android.tools.build:gradle from 8.9.0 to 8.11.1
in /packages/interactive_media_ads/android (flutter/packages#9623)
2025-07-17 10687576+bparrishMines@users.noreply.github.com [pigeon] Adds
overrides for constructors and static members of ProxyApis
(flutter/packages#9515)

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 flutter-ecosystem@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
2025-07-21 19:21:08 +00:00
Matan Lurey
852760424a
Wrap ShutdownHook calls to avoid crashing the tool (#171917)
Closes https://github.com/flutter/flutter/issues/57351.
2025-07-21 18:41:08 +00:00
p1318k
b2a6cdb520
fix: macOS Mojave Crash on Flutter Desktop Startup (#172282)
<!--
Thanks for filing a pull request!
Reviewers are typically assigned within a week of filing a request.
To learn more about code review, see our documentation on Tree Hygiene:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
-->

Overview
This PR fixes a crash that occurs when launching Flutter desktop
applications on macOS Mojave (10.14).

Changes Made
• Added conditional checks to ensure the code using the
`hasUnifiedMemory` API only runs on macOS 10.15 or later, since
`hasUnifiedMemory` is only supported starting from macOS 10.15.
• Ensured that the fix maintains compatibility with newer macOS versions
without affecting existing functionality.

Testing
• Verified that Flutter desktop apps launch and run normally on both
macOS Mojave and later macOS versions.
• Confirmed no side effects by running default Flutter desktop sample
apps.

Additional Notes
•
https://developer.apple.com/documentation/metal/mtldevice/hasunifiedmemory

This PR aims to improve the stability of Flutter desktop applications on
macOS Mojave.
Thank you for your review and consideration.

## 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.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- 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

Co-authored-by: Kim Ki Cheol <kim.kicheol@sk.com>
2025-07-21 18:18:26 +00:00
engine-flutter-autoroll
1b293a8814
Roll Skia from 9587301e33bc to 4aba494b8108 (41 revisions) (#172471)
Roll Skia from 9587301e33bc to 4aba494b8108 (41 revisions)

https://skia.googlesource.com/skia.git/+log/9587301e33bc..4aba494b8108

2025-07-21 mike@reedtribe.org Change matrix::invert to return optional
2025-07-21 kjlubick@google.com Manually Roll Dawn from 81e90f7fd7f3 to
f286693b70bd
2025-07-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from 6a04a50f98ca to faf1bb4b3e72 (3 revisions)
2025-07-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia
Infra from 382fe7d5f3d0 to 4a7db687eea1 (6 revisions)
2025-07-21
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-07-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 827e0dba01ad to c8bd17b0ce68 (3 revisions)
2025-07-21 msta@google.com Fix missing include for atoi call
2025-07-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 62162b8f056a to 827e0dba01ad (1 revision)
2025-07-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from e6d6f02f4e9a to 62162b8f056a (3 revisions)
2025-07-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 5b38fae98a66 to e6d6f02f4e9a (7 revisions)
2025-07-18
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-07-18 mike@reedtribe.org add gm to excercise matrix-order
correctness in scalercontext
2025-07-18 vigneshv@google.com SkCrabbyAvifCodec: Compute profile for PQ
and HLG images
2025-07-18 mike@reedtribe.org Return computed matrices by value,
allowing const and temp values
2025-07-18 michaelludwig@google.com [graphite] Unify clear/discard load
op handling inside drawGeometry
2025-07-18 bungeman@google.com [pdf] Fix zero extended glyph to code
point maps
2025-07-18 mike@reedtribe.org Use optional version of
SkPath::ReadFromMemory
2025-07-18 kjlubick@google.com Fix permissions on Docker build scripts
2025-07-18
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-07-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from ff48a069ed93 to 5b38fae98a66 (6 revisions)
2025-07-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from ed15cbd416d8 to 6a04a50f98ca (6 revisions)
2025-07-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia
Infra from 1198e6ff0d0c to 382fe7d5f3d0 (6 revisions)
2025-07-18
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-07-18
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-07-17 thomsmit@google.com [graphite] Update trace to new DenseBiMap
2025-07-17
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-07-17 kjlubick@google.com Build debugger/jsfiddle/shaders directly
with Docker
2025-07-17 jlavrova@google.com Update dependency on abseil (for Dawn)
2025-07-17 thomsmit@google.com [graphite] Dynamic Samplers
2025-07-17 vigneshv@google.com SkCodec: Support RGBA_1010102 in
initializeColorXform
2025-07-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 286b9f0629a4 to ff48a069ed93 (2 revisions)
2025-07-17 kjlubick@google.com Fix canvaskit build after update to
emscripten 4.0.7
2025-07-17 mike@reedtribe.org Use pathbuilder or path-factories
2025-07-17 thomsmit@google.com Allow fallback to SWPathRenderer for high
verb counts
2025-07-17 michaelludwig@google.com Revert "[graphite] Snap scissor
rects to 4px boundaries"
2025-07-17 kjlubick@google.com Remove code guarded by
SK_DISABLE_LEGACY_NONRECORDER_IMAGE_APIS
2025-07-17 robertphillips@google.com [graphite] Add a stub for Android's
RuntimeEffectManager
2025-07-17 michaelludwig@google.com [graphite] Increase area required
for inner fill
2025-07-17 kjlubick@google.com Remove copy-pasta from make_image_tag.sh
2025-07-17 michaelludwig@google.com [graphite] Only add RenderStep
coverage SkSL if step reports coverage
2025-07-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from 890b5d8fa298 to ed15cbd416d8 (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 bwils@google.com,jsimmons@google.com,kjlubick@google.com on
the revert to ensure that a human
...
2025-07-21 17:57:12 +00:00
stuartmorgan-g
0fdde5a2b0
Add CLA note to tree hygiene (#172475)
Adds a note about the CLA to the steps to contributing code to Flutter,
including suggested language for how this applies to use of generative
tools.
2025-07-21 17:53:10 +00:00
Valentin Vignal
257b4f524b
Add radioInnerRadius to RadioListTile (#171851)
Part of https://github.com/flutter/flutter/issues/168787

## 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.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- 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
2025-07-21 17:49:21 +00:00
Srujan Gaddam
932cb033e6
Use baseUri always when doing a hot reload or hot restart (#172271)
We already use the baseUri when computing hot reload sources metadata as
it can never be null. The member is changed to be non-nullable to
reflect that.

To be consistent, we also use the baseUri (full url) for a hot restart
when running with the DDC library bundle format.

Related PR: https://github.com/dart-lang/webdev/pull/2650

## 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].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [x] 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].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
2025-07-21 17:40:57 +00:00
John "codefu" McDole
40992ec4f8
feat: start using the content aware hash for downloading artifacts (#171927)
towards #171790 

Use the content aware hash when downloading engine artifacts. These are
currently produced when changes to DEPs, engine/, or the release file
are changed in a not-seen-before way.

We can eventually remove `engine.version` being tracked in release
branches as an optimization.

`FLUTTER_PREBUILT_ENGINE_VERSION` will stay for overriding the
engine.version for testing. Though Cocoon does not need to actually set
it for framework only PRs anymore.
2025-07-21 17:41:44 +00:00
Matan Lurey
80f4a0f251
Add support for /? to alias to --help (#172328)
Closes https://github.com/flutter/flutter/issues/70616.
2025-07-21 17:20:08 +00:00
Jason Simmons
99b69feaca
Upgrade flutter_lints in project template pubspec.yaml files (#172400)
The version of flutter_lints used by newly created projects should match
the version used by flutter_tools. This ensures that "pub get --offline"
will work on a project that was generated by "flutter create".

Also restore the Mac tool_tests_commands that were temporarily disabled
in https://github.com/flutter/flutter/pull/172388

Fixes https://github.com/flutter/flutter/issues/172375
2025-07-21 17:11:59 +00:00
Matan Lurey
7b99061e06
Use $dartSdkVersion when creating "dummy" pubspec for create_api_docs (#172327)
Closes https://github.com/flutter/flutter/issues/70239.

/cc @ievdokdm
2025-07-21 17:09:18 +00:00
Matan Lurey
8667c183af
Adds (defaults to ___) when using flutter config --help (#172329)
Closes https://github.com/flutter/flutter/issues/81665.
2025-07-21 17:09:17 +00:00
Matan Lurey
5ed913b2db
Add a warning on usage of dartPluginClass: 'none'. (#172315)
Towards https://github.com/flutter/flutter/issues/57497.

Supersedes https://github.com/flutter/flutter/pull/171922 based on
@stuartmorgan-g's advice for a warning release.

I'll CP this into `3.35` (beta) so that we can clean it up on `master`
anytime.
2025-07-21 17:08:51 +00:00
Matan Lurey
599ed5252e
Skip [tool] crash reporting on --local-engine (#172326)
Closes https://github.com/flutter/flutter/issues/70238.
2025-07-21 17:08:51 +00:00
Matan Lurey
1c1f234b87
Remove IDE validation from flutter doctor (#171924)
Closes https://github.com/flutter/flutter/issues/61246.

I open to doing this behind a flag, but given we decided already 5 years
ago to do this, I'm leaning limiting this to an announcement
(`flutter-announce@`) and just landing this cleanup.

Open to suggestions.
2025-07-21 17:08:50 +00:00
Rusino
70cdc0c933
WebParagraph initial commit (#167559)
This is the current (initial) state of WebParagraph project which is an
implementation of SkParagraph
on top of TextCluster
(https://github.com/fserb/canvas2D/blob/master/spec/enhanced-textmetrics.md).

Multilined text, mixed LTR/RTL text supported.

---------

Co-authored-by: Mouad Debbar <mdebbar@google.com>
2025-07-21 16:09:22 +00:00
engine-flutter-autoroll
73f5ee844e
Roll Dart SDK from a821b47e7a4d to da9e0299c120 (1 revision) (#172457)
https://dart.googlesource.com/sdk.git/+log/a821b47e7a4d..da9e0299c120

2025-07-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.10.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 dart-vm-team@google.com,jsimmons@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
2025-07-21 14:54:33 +00:00
Kaylee Lubick
140b67fbb2
[skia] Update call to SkImage::makeSubset (#172456)
In https://skia-review.googlesource.com/c/skia/+/1021216, Skia removed
some legacy APIs. There was one usage still in Flutter and this fixes
that.

## 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.
- [ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- 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
2025-07-21 14:49:14 +00:00
engine-flutter-autoroll
1cd101d578
Roll Fuchsia Linux SDK from 8MyOdk7FEK-MqkzIF... to a_55b5hqpRnigzuNC... (#172439)
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 jsimmons@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
2025-07-21 02:06:10 +00:00
Musaddiq Ahmed Khan
70a3c3cc93
Add optional splashColor property to ExpansionTile (#172224)
This PR adds support for customizing the `splashColor` in the
`ExpansionTile` widget.

Currently, ExpansionTile uses the theme’s default splash color without
allowing overrides.
This change introduces a new optional splashColor parameter so
developers can better control the ripple effect color when the tile is
tapped.

## 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

---------

Co-authored-by: Victor Sanni <victorsanniay@gmail.com>
2025-07-20 02:13:21 +00:00
engine-flutter-autoroll
fa5d6aac56
Roll Fuchsia Linux SDK from 6agRTm-nf09sDmfQG... to 8MyOdk7FEK-MqkzIF... (#172420)
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 jsimmons@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
2025-07-20 00:03:36 +00:00
engine-flutter-autoroll
4b5a936761
Roll Dart SDK from ca7224f7dfd7 to a821b47e7a4d (1 revision) (#172407)
https://dart.googlesource.com/sdk.git/+log/ca7224f7dfd7..a821b47e7a4d

2025-07-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.10.0-14.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,jsimmons@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
2025-07-19 08:19:39 +00:00
engine-flutter-autoroll
9eb13ff1d4
Roll Dart SDK from 9982ab49440a to ca7224f7dfd7 (2 revisions) (#172401)
https://dart.googlesource.com/sdk.git/+log/9982ab49440a..ca7224f7dfd7

2025-07-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.10.0-13.0.dev
2025-07-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.10.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,jsimmons@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
2025-07-19 03:10:33 +00:00
John "codefu" McDole
107997effa
fix: produce pom/jar files with content_hash (#172378)
fixes: #172259

The contents of the files (pom, .jar) produced by android also reference
the artifacts version number (which includes the git-hash). The flutter
recipies are just dumb re-uploaders for the content hash at the moment.
In order to change the contents, we can just update some GN files. This
has some local duplication of files, but is acceptible for now.

I've also added the content-hash as a string in the .so file and its
printed out next to the hash.

"Why is the folder name the git-hash?"

The recipies have a quirk - the logs will have you believe they upload
individual files such that "gsutil cp a.jar b.jar" would produce
"b.jar"; but that's not what's going on. The recipies recurisively
upload from the root of the temporary folder the files are copied to. At
the moment, the "Ensure" step of builder.py updates the URL path, so it
will handling uploading to the correct path, but not the file or its
contents (hence this change).

Plan for the future: at some point we can stop producing git-ref hashes.

E.g.
git-hash: dfd7318efc71019bce1665bc41c0e8c21d1344f9 content-hash:
3bfa6013b7be2b0bbadc22a9c3495d4efa46aba7

```shell
zip_archives
└── download.flutter.io
    └── io
        └── flutter
            ├── arm64_v8a_debug
            │   └── 1.0.0-dfd7318efc71019bce1665bc41c0e8c21d1344f9
            │       ├── arm64_v8a_debug-1.0.0-3bfa6013b7be2b0bbadc22a9c3495d4efa46aba7.jar
            │       ├── arm64_v8a_debug-1.0.0-3bfa6013b7be2b0bbadc22a9c3495d4efa46aba7.pom
            │       ├── arm64_v8a_debug-1.0.0-dfd7318efc71019bce1665bc41c0e8c21d1344f9.jar
            │       └── arm64_v8a_debug-1.0.0-dfd7318efc71019bce1665bc41c0e8c21d1344f9.pom
            └── flutter_embedding_debug
                └── 1.0.0-dfd7318efc71019bce1665bc41c0e8c21d1344f9
                    ├── flutter_embedding_debug-1.0.0-3bfa6013b7be2b0bbadc22a9c3495d4efa46aba7-sources.jar
                    ├── flutter_embedding_debug-1.0.0-3bfa6013b7be2b0bbadc22a9c3495d4efa46aba7.jar
                    ├── flutter_embedding_debug-1.0.0-3bfa6013b7be2b0bbadc22a9c3495d4efa46aba7.pom
                    ├── flutter_embedding_debug-1.0.0-dfd7318efc71019bce1665bc41c0e8c21d1344f9-sources.jar
                    ├── flutter_embedding_debug-1.0.0-dfd7318efc71019bce1665bc41c0e8c21d1344f9.jar
                    └── flutter_embedding_debug-1.0.0-dfd7318efc71019bce1665bc41c0e8c21d1344f9.pom
```
2025-07-19 01:35:59 +00:00
engine-flutter-autoroll
2de480caac
Roll Dart SDK from fe2232bd5b9f to 9982ab49440a (2 revisions) (#172393)
https://dart.googlesource.com/sdk.git/+log/fe2232bd5b9f..9982ab49440a

2025-07-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.10.0-11.0.dev
2025-07-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.10.0-10.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,jsimmons@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
2025-07-18 21:57:07 +00:00
engine-flutter-autoroll
ff45dd43b9
Roll Fuchsia Linux SDK from HXdm7P0a4ZJVm_TE-... to 6agRTm-nf09sDmfQG... (#172392)
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 jsimmons@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
2025-07-18 21:55:08 +00:00
Harkirat Singh [SSW]
50bae580d4
Adopt Null-Aware Elements in packages/flutter/lib/src/material (#172285)
<!--
Thanks for filing a pull request!
Reviewers are typically assigned within a week of filing a request.
To learn more about code review, see our documentation on Tree Hygiene:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
-->

This pr aims to complete #172188 by refactoring all files in
`packages/flutter/lib/src/material` to adopt Dart 3.8's null-aware
elements feature. Each file was refactored in its own commit for clear,
incremental changes and traceable history.

### Motivation

Following the
https://github.com/flutter/flutter/issues/172188#issuecomment-3076061395,
this PR is intentionally scoped to a single folder to keep the review
surface manageable. Migrating package by package enables more focused
code review, easier troubleshooting, and a safer incremental adoption of
the new language feature.

### Approach

- **Scope:** Only files under `packages/flutter/lib/src/material` have
been refactored.
- **Commits:** Each file refactored in its own commit for granularity
and traceability.
- **Code style:** Changed list element conditionals to use null-aware
elements where applicable, improving readability and reducing verbosity.

### Testing

- All existing tests were run after each change.
- All tests passed except for `chip_test.dart`, which was already
failing before these changes and continues to fail after. No new test
failures were introduced by this PR.

### Additional Notes

- No functional or behavioral changes were made; this is a pure refactor
for code clarity and modernization.
- Adhering to the incremental migration strategy proposed in the
referenced issue for safer and more effective review.

---

Ready for review! 🚀
## 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.
- [ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- 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
2025-07-18 20:00:09 +00:00
Loïc Sharma
8a12504a84
Recommend using Flutter feature flags over platform-specific configs (#172324)
See: https://github.com/flutter/flutter/issues/172183
2025-07-18 19:58:23 +00:00
Justin McCandless
b327336e31
TestTextInput should reset its key handler between tests (#172323)
Looks like we forgot to reset _keyHandler in TestTextInput.

Fixes https://github.com/flutter/flutter/issues/171491
2025-07-18 19:52:51 +00:00
Mouad Debbar
47a476a8d0
Mark Mac_* tool_tests_commands as bringup to unblock tree (#172388)
See https://github.com/flutter/flutter/issues/172375
2025-07-18 18:58:58 +00:00
stuartmorgan-g
440713c3b2
Add OS version support section to plugin docs (#172316)
Documents our existing policy/best practices around OS version support
in plugins, and how to change it for a given plugin.
2025-07-18 12:09:22 +00:00
engine-flutter-autoroll
3dc85bf4c3
Roll Dart SDK from 7fcc5f48c335 to fe2232bd5b9f (2 revisions) (#172339)
https://dart.googlesource.com/sdk.git/+log/7fcc5f48c335..fe2232bd5b9f

2025-07-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.10.0-9.0.dev
2025-07-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.10.0-8.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,jsimmons@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
2025-07-18 03:40:26 +00:00
Robert Ancell
a5c93c90a1
Refactor handling of frame waiting. (#172277)
Compositing is now done on the Flutter rendering thread and we block the
GTK rendering until the frame is generated. This no longer requires the
task runner to be involved.
2025-07-18 00:55:40 +00:00
flutter-pub-roller-bot
e2a46f0e30
Roll pub packages (#172332)
This PR was generated by `flutter update-packages --force-upgrade`.
2025-07-18 00:32:29 +00:00
Matan Lurey
032b0f00b5
Refactor and forbid base/exit.dart outside of lib/runner.dart (#171923)
Closes https://github.com/flutter/flutter/issues/59338.
2025-07-17 23:16:25 +00:00
Matan Lurey
05845e70b4
Use UTC timezone for stamp_command_test to avoid local TZ flakes (#172319)
Closes https://github.com/flutter/flutter/issues/172318.
2025-07-17 22:59:39 +00:00
Harry Terkelsen
b2d4210b37
[web] Add tests for unified platform view embedding behavior (#172313)
Adds tests for expected behavior of platform view embedding for the
unified renderer frontend.

We currently skip the tests for the renderer which doesn't yet comport
to the expected unified behavior. See [this
doc](https://docs.google.com/document/d/1-BYZO_oAOJkS_spmELqCmnPQIEUibT3Sj2GhIL3luow/edit?tab=t.0)
for an overview of the different behaviors and the expected behavior of
the unified platform view embedder.

This adds tests for https://github.com/flutter/flutter/issues/172308, a
follow-up PR will unify the platform view embedder behavior and unskip
the tests for the misbehaving renderer.

## 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.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- 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
2025-07-17 21:47:47 +00:00
Justin McCandless
e244168327
Platform views shouldn't receive pointer events when not laid out (#172043)
This PR makes platform views ignore pointer events when they're not laid
out.

Platform views register themselves for global pointer events when their
RenderBox attaches:


9c626d9f9a/packages/flutter/lib/src/rendering/platform_view.dart (L370-L380)

But a RenderBox that is attached is not necessarily laid out. The
problem in the issue seemed to be that a page was created offscreen
(attached and not laid out), but it still received pointer events, and
this caused errors with using `size` before layout.

This PR simply ignores pointer events when not laid out.

Fixes https://github.com/flutter/flutter/issues/83481
2025-07-17 21:12:02 +00:00
Ahmed Mohamed Sameh
de0efff82a
Fix Size.isEmpty description (#172021)
Fixes #172004
2025-07-17 20:30:08 +00:00
Torikul Islam Topu
d2534e118d
feat: Add maxCount parameter to Badge.count constructor. (#171054)
feat: Add `maxCount` parameter to `Badge.count` constructor

This enhancement provides the ability to specify a **dynamic maximum
limit** for the badge count, offering greater flexibility and
eliminating the reliance on hardcoded values within the widget. This
allows developers to, for example, display "99+" instead of "100" or
"9+" instead of "10", improving UI consistency and preventing overly
large numbers on badges.

---

## Description of Changes

This PR introduces a new optional parameter, `maxCount`, to the
`Badge.count` constructor. This provides a flexible way to define a
numerical upper bound for the badge display.

Key aspects of this change:
* **Dynamic Limits:** Developers can now set custom maximum values
(e.g., 9, 99, 999) that, when exceeded, will display the `maxCount`
value followed by a `+` symbol (e.g., "9+", "99+").
* **Improved UI/UX:** Prevents large, potentially overflowing numbers
from appearing on badges, maintaining visual integrity and a cleaner
user interface.
* **Reduced Hardcoding:** Centralizes the logic for maximum badge values
within the `Badge` widget itself, reducing the need for manual checks
and conditional rendering outside the widget.
* **Comprehensive Documentation:** Includes updated API documentation
for the `maxCount` parameter, clarifying its usage, behavior, and the
visual outcome when the maximum is reached.

This change aligns with Flutter's principles of providing highly
customizable and intuitive widgets.

---

## 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. (Assuming no breaking changes)
- [X] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

[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
2025-07-17 20:01:22 +00:00
LongCatIsLooong
844edbcd91
add debugPaintTextLayoutBoxes for debugging text layout (#168876)
Text vertical alignment is a common complaint and one of the most common
causes is different type faces being used in the same paragraph (for
instance, when there's English / Arabic in the same paragraph so the
default font doesn't contain the required glyphs for some characters).

Hopefully this flag is going to make debugging alignment issues a bit
easier, and in some github issues attaching screenshots with the flag on
will be helpful for diagnosing the issue.

### What the layout boxes look like 
```dart
final testText =
    'Quick brown fox, نص, trailing spaces${" " * 100}'
    'new line at the end.\n\n\n\n';

Column([
              Text(testText, style: TextStyle(height: kTextHeightNone)),
              Text(testText, style: TextStyle(height: 1.0)),
              Text(
                testText,
                style: TextStyle(height: kTextHeightNone),
                strutStyle: StrutStyle(fontSize: 30),
              ),
])
```
<img width="410" alt="image"
src="https://github.com/user-attachments/assets/788b8089-373f-4af0-9144-306b3e755614"
/>

## Pre-launch Checklist

- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] 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].

<!-- 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
2025-07-17 19:49:30 +00:00
engine-flutter-autoroll
ae0700d94a
Roll Packages from 4a231ae8546d to cb8fef62993f (31 revisions) (#172303)
4a231ae854...cb8fef6299

2025-07-17 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump androidx.activity:activity from 1.9.3 to 1.10.1 in
/packages/image_picker/image_picker_android/android
(flutter/packages#8725)
2025-07-17 stuartmorgan@google.com [webview_flutter] Update
androidx.webkit to 1.14.0 (flutter/packages#9638)
2025-07-17 engine-flutter-autoroll@skia.org Roll Flutter from
c2739f0dcc39 to 9c626d9f9afa (18 revisions) (flutter/packages#9641)
2025-07-17 engine-flutter-autoroll@skia.org Roll Flutter (stable) from
077b4a4ce10a to d7b523b356d1 (3 revisions) (flutter/packages#9640)
2025-07-17 stuartmorgan@google.com Fix Gemini note wrapping
(flutter/packages#9639)
2025-07-17 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.google.android.gms:play-services-maps from 18.2.0
to 19.2.0 in
/packages/google_maps_flutter/google_maps_flutter_android/android
(flutter/packages#9120)
2025-07-17 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump androidx.fragment:fragment from 1.6.2 to 1.8.8 in
/packages/local_auth/local_auth_android/android (flutter/packages#9406)
2025-07-16 stuartmorgan@google.com [ci] Add Gemini Code Assist review
config (flutter/packages#9632)
2025-07-16 engine-flutter-autoroll@skia.org Roll Flutter from
cc3110c59022 to c2739f0dcc39 (15 revisions) (flutter/packages#9633)
2025-07-16 105786499+syedaniq@users.noreply.github.com [image_picker]
redesign example app (flutter/packages#9625)
2025-07-16 robert.odrowaz@leancode.pl [camera_avfoundation]
Implementation swift migration - part 7 (flutter/packages#9595)
2025-07-15 10687576+bparrishMines@users.noreply.github.com
[webview_flutter_wkwebview] Replace Flutter method failure assertion
with nslog (flutter/packages#9587)
2025-07-15 engine-flutter-autoroll@skia.org Roll Flutter from
a930ec1a6c09 to cc3110c59022 (24 revisions) (flutter/packages#9631)
2025-07-15 stuartmorgan@google.com [webview_flutter] Add
setMixedContentMode for Android (flutter/packages#9586)
2025-07-15 stuartmorgan@google.com [google_sign_in] Add exception info
to migration guide (flutter/packages#9574)
2025-07-14 392199+kwikwag@users.noreply.github.com [camera_android] Use
WeakReference to prevent startImageStream OOM error when main thread
hangs (flutter#166533) (flutter/packages#9571)
2025-07-14 jason-simmons@users.noreply.github.com [quick_actions]
Restore the appShortcutLaunchActivityAfterStarting test in
quick_actions_android (flutter/packages#9508)
2025-07-14 engine-flutter-autoroll@skia.org Roll Flutter from
35f197f1e5f5 to a930ec1a6c09 (3 revisions) (flutter/packages#9624)
2025-07-14 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.android.tools.build:gradle from 8.9.1 to 8.11.1
in /packages/pigeon/platform_tests/test_plugin/android
(flutter/packages#9618)
2025-07-12 engine-flutter-autoroll@skia.org Roll Flutter from
43657f3baa17 to 35f197f1e5f5 (39 revisions) (flutter/packages#9602)
2025-07-11 stuartmorgan@google.com Replace popularity badges
(flutter/packages#9594)
2025-07-11 1961493+harryterkelsen@users.noreply.github.com [rfw] Update
test to not depend on toString() (flutter/packages#9590)
2025-07-11 robert.odrowaz@leancode.pl [camera_avfoundation]
Implementation swift migration - part 6 (flutter/packages#9588)
2025-07-10 52160996+FMorschel@users.noreply.github.com [url_launcher]
Fixes new unnecessary boolean operations warnings
(flutter/packages#9409)
2025-07-10 stuartmorgan@google.com [google_sign_in] Add troubleshooting
to Android README (flutter/packages#9581)
2025-07-10 engine-flutter-autoroll@skia.org Roll Flutter from
ac12f66681f1 to 43657f3baa17 (25 revisions) (flutter/packages#9589)
2025-07-10 32538273+ValentinVignal@users.noreply.github.com
[go_router_builder] Update case sensitive test to `go_router` 16.0.0
(flutter/packages#9482)
2025-07-09 737941+loic-sharma@users.noreply.github.com [rfw] Remove the
RFW WASM example (flutter/packages#9551)
2025-07-09 engine-flutter-autoroll@skia.org Roll Flutter (stable) from
fcf2c11572af to 077b4a4ce10a (5 revisions) (flutter/packages#9585)
2025-07-09 engine-flutter-autoroll@skia.org Roll Flutter from
adffe244f3f1 to ac12f66681f1 (28 revisions) (flutter/packages#9584)
2025-07-09 malo.allee@gmail.com [video_player] Add html 5 video poster
support (thumbnail) as a VideoPlayerWebOptions (flutter/packages#8940)

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 flutter-ecosystem@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
2025-07-17 19:39:29 +00:00
Justin McCandless
fa961b768e
Fix mutating Paint bug (#171180)
A tricky bug was encountered in
https://github.com/flutter/flutter/pull/170321/files#r2138619243 where
mutating Paint caused
[paints](https://main-api.flutter.dev/flutter/flutter_test/paints.html)
to behave strangely.

Originally this PR just added something to the docs for `paints` to give
people a heads up, but now it fixes the root cause. Yak shave 🪒 .

Fixes https://github.com/flutter/flutter/issues/171194
2025-07-17 18:41:59 +00:00
Justin McCandless
f16f6d7f99
No SystemContextMenu when readOnly is true (#171242)
When readOnly is true, there is no TextInputConnection, so the
SystemContextMenu can't be shown. Instead, this shows the Flutter-drawn
context menu.

This video shows the change. You can slightly tell that the system
context menu is shown when readOnly is false and the Flutter-drawn
context menu is shown when it is true.



https://github.com/user-attachments/assets/91480fa4-cce6-4d63-ae11-df72a229da73


This is the same root cause as
https://github.com/flutter/flutter/pull/169238.

Fixes https://github.com/flutter/flutter/issues/170521
2025-07-17 18:40:50 +00:00
Muhammad Mohiuddin
0d999f39e9
Add a getter to get the recorder used by painting context (#170223)
Fixes #169990

## 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.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- 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
2025-07-17 17:56:09 +00:00
Jason Simmons
4ce15110c3
[Impeller] Add missing SetPipeline call for the vertices uber pipeline in AtlasContents (#172273)
Fixes https://github.com/flutter/flutter/issues/171719
2025-07-17 17:51:04 +00:00
engine-flutter-autoroll
8703fc33df
Roll Dart SDK from 486f9c0663bc to 7fcc5f48c335 (1 revision) (#172279)
https://dart.googlesource.com/sdk.git/+log/486f9c0663bc..7fcc5f48c335

2025-07-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.10.0-7.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,jsimmons@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
2025-07-17 17:51:04 +00:00