Commit Graph

1139 Commits

Author SHA1 Message Date
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
Polina Cherkasova
127b7c8b05
Upgrade leak_tacker and other packages. (#130585) 2023-07-14 19:04:05 -07:00
Sam Rawlins
9f53df559f
Correct a few import sortings (#130435)
Move a few import directives to be in correct order. Fixes https://github.com/flutter/flutter/issues/130434
2023-07-13 15:33:07 +00:00
Srujan Gaddam
ab39bff282
Refactor JSNumber.toDart and Object.toJS (#129436)
JSNumber.toDart will now be two functions: toDartDouble and toDartInt.

There was code that did an Object.toJS. This has been changed to
use Function.toJS as well to make it consistent with the code
in flutter/packages:
0ef393811d/packages/web_benchmarks/lib/src/recorder.dart (L1223)

This is to help land this CL:
https://dart-review.googlesource.com/c/sdk/+/309082

https://dart-review.googlesource.com/c/sdk/+/309081 is the CL that added
the new methods.

## 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].
- [x] All existing and new tests are passing.
2023-07-12 13:54:15 -07: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
lsaudon
7cab354def
Deletes files that should be ignored (#127984)
Some files are supposed to ignore, but don't.

- **/windows/flutter/generated_plugins.cmake
- **/linux/flutter/generated_plugin_registrant.cc
- **/linux/flutter/generated_plugin_registrant.h
- **/linux/flutter/generated_plugins.cmake
- **/windows/flutter/generated_plugin_registrant.cc
- **/windows/flutter/generated_plugin_registrant.h
- **/ios/Runner/GeneratedPluginRegistrant.h
- **/ios/Runner/GeneratedPluginRegistrant.m

*List which issues are fixed by this PR. You must list at least one issue.*

*If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].*
2023-06-29 19:45:22 +00:00
Jackson Gardner
1b887c72b5
Skwasm benchmarks. (#129681)
This enables benchmarks for the Skwasm renderer, compiled with
dart2wasm.

Platform views aren't supported in Skwasm yet, so we are skipping those
benchmarks for now.
2023-06-28 17:16:19 -07:00
Hans Muller
0d4b5ae122
Dev, examples/api, etc updated for Material 3 by default (#129683)
Updated tests in dev, examples/api, and tests/widgets to ensure that
they continue to pass when the default for `ThemeData.useMaterial3` is
changed to true.

This is the final set of changes required for
https://github.com/flutter/flutter/issues/127064.
2023-06-28 09:41:58 -07:00
gmackall
51f659825e
Unpin path_provider_android (#129205)
Unpins path_provider_android where it is pinned. Follows the same steps as https://github.com/flutter/flutter/pull/128898.

Fixes https://github.com/flutter/flutter/issues/116376
2023-06-22 21:22:49 +00:00
Yegor
07772a3d23
[framework,web] add FlutterTimeline and semantics benchmarks that use it (#128366)
## FlutterTimeline

Add a new class `FlutterTimeline` that's a drop-in replacement for `Timeline` from `dart:developer`. In addition to forwarding invocations of `startSync`, `finishSync`, `timeSync`, and `instantSync` to `dart:developer`, provides the following extra methods that make is easy to collect timings for code blocks on a frame-by-frame basis:

* `debugCollect()` - aggregates timings since the last reset, or since the app launched.
* `debugReset()` - forgets all data collected since the previous reset, or since the app launched. This allows clearing data from previous frames so timings can be attributed to the current frame.
* `now` - this was enhanced so that it works on the web by calling `window.performance.now` (in `Timeline` this is a noop in Dart web compilers).
* `collectionEnabled` - a field that controls whether `FlutterTimeline` stores timings in memory. By default this is disabled to avoid unexpected overhead (although the class is designed for minimal and predictable overhead). Specific benchmarks can enable collection to report to Skia Perf.

## Semantics benchmarks

Add `BenchMaterial3Semantics` that benchmarks the cost of semantics when constructing a screen full of Material 3 widgets from nothing. It is expected that semantics will have non-trivial cost in this case, but we should strive to keep it much lower than the rendering cost. This is the case already. This benchmark shows that the cost of semantics is <10%.

Add `BenchMaterial3ScrollSemantics` that benchmarks the cost of scrolling a previously constructed screen full of Material 3 widgets. The expectation should be that semantics will have trivial cost, since we're just shifting some widgets around. As of today, the numbers are not great, with semantics taking >50% of frame time, which is what prompted this PR in the first place. As we optimize this, we want to see this number improve.
2023-06-21 21:37:02 +00:00
Chris Yang
fadcaee842
iOS info.plist template: make UIViewControllerBasedStatusBar to be true (#128970)
Now that we support UIViewControllerBasedStatusBar by default (after engine roll: c7167765d7), we should make this value to be true.

Part of https://github.com/flutter/flutter/issues/128969
2023-06-20 18:11:18 +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
Polina Cherkasova
05d1cde0dd
Address leak tracker breaking changes. (#128623) 2023-06-12 11:11:35 -04:00
Jackson Gardner
7c15a26eab
Reland "Migrate benchmarks to package:web" (#128266)
This attempts to reland https://github.com/flutter/flutter/pull/126848

This was reverted because it made some unexpected changes to our perf measurements. After landing https://github.com/flutter/flutter/pull/127900, we have much less noise in our benchmarks, so I'd like to reland this and see if there is still a significant measurement difference.
2023-06-08 22:25:40 +00:00
Jackson Gardner
e8f4d803ba
Improve web benchmarks measurements (#127900)
By default, the browser fuzzes the timer APIs such that they have a granularity of approximately 100 microseconds (this is due to Spectre mitigation techniques). However, many of the thing we are trying to measure actually have a much finer granularity than 100 microseconds. As a result, many of our benchmarks are extremely noisy and don't provide accurate data.

By serving the initial script files with the `Cross-Origin-Opener-Policy: same-origin` and `Cross-Origin-Embedder-Policy: require-corp` HTTP headers, the browser runs the benchmarks in a `crossOriginIsolated` context, which restores the fine granularity of APIs such as `performance.now()` to microsecond precision.

Also, we were considering anything an outlier that was more than one standard deviation away from the mean. In a normal distribution, that means we are only capturing 68% of the data and the rest are considered outliers. This is not ideal. Doing two standard deviations away captures 95% of the data, and the outliers are in the remaining 5%, which seems much more reasonable.
2023-05-31 02:29:02 +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
Phil Quitslund
5bf6318688
Update collection-fors to prefer final (as per updated prefer_final_in_for_each) (#127511)
The newly updated lint will soon flag for-each in collections.

See discussion: https://github.com/dart-lang/linter/pull/4383

/cc @goderbauer
2023-05-26 23:34:36 +00:00
Mouad Debbar
2d142c5ba2
[web] ui.platformViewRegistry => ui_web.platformViewRegistry (#127493)
Now that `platformViewRegistry` is [exposed](https://github.com/flutter/engine/pull/41877) through `dart:ui_web`, we can do some cleanup here.

Part of https://github.com/flutter/flutter/issues/126831
2023-05-24 23:31:28 +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
joshualitt
3001d6ab17
Revert "Migrate benchmarks to package:web" (#127207)
Reverts flutter/flutter#126848

Triggered some kind of measuring discrepancy / performance regression.
2023-05-19 10:20:44 -07:00
joshualitt
4fea3ef588
Migrate benchmarks to package:web (#126848) 2023-05-18 14:02:12 -07:00
joshualitt
d021109d93
Remove 'url_launcher' from pubspec.yaml. (#126939) 2023-05-17 08:31:37 -07: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
Jonah Williams
41abe998ee
[devicelab] add drawPoints benchmark (#126728)
Add a benchmark that measures the improvements from https://github.com/flutter/engine/pull/41803
2023-05-15 19:14:58 +00:00
Tomasz Gucio
99c7e9f088
Add spaces after flow control statements (#126320) 2023-05-15 11:07:30 +02: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
Mouad Debbar
28f3037758
[web] Use plain platform views in benchmarks (#126080)
Removing the dependency between web benchmarks and `url_launcher`'s `Link` widget.
2023-05-05 14:17:34 +00:00
Jenn Magder
1861ac470a
Migrate Xcode projects last version checks to Xcode 14.3 (#125827)
1. Add iOS and macOS migration to mark "last upgraded" Xcode version to 14.3 to prevent `Update to recommended settings` warning.
2. Update iOS and macOS templates to same.
3. Update iOS template to set `BuildIndependentTargetsInParallel` to YES as suggested.  I didn't add a migration for this since it seems like a minor optimization and I don't think it's worth a potentially botched/corrupted migration.
4. Run all example/integration test project to see migrator work.
5. Add some missing test projects to the build shard since I noticed they were missing and I had to build those manually outside `SHARD=build_tests`.

Fixes https://github.com/flutter/flutter/issues/125817
See https://github.com/flutter/flutter/pull/90304 for Xcode 13 example.
2023-05-02 00:06:33 +00:00
yaakovschectman
7d37f2a616
Opt into CMake policy CMP0135 (#125502)
~Update the windows app template and migration to use `CMP0135` when
cmake version is >= 3.24.~

Update app templates' and examples' CMakeLists.txt to use
`cmake_policy(VERSION`. https://github.com/flutter/packages/pull/3828
should obviate the need for a migration.

Addresses https://github.com/flutter/flutter/issues/116866

## 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].
- [ ] 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-04-28 17:49:54 -04:00
Flutter GitHub Bot
73a343f191
Roll pub packages (#125698)
This PR was generated by `flutter update-packages --force-upgrade`.
2023-04-28 19:30:06 +00:00
Flutter GitHub Bot
888b208d62
Roll pub packages (#125447)
This PR was generated by `flutter update-packages --force-upgrade`.
2023-04-28 17:31:45 +00:00
Taha Tesser
457e98a1e7
Add Sliders to macrobenchmarks (#125296)
This adds a performance test for `Slider` and `RangeSlider` to run on Android.
This is to measure upcoming changes to these widgets and compare their performance. 

https://user-images.githubusercontent.com/48603081/233633349-0bcad3c3-04a9-42dd-acd0-46b76ce51178.mp4
2023-04-24 23:25: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
Flutter GitHub Bot
a573d1aeee
Roll pub packages (#125050)
This PR was generated by `flutter update-packages --force-upgrade`.
2023-04-20 17:36:10 +00:00
Flutter GitHub Bot
d300b86e80
Roll pub packages (#124709)
Roll pub packages
2023-04-13 20:54:52 +00:00
Zachary Anderson
cc2a045c5a
Revert "[integration_test] upgrade androidx test to 1.4.0" (#124644)
Reverts flutter/flutter#122437

This is causing several Android devicelab tests to fail on the first
attempt, causing them to be marked flaky. The cause appears to be
unexpected output on stderr. See:
https://ci.chromium.org/ui/p/flutter/builders/prod/Mac_arm64_android%20run_release_test/5390/overview
2023-04-11 18:54:59 -07:00
Micael Cid
4a83fa0fe9
[integration_test] upgrade androidx test to 1.4.0 (#122437)
[integration_test] upgrade androidx test to 1.4.0
2023-04-11 22:22:03 +00:00
Mouad Debbar
0fa15e04ac
[web] Add benchmarks for the Material3 Components screen (#124354)
[web] Add benchmarks for the Material3 Components screen
2023-04-11 19:59:37 +00:00
Eilidh Southren
0f5e513ba8
Update MCU version (#124512)
Update MCU version
2023-04-10 16:44:26 +00:00
Flutter GitHub Bot
cc4b455521
Roll pub packages (#124364)
Roll pub packages
2023-04-07 17:19:24 +00:00
Chris Bracken
e5fc6f65b9
[macOS] Remigrate principal class to NSApplication (#124173)
In #122336 we migrated the principal class from NSApplication to
FlutterApplication in the app Info.plist. We removed the need for
FlutterApplication in https://github.com/flutter/engine/pull/40929. This
reverses the migration for anyone who previously upgraded on the Flutter
master branch.

Issue: https://github.com/flutter/flutter/issues/30735

## 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-04-05 09:05:37 -07:00
Flutter GitHub Bot
0046a25e39
Roll pub packages (#123899)
Roll pub packages
2023-04-03 16:56:56 +00:00
Jonah Williams
54dbbd76b8
[devicelab] add regular old blur benchmark (#123879)
[devicelab] add regular old blur benchmark
2023-03-31 20:54:51 +00:00
Danny Tuppeny
a5fc8b2bd4
Roll pub packages (#123854)
Roll pub packages
2023-03-31 16:41:18 +00:00
Bartek Pacia
b915f68d7a
Fix warning in flutter created project ("package attribute is deprecated" in AndroidManifest) (#123426)
Fix warning in `flutter create`d project ("package attribute is deprecated" in AndroidManifest)
2023-03-29 04:21:03 +00:00
Chris Bracken
b0ad7c456e
[macOS] Eliminate explicit main window init() (#123571)
[macOS] Eliminate explicit main window init()
2023-03-28 01:35:00 +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
Bartek Pacia
c40dd27681
Fix Gradle warning in a freshly flutter createed Android project (#122290)
Fix Gradle warning in a freshly `flutter create`ed Android project
2023-03-21 23:41:49 +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
Christopher Fujino
6b7c60d69a
manual pub roll (#123071)
manual pub roll
2023-03-21 01:08:51 +00:00
Greg Spencer
7a859f7760
Revert unintentional changes to Info.plist files (#122896)
Revert unintentional changes to Info.plist files
2023-03-17 18:18:43 +00:00
Greg Spencer
bcdab118ba
Add support for application exit requests (#121378)
Add support for application exit requests
2023-03-17 15:35:55 +00:00
Greg Spencer
c2f5bf99f1
Add macos project auto migration code for FlutterApplication (#122336)
Add macos project auto migration code for FlutterApplication
2023-03-16 01:01:03 +00:00
Michael Goderbauer
473fa38f77
Reland "Remove references to BindingBase.window (#122119 & #122341)" (#122412)
Reland "Remove references to BindingBase.window (#122119 & #122341)"
2023-03-14 16:48:07 +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
André Sousa
d7e851749a
Fix Gradle 7 warnings that are now errors in Gradle 8 (#121958)
Fix Gradle 7 warnings that are now errors in Gradle 8
2023-03-10 18:24:49 +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
Michael Goderbauer
6ec4445063
Remove another reference to BindingBase.window (#122341)
Remove another reference to BindingBase.window
2023-03-10 00:19:48 +00:00
Michael Goderbauer
c7681f00cf
Remove references to BindingBase.window (#122119)
Remove references to BindingBase.window
2023-03-09 19:14:34 +00:00
Flutter GitHub Bot
0d9a0207ad
roll packages (#121746)
Roll pub packages
2023-03-03 01:38:03 +00:00
Flutter GitHub Bot
d48aef0e27
roll packages (#121675)
Roll pub packages
2023-03-01 19:02:30 +00:00
Flutter GitHub Bot
2c3fa08253
roll packages (#121556)
Roll pub packages
2023-02-28 00:11:26 +00:00
Flutter GitHub Bot
5d36cb77fb
roll packages (#121358) 2023-02-23 20:20:25 +00:00
Lioness100
26b6c1bedd
Fix typos (#121171)
* Fix typos

* lowercase animated & opacity

* Undo typo fix

---------

Co-authored-by: Michael Goderbauer <goderbauer@google.com>
2023-02-23 19:43:21 +00:00
Flutter GitHub Bot
8080becadf
roll packages (#120951) 2023-02-23 19:21:53 +00:00
Michael Goderbauer
2b4c960885
Remove more references to dart:ui.window (#120994)
* Remove more references to dart:ui.window

* two more doc referenes

* revert icon_color_test.dart
2023-02-18 01:50:08 +00:00
Ian Hickson
6205c110d6
Remove "note that" in our documentation (as per style guide) (#120842)
* lerp documentation

* Remove Note, Note That from repo

* Improve BorderSide documentation.

* apply review comments
2023-02-17 22:27:33 +00:00
Flutter GitHub Bot
206c6ae992
roll packages (#120922) 2023-02-16 23:53:16 +00:00
Flutter GitHub Bot
b9b4d3e43e
roll packages (#120628) 2023-02-14 17:33:48 +00:00
Tomasz Gucio
98576cef58
Avoid null terminating characters in strings from Utf8FromUtf16() (#109729)
---------
Co-authored-by: schectman <schectman@google.com>
2023-02-13 19:22:37 +01:00
Flutter GitHub Bot
d63c54c9c2
roll packages (#120493) 2023-02-10 23:11:53 +00:00
Christopher Fujino
1089588863
un-pin package:intl (#119900) 2023-02-07 12:10:18 -08:00
Christopher Fujino
d820aec786
Manual pub roll with dwds fix (#119575)
* roll packages

* fix dwds

* empty

---------

Co-authored-by: fluttergithubbot <fluttergithubbot@gmail.com>
2023-02-02 21:38:08 +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
Andrew Kolos
fd76ef0f26
Reland "Add API for discovering assets" (#119277)
* add asset manifest bin loading and asset manifest api

* use new api for image resolution

* remove upfront smc data casting

* fix typecasting issue

* remove unused import

* fix tests

* lints

* lints

* fix import

* revert image resolution changes

* Update image_resolution_test.dart

* Update decode_and_parse_asset_manifest.dart

* make targetDevicePixelRatio optional

* Update packages/flutter/lib/src/services/asset_manifest.dart

Co-authored-by: Jonah Williams <jonahwilliams@google.com>

* Update packages/flutter/lib/src/services/asset_manifest.dart

Co-authored-by: Jonah Williams <jonahwilliams@google.com>

* fix immutable not being imported

* return List in AssetManifest methods, fix annotation import

* simplify onError callback

* make AssetManifest methods abstract instead of throwing UnimplementedError

* simplify AssetVariant.key docstring

* tweak _AssetManifestBin docstring

* make AssetManifest and AssetVariant doc strings more specific

* use List.of instead of List.from for type-safety

* adjust import

* change _AssetManifestBin comment from doc comment to normal comment

* revert to callback function for onError in loadStructuredBinaryData

* add more to the docstring of AssetManifest.listAssets and AssetVariant.key

* add tests for CachingAssetBundle caching behavior

* add simple test to ensure loadStructuredBinaryData correctly calls load

* Update asset_manifest.dart

* update docstring for AssetManifest.getAssetVariants

* rename getAssetVariants, have it include main asset

* rename isMainAsset field of AssetMetadata to main

* (slightly) shorten name of describeAssetAndVariants

* rename describeAssetVariants back to getAssetVariants

* add tests for TestAssetBundle

* nits

* fix typo in docstring

* remove no longer necessary non-null asserts

* update gallery and google_fonts versions

---------

Co-authored-by: Jonah Williams <jonahwilliams@google.com>
2023-02-02 15:17:15 +00:00
Michael Goderbauer
6a5405925d
Make MultiChildRenderObjectWidget const (#119195) 2023-01-31 11:13:59 -08:00
Flutter GitHub Bot
b68cebd9ce
roll packages (#119530) 2023-01-30 18:46:35 +00:00
Flutter GitHub Bot
df8ad3d2cb
roll packages (#119370) 2023-01-30 17:34:10 +00:00
Michael Goderbauer
2e8bebd178
Remove single window assumption from macrobenchmark (#119368) 2023-01-27 20:42:42 +00:00
Danny Tuppeny
0b57596712
Run "flutter update-packages --force-upgrade" (#119340) 2023-01-27 17:20:18 +00:00
Christopher Fujino
a04ab7129b
Revert "Add API for discovering assets (#118410)" (#119273)
This reverts commit 2b8f2d0504.
2023-01-26 20:01:12 +00:00
Andrew Kolos
2b8f2d0504
Add API for discovering assets (#118410)
* add asset manifest bin loading and asset manifest api

* use new api for image resolution

* remove upfront smc data casting

* fix typecasting issue

* remove unused import

* fix tests

* lints

* lints

* fix import

* revert image resolution changes

* Update image_resolution_test.dart

* Update decode_and_parse_asset_manifest.dart

* make targetDevicePixelRatio optional

* Update packages/flutter/lib/src/services/asset_manifest.dart

Co-authored-by: Jonah Williams <jonahwilliams@google.com>

* Update packages/flutter/lib/src/services/asset_manifest.dart

Co-authored-by: Jonah Williams <jonahwilliams@google.com>

* fix immutable not being imported

* return List in AssetManifest methods, fix annotation import

* simplify onError callback

* make AssetManifest methods abstract instead of throwing UnimplementedError

* simplify AssetVariant.key docstring

* tweak _AssetManifestBin docstring

* make AssetManifest and AssetVariant doc strings more specific

* use List.of instead of List.from for type-safety

* adjust import

* change _AssetManifestBin comment from doc comment to normal comment

* revert to callback function for onError in loadStructuredBinaryData

* add more to the docstring of AssetManifest.listAssets and AssetVariant.key

* add tests for CachingAssetBundle caching behavior

* add simple test to ensure loadStructuredBinaryData correctly calls load

* Update asset_manifest.dart

* update docstring for AssetManifest.getAssetVariants

* rename getAssetVariants, have it include main asset

* rename isMainAsset field of AssetMetadata to main

* (slightly) shorten name of describeAssetAndVariants

* rename describeAssetVariants back to getAssetVariants

* add tests for TestAssetBundle

* nits

* fix typo in docstring

* remove no longer necessary non-null asserts

Co-authored-by: Jonah Williams <jonahwilliams@google.com>
2023-01-26 19:05:00 +00:00
Todd Volkert
b319938ecd
Add more flexible image API (#118966)
This updates the framework to provide higher level wrappers around ui.instantiateImageCodecWithSize(). Functionally, this doesn't change anything (other than deprecating the older loadBuffer() method in favor of loadImage()), but it sets the stage for a simpler change that will allow us to provide a more flexible way to load sized images.

#118543
2023-01-25 21:21:28 -08:00
Flutter GitHub Bot
9037e3fe26
roll packages (#119192) 2023-01-25 23:53:42 +00:00
Christopher Fujino
64b4c69bcc
roll pub deps and remove archive, crypto, typed_data from allow-list (#119018)
* roll pub deps and remove archive, crypto, typed_data from allow-list

* un-comment code
2023-01-24 01:55:06 +00:00
Michael Goderbauer
54217bd4b1
Remove unnecessary null checks in dev/benchmarks (#118840)
* Remove unnecessary null checks in dev/benchmarks

* empty
2023-01-20 04:04:11 +00:00
Mitchell Goodwin
ea36b3a5a7
Add focus detector to CupertinoSwitch (#118345)
* Add focus detector to CupertinoSwitch

* Add comment

* Remove whitespace

* Add focusColor constructor to CupertinoSwitch

* Remove whitespace

* Add color type

* Remove gap in border

* Adjust color and line thickness
2023-01-19 18:30:06 +00:00
Danny Tuppeny
06909ccfa4
Update packages + fix tests for javascript mime change (#118617)
Update test expectations from application/javascript -> text/javascript

`package:mime` now uses `text/javascript` and not `application/javascript`.

See https://github.com/dart-lang/mime/pull/76.
See https://datatracker.ietf.org/doc/html/rfc9239.

> This document defines equivalent processing requirements for the various script media types. The most widely supported media type in use is `text/javascript`; all others are considered historical and obsolete aliases of `text/javascript`.
2023-01-19 09:54:40 -05:00
Alex Wallen
d53cc4a10f
[macOS] New e2e_summary benchmark fails without Cocoapods. (#118754)
* Add gems as a dep - fails without

* Add missing entitlements to run app on macos

Co-authored-by: a-wallen <stephenwallen@google.com>
2023-01-19 08:04:22 +00:00
Victoria Ashworth
b4d72752bd
Add Info.plist from build directory as input path to Thin Binary build phase (#118209)
* Add Info.plist from build directory as input path to Thin Binary build phase

* fix directive ordering

* migrate benchmark, integration, and example tests
2023-01-13 13:41:08 -06:00
Andrew Kolos
5630d531b1
[tool] Generate a binary version of the asset manifest (#117233)
* initial

* update asset_bundle_package_test

* Update asset_bundle_test.dart

* Update asset_bundle_package_fonts_test.dart

* update pubspec checksum for smc dependency

* flutter update-packages --force-upgrade

* prefer += 1 over ++

Co-authored-by: Jonah Williams <jonahwilliams@google.com>

* add regexp comment

* rescope int list comparison function

* update packages

Co-authored-by: Jonah Williams <jonahwilliams@google.com>
2023-01-12 19:33:30 +00:00
Flutter GitHub Bot
341ae18f6e
roll packages (#118001) 2023-01-04 22:49:16 +00:00
Michael Goderbauer
fdd2d7d64a
Sync analysis_options.yaml & cleanups (#117327) 2022-12-20 14:15:39 -08:00
Michael Goderbauer
81bc54be75
Enable use_colored_box lint (#117370) 2022-12-20 14:09:55 -08:00
Flutter GitHub Bot
4591f057fb
roll packages (#117357) 2022-12-20 22:04:23 +00:00