- 07 Aug, 2023 1 commit
-
-
Kate Lovett authored
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.
-
- 31 Jul, 2023 1 commit
-
-
Qun Cheng authored
-
- 27 Jul, 2023 1 commit
-
-
Jason Simmons authored
Dart SDK 3.2.x requires a new version of the dart_internal package.
-
- 17 Jul, 2023 1 commit
-
-
Michael Goderbauer authored
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")
-
- 07 Jul, 2023 1 commit
-
-
Alexander Aprelev authored
Manual roll is needed because incoming dart sdk requires updated version vm_snapshot_analysis (>=0.7.4). https://github.com/flutter/engine/compare/5ae09b8b4fa381e8723ed5382a26eafd0d97236f...7c83ea3e854202aea22405a947ac1b8f18c5a72c ``` 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.
-
- 06 Jul, 2023 1 commit
-
-
Michael Goderbauer authored
PLUS: clean-up of all the unreachable stuff.
-
- 05 Jul, 2023 1 commit
-
-
pdblasi-google authored
Removes deprecated APIs from v2.6 in `binding.dart` and `widget_tester.dart` Resolves #129654
-
- 28 Jun, 2023 1 commit
-
-
pdblasi-google authored
Removes deprecated APIs from AnimationBuilder. Resolves #129653
-
- 27 Jun, 2023 1 commit
-
-
pdblasi-google authored
* Adds fix for `IntegrationTestWidgetsFlutterBinding.runTest(timeout)` to support first round of deprecations for `flutter_test` Resolves #124346
-
- 16 Jun, 2023 1 commit
-
-
Michael Goderbauer authored
It's time to say good bye to an old friend. It has outlived its usefulness. Farewell, AbstractNode! ð«¡
-
- 15 Jun, 2023 1 commit
-
-
Mouad Debbar authored
- 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`
-
- 13 Jun, 2023 2 commits
-
-
William Oprandi authored
-
Hans Muller authored
-
- 08 Jun, 2023 1 commit
-
-
Greg Spencer authored
## 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.
-
- 07 Jun, 2023 1 commit
-
-
Michael Goderbauer authored
Follow-up to https://github.com/flutter/engine/pull/42493.
-
- 06 Jun, 2023 2 commits
-
-
Michael Goderbauer authored
Follow-up to https://github.com/flutter/engine/pull/42493.
-
Nate Bosch authored
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.
-
- 05 Jun, 2023 1 commit
-
-
Michael Goderbauer authored
Follow-up to https://github.com/flutter/engine/pull/42493.
-
- 03 Jun, 2023 1 commit
-
-
- 02 Jun, 2023 2 commits
-
-
-
Michael Goderbauer authored
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`.
-
- 01 Jun, 2023 1 commit
-
-
fzyzcjy authored
Closes https://github.com/flutter/flutter/issues/125920 I will add tests, polish code, etc, if this change looks generally OK!
-
- 31 May, 2023 1 commit
-
-
Greg Spencer authored
## 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.
-
- 30 May, 2023 1 commit
-
-
- 26 May, 2023 1 commit
-
-
pdblasi-google authored
* 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
-
- 19 May, 2023 1 commit
-
-
Phil Quitslund authored
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
-
- 16 May, 2023 2 commits
-
-
Michael Goderbauer authored
-
- 15 May, 2023 1 commit
-
-
Tomasz Gucio authored
-
- 08 May, 2023 2 commits
-
-
Michael Goderbauer authored
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).
-
Pierre-Louis authored
In particular, update pin for `material_color_utilities` to `0.5.0`.
-
- 05 May, 2023 1 commit
-
-
Ian Hickson authored
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.
-
- 04 May, 2023 1 commit
-
-
Nate Bosch authored
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.
-
- 28 Apr, 2023 1 commit
-
-
Bruno Leroux authored
## 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.
-
- 27 Apr, 2023 1 commit
-
-
fzyzcjy authored
Close https://github.com/flutter/flutter/issues/125600
-
- 22 Apr, 2023 1 commit
-
-
Nate Bosch authored
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.
-
- 20 Apr, 2023 3 commits
-
-
Nate Bosch authored
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.
-
Flutter GitHub Bot authored
This PR was generated by `flutter update-packages --force-upgrade`.
-
chunhtai authored
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
-
- 12 Apr, 2023 1 commit
-
-
Bernardo Ferrari authored
`SemanticsFlag`/`SemanticsAction` cleanup (part 4)
-