## 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.
Automatic CI testing runs on monorepo bots that tests the heads
of the Dart SDK, Flutter engine, and Flutter framework together.
These tests previously ran on bots called HHH (triple-headed),
and the logic for detecting this used the machine name of the test machine.
Extend that detection logic to cover the test machine hostnames that
run monorepo testing, that start with either 'dart-tests-' or 'luci-dart-'.
None of the machines used to run Flutter release builds have names
like this, even though they are in an internal Dart luci project.
Bug: b/231927187
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.
In preparation for the merge of flutter/plugins into flutter/packaegs,
update the cross-repo analysis to flutter/packages rather than
flutter/plugins.
The flutter_plugins.version file is left intentionally for now to avoid
issues with the roller; it will be removed when the roller has been
updated to roll the other repository.
Fixes#117659
It turns out this was due to the output-suppression timer introduced
recently as part of cleaning up the output (#109206); on success, the
script would wait 10 minutes for the timeout to expire. This didn't
affect CI because this feature doesn't apply in CI (as detected by
lack of color on stdout.)
Fix the issue by cleaning up the timer on success in the same way
as on failure.
While here, clean up the final summary messages slightly,
and also cut the trailing space that printProgress was leaving
on each line.
* Fix screenshot testing for flutter web integration_test
* update packages
* fix method signature and todo
* Run tests on CI
* fix type
* remove silences
* Add docs
* fix comment
* fix whitespace
* review comments
* cacheWidth cacheHeight support for web canvaskit
* comments
* clarifying comment for loadTestImageProvider class
Co-authored-by: alanwutang11 <alpwu@google.com>
* isCanvasKit implement and test
* isCanvasKit implement and test
* ++
* forgot license
* make isCanvasKit a getter
* addressed comments
* forgot to change names of integration test files
* typo
* simplified tests
* comments