287 Commits

Author SHA1 Message Date
Kate Lovett
9d96df2364
Modernize framework lints (#179089)
WIP

Commits separated as follows:
- Update lints in analysis_options files
- Run `dart fix --apply`
- Clean up leftover analysis issues 
- Run `dart format .` in the right places.

Local analysis and testing passes. Checking CI now.

Part of https://github.com/flutter/flutter/issues/178827
- Adoption of flutter_lints in examples/api coming in a separate change
(cc @loic-sharma)

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

**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-11-26 01:10:39 +00:00
Jacob MacDonald
5e498b9c36
Flutter driver deserialization (#172927)
Adds more descriptive ArgumentErrors to flutter driver deserialization
methods for commands and finders.

Also adds support for the normal defaults to the deserialization
handlers (can revert this if you like, but it helps when interacting
with flutter driver as a client so that it is more similar to how the
API works).

The tests aren't completely exhaustive as that would get very verbose,
but they do cover a variety of use cases.

Fixes https://github.com/flutter/flutter/issues/172127

## 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-27 21:40:55 +00:00
Kate Lovett
a04fb324be
Bump Dart to 3.8 and reformat (#171703)
Bumps the Dart version to 3.8 across the repo (excluding
engine/src/flutter/third_party) and applies formatting updates from Dart
3.8.

## 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.
- [ ] 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-07 17:58:32 +00:00
Michael Goderbauer
5491c8c146
Auto-format Framework (#160545)
This auto-formats all *.dart files in the repository outside of the
`engine` subdirectory and enforces that these files stay formatted with
a presubmit check.

**Reviewers:** Please carefully review all the commits except for the
one titled "formatted". The "formatted" commit was auto-generated by
running `dev/tools/format.sh -a -f`. The other commits were hand-crafted
to prepare the repo for the formatting change. I recommend reviewing the
commits one-by-one via the "Commits" tab and avoiding Github's "Files
changed" tab as it will likely slow down your browser because of the
size of this PR.

---------

Co-authored-by: Kate Lovett <katelovett@google.com>
Co-authored-by: LongCatIsLooong <31859944+LongCatIsLooong@users.noreply.github.com>
2024-12-19 20:06:21 +00:00
chunhtai
a893157f1e
Revert "Framework sends a11y message when enabling semantics (#159163)" (#160039)
This reverts commit 1a2d6a30bca2476c91dd01cd67405443cfc251d3.

This is a straight revert as we are pivot away from using message
channel, instead we will be adding api to dart:ui.
See https://github.com/flutter/engine/pull/56691

## 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
2024-12-10 21:24:09 +00:00
chunhtai
1a2d6a30bc
Framework sends a11y message when enabling semantics (#159163)
fixes https://github.com/flutter/flutter/issues/158399

engine ios https://github.com/flutter/engine/pull/56691

## 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
2024-11-25 21:21:04 +00:00
Matan Lurey
5d5e633c44
Move (dev/tools), complete v0 of native_driver (Android) (#154843)
**This is a WIP**, and the only reason it is not a draft PR is so that Flutter (Skia) Gold is executed.

---

Closes https://github.com/flutter/flutter/issues/148269.

Work towards https://github.com/flutter/flutter/issues/148269.
2024-09-11 23:56:21 +00:00
Matan Lurey
09461925a3
Scaffolding for NativeDriver and AndroidNativeDriver for taking screenshots using adb. (#152194)
Closes https://github.com/flutter/flutter/issues/152189.

I have next to no clue how to configure this to run on CI, so bear with me as I rediscover the wheel.
2024-07-24 20:12:19 +00:00
Jonah Williams
61326afdae
[flutter_driver] add allocator mtl to memory event allowlist. (#151153)
Flutter driver side changes for https://github.com/flutter/engine/pull/53618
2024-07-02 15:34:04 +00:00
Jackson Gardner
31209d04ff
flutter test --wasm support (#145347)
* Adds support for `flutter test --wasm`.
  * The test compilation flow is a bit different now, so that it supports compilers other than DDC. Specifically, when we run a set of unit tests, we generate a "switchboard" main function that imports each unit test and runs the main function for a specific one based off of a value set by the JS bootstrapping code. This way, there is one compile step and the same compile output is invoked for each unit test file.
* Also, removes all references to `dart:html` from flutter/flutter.
* Adds CI steps for running the framework unit tests with dart2wasm+skwasm
  * These steps are marked as `bringup: true`, so we don't know what kind of failures they will result in. Any failures they have will not block the tree at all yet while we're still in `bringup: true`. Once this PR is merged, I plan on looking at any failures and either fixing them or disabling them so we can get these CI steps running on presubmit.

This fixes https://github.com/flutter/flutter/issues/126692
2024-03-21 20:08:07 +00:00
Jonah Williams
2ebd7f0d55
[Impeller] measure GPU memory usage. (#144575)
Framework side to https://github.com/flutter/engine/pull/51187

Part of https://github.com/flutter/flutter/issues/144617
2024-03-06 20:17:31 +00:00
Michael Goderbauer
546bdec7ef
Fix implementation imports outside of lib (#143594)
Work towards https://github.com/dart-lang/linter/issues/4859

There are libraries outside a `lib/` directory, which violate `implementation_imports`.

Supersedes https://github.com/flutter/flutter/pull/143560.
2024-02-16 22:38:10 +00:00
Anis Alibegić
e063f56832
Fixed few typos (#141543)
I continued [my mission](https://github.com/flutter/flutter/pull/141431) to find as many typos as I could. This time it's a smaller set than before.

There is no need for issues since it's a typo fix.
2024-01-16 21:40:08 +00:00
Non Vachara
90badf7050
Add send_text_input_action case to deserialization_factory to allow sendTextInputAction usages through flutter_driver. (#139197)
**As a follow up to https://github.com/flutter/flutter/pull/131776.**

**Summary:**
Previously in https://github.com/flutter/flutter/pull/106561, SendTextInputAction was added to Flutter Driver.
But it still cannot be used from flutter_driver tests. This PR intends to resolve that issue.

**Issue:**
An `DriverError: Unsupported command kind send_text_input_action` would be thrown from `flutter_driver/lib/src/common/deserialization_factory.dart` when a call to `driver.sendTextInputAction(TextInputAction.done);` was made despite the method `sendTextInputAction` is available for use since https://github.com/flutter/flutter/pull/106561.

Previous works has been done in https://github.com/flutter/flutter/pull/131776, I merely added tests.

Best regards.
2023-12-21 17:48:16 +00:00
Jonah Williams
ec12ba2875
[Impeller] GPU frame timings summarization. (#136408)
Allow processing GPU start and end events to get processed by flutter driver. To figure out whether or not this works we'll ship in on CI :)
2023-10-13 22:18:37 +00:00
Callum Moffat
b097d24022
Add "Frame Request Pending" lag to collected metrics (#135279)
This measures the wall clock time between a new frame being scheduled in dart code to the Vsync callback in the engine

It's an important source of lag which isn't shown in the top-level UI / Build time graphs, and can correlate with "invisible" missed/non-scheduled frames

I had to change a few unrelated timings in the test, it was only passing based on luck of sort order, and broke when I added more entries to the timeline.

Part of #129150
2023-09-26 00:35:57 +00:00
gaaclarke
947367aaa2
Added standard deviation to rasterizer results. (#131781)
This calculation is important if you want to calculate the probability that one thing is better than another.
2023-08-02 16:40:07 +00:00
Nate Bosch
dcfd35f8a7
Remove uses of deprecated test_api imports (#124732)
Most of these imports were never appropriate. The `test_api` package was never intended for use in `_test.dart` files.
Where possible move imports to `matcher`, otherwise move them to `test` or `flutter_test`.

Leave uses of `test_api` from `flutter_test` library code.
2023-04-20 20:55:28 +00:00
Michael Goderbauer
6de42a70f1
Fix how tests count open SemanticsHandles (#121571)
Fix how tests count open SemanticsHandles
2023-02-28 23:55:58 +00:00
Michael Goderbauer
b0f1714b7b
Make Flex,Row,Column const for real (#119673)
* Make Flex,Row,Column const for real

* dart fix --apply

* fix snippets

* fix integration test

* add comment
2023-02-02 19:33:57 +00:00
Michael Goderbauer
288a7733e5
Remove unnecessary null checks in flutter_driver (#118864) 2023-01-20 22:02:49 +00:00
Michael Goderbauer
b308555ed1
Enable dangling_library_doc_comments and library_annotations lints (#117365) 2022-12-20 16:03:21 -08:00
Michael Goderbauer
fa3777bd3e
Enable sized_box_shrink_expand lint (#117371)
* Enable  lint

* note about discarded_futures

* note about use_decorated_box

* update note on require_trailing_commas
2022-12-20 19:07:15 +00:00
Jakub Fijałkowski
4301731eb2
Make Flutter Driver actively wait for runnable isolate (#113969)
* Test the case when main Isolate is in `None` state for long time

* Wait for isolate to become runnable

* Handle `PausePostRequest` as a normal "paused" event

* Use `-= 1` instead of `--`
2022-11-16 17:01:22 +00:00
Jonah Williams
0053b089a6
[flutter_driver] make empty duration messages more helpful (#110441) 2022-08-28 19:54:08 +00:00
Michael Goderbauer
8a7b35933c
flutter update-packages --force-upgrade + analyzer fix (#108198) 2022-07-25 10:10:31 -07:00
Yegor
e505529344
[web] define $flutterDriverResult variable early in driver test initalization (#107337) 2022-07-23 00:48:06 +00:00
Nguyen Phuc Loi
0cf9d41fc9
[flutter_driver] support send text input action (#106561)
* Support receive input action

* Fix error syntax

* Fix compile

* Add documents

* Add unit-test

* Update import

* Fixed unit-test and lint

* Add authors for me

* Fixed lint

* Fixed lint

* Add example

* Fixed lint

* Fix gen docs

* Revert code

* Remove flutter_dev

* Update packages/flutter_driver/lib/src/driver/driver.dart

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>

* Update packages/flutter_driver/lib/src/common/action.dart

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>

* Update packages/flutter_driver/lib/src/common/action.dart

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>

* Rename ReceiveAction to SendTextInputAction

* Rename DriverTextInputAction to TextInputAction and fix unit-test

* Reorder import

* Remove space

* Reorder import

* Update text_input.dart

* Update flutter_driver_test.dart

* Update comment to normal comment after dart doc

* Update example

* Update AUTHORS

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>

* Fix analyze

* Add type dart for example

* Add unit-test to check the same entries

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
2022-07-14 17:21:11 -07:00
Michael Goderbauer
2b14e993a7
Cleanup random dead test code (#104568) 2022-05-25 10:23:10 -07:00
Phil Quitslund
a03f59cdc4
[flutter_driver] rename local functions with _s (#102689) 2022-04-27 16:14:10 -07:00
Alexandre Ardhuin
07f1c20474
add missing trailing commas in list/set/map literals (#102585) 2022-04-27 09:15:35 +02:00
Michael Goderbauer
3e406c6781
Prepare packages (minus tools,framework) for use_super_parameters (#100510) 2022-03-30 15:31:59 -07:00
Chris Yang
e6bd208196
Reland "Add the refresh rate fields to perf_test #99710" (#99854) 2022-03-21 15:55:13 -07:00
Zachary Anderson
5f76ac35bc
Revert "Add the refresh rate fields to perf_test (#99710)" (#99801)
This reverts commit a7c85996b8adb3c5b2557e2f08f9de5277c08768.
2022-03-08 23:04:49 -08:00
Chris Yang
a7c85996b8
Add the refresh rate fields to perf_test (#99710) 2022-03-08 17:25:15 -08:00
Chris Yang
0ce527eb91
[flutter_driver] show refresh rate status in timeline summary (#95699) 2022-02-09 15:05:03 -08:00
Ian Hickson
ab89ce285f
Clean up the bindings APIs. (#89451) 2022-02-03 14:55:15 -08:00
Yegor
99a09be203
[web] validate WebDriver responses (#96884)
Validate WebDriver responses
2022-01-20 17:18:40 -08:00
Kaushik Iska
8e9bca802f
Compute the total time spent on UI thread for GC (#95692) 2021-12-22 17:04:35 -05:00
Ian Hickson
61a0add286
Enable avoid_redundant_argument_values lint (#91409) (#91462) 2021-10-08 09:25:14 -07:00
Zachary Anderson
b9d2177da0
Revert "Enable avoid_redundant_argument_values lint (#91409)" (#91461)
This reverts commit 5fd259be244244e14ff87fee9b6a721625f952cd.
2021-10-07 21:11:07 -07:00
Ian Hickson
5fd259be24
Enable avoid_redundant_argument_values lint (#91409) 2021-10-07 20:13:02 -07:00
Ian Hickson
f25b833f27
Enable avoid_print lint. (#91444) 2021-10-07 16:48:04 -07:00
Mouad Debbar
c2ea78d231
Revert "Enable avoid_print lint. (#91332)" (#91438)
This reverts commit cb378edc9e8dbcb451cc6e969161032cc08da52a.
2021-10-07 16:16:17 -04:00
Ian Hickson
cb378edc9e
Enable avoid_print lint. (#91332) 2021-10-07 09:53:03 -07:00
Ian Hickson
2bab6514b0
Enable avoid_implementing_value_types lint (#91078) 2021-10-04 13:48:04 -07:00
Alexander Dahlberg
baecbdfe14
Fixed order dependency and removed no-shuffle tag in flutter_driver_test (#89477) 2021-09-09 21:12:02 -07:00
Anis Alibegić
a753d09cc9
Fixed several typos (#89485) 2021-09-07 14:56:04 -07:00
Jim Graham
abfb889fff
Add raster cache metrics to timeline summaries (#89393) 2021-09-04 18:31:03 -07:00
Nguyen Phuc Loi
31fd0f754f
[flutter_driver] Remove runUnsynchronized in VMServiceFlutterDriver (#87467) 2021-08-02 21:45:02 -07:00