Mouad Debbar
cc0b0471b9
[web] Reuse chrome instance to run all flutter tests ( #174957 )
...
Web test shards take a significant time to run in CI compared to their
VM counterparts. One theory is that launching and shutting down Chrome
repeatedly is a major part of the slowness.
This PR makes `flutter test --platform=chrome` reuse the same Chrome
instance for all test files instead of launching a new one for each test
file.
At first glance, it may seem like we aren't shutting down Chrome
anymore, but we actually do in `closeEphemeral` and `close` methods.
Thanks @eyebrowsoffire for the idea!
2025-09-04 21:27:24 +00:00
Victoria Ashworth
8a5c6df06f
Make every LLDB Init error message actionable ( #174726 )
...
Fixes https://github.com/flutter/flutter/issues/172170 .
## 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].
**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
[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-09-04 20:26:29 +00:00
Ben Konyi
2965567997
[ Widget Preview] Add group property to Preview ( #174849 )
...
This change adds support for creating groups of widget previews.
Previews with the same `group` parameter will be grouped together in a
collapsable tile in widget previewer. Previews without a provided
`group` will be placed in the `Default` group.
This change also slightly reworks the UI to make individual previews
more easily distinguishable from preview groups, moves the controls for
the previewer to the bottom of the preview window, and adds a divider
between the preview name and preview content if a name is provided.
Fixes https://github.com/flutter/flutter/issues/173871
**Example:**
<img width="767" height="640" alt="image"
src="https://github.com/user-attachments/assets/80dc202c-77d3-42a5-be9d-e0d9a9a0f28b "
/>
2025-09-04 18:51:19 +00:00
Ben Konyi
48b053aadb
[ Tool ] Remove leftover Android x86 deprecation warning constant ( #174941 )
...
Android x86 support has already been removed.
Found during a post merge investigation of
https://github.com/flutter/flutter/issues/157543
2025-09-04 18:15:18 +00:00
Moritz
661b8edef2
Add data assets ( #174685 )
...
Refiling of #169273 (reverted in
https://github.com/flutter/flutter/pull/170034 ), which is a refiling of
#164094 , which itself is a rebase of #159675 .
This PR adds bundling support for the experimental dart data asset
feature: Dart packages with hooks can now emit data assets which the
flutter tool will bundle.
It relies on flutter's existing asset bundling mechanism (e.g. entries
in AssetManifest.json, DevFS syncing in reload/restart, ...).
The support is added under an experimental flag (similar to the existing
native assets experimental flag).
Also, kNativeAssets is removed to also bundle data assets on flutter
build bundle.
The chrome sandbox is disabled as per #165664 .
## 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-09-02 23:00:30 +00:00
Ben Konyi
33edd49421
[ Tool ] Remove support for experimental --fast-start feature ( #173576 )
...
This feature never worked correctly and has been disabled by default for
years.
Fixes https://github.com/flutter/flutter/issues/49499
2025-09-02 19:50:01 +00:00
Ben Konyi
1d19f97833
[ Widget Preview ] Respond to IDE navigation events and show previews from the currently focused script ( #174466 )
...
This change allows for the widget previewer to react to
`activeLocationChanged` events sent over the `Editor` DTD service to
automatically filter the set of visible previews based on the currently
selected file in the IDE. This functionality can be turned on or off
depending on whether or not the developer wants to see all previews in
the project at once.
This change also includes some minor refactoring and UI changes to move
the widget preview environment controls to a reserved area at the bottom
of the preview window.
**Demo:**
https://github.com/user-attachments/assets/c3b93826-8437-4655-8264-6beed6651fe7
2025-09-02 16:49:11 +00:00
Victoria Ashworth
b039be55b3
Remove build configuration mismatch warning ( #174715 )
...
A build configuration mismatch warning was introduced in
https://github.com/flutter/flutter/pull/169395 to help handle
dev_dependencies relying on the build configuration. However, we
disabled dev_dependencies from being excluded per configuration in
https://github.com/flutter/flutter/pull/171015 . This warning therefore
can also be removed.
Fixes https://github.com/flutter/flutter/issues/174015 .
## 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].
**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
[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-08-29 18:55:08 +00:00
Ben Konyi
89ba8a06a5
[ Tool ] Only listen for DebugConnectionInfo if the service protocol is supported ( #174664 )
...
Fixes https://github.com/flutter/flutter/issues/174330
2025-08-29 01:05:21 +00:00
Mouad Debbar
2edf7786fc
Don't fail when hot restarting web-server and there are no connected clients ( #174600 )
...
Fixes https://github.com/flutter/flutter/issues/173971
2025-08-28 19:47:03 +00:00
Dev TtangKong
f604188a45
Retry "Implements the Android native stretch effect as a fragment shader (Impeller-only)." ( #173885 )
...
This PR retries the previously reverted PR #169293 .
> [!NOTE]
> This feature was originally intended to be Impeller-only, and it was
agreed that no additional engine changes were necessary. However, during
testing on the Metal backend, a shader loading issue occurred. In my
view, this seems to be a simple problem caused by the shader not being
included in the engine’s runtime_stages.
## 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.
---------
Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
Co-authored-by: Kate Lovett <katelovett@google.com>
2025-08-27 22:17:05 +00:00
Daco Harkes
da5523afc3
[native assets] Roll dependencies ( #174522 )
...
Rolls the dependencies to the once published today.
Covered by existing integration tests.
2025-08-27 17:23:11 +00:00
Matan Lurey
6f26959d4e
Fix bug in test_golden_comparator, add an e2e test. ( #174459 )
...
Closes https://github.com/flutter/flutter/issues/174267 .
The actual fix is 1-line, but of course there is no test suite to verify
that, so that took the bulk of the time.
2025-08-26 23:00:25 +00:00
Victoria Ashworth
f9382a463a
Revert "Directly generate a Mach-O dynamic library using gen_snapshot ( #171626 ) ( #174392 )
...
This reverts commit 0c0148b00eedd3467ea6522d5c39acc679a065c9.
Fix for https://github.com/flutter/flutter/issues/174393 .
## 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].
**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
[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-08-26 14:55:26 +00:00
Victoria Ashworth
91c2300a78
Stream logs from devicectl and lldb ( #173724 )
...
When debugging with `devicectl` and `lldb` (exclusive to Xcode 26+),
stream logs from both processes instead of using `idevicesyslog`, which
does not work with Xcode 26.
Fixes https://github.com/flutter/flutter/issues/173365 .
## 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].
**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
[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-08-25 19:09:21 +00:00
Ben Konyi
699f21a4fe
[ Tool ] Don't emit artifact downloading messages when --machine is provided ( #174301 )
...
Fixes https://github.com/flutter/flutter/issues/154119
2025-08-22 20:08:27 +00:00
Ben Konyi
35eb77f9a1
[ Widget Preview ] Add support for DevTools configuration ( #174272 )
...
Adds support for the `--devtools-server-address=<uri>` and `--devtools`
options.
Also fixes an issue where the VM service + DevTools connection
information was not printed to STDOUT for web devices.
Fixes https://github.com/flutter/flutter/issues/173617
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-08-22 17:27:51 +00:00
Ben Konyi
bdea526c66
[ Tool ] Ensure --dds-port=<port> is respected when targeting web devices ( #174278 )
...
Fixes https://github.com/flutter/flutter/issues/159157
2025-08-22 17:09:40 +00:00
Nate Biggs
2b82bc985b
Skip wasm build when dry run is disabled and --wasm is not specified. ( #174184 )
...
This fixes an issue where the wasm build was still getting executed when
`--no-wasm-dry-run` was specified.
Also adds a test to verify the expected behavior.
Co-authored-by: Nate Biggs <natebiggs@google.com>
2025-08-22 07:00:40 +00:00
Elijah Okoroh
45f8c327a5
Improve xcresult comment and naming ( #173129 )
...
The function `_parseIssuesFromNewFormat` is renamed to
`_parseIssuesFromXcode16Format`. The term "new" is relative and would
become obsolete on the next format change, forcing a rename. The new
name is specific and stable.
Fixes #172596
*If you had to change anything in the [flutter/tests] repo, include a
link to the migration guide as per the [breaking change policy].*
## 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 `///`).
- [] 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.
- [X] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code ).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[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: Jenn Magder <magder@google.com>
2025-08-21 22:30:07 +00:00
Ben Konyi
c3265413d5
[ Widget Preview ] Fix crash when attempting to provide non-const params to a Preview ( #174242 )
...
Instead of crashing, invalid previews should just be ignored.
Fixes https://github.com/flutter/flutter/issues/173710
2025-08-21 22:13:14 +00:00
Ben Konyi
d88140fe5e
[ Tool ] Throw ToolExit when asset entries use absolute paths ( #174230 )
...
Our documentation states that "the value of an asset is a relative path
from the pubspec.yaml file", but this was never actually verified by the
tool. On systems with POSIX semantics, this would simply result in
invalid asset paths being built, but on Windows this could cause an
exception to be thrown as the built URI would not be a valid `file://`
URI.
This change adds checks to ensure that asset paths are relative and that
they are valid file paths.
Fixes https://github.com/flutter/flutter/issues/173405
2025-08-21 22:05:44 +00:00
Ben Konyi
19498462c7
[ Tool ] Cleanup widget preview and frontend server shutdown ( #173863 )
...
Prevents the frontend server from throwing ToolExit with the "The Dart
compiler exited unexpectedly." on shutdown via a signal.
2025-08-21 21:06:08 +00:00
Matan Lurey
e45fd36aac
Use an alternative to git describe for master version resolution ( #174088 )
...
Closes https://github.com/flutter/flutter/issues/173904 .
It's not clear to me how `git describe --tags HEAD` ever ... worked to
determine a fallback. From what I can tell, the _intent_ was to use the
latest (newest? closest?) tag as the base version, and then append
`-{commitCount}-{shortHash}` as the fallback version number when on
`master` (or any non-published branch).
So, I rewrote the implementation, unfortunately with 4 separate calls
out to `git ...` instead of a single one.
There are 20+ tests that fail as a result of this change, mostly because
they make specific expectations around `git describe` being invoked, and
of course that is no longer the case - putting those aside, I'd like to
double check that:
1. I understand what the original command was _intending_ to do
2. We like the _output_ of the updated command
3. ... we either are okay with the implementation, or have an
alternative in mind (I'm no `git` master)
Wdyt?
At this commit:
```sh
$ flutter-dev --version
Flutter 3.36.0-1.0.pre-170 • channel [user-branch] • https://github.com/matanlurey/flutter
Framework • revision 250381a185 (5 minutes ago) • 2025-08-19 18:57:36 -0700
Engine • hash f278b0aa3b8c6732ab636563eb8e896c35fc9c79 (revision 9ac4facf7e) (2 hours ago) • 2025-08-19 23:42:28.000Z
Tools • Dart 3.10.0 (build 3.10.0-115.0.dev) • DevTools 2.49.0
```
/cc @zanderso @jmagman for historics.
2025-08-21 20:04:32 +00:00
Tess Strickland
0c0148b00e
Directly generate a Mach-O dynamic library using gen_snapshot. ( #171626 )
...
Instead of generating assembly code that is then compiled to a Mach-O
dynamic library, use the new app-aot-macho-dylib output option for
gen_snapshot to generate the Mach-O dynamic library without the assembly
step.
Related issues:
* https://github.com/dart-lang/sdk/issues/43299
* https://github.com/dart-lang/sdk/issues/60307
## 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-08-21 15:05:55 +00:00
Ben Konyi
796fb74325
[ Widget Preview ] Report an error if a web device is unavailable ( #174036 )
...
Fixes https://github.com/flutter/flutter/issues/173960
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-08-19 21:57:25 +00:00
Simon Pham
25094b9961
fix: Android build fails when minSdk is set below 24 in build.gradle.kts ( #173823 ) ( #173825 )
...
fix: Android build fails when minSdk is set below 24 in build.gradle.kts
(#173823 , #173829 )
<!--
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 separates the regex for determining minSdkVersion in groovy or
kotlin gradle file when doing Android minSdkVersion migration.
Fixes #173823 .
## 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].
**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
[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: Reid Baker <1063596+reidbaker@users.noreply.github.com>
2025-08-19 17:36:11 +00:00
Ben Konyi
02bf6d36c3
[ Widget Preview ] Don't crash when directory watcher restarts on Windows ( #173987 )
...
Fixes https://github.com/flutter/flutter/issues/173895
This is a top-10 crasher for `3.35.{0,1}`.
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-08-18 20:07:26 +00:00
Ben Konyi
8b2b9d7c8d
[ Widget Preview ] Don't try to instantiate invalid @Preview() applications ( #173984 )
...
Applying `@Preview()` to an invalid AST node shouldn't cause the preview
environment to throw an exception due to invalid generated code.
This change adds some additional checks to ensure that invalid
`@Preview()` applications are ignored.
Related issue: https://github.com/flutter/flutter/issues/173959
Related stable hotfix: https://github.com/flutter/flutter/pull/173979
2025-08-18 19:49:29 +00:00
Srujan Gaddam
0480b069e0
[flutter_tools] Use DWDS 25.0.1 ( #173777 )
...
DWDS 25.0.1 requires that a valid reloadedSourcesUri is passed and
updated for both a hot restart and a hot reload. Therefore, the
bootstrap scripts which use it as well as the code to write that file is
updated. Note that this file is read in both DWDS and in the bootstrap
script. Along with this, code is fixed to update modules and digests
regardless of a full restart. Currently, it makes no difference as
neither Flutter tools or DWDS makes use of the updated modules or
digests with the new library bundle format, but it's updated for
consistency.
## 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-08-18 19:16:21 +00:00
Ben Konyi
37848d12a8
Roll package:analyzer forward to 8.1.1 ( #173867 )
2025-08-15 22:56:22 +00:00
auto-submit[bot]
8bd06c09be
Reverts "Implements the Android native stretch effect as a fragment shader (Impeller-only). ( #169293 )" ( #173865 )
...
<!-- start_original_pr_link -->
Reverts: flutter/flutter#169293
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: matanlurey
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: Does not work on Metal (iOS/macOS):
```
The following _Exception was thrown running a test:
Exception: Asset 'shaders/stretch_effect.frag' does not contain appropriate runtime stage data for current backend (Metal).
```
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: MTtankkeo
<!-- end_original_pr_author -->
<!-- start_reviewers -->
Reviewed By: {dkwingsmt, justinmc, chunhtai}
<!-- end_reviewers -->
<!-- start_revert_body -->
This change reverts the following previous change:
> Sorry, Closing PR #169196 and reopening this in a new PR for clarity
and a cleaner commit history.
Fixes #82906
In the existing Flutter implementation, the Android stretch overscroll
effect is achieved using Transform. However, this approach does not
evenly stretch the screen as it does in the native Android environment.
Therefore, in the Impeller environment, add or modify files to implement
the effect using a fragment shader identical to the one used in native
Android.
> [!NOTE]
> - The addition of a separate test file for StretchOverscrollEffect was
not included because it would likely duplicate coverage already provided
by the changes made in overscroll_stretch_indicator_test.dart within
this PR.
>> However, since determining whether stretching occurred by referencing
global coordinates is currently considered impossible with the new
Fragment Shader approach, the code was modified to partially exclude the
relevant test logic in the Impeller.
>>
>> For reference, in the page_view_test.dart test, there was an issue
with referencing the child Transform widget, but because the
StretchOverscrollEffect widget is defined instead of the Transform
widget in the Impeller environment, the code logic was adjusted
accordingly.
>
> - Golden image tests were updated as the visual effect changes.
## Reference Source
-
https://cs.android.com/android/platform/superproject/main/+/main:frameworks/base/libs/hwui/effects/StretchEffect.cpp
## `Old` Skia (Using Transform)
https://github.com/user-attachments/assets/22d8ff96-d875-4722-bf6f-f0ad15b9077d
## `New` Impeller (Using fragment shader)
https://github.com/user-attachments/assets/73b6ef18-06b2-42ea-9793-c391ec2ce282
## 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
<!-- end_revert_body -->
Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2025-08-15 17:51:20 +00:00
Matan Lurey
2d2070c47f
Stop writing legacy FLUTTER_ROOT/version file (by default?) ( #172793 )
...
Towards https://github.com/flutter/flutter/issues/171900 .
I'll make a breaking change announcement before landing this PR.
We can keep the flag for a stable release (allow folks to write `flutter
config --no-enable-omit-legacy-version-file` if they still need the
file), or we can decide it's not worth it and just rely on the breaking
change announcement.
2025-08-15 00:51:08 +00:00
Dev TtangKong
03736a282e
Implements the Android native stretch effect as a fragment shader (Impeller-only). ( #169293 )
...
> Sorry, Closing PR #169196 and reopening this in a new PR for clarity
and a cleaner commit history.
Fixes #82906
In the existing Flutter implementation, the Android stretch overscroll
effect is achieved using Transform. However, this approach does not
evenly stretch the screen as it does in the native Android environment.
Therefore, in the Impeller environment, add or modify files to implement
the effect using a fragment shader identical to the one used in native
Android.
> [!NOTE]
> - The addition of a separate test file for StretchOverscrollEffect was
not included because it would likely duplicate coverage already provided
by the changes made in overscroll_stretch_indicator_test.dart within
this PR.
>> However, since determining whether stretching occurred by referencing
global coordinates is currently considered impossible with the new
Fragment Shader approach, the code was modified to partially exclude the
relevant test logic in the Impeller.
>>
>> For reference, in the page_view_test.dart test, there was an issue
with referencing the child Transform widget, but because the
StretchOverscrollEffect widget is defined instead of the Transform
widget in the Impeller environment, the code logic was adjusted
accordingly.
>
> - Golden image tests were updated as the visual effect changes.
## Reference Source
-
https://cs.android.com/android/platform/superproject/main/+/main:frameworks/base/libs/hwui/effects/StretchEffect.cpp
## `Old` Skia (Using Transform)
https://github.com/user-attachments/assets/22d8ff96-d875-4722-bf6f-f0ad15b9077d
## `New` Impeller (Using fragment shader)
https://github.com/user-attachments/assets/73b6ef18-06b2-42ea-9793-c391ec2ce282
## 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: Tong Mu <dkwingsmt@users.noreply.github.com>
Co-authored-by: Kate Lovett <katelovett@google.com>
2025-08-14 18:13:54 +00:00
Ben Konyi
1c0ee96c8f
[ Tool ] Fix missing import for widget_preview.dart ( #173731 )
...
The import was removed in a PR that landed after all presubmits passed.
2025-08-13 21:03:14 +00:00
Ben Konyi
f8e8a8dce9
[ Widget Preview ] Add --machine mode ( #173654 )
...
Currently only outputs a single event with information about where the
widget preview environment is served from:
`[{"event":"widget_preview.started","params":{"url":"http://localhost:61383 "}}]`
Fixes https://github.com/flutter/flutter/issues/173545
2025-08-13 19:08:53 +00:00
Ben Konyi
1eb2f68da5
[ Widget Preview ] Move --dtd-url from a global flag to a widget-preview start option ( #173712 )
...
`--dtd-url` is only used by widget previews and has no current usage, so
this is a safe change.
2025-08-13 16:14:22 +00:00
Jamil Saadeh
f26eddba00
Null aware elements clean-ups ( #173074 )
...
<!--
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
-->
Converted more null checks to null aware elements.
The analyzer had many false negatives and the regex became pretty wild
to find many of them 😂
I've found more in the engine folder but I'll apply the changes in a
separate PR
Part of #172188
*If you had to change anything in the [flutter/tests] repo, include a
link to the migration guide as per the [breaking change policy].*
## 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].
**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
[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-08-13 15:36:14 +00:00
Ben Konyi
c4ce6a8ef7
Reapply "Make device debuggable if useDwdsWebSocketConnection is true … ( #173551 )" ( #173628 )
...
This reverts commit
17c92b7ba6 .
Also added Chrome + `chromedriver` dependencies for the
`chrome_dev_mode` configurations.
2025-08-12 17:23:19 +00:00
Ben Konyi
fbba4becf6
[ Tool ] Fix crash from possible DDS startup race ( #173362 )
...
It's possible (but unlikely) that two DDS instances can try and start at
the same time (e.g., a "flutter run" is initiated while an existing
"flutter attach" is waiting for a target to attach to). This can lead to
DDS failing to initialize for one of the processes when the VM service
disconnects it after the other process successfully invokes the
"_yieldControlToDDS" RPC.
This change adds some retry logic to avoid crashing in this scenario.
Fixes https://github.com/flutter/flutter/issues/169265
2025-08-12 14:55:33 +00:00
auto-submit[bot]
17c92b7ba6
Reverts "Reapply "Make device debuggable if useDwdsWebSocketConnection is true … ( #173551 )" ( #173568 )" ( #173587 )
...
<!-- start_original_pr_link -->
Reverts: flutter/flutter#173568
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: bkonyi
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: Chrome isn't configured for the test configuration
and is causing failures.
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: bkonyi
<!-- end_original_pr_author -->
<!-- start_reviewers -->
Reviewed By: {jyameo, matanlurey}
<!-- end_reviewers -->
<!-- start_revert_body -->
This change reverts the following previous change:
This reverts commit e2a347b14a18729dd24c2cf3240ef22562195e2d.
Previously reverted due to `*_chrome_dev_mode` tests failing on all
platforms.
<!-- end_revert_body -->
Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2025-08-11 22:15:48 +00:00
Ben Konyi
a9fc145a3d
Reapply "Make device debuggable if useDwdsWebSocketConnection is true … ( #173551 )" ( #173568 )
...
This reverts commit e2a347b14a18729dd24c2cf3240ef22562195e2d.
Previously reverted due to `*_chrome_dev_mode` tests failing on all
platforms.
2025-08-11 20:43:29 +00:00
John "codefu" McDole
e2a347b14a
Revert "Make device debuggable if useDwdsWebSocketConnection is true … ( #173551 )
...
Reverts #171648 for multiple failing tests
<img width="624" height="347" alt="image"
src="https://github.com/user-attachments/assets/affc7820-bd1a-408a-822c-3bc0df5f985d "
/>
2025-08-11 14:31:15 +00:00
Jessy Yameogo
1590543f67
Make device debuggable if useDwdsWebSocketConnection is true and added simple test case ( #171648 )
...
- Make device debuggable if useDwdsWebSocketConnection is true - This
change is needed to support hot reload on web-server devices over
websocket-based DWDS.
- Added simple test case to test hot reload over websocket
related to https://github.com/dart-lang/webdev/issues/2605 ,
https://github.com/dart-lang/webdev/issues/2645 and
https://github.com/dart-lang/webdev/issues/2646
---------
Co-authored-by: Ben Konyi <bkonyi@google.com>
2025-08-09 03:18:19 +00:00
Matt Boetger
e0660cfb5e
Fix null value reference in flutter logs path ( #173437 )
...
The `flutter logs` path for a module does not pass the buildInfo to the
`fromAndroidProject` function. This will cause an exception to be thrown
when `buildInfo!` is invoked. Instead, just allow the buildInfo to be
null and check for the manifest with the code that already exists.
Fixes : #172884
## 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.
---------
Co-authored-by: Reid Baker <reidbaker@google.com>
2025-08-08 19:22:16 +00:00
Victoria Ashworth
38217906e9
Use LLDB as the default debugging method for iOS 17+ and Xcode 26+ ( #173443 )
...
This PR introduces a new feature flag called `lldb-debugging`, which is
turned on by default. When this feature is turned on, if deploying to a
physical iOS 17+ device with Xcode 26+, it will use a mixture of
`devicectl` and `lldb` to install, launch, and debug the app.
If LLDB fails, it will fallback to use Xcode automation. If LLDB times
out, it will warn the user they may want to disable it. If LLDB is
disabled, it will use Xcode automation.
This PR also adds analytics to track what deployment method is used and
if it's successful.
Part 2 and 3 of https://github.com/flutter/flutter/issues/173416 .
Fixes https://github.com/flutter/flutter/issues/144218 . Fixes
https://github.com/flutter/flutter/issues/133465 .
## 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].
**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
[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-08-08 17:13:24 +00:00
Wdestroier
e4c07e8ab2
Support launching a HTTPS URL ( #164720 )
...
I setup a reverse proxy, but this piece of code only allows launching
HTTP URLs. I'm submitting a patch to fix the error.
See issue comment
https://github.com/Dart-Code/Dart-Code/issues/5322#issuecomment-2704159264
for context.
## 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].
- [X] 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.
<!-- 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-08-08 14:38:38 +00:00
Salem Iranloye
796c62bd76
Web dev proxy ( #172175 )
...
Adding a development Proxy and dedicated Web configuration File
<!--
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
-->
Flutter's current web development configuration relies on CLI arguments
and does not have a development proxy. This PR adds a development proxy
to flutter and a designated web_dev_config.yaml where web configuration
settings are loaded from.
Issues:
https://github.com/flutter/flutter/issues/170834
Document:
[HERE](https://docs.google.com/document/d/1Ud9D3F0GxB5Ocoo5NnAy7PH5oo3qxvALxUlAXMCANJ0/edit?usp=sharing )
## 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
Co-authored-by: Sydney Bao <s.bao2115@gmail.com>
Co-authored by: Salem Iranloye <salemiranloye@gmail.com>
---------
Co-authored-by: Kevin Moore <kevmoo@google.com>
Co-authored-by: Sydney Bao <sydneybao@google.com>
2025-08-07 22:42:16 +00:00
Victoria Ashworth
b57c9742f3
Prepare for iOS debugging with lldb and devicectl ( #173417 )
...
This PR introduces new classes and methods needed to transition to using
`devicectl` (for installing and launching) and `lldb` (for debugging)
for deploying apps to iOS 17+ physical devices.
The new classes/methods are not used yet to reduce risk for
cherry-picking. A follow up PR will adopt them.
Part 1 of https://github.com/flutter/flutter/issues/173416 .
## 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].
**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
[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-08-07 20:14:31 +00:00
Micael Cid
3be04414e9
[web] add --static-assets-url argument to build web ( #171638 )
...
Closes https://github.com/flutter/flutter/issues/171637
As mentioned in the issue, I am proposing a new argument to the flutter
build web command: `--static-assets-url`.
This argument would accept a full URL string ending with `/` as its
value. During the build process, the Flutter tool would use this value
to replace a dedicated placeholder within the `web/index.html` file
(inspired by `--base-href` approach).
Example Implementation:
A developer would modify their `web/index.html` to use a new
placeholder, for instance, `$FLUTTER_STATIC_ASSETS_URL`:
```html
...
<body>
<script>
{{flutter_js}}
{{flutter_build_config}}
_flutter.loader.load({
config: {
entryPointBaseUrl: "$FLUTTER_STATIC_ASSETS_URL",
},
onEntrypointLoaded: async function (engineInitializer) {
const appRunner = await engineInitializer.initializeEngine({
assetBase: "$FLUTTER_STATIC_ASSETS_URL",
});
await appRunner.runApp();
},
});
</script>
</body>
...
```
The build command would be run with the new flag: `flutter build web --static-assets-url="https://static.company.com/some-webapp/“ ` - and the resulting `build/web/index.html` would have the placeholder replaced:
```html
...
<body>
<script>
{{flutter_js}}
{{flutter_build_config}}
_flutter.loader.load({
config: {
entryPointBaseUrl: "https://static.company.com/some-webapp/ ",
},
onEntrypointLoaded: async function (engineInitializer) {
const appRunner = await engineInitializer.initializeEngine({
assetBase: "https://static.company.com/some-webapp/ ",
});
await appRunner.runApp();
},
});
</script>
</body>
...
```
2025-08-07 17:05:56 +00:00