Commit Graph

1462 Commits

Author SHA1 Message Date
Bartek Pacia
948523b80c
Add accessibility identifier to SemanticsProperties (#138331)
This PR adds `String? identifier` to `Semantics` and `SemanticsProperties`. The `identifier` will be exposed on Android as `resource-id` and on iOS as `accessibilityIdentifier`.

Mainly targeted at #17988

Initial Engine PR with Android support: https://github.com/flutter/engine/pull/47961
iOS Engine PR: https://github.com/flutter/engine/pull/48858

### Migration

This change breaks the SemanticsUpdateBuilder API which is on the Framework<-->Engine border. For more details see [engine PR](https://github.com/flutter/engine/pull/47961).

Steps:
part 1: [engine] add `SemanticsUpdateBuilderNew` https://github.com/flutter/engine/pull/47961
**part 2: [flutter] use `SemanticsUpdateBuilderNew`**  <-- we are here
part 3: [engine] update `SemanticsUpdateBuilder` to be the same as `SemanticsUpdateBuilderNew`*
part 4: [flutter] use (now updated) `SemanticsUpdateBuilder` again.
part 5: [engine] remove `SemanticsBuilderNew`
2023-12-11 18:03:07 +00:00
hgraceb
4252aa0fff
Improve slider's value indicator display test (#139198)
The previous test for #128137 does not effectively regress and verify #123313 because the issue is specific to desktop platforms.
2023-12-11 17:34:21 +00:00
Ian Hickson
fca7bc9e28
Roll dependencies (#139606)
test-exempt: rolling dependencies
2023-12-06 19:22:06 +00:00
Michael Goderbauer
4f8a99147a
Dynamic view sizing (#138648)
Towards https://github.com/flutter/flutter/issues/134501.

This change is based on https://github.com/flutter/engine/pull/48090. It changes the `RenderView` to be dynamically sized based on its content if the `FlutterView` it is configured with allows it (i.e. the `FlutterView` has loose `FlutterView.physicalConstraints`). For that, it uses those `physicalConstraints` as input to the layout algorithm by passing them on to its child (after translating them to logical constraints via the device pixel ratio). The resulting `Size` that the `RenderView` would like to be is then communicated back to the engine by passing it to the `FlutterView.render` call.

Tests will fail until https://github.com/flutter/engine/pull/48090 has rolled into the framework.
2023-11-29 20:45:18 +00:00
Kate Lovett
8ba459ce9f
Update VelocityTracker (4) (#139166)
This updates the implementation to use the stopwatch from the Clock object and pipes it through to the TestWidgetsFlutterBinding so it will be kept in sync with FakeAsync.

Relands https://github.com/flutter/flutter/pull/138843 attempted to reland https://github.com/flutter/flutter/pull/137381 which attempted to reland #132291
Fixes https://github.com/flutter/flutter/issues/97761

1. The original change was reverted due to flakiness it introduced in tests that use fling gestures.
  * Using a mocked clock through the test binding fixes this now
2. It was reverted a second time because a change at tip of tree broke it, exposing memory leaks, but it was not rebased before landing. 
  * These leaks are now fixed
3. It was reverted a third time, because we were so excellently quick to revert those other times, that we did not notice the broken benchmark that only runs in postsubmit.
  * The benchmark is now fixed
2023-11-29 14:59:13 +00:00
Kate Lovett
133711ba9a
Analyze against using Stopwatches in the framework (#138507) 2023-11-29 08:49:35 -06:00
Michael Goderbauer
9147a1c1b8
Prepare for dynamically sized views - pt. 2 (#139079)
Towards https://github.com/flutter/flutter/issues/134501.

Required to roll https://github.com/flutter/engine/pull/48090 into the framework.

Two new subclasses of FlutterView were added recently for testing (in https://github.com/flutter/flutter/pull/138849) that I missed in my previous PR (https://github.com/flutter/flutter/pull/138565).
2023-11-27 19:06:00 +00:00
Michael Goderbauer
bf5d2b875f
Prepare for dynamically sized views (#138565)
Towards https://github.com/flutter/flutter/issues/134501.

Required to roll https://github.com/flutter/engine/pull/48090 into the framework.

**DO NOT SUBMIT until https://github.com/flutter/flutter/pull/138648 and https://github.com/flutter/engine/pull/48090 are ready.**
2023-11-27 17:41:22 +00:00
Yegor
14549b3889
make FakeView not send Scene and semantics to the engine (#138849)
`FakeView` wraps the same underlying `FlutterView`. Sending semantics updates and Scene objects from multiple fake views into the same engine `FlutterView` violates contracts with the engine. This PR stubs out `render` and `updateSemantics` methods in `FakeView` classes to prevent that.

This unblocks https://github.com/flutter/engine/pull/48251, which implements multi-view semantics for web.
2023-11-22 20:48:20 +00:00
Jackson Gardner
b186c69684
Revert "Reland VelocityTracker update (again)" (#138863)
Reverts flutter/flutter#138843

This has broken the Mac_ios microbenchmarks_ios. Example failure:
https://ci.chromium.org/ui/p/flutter/builders/prod/Mac_ios%20microbenchmarks_ios/9339/overview
2023-11-21 19:17:46 -08:00
Kate Lovett
3e4e280914
Reland VelocityTracker update (again) (#138843)
This updates the implementation to use the stopwatch from the Clock object and piping it through to the TestWidgetsFlutterBinding so it will be kept in sync with FakeAsync.

Relands https://github.com/flutter/flutter/pull/137381 which attempted to reland #132291
Fixes https://github.com/flutter/flutter/issues/97761

The original change was reverted due to flakiness it introduced in tests that use fling gestures.
* https://github.com/flutter/flutter/issues/135728

It was reverted again due to a change in the leak tracking tests that broke it.
2023-11-21 22:21:22 +00:00
Srujan Gaddam
d8ffc7390c
Pin package:web 0.4.0 (#138428)
This version is needed so that dart:js_interop can move to extension
types. Also adds some code to handle some breaking changes:

- Body -> Response. Body was an IDL interface mixin type we exposed in
dart:html. Going forward, users should either use Request or Response.
- Casts to JSAny. These are temporary until we move package:web types to
extension types. Currently, package:web types can't implement JSObject
as JSObject will move to be an extension type itself.

Co-authored-by: Kevin Moore <kevmoo@users.noreply.github.com>
2023-11-15 15:03:21 -08:00
auto-submit[bot]
82a7a62b45
Reverts "Reland VelocityTracker update (#132291)" (#138512)
Reverts flutter/flutter#137381
Initiated by: Piinks
This change reverts the following previous change:
Original Description:
This updates the implementation to use the stopwatch from the Clock object and piping it through to the TestWidgetsFlutterBinding so it will be kept in sync with FakeAsync.

Relands #132291
Fixes https://github.com/flutter/flutter/issues/97761

The change was reverted due to flakiness it introduced in tests that use fling gestures.
* https://github.com/flutter/flutter/issues/135728
2023-11-15 21:22:19 +00:00
Kate Lovett
1ac73332bc
Reland VelocityTracker update (#132291) (#137381)
This updates the implementation to use the stopwatch from the Clock object and piping it through to the TestWidgetsFlutterBinding so it will be kept in sync with FakeAsync.

Relands #132291
Fixes https://github.com/flutter/flutter/issues/97761

The change was reverted due to flakiness it introduced in tests that use fling gestures.
* https://github.com/flutter/flutter/issues/135728
2023-11-15 19:31:48 +00:00
Polina Cherkasova
793827d98a
Upgrade leak tracker. (#138283) 2023-11-13 09:47:55 -08:00
Michael Goderbauer
1ef6e99867
Remove physicalGeometry (#138103)
Looks like this was proactively added in https://github.com/flutter/engine/pull/20496, but never wired up to anything on any platform. It is also unused in framework and customer code; we never exposed this on e.g. MediaQuery.

Related engine PR: https://github.com/flutter/engine/pull/47825
2023-11-08 21:43:59 +00:00
Polina Cherkasova
e1b420cd5b
Upgrade leak_tracker and remove some deps in allow list. (#137806) 2023-11-03 06:20:47 -07:00
Dan Field
d843863c4a
reset state of CustomSemanticsAction before running tests (#137697)
Fixes https://github.com/flutter/flutter/issues/137696

This will get the tree green again.

The problem is that `CustomSemanticsAction` has static state in it, and todays test seed order makes things unhappy.
2023-11-01 20:09:41 +00:00
Polina Cherkasova
d50f1fa9c9
Add dependency on leak_tracker and leak_tracker_testing to flutter_test. (#137646) 2023-10-31 19:19:12 -07:00
Hrishikesh Kadam
64d3937090
Fix minor typo in doc of window.dart (#137483) 2023-10-31 23:27:06 +00:00
Polina Cherkasova
bcf267359c
Move dependency on leak_tracker from dependencies to dev_dependencies in flutter_test. (#137633)
Analyzer's dependency on autosnapshotting causes issues.

Because every version of integration_test from sdk depends on leak_tracker from hosted and autosnapshotting depends on leak_tracker from path, integration_test from sdk is forbidden.
So, because autosnapshotting depends on integration_test from sdk, version solving failed.
2023-10-31 21:12:52 +00:00
Polina Cherkasova
dcbb2de0ad
Add dependency on leak_tracker to flutter_test. (#137069)
Contributes to: https://github.com/flutter/flutter/issues/135856

This PR also adds transitive dependency on  web_socket_channel, crypto, typed_data. `web_socket_channel` is needed to request retaining path for not GCed objects from VM Service. Two others are needed to serve web_socket_channel.

The dependency on leak_tracker is pinned:
aea562114c/packages/flutter_tools/lib/src/commands/update_packages.dart (L40)
2023-10-25 02:45:26 +00:00
Tirth
ad448db6b5
Fix Typos (#137173)
Fix Small Typos.
2023-10-24 22:35:05 +00:00
Polina Cherkasova
5d43869c32
Upgrade packages in flutter and flutter_test. (#137106) 2023-10-23 16:20:32 -07:00
Harry Terkelsen
464e751a78
Reland "Use Layer.toImage for golden tests on CanvasKit" (#136918)
Relands https://github.com/flutter/flutter/pull/135249

A golden test was failing in post submit in the previous PR
2023-10-20 15:45:26 -07:00
flutter-pub-roller-bot
d7c82888c3
Roll pub packages (#136924)
This PR was generated by `flutter update-packages --force-upgrade`.
2023-10-20 20:36:29 +00:00
Elliott Brooks
01eef7ca13
Upgrade Flutter deps to pull in latest vm_service and dwds (#136734)
Generated by running `flutter update-packages --force-upgrade`

Updates vm_service to [12.0.0](https://pub.dev/packages/vm_service/versions/12.0.0) and dwds to [22.0.0](https://pub.dev/packages/dwds/versions/22.0.0)

The changes to `packages/flutter_tools/lib/src/isolated/devfs_web.dart` are for the new interface of DWDS introduced in https://github.com/dart-lang/webdev/pull/2243

FYI @bkonyi
2023-10-19 18:29:02 +00:00
auto-submit[bot]
c881808ed2
Reverts "Use Layer.toImage for golden tests on CanvasKit" (#136860)
Reverts flutter/flutter#135249
Initiated by: zanderso
This change reverts the following previous change:
Original Description:
Changes golden tests on CanvasKit to use Layer.toImage instead of browser APIs for screenshots. This brings it more in line with other platforms and should also fix some async timing bugs with tests.
2023-10-19 02:20:19 +00:00
Harry Terkelsen
747128ff7a
Use Layer.toImage for golden tests on CanvasKit (#135249)
Changes golden tests on CanvasKit to use Layer.toImage instead of
browser APIs for screenshots. This brings it more in line with other
platforms and should also fix some async timing bugs with tests.

## 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] 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/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#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/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2023-10-18 16:39:27 -07:00
pdblasi-google
52a1a31823
Adds API for performing semantics actions in tests (#132598)
* Added `performAction` to `SemanticsController` as well as specific methods for specific actions
* Added a `scrollable` finder to `find.semantics` as a convenience method for `findAny(<all scrollable actions>)`
* Updated `containsSemantics` and `matchSemantics` matchers to also work on `FinderBase<Semantics>`

Closes #112413
2023-10-18 00:26:14 +00:00
Kostia Sokolovskyi
22f593e578
GoldenFileComparators should dispose created Image objects. (#136716) 2023-10-17 15:25:52 -07:00
Michael Goderbauer
437361321a
Bump file,process,process_runner (#136418) 2023-10-12 13:05:24 -07:00
pdblasi-google
fa827eb2aa
Updates references to finders.dart in controller.dart to use a namespace. (#136423)
Updates references to `finders.dart` in `controller.dart` to use a namespace. This enables us to make use of `finders.dart#find` in `SemanticsController` without anything being shadowed.

Fixes #136421
2023-10-12 17:02:32 +00:00
Kevin Moore
3e60999b11
Allow latest pkg:material_color_utilities (#132445)
* Allow latest pkg:material_color_utilities
* Bump other dependencies to their latest - including pkg:web
2023-10-11 23:57:16 +00:00
Polina Cherkasova
9d9f213eed
Upgrade leak_tracker to fix flackiness. (#135760)
Fixes: https://github.com/flutter/flutter/issues/135716
leak_tracker is left pinned because future updates are going to be breaking.
2023-09-29 18:55:21 +00:00
chunhtai
52914c7628
simulatedAccessibilityTraversal account for force merging (#135178)
fixes https://github.com/flutter/flutter/issues/135144
2023-09-25 17:40:06 +00:00
Kostia Sokolovskyi
a4e3f93367
Fix memory leak in _MatchesReferenceImage (#135150) 2023-09-22 15:26:25 -07:00
David Iglesias
a4bc894616
[deps] Update package:web dependency. (#135174)
This PR is the result of running:

```console
$ flutter upgrade-packages --force-upgrade
```

### Issues

* Fixes https://github.com/flutter/flutter/issues/135075
* Supersedes #135081
2023-09-20 22:55:52 +00:00
Michael Goderbauer
b0a90aee17
Enable strict-inference (#135043)
Avoids that dynamic accidentally sneaks in, see https://dart.dev/tools/analysis#enabling-additional-type-checks
2023-09-20 19:59:08 +00:00
Greg Spencer
8cda3bea23
Remove 'must not be null' comments from various libraries. (#134984)
## Description

This removes all of the comments that are of the form "so-and-so (must not be null|can ?not be null|must be non-null)" from the cases where those values are defines as non-nullable values.

This PR removes them from the animation, cupertino, foundation, gestures, semantics, and services libraries.  Each of them only had a few, so I lumped them together.

This was done by hand, since it really didn't lend itself to scripting, so it needs to be more than just spot-checked, I think. I was careful to leave any comment that referred to parameters that were nullable, but I may have missed some.

In addition to being no longer relevant after null safety has been made the default, these comments were largely fragile, in that it was easy for them to get out of date, and not be accurate anymore anyhow.

This did create a number of constructor comments which basically say "Creates a [Foo].", but I don't really know how to avoid that in a large scale change, since there's not much you can really say in a lot of cases.  I think we might consider some leniency for constructors to the "Comment must be meaningful" style guidance (which we de facto have already, since there are a bunch of these).

## Related PRs
- https://github.com/flutter/flutter/pull/134991
- https://github.com/flutter/flutter/pull/134992
- https://github.com/flutter/flutter/pull/134993
- https://github.com/flutter/flutter/pull/134994

## Tests
 - Documentation only change.
2023-09-20 15:44:49 +00:00
Gray Mackall
f4b5fc1803
Unpin url launcher (remake) (#134958)
More up to date version of https://github.com/flutter/flutter/pull/133786.

Fixes https://github.com/flutter/flutter/issues/111304
2023-09-20 02:43:57 +00:00
Greg Spencer
4ce7fdd92b
Remove 'must be non-null' and 'must not be null' comments from non-framework libraries (#134994)
## Description

This removes all of the comments that are of the form "so-and-so must not be null" or "so-and-so must be non-null" from the cases where those values are defines as non-nullable values.

This PR removes them from the library in the repo that don't have anything to do with the framework.

This was done by hand, since it really didn't lend itself to scripting, so it needs to be more than just spot-checked, I think. I was careful to leave any comment that referred to parameters that were nullable, but I may have missed some.

In addition to being no longer relevant after null safety has been made the default, these comments were largely fragile, in that it was easy for them to get out of date, and not be accurate anymore anyhow.

This did create a number of constructor comments which basically say "Creates a [Foo].", but I don't really know how to avoid that in a large scale change, since there's not much you can really say in a lot of cases.  I think we might consider some leniency for constructors to the "Comment must be meaningful" style guidance (which we de facto have already, since there are a bunch of these).

## Related PRs
- https://github.com/flutter/flutter/pull/134984
- https://github.com/flutter/flutter/pull/134991
- https://github.com/flutter/flutter/pull/134992
- https://github.com/flutter/flutter/pull/134993

## Tests
 - Documentation only change.
2023-09-19 17:26:07 +00:00
Polina Cherkasova
60fae58a24
Add disposal mechanism for created Layers to TestRecordingPaintingContext. (#134768)
Contributes to https://github.com/flutter/flutter/issues/134575
2023-09-16 19:50:23 +00:00
Michael Goderbauer
983ecf069c
Enable private field promotion for other packages (#134475)
New feature in upcoming Dart 3.2. See https://github.com/dart-lang/language/issues/2020. Feature is enabled by bumping the min SDK version to 3.2.

Part of https://github.com/flutter/flutter/issues/134476.
2023-09-12 21:08:19 +00:00
Polina Cherkasova
0d30546c74
TestWidgetsFlutterBinding should dispose old RestorationManager on reset. (#133999) 2023-09-07 17:49:33 -07:00
Polina Cherkasova
ee0a15d4f5
MinimumTextContrastGuideline should dispose image. (#133861) 2023-09-06 11:00:56 -07:00
Tong Mu
e66ec8e0b0
Dispose AnimationSheetRecorder to avoid leaks (#133365)
This PR adds `AnimationSheetRecorder.dispose`, which disposes all the images generated by the recorder, eliminating leaks.

Fixes https://github.com/flutter/flutter/issues/133071.
2023-09-05 20:49:05 +00:00
Renzo Olivares
b1f691c9fc
Remove deprecated TestWindow.platformBrightnessTestValue/TestWindow.clearPlatformBrightnessTestValue (#133178)
Part of: https://github.com/flutter/flutter/issues/133171
2023-09-01 20:35:58 +00:00
Renzo Olivares
959cdb79fb
Remove deprecated TestWindow.textScaleFactorTestValue/TestWindow.clearTextScaleFactorTestValue (#133176)
Part of: https://github.com/flutter/flutter/issues/133171
2023-09-01 20:31:16 +00:00
Kate Lovett
72bd36026f
Remove deprecated onPlatformMessage from TestWindow and TestPlatformDispatcher (#133183) 2023-08-25 15:46:11 -05:00
Michael Goderbauer
ad78cf3506
Remove deprecated *TestValues from TestWindow (#131098)
Part of https://github.com/flutter/flutter/issues/133171.

Removes from `TestWindow`:
* `localeTestValue`
* `clearLocaleTestValue`
* `localesTestValue`
* `clearLocalesTestValue`
* `initialLifecycleStateTestValue`
* `alwaysUse24HourFormatTestValue`
* `clearAlwaysUse24HourTestValue`
* `brieflyShowPasswordTestValue`
* `defaultRouteNameTestValue`
* `clearDefaultRouteNameTestValue`
* `semanticsEnabledTestValue`
* `clearSemanticsEnabledTestValue`
* `accessibilityFeaturesTestValue`
* `clearAccessibilityFeaturesTestValue`

These properties have reached the end of their deprecation period.
2023-08-23 18:31:04 +00:00
Ivan Inozemtsev
5665655d39
Add support for Future<List<int>?> to MatchesGoldenFile (#132965)
Otherwise when tests use `expectLater(getBytesOrNull(), matchesGoldenFile(...))`, they may fail in sound null safety mode and pass in weak null safety mode.

Fixes https://github.com/flutter/flutter/issues/132964
2023-08-22 19:40:18 +00:00
Angelo Silvestre
f9b91734a1
Add deleteBackwardByDecomposingPreviousCharacter mapping for tests (#132919)
In  `MacOSTestTextInputKeyHandler`, there are some mappings from shortcuts to generate macOS selectors. However, `ctrl + backspace` isn't mapped to `deleteBackwardByDecomposingPreviousCharacter:`.

This PR adds the mapping for `deleteBackwardByDecomposingPreviousCharacter:`.

Fixes: https://github.com/flutter/flutter/issues/132917
2023-08-21 23:27:19 +00:00
Ian Hickson
ccdf826466
PaginatedDataTable improvements (#131374)
- slightly improved assert message when row cell counts don't match column count.
- more breadcrumbs in API documentation. more documentation in general.
- added more documentation for the direction of the "ascending" arrow.
- two samples for PaginatedDataTable.
- make PaginatedDataTable support hot reloading across changes to the number of columns.
- introduce matrix3MoreOrLessEquals. An earlier version of this PR used it in tests, but eventually it was not needed. The function seems useful to keep though.
2023-08-15 00:55:07 +00:00
pdblasi-google
e1ec3581bd
Updates AutomatedTestWidgetsFlutterBinding.pump to support microsecond precision (#132401)
* Updated `AutomatedTestWidgetsFlutterBinding.pump` to use microseconds instead of milliseconds
* Added a test to prevent regression of the microsecond precision
* Fixed a test that incorrectly assumed millisecond precision

Closes #112610
2023-08-14 23:24:47 +00:00
pdblasi-google
5df1c996ad
Adds SemanticsNode Finders for searching the semantics tree (#127137)
* Pulled `FinderBase` out of `Finder`
  * `FinderBase` can be used for any object, not just elements
  * Terminology was updated to be more "find" related
* Re-implemented `Finder` using `FinderBase<Element>`
  * Backwards compatibility maintained with `_LegacyFinderMixin`
* Introduced base classes for SemanticsNode finders
* Introduced basic SemanticsNode finders through `find.semantics`
* Updated some relevant matchers to make use of the more generic `FinderBase`

Closes #123634
Closes #115874
2023-08-10 21:31:06 +00:00
Michael Goderbauer
64a0683b41
Analyze code snippets in flutter_test docs (#132246)
Fixes https://github.com/flutter/flutter/issues/132274.
2023-08-10 17:18:12 +00:00
Ian Hickson
9c8f3950e3
Sample code for ImageProvider (#131952)
Also:
- minor improvements to documentation
- wrap one of our test error messages in a manner more consistent with other messages
2023-08-09 22:58:26 +00:00
Kate Lovett
f054f5aa09
Move mock canvas to flutter_test (#131631)
Fixes https://github.com/flutter/flutter/issues/59413

This relocates `mock_canvas.dart` and `recording_canvas.dart` from `flutter/test/rendering` to `flutter_test`. 

The testing functionality afforded by mock_canvas should be available to everyone, not just the framework. :)

mock_canvas.dart needed a bit of cleanup - things like formatting and super parameters.
2023-08-07 23:43:03 +00:00
Qun Cheng
71d96ddf9c
Add Expanded/Collapsed State for Semantics (#131233) 2023-07-31 12:09:27 -07:00
Jason Simmons
8a84437989
Manual roll to engine commit 9b14c382 using Dart SDK version 3.2.x (#131371)
Dart SDK 3.2.x requires a new version of the dart_internal package.
2023-07-27 17:33:07 +00:00
Michael Goderbauer
6f09064e78
Stand-alone widget tree with multiple render trees to enable multi-view rendering (#125003)
This change enables Flutter to generate multiple Scenes to be rendered into separate FlutterViews from a single widget tree. Each Scene is described by a separate render tree, which are all associated with the single widget tree.

This PR implements the framework-side mechanisms to describe the content to be rendered into multiple views. Separate engine-side changes are necessary to provide these views to the framework and to draw the framework-generated Scene into them.

## Summary of changes

The details of this change are described in [flutter.dev/go/multiple-views](https://flutter.dev/go/multiple-views). Below is a high-level summary organized by layers.

### Rendering layer changes

* The `RendererBinding` no longer owns a single `renderView`. In fact, it doesn't OWN any `RenderView`s at all anymore. Instead, it offers an API (`addRenderView`/`removeRenderView`) to add and remove `RenderView`s that then will be MANAGED by the binding. The `RenderView` itself is now owned by a higher-level abstraction (e.g. the `RawView` Element of the widgets layer, see below), who is also in charge of adding it to the binding. When added, the binding will interact with the `RenderView` to produce a frame (e.g. by calling `compositeFrame` on it) and to perform hit tests for incoming pointer events. Multiple `RenderView`s can be added to the binding (typically one per `FlutterView`) to produce multiple Scenes.
* Instead of owning a single `pipelineOwner`, the `RendererBinding` now owns the root of the `PipelineOwner` tree (exposed as `rootPipelineOwner` on the binding). Each `PipelineOwner` in that tree (except for the root) typically manages its own render tree typically rooted in one of the `RenderView`s mentioned in the previous bullet. During frame production, the binding will instruct each `PipelineOwner` of that tree to flush layout, paint, semantics etc. A higher-level abstraction (e.g. the widgets layer, see below) is in charge of adding `PipelineOwner`s to this tree.
* Backwards compatibility: The old `renderView` and `pipelineOwner` properties of the `RendererBinding` are retained, but marked as deprecated. Care has been taken to keep their original behavior for the deprecation period, i.e. if you just call `runApp`, the render tree bootstrapped by this call is rooted in the deprecated `RendererBinding.renderView` and managed by the deprecated `RendererBinding.pipelineOwner`.

### Widgets layer changes

* The `WidgetsBinding` no longer attaches the widget tree to an existing render tree. Instead, it bootstraps a stand-alone widget tree that is not backed by a render tree. For this, `RenderObjectToWidgetAdapter` has been replaced by `RootWidget`.
* Multiple render trees can be bootstrapped and attached to the widget tree with the help of the `View` widget, which internally is backed by a `RawView` widget. Configured with a `FlutterView` to render into, the `RawView` creates a new `PipelineOwner` and a new `RenderView` for the new render tree. It adds the new `RenderView` to the `RendererBinding` and its `PipelineOwner` to the pipeline owner tree.
* The `View` widget can only appear in certain well-defined locations in the widget tree since it bootstraps a new render tree and does not insert a `RenderObject` into an ancestor. However, almost all Elements expect that their children insert `RenderObject`s, otherwise they will not function properly. To produce a good error message when the `View` widget is used in an illegal location, the `debugMustInsertRenderObjectIntoSlot` method has been added to Element, where a child can ask whether a given slot must insert a RenderObject into its ancestor or not. In practice, the `View` widget can be used as a child of the `RootWidget`, inside the `view` slot of the `ViewAnchor` (see below) and inside a `ViewCollection` (see below). In those locations, the `View` widget may be wrapped in other non-RenderObjectWidgets (e.g. InheritedWidgets).
* The new `ViewAnchor` can be used to create a side-view inside a parent `View`. The `child` of the `ViewAnchor` widget renders into the parent `View` as usual, but the `view` slot can take on another `View` widget, which has access to all inherited widgets above the `ViewAnchor`. Metaphorically speaking, the view is anchored to the location of the `ViewAnchor` in the widget tree.
* The new `ViewCollection` widget allows for multiple sibling views as it takes a list of `View`s as children. It can be used in all the places that accept a `View` widget.

## Google3

As of July 5, 2023 this change passed a TAP global presubmit (TGP) in google3: tap/OCL:544707016:BASE:545809771:1688597935864:e43dd651

## Note to reviewers

This change is big (sorry). I suggest focusing the initial review on the changes inside of `packages/flutter` first. The majority of the changes describe above are implemented in (listed in suggested review order):

* `rendering/binding.dart`
* `widgets/binding.dart`
* `widgets/view.dart`
* `widgets/framework.dart`

All other changes included in the PR are basically the fallout of what's implemented in those files. Also note that a lot of the lines added in this PR are documentation and tests.

I am also very happy to walk reviewers through the code in person or via video call, if that is helpful.

I appreciate any feedback.

## Feedback to address before submitting ("TODO")
2023-07-17 16:14:08 +00:00
Alexander Aprelev
3b8f6c4020
Upgrade framework pub dependencies, roll engine with rolled dart sdk (#130163)
Manual roll is needed because incoming dart sdk requires updated version
vm_snapshot_analysis (>=0.7.4).


5ae09b8b4f...7c83ea3e85

```
7c83ea3e85 Reland "Manual roll Dart SDK from 2d98d9e27dae to 0b07debd5862 (21 revisions) (#43457)" (#43472)
9ef3e8d533 Roll Skia from 5eba922297bb to 93c92f97f5ab (2 revisions) (#43471)
```

Remove implementation of SuitePlatform from the test as well. Remove use
of fake cwd from SuitePlatform as it can't be properly faked.
2023-07-07 13:55:35 -07:00
Michael Goderbauer
55b6f049a6
Enable unreachable_from_main lint - it is stable now!!1 (#129854)
PLUS: clean-up of all the unreachable stuff.
2023-07-06 00:09:01 +00:00
pdblasi-google
e1702a96f6
Removes deprecated APIs from v2.6 in binding.dart and widget_tester.dart (#129663)
Removes deprecated APIs from v2.6 in `binding.dart` and `widget_tester.dart`

Resolves #129654
2023-07-05 19:26:24 +00:00
pdblasi-google
af09b57e20
Removes deprecated APIs from AnimationBuilder (#129657)
Removes deprecated APIs from AnimationBuilder.

Resolves #129653
2023-06-28 20:12:19 +00:00
pdblasi-google
321abcbe4f
Adds dart_fix support to integration_test (#129579)
* Adds fix for `IntegrationTestWidgetsFlutterBinding.runTest(timeout)` to support first round of deprecations for `flutter_test`

Resolves #124346
2023-06-27 18:01:06 +00:00
Michael Goderbauer
5ab5d82a39
Remove AbstractNode from RenderObject and deprecate it (#128973)
It's time to say good bye to an old friend. 
It has outlived its usefulness.
Farewell, AbstractNode! 🫡
2023-06-16 16:16:36 +00:00
Mouad Debbar
a162d7546a
flutter update-packages --force-upgrade (#128908)
- Bumps `vm_service` from `11.6.0` to `11.7.1`
- Bumps `web` from `0.1.3-beta` to `0.1.4-beta` and adds it everywhere.
- Moves `js` from `dependencies` to `dev_dependencies`
2023-06-15 18:17:09 +00:00
William Oprandi
a9f17c876b
Fix syntax error in docstring (#128692) 2023-06-13 15:04:21 -07:00
Hans Muller
ce248e87f9
Update misc tests for Material3 (#128712) 2023-06-13 08:57:27 -07:00
Greg Spencer
a280346193
Add AppLifecycleListener, with support for application exit handling (#123274)
## Description

This adds `AppLifecycleListener`, a class for listening to changes in the application lifecycle, and responding to requests to exit the application.

It depends on changes in the Engine that add new lifecycle states: https://github.com/flutter/engine/pull/42418

Here's a diagram for the lifecycle states. I'll add a similar diagram to the documentation for these classes.

![Application Lifecycle Diagram](https://github.com/flutter/flutter/assets/8867023/f6937002-cb93-4ab9-a221-25de2c45cf0e)

## Related Issues
 - https://github.com/flutter/flutter/issues/30735

## Tests
- Added tests for new lifecycle value, as well as for the `AppLifecycleListener` itself.
2023-06-08 22:57:19 +00:00
Michael Goderbauer
cff67336d0
Add viewId to PointerEvents (#128287)
Follow-up to https://github.com/flutter/engine/pull/42493.
2023-06-06 19:16:02 -07:00
Michael Goderbauer
4c5db40ff5
Clean-up viewId casts in flutter_test (#128256)
Follow-up to https://github.com/flutter/engine/pull/42493.
2023-06-06 17:23:17 +00:00
Nate Bosch
d095f10b44
Use a show over a hide for test_api exports (#128298)
The members which are currently hidden may get removed from `package:test_api` because they have no uses.
https://github.com/dart-lang/test/pull/2030

Switch to a `show` and list all the exported APIs. This is currently a no-op change, and is forward compatible with the breaking change when it lands.

A `show` is also safer than a `hide` when exporting across package boundaries. Adding a new member to a library _can be_ breaking, but is often treated as non-breaking. If a new member is added to `package:test_api/scaffolding.dart` it will need to be manually added to the list to be usable from `package:flutter_test`, but we anyways want to add a CHANGELOG entry for user facing changes.
2023-06-06 16:23:14 +00:00
Michael Goderbauer
17f86df8bd
Migrate SemanticsBinding to onSemanticsActionEvent (#128254)
Follow-up to https://github.com/flutter/engine/pull/42493.
2023-06-05 18:16:06 +00:00
Michael Goderbauer
dffd0c3a9d
Prefix for dart:ui multiview change (#128152)
For https://github.com/flutter/engine/pull/42493.
2023-06-02 19:08:05 -07:00
Michael Goderbauer
e50b2507bf
Pre-migration for dart:ui multi view changes (#128092)
For https://github.com/flutter/engine/pull/42493.
2023-06-02 20:51:09 +00:00
Michael Goderbauer
4cf89cc278
Remove LiveTestRenderView (#127882)
In the multi view world, `RenderViews` are created by the `View` widget and no longer owned by the binding. Prior to this change, the `LiveTestWidgetsFlutterBinding` owned and managed a special subclass of `RenderView`, the `_LiveTestRenderView`. In the new world, where `RenderView`s can be created anywhere in the widget tree where a `View` widget is used, this setup is no longer feasible. This change removes this special `_LiveTestRenderView` and instead adds debug hocks to `RenderView` to allow the `LiveTestWidgetsFlutterBinding` to draw a debug overlay on top of the content of any `RenderView`.
2023-06-02 20:41:05 +00:00
fzyzcjy
ffe94a2267
Add retry flag to flutter_test (#125851)
Closes https://github.com/flutter/flutter/issues/125920

I will add tests, polish code, etc, if this change looks generally OK!
2023-06-01 22:25:52 +00:00
Greg Spencer
a257efc284
Fix handling of AppLifecycleState.hidden (#127987)
## Description

This fixes the parsing of `AppLifecycleState` in the services binding so that it knows what it is.

## Related Issues
 - Fixes https://github.com/flutter/flutter/issues/127974

## Tests
 - Added a test that causes parsing of all the different app lifecycle states.
2023-05-31 22:03:06 +00:00
Christopher Fujino
0763d61f56
[flutter_tools] manually roll pub deps (#127447)
Fixes https://github.com/flutter/flutter/issues/127226
2023-05-30 23:34:52 +00:00
pdblasi-google
07f7ffde50
Adds TestDisplay API for testing Display features (#127525)
* Adds `TestDisplay`
* Updates `TestPlatformDispatcher` to wrap all `Display`s and relate them to their appropriate `TestFlutterView`
* Updates `TestFlutterView` to tie `devicePixelRatio` to its display as per the documentation on `Display`

Closes #127225
2023-05-26 00:04:05 +00:00
Phil Quitslund
d0c0439b8d
fixes to anticipate next Dart linter release (#127211)
The upcoming linter release notices null literals as unnecessary argument values and flags more `type_literal_in_constant_pattern` cases. 

See breakages: https://logs.chromium.org/logs/dart/buildbucket/cr-buildbucket/8780744067138629361/+/u/analyze_flutter_flutter/stdout
2023-05-19 21:27:24 +00:00
Michael Goderbauer
5e1ba701ed
enable no_literal_bool_comparisons lint (#126647) 2023-05-16 16:14:23 +00:00
Polina Cherkasova
ea5eddb5a9
Upgrade leak_tracker to 5.0.0 (#126367)
Fixes https://github.com/flutter/flutter/issues/126259

Updated pubspec:
345f0bffbf/packages/flutter/pubspec.yaml
2023-05-16 04:39:26 +00:00
Tomasz Gucio
99c7e9f088
Add spaces after flow control statements (#126320) 2023-05-15 11:07:30 +02:00
Michael Goderbauer
9b230d239a
Fix leaks (#126144)
Fixes https://github.com/flutter/flutter/issues/126096.
Fixes https://github.com/flutter/flutter/issues/126097.
Fixes https://github.com/flutter/flutter/issues/126102.
Fixes https://github.com/flutter/flutter/issues/126098.
Fixes https://github.com/flutter/flutter/issues/126147.
Work towards https://github.com/flutter/flutter/issues/126100.

Does not fix the OverlyEntry/ModalRoute leak (https://github.com/flutter/flutter/issues/126100).
2023-05-08 09:11:23 +00:00
Pierre-Louis
65dfb555c0
Update packages (#126140)
In particular, update pin for `material_color_utilities` to `0.5.0`.
2023-05-08 09:51:28 +02:00
Ian Hickson
a11da307bf
Minor fixes found while working on blankcanvas (#125751)
This PR contains a series of minor changes to address issues that I happened to run into:

 - Pretty-print errors triggered when handling events that are pending because of having locked event handling. Previously these were just dumped to the console.
 - Add more documentation for `debugPaintPadding`.
 - Add documentation to `Tween` saying how to implement it.
 - Slight formatting changes in the scrollbar code to align some expressions.
 - Since we convert ScrollMetricsNotifications to ScrollNotifications in various places, provide an explicit API to do this. This will make the behaviour consistent throughout, and makes the code easier to understand. Added a test for this.
 - Clarifications to some of the BindingBase and SchedulerBinding documentation.
 - Clarified some documentation in `flutter_test`'s `Finder` class.
2023-05-05 00:34:04 +00:00
Nate Bosch
2089eacc00
Switch imports from test_api to focused libaries (#125854)
Move imports of API available in `hooks.dart` or `scaffolding.dart` to use those more narrow libraries.

Move imports of APIs from `package:matcher` to import directly. The next major version of `test_api` will remove the exports of `matcher` APIs.
2023-05-04 08:01:12 +00:00
Bruno Leroux
af050d95ae
Add a channel to query the engine keyboard state (#122885)
## Description

This PR adds a new channel to query the engine keyboard state.
See https://github.com/flutter/flutter/issues/87391#issuecomment-1228975571 for motivation. 

## Related Issue

Framework side implementation for https://github.com/flutter/flutter/issues/87391.

Once approved the framework will try to query the initial keyboard state from the engine. PRs will be needed on the engine side to answer the framework query.

## Tests

Adds 1 test.
2023-04-28 21:05:20 +00:00
fzyzcjy
37c95a2853
fix: moreOrLessEquals does not allow actual to be integers (#125599)
Close https://github.com/flutter/flutter/issues/125600
2023-04-27 14:28:32 +00:00
Nate Bosch
1789a4244b
Remove some ignores for un-deprecated imports (#125261)
The latest version of `test_api` removed the deprecated annotation for a couple libraries. The deprecations had been a hack to avoid usage from inappropriate places, but they cause trouble and likely weren't effective for that goal.

Remove separate import for `registerException` since that was also moved to be available from the top level `scaffolding.dart` library.
2023-04-22 01:04:24 +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
Flutter GitHub Bot
d85e2fb810
Roll pub packages (#125225)
This PR was generated by `flutter update-packages --force-upgrade`.
2023-04-20 18:28:10 +00:00
chunhtai
8ac94c16b2
MinimumTapTargetGuideline skips nodes at scrollable boundaries (#124615)
fixes https://github.com/flutter/flutter/issues/107615

## 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].
- [ ] 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/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#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/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2023-04-20 09:09:55 -07:00
Bernardo Ferrari
2e4d976bde
SemanticsFlag/SemanticsAction cleanup (part 4) (#123329)
`SemanticsFlag`/`SemanticsAction` cleanup (part 4)
2023-04-12 19:07:08 +00:00
pdblasi-google
6839b3cbd6
Adds dart_fix support to flutter_test (#124347)
Adds `dart_fix` support to `flutter_test`
2023-04-11 21:09:07 +00:00
Rexios
bf0bdacb29
[flutter_test] Adds method to mock EventChannels (#124415)
[flutter_test] Adds method to mock EventChannels
2023-04-10 17:02:48 +00:00
Eilidh Southren
0f5e513ba8
Update MCU version (#124512)
Update MCU version
2023-04-10 16:44:26 +00:00
Michael Goderbauer
73bd978529
Migrate away from deprecated BinaryMessenger API (#124348)
Migrate away from deprecated BinaryMessenger API
2023-04-07 19:38:52 +00:00
Flutter GitHub Bot
cc4b455521
Roll pub packages (#124364)
Roll pub packages
2023-04-07 17:19:24 +00:00
Zachary Anderson
2f4a6afd30
Revert "[flutter_test] Adds method to mock EventChannels" (#124401)
Reverts flutter/flutter#123726

Analysis failures on CI
https://ci.chromium.org/ui/p/flutter/builders/prod/Linux%20analyze/12890/overview
2023-04-07 10:10:00 -07:00
Rexios
f28eb28f0d
[flutter_test] Adds method to mock EventChannels (#123726)
[flutter_test] Adds method to mock EventChannels
2023-04-07 16:12:27 +00:00
Greg Price
846fcefd21
Fix surface-size state leak in material/paginated_data_table_test (framework shuffle-all 3/n) (#123842)
Fix surface-size state leak in material/paginated_data_table_test (framework shuffle-all 3/n)
2023-04-06 23:34:12 +00:00
Greg Price
09940e4a37
Make tester.startGesture less async, for better stack traces (#123946)
Make tester.startGesture less async, for better stack traces
2023-04-06 19:58:15 +00:00
Ian Hickson
806c1f8186
Deprecate these old APIs (#116793)
Deprecate these old APIs
2023-04-06 19:53:50 +00:00
Michael Goderbauer
25a2dfb302
Rename RenderView.window to RenderView.view (#124060) 2023-04-04 11:22:22 -07:00
Flutter GitHub Bot
0046a25e39
Roll pub packages (#123899)
Roll pub packages
2023-04-03 16:56:56 +00:00
Michael Goderbauer
293114ac5a
Hyperlink dart docs around BinaryMessenger deprecations (#123798)
Hyperlink dart docs around BinaryMessenger deprecations
2023-03-31 23:04:22 +00:00
Bernardo Ferrari
f5415a42d3
SemanticsFlag/SemanticsAction enum migration (part 2) (#123817)
`SemanticsFlag`/`SemanticsAction` enum migration (part 2)
2023-03-31 16:19:22 +00:00
Brian Quinlan
06f015a8c0
Modify flutter_tests dart:io mocks to support Dart 3.0 (#123706)
Modify flutter_tests dart:io mocks to support Dart 3.0
2023-03-30 02:18:27 +00:00
Simon Binder
c71f1dd76b
Treat hidden IndexedStack children as offstage for test finder (#123129)
Treat hidden `IndexedStack` children as offstage for test finder
2023-03-29 19:58:58 +00:00
Michael Goderbauer
48bb12dfbe
Make Element tree root generic (#123352)
Make Element tree root generic
2023-03-27 20:31:49 +00:00
Michael Goderbauer
31798757e7
replace some ._() constructors with class modifiers (#122765) 2023-03-23 12:29:18 -07:00
Flutter GitHub Bot
7b7af9f34c
roll packages (#123339)
Roll pub packages
2023-03-23 19:03:57 +00:00
Michael Goderbauer
fda9ecfef7
Remove 1745 decorative breaks (#123259)
Remove 1745 decorative breaks
2023-03-22 21:12:22 +00:00
Michael Goderbauer
a9073f787c
Deprecate BindingBase.window (#120998)
Deprecate BindingBase.window
2023-03-21 21:08:23 +00:00
Michael Goderbauer
25e38a2a87
Bump lower Dart SDK constraints to 3.0 & add class modifiers (#122546)
Bump lower Dart SDK constraints to 3.0 & add class modifiers
2023-03-21 20:21:58 +00:00
pdblasi-google
4695fcc782
Deprecates TestWindow (#122824)
Deprecates `TestWindow`
2023-03-21 18:43:50 +00:00
Christopher Fujino
6b7c60d69a
manual pub roll (#123071)
manual pub roll
2023-03-21 01:08:51 +00:00
pdblasi-google
399cd6a56d
Refactors accessibility guidelines to remove the single window assumption. (#122760)
Refactors accessibility guidelines to remove the single window assumption
2023-03-17 20:38:56 +00:00
Ian Hickson
245d6d45a1
Assert that runApp is called in the same zone as binding.ensureInitialized (#122836)
Assert that runApp is called in the same zone as binding.ensureInitialized
2023-03-16 22:33:09 +00:00
yaakovschectman
5bea4d9023
Revert "Assert that runApp is called in the same zone as binding.ensureInitialized (#117113)" (#122830)
Revert "Assert that runApp is called in the same zone as binding.ensureInitialized"
2023-03-16 20:29:13 +00:00
Ian Hickson
96f927fb0d
Assert that runApp is called in the same zone as binding.ensureInitialized (#117113)
Assert that runApp is called in the same zone as binding.ensureInitialized
2023-03-16 19:28:14 +00:00
Michael Goderbauer
a599c08c32
Remvoe last few references to window singleton (#122644)
Remove last few references to window singleton
2023-03-15 00:34:34 +00:00
pdblasi-google
0ba64488da
Reland: Updates flutter/test/material to no longer use TestWindow (#122643)
Reland: Updates `flutter/test/material` to no longer use `TestWindow`
2023-03-15 00:08:18 +00:00
yaakovschectman
46a8106781
Revert "Updates flutter/test/material to no longer use TestWindow (#122337)" (#122636)
This reverts commit b2fc5f9770.
2023-03-14 17:34:33 -04:00
pdblasi-google
b2fc5f9770
Updates flutter/test/material to no longer use TestWindow (#122337)
Updates `flutter/test/material` to no longer use `TestWindow`
2023-03-14 21:13:05 +00:00
pdblasi-google
7dd53fefe9
Reland (3): Removes single window assumptions from flutter_test (#122422)
Reland (3): Removes single window assumptions from `flutter_test`
2023-03-13 21:50:24 +00:00
Bruno Leroux
376d8baabc
Remove key simulation obsolete comments (#122389)
Remove key simulation obsolete comments
2023-03-13 20:20:19 +00:00
Michael Goderbauer
12ef7535a8
Reland "Introduce the PipelineOwner tree (#122231)" (#122452)
Reland "Introduce the PipelineOwner tree (#122231)"
2023-03-13 17:58:56 +00:00
Jim Graham
670f9d2037
Revert "Introduce the PipelineOwner tree (#122231)" (#122425)
This reverts commit f73c358e43.
2023-03-10 13:15:46 -08:00
Michael Goderbauer
f73c358e43
Introduce the PipelineOwner tree (#122231)
Introduce the PipelineOwner tree
2023-03-10 19:57:17 +00:00
Michael Goderbauer
b4019f9884
Reland "Remove single view assumption from TestViewConfiguration (#122352)" (#122414)
Reland "Remove single view assumption from TestViewConfiguration (#122352)"
2023-03-10 19:30:34 +00:00
Callum Moffat
e078c93bfe
SelectionChangedCause for iOS keyboard-select (#122144)
SelectionChangedCause for iOS keyboard-select
2023-03-10 19:13:28 +00:00
Casey Hillers
1f42612323
Revert PRs relating to single window assumption (#122369)
* Revert "Remove references to BindingBase.window (#122119)"

This reverts commit c7681f00cf.

* Revert "Remove another reference to BindingBase.window (#122341)"

This reverts commit 6ec4445063.

* Revert "Reland (2): Removes single window assumptions from `flutter_test` (#122233)"

This reverts commit eb3d317ea0.

* Revert "Remove single view assumption from TestViewConfiguration (#122352)"

This reverts commit 927289fb4e.

* Revert "Updates `flutter/test/cupertino` to no longer use `TestWindow` (#122325)"

This reverts commit 67e17e45f0.

* Revert "Updates `flutter/test/gestures` to no longer reference `TestWindow` (#122327)"

This reverts commit c2a5111cc0.

* Revert "Updates `flutter/test/rendering` to no longer use `TestWindow` (#122347)"

This reverts commit 28b65e089b.

* Revert "Updates `flutter_localizations/test` to stop using `TestWindow` (#122321)"

This reverts commit 01367d52d7.
2023-03-09 22:53:38 -08:00
Michael Goderbauer
927289fb4e
Remove single view assumption from TestViewConfiguration (#122352)
Remove single view assumption from TestViewConfiguration
2023-03-10 01:54:00 +00:00
pdblasi-google
eb3d317ea0
Reland (2): Removes single window assumptions from flutter_test (#122233)
Reland (2): Removes single window assumptions from `flutter_test`
2023-03-09 00:52:05 +00:00
Jami Couch
2a67bf78f0
Add support for iOS UndoManager (#98294)
Add support for iOS UndoManager
2023-03-08 19:45:49 +00:00
Casey Hillers
0091601057
Revert "Reland: Removes single window assumptions from flutter_test (#122060)" (#122193)
Revert "Reland: Removes single window assumptions from `flutter_test`"
2023-03-08 19:42:03 +00:00
pdblasi-google
a626f4db6f
Reland: Removes single window assumptions from flutter_test (#122060)
Reland: Removes single window assumptions from `flutter_test`
2023-03-07 21:12:59 +00:00
pdblasi-google
a53105d941
Revert "Removes single window assumptions from flutter_test (#121549)" (#122037)
This reverts commit f2dd19d5b6.
2023-03-06 11:49:40 -08:00
pdblasi-google
f2dd19d5b6
Removes single window assumptions from flutter_test (#121549)
Removes single window assumptions from `flutter_test`
2023-03-06 18:38:14 +00:00
Jason Simmons
95387c6621
Fix field cleared by TestWindow.clearGestureSettingsTestValue (#121956) 2023-03-04 16:59:14 -08:00
Michael Goderbauer
50c80d9b50
Remove all traces of ViewConfiguration/PlatformConfiguration (#121751)
Remove all traces of ViewConfiguration/PlatformConfiguration
2023-03-02 20:46:15 +00:00
Michael Goderbauer
92a1a8ba09
Migrate to FlutterView.gestureSettings (#121749) 2023-03-02 10:17:29 -08: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
b1b7284a72
Move semantic-related bindings to SemanticsBinding (#121289)
Move semantic-related bindings to SemanticsBinding
2023-02-24 19:30:57 +00:00