Skip to content

Commit

Permalink
Squash of flutter-preview-device-3 branch:
Browse files Browse the repository at this point in the history
preview preview

++

++

++

++

++

rename artifact

fix compilation

remove test diff

restore changes to examples

get flutter build _preview working

hack prepare_package.dart

wip

fix test

fix another test

migrate more

fix another test

fix more

fix more

fix another test

fix test

fix another test

fix last test

add test

wip

get compiling

fix build_preview.dart path

get build preview and run -d preview to use artifact

cleanup todos and a test

fix unit test

cleanup

restore usptream prepare_package.dart

fix test

fix commands/build_test

fix hermetic/build_linux_test.dart

fix hermetic/build_macos_test

fix hermetic/build_test.dart

fix test

fix hermetic/build_ipa_test.dart

fix build_ios_test.dart

add more tests

fix build_ios_test

cleanup some todos, do not require pubspec.yaml in working dir

fix test

Convert relative to absolute import. (#135337)

Requested here: https://github.com/flutter/flutter/pull/133952#discussion_r1334860858

Move some tests from staging to prod (#135333)

This PR moves tests running on Pixel 7 Pro that use Skia from staging to prod.

[iOS,macOS] Clean up obsolete PlatformView warning (#135040)

PlatformViews have been supported without a custom engine build on iOS
for quite some time now, and are nearing support for macOS. Adds a link
to the website documentation covering creation of PlatformViews for iOS
and adds a TODO to do the same once the macOS PlatformView documentation
is ready.

Related: https://github.com/flutter/website/issues/9424

Roll Flutter Engine from e4bfdc1a67de to 564480337eae (4 revisions) (#135341)

https://github.com/flutter/engine/compare/e4bfdc1a67de...564480337eae

2023-09-22 [email protected] Roll Fuchsia Mac SDK from ZyajVWocCHVIuJkzM... to M9rDyhmn7VY4iTxzQ... (flutter/engine#46215)
2023-09-22 [email protected] Roll Dart SDK from 4ddff752a6b0 to 692273b46610 (1 revision) (flutter/engine#46212)
2023-09-22 [email protected] Roll Skia from 78fced84372d to e9358f92110c (4 revisions) (flutter/engine#46211)
2023-09-22 [email protected] [Impeller] Incorporate backdrop filters in subpass coverage. (flutter/engine#46130)

Also rolling transitive DEPS:
  fuchsia/sdk/core/mac-amd64 from ZyajVWocCHVI to M9rDyhmn7VY4

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Roll Flutter Engine from 564480337eae to 614859053262 (7 revisions) (#135362)

https://github.com/flutter/engine/compare/564480337eae...614859053262

2023-09-23 [email protected] Roll Fuchsia Mac SDK from M9rDyhmn7VY4iTxzQ... to de4D1aoqF6LBk18Rd... (flutter/engine#46229)
2023-09-23 [email protected] [ios] Fix default assets url (flutter/engine#46214)
2023-09-23 [email protected] Roll Skia from 15ccdeaba011 to 983f42f4c76b (1 revision) (flutter/engine#46223)
2023-09-23 [email protected] Revert "[Impeller] fail if software backend is chosen and Impeller is enabled on iOS" (flutter/engine#46217)
2023-09-23 [email protected] Roll Fuchsia Linux SDK from QcxgV9KlY7j3o3b4j... to PCEkaltiQ-iEKlmEj... (flutter/engine#46221)
2023-09-22 [email protected] [Impeller] dont treat non-rects as rects. (flutter/engine#46218)
2023-09-22 [email protected] Roll Skia from e9358f92110c to 15ccdeaba011 (1 revision) (flutter/engine#46216)

Also rolling transitive DEPS:
  fuchsia/sdk/core/linux-amd64 from QcxgV9KlY7j3 to PCEkaltiQ-iE
  fuchsia/sdk/core/mac-amd64 from M9rDyhmn7VY4 to de4D1aoqF6LB

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Roll Flutter Engine from 614859053262 to ee27600dfbe2 (1 revision) (#135364)

https://github.com/flutter/engine/compare/614859053262...ee27600dfbe2

2023-09-23 [email protected] Roll Fuchsia Linux SDK from PCEkaltiQ-iEKlmEj... to M-fNM9YP2Lpc8Y_Dj... (flutter/engine#46231)

Also rolling transitive DEPS:
  fuchsia/sdk/core/linux-amd64 from PCEkaltiQ-iE to M-fNM9YP2Lpc

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Marks Linux_android opacity_peephole_grid_of_alpha_savelayers_perf__e2e_summary to be flaky (#135119)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Linux_android opacity_peephole_grid_of_alpha_savelayers_perf__e2e_summary"
}
-->
Issue link: https://github.com/flutter/flutter/issues/135118

Marks Linux_android flutter_gallery__start_up_delayed to be flaky (#134632)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Linux_android flutter_gallery__start_up_delayed"
}
-->
Issue link: https://github.com/flutter/flutter/issues/134631

Marks Linux_android platform_channels_benchmarks to be flaky (#135106)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Linux_android platform_channels_benchmarks"
}
-->
Issue link: https://github.com/flutter/flutter/issues/135105

Marks Mac_ios static_path_tessellation_perf_ios__timeline_summary to be unflaky (#133127)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Mac_ios static_path_tessellation_perf_ios__timeline_summary"
}
-->
The test has been passing for [50 consecutive runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Mac_ios%20static_path_tessellation_perf_ios__timeline_summary%22).
This test can be marked as unflaky.

Marks Mac_ios animated_advanced_blend_perf_ios__timeline_summary to be unflaky (#132630)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Mac_ios animated_advanced_blend_perf_ios__timeline_summary"
}
-->
The test has been passing for [50 consecutive runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Mac_ios%20animated_advanced_blend_perf_ios__timeline_summary%22).
This test can be marked as unflaky.

Marks Mac_ios very_long_picture_scrolling_perf_ios__e2e_summary to be unflaky (#134629)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Mac_ios very_long_picture_scrolling_perf_ios__e2e_summary"
}
-->
The test has been passing for [50 consecutive runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Mac_ios%20very_long_picture_scrolling_perf_ios__e2e_summary%22).
This test can be marked as unflaky.

Roll Flutter Engine from ee27600dfbe2 to 2daf5e7bb249 (1 revision) (#135371)

https://github.com/flutter/engine/compare/ee27600dfbe2...2daf5e7bb249

2023-09-24 [email protected] Roll Fuchsia Mac SDK from de4D1aoqF6LBk18Rd... to W1uZC0_FbXyoCmwJ1... (flutter/engine#46238)

Also rolling transitive DEPS:
  fuchsia/sdk/core/mac-amd64 from de4D1aoqF6LB to W1uZC0_FbXyo

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Marks Linux_pixel_7pro picture_cache_perf__timeline_summary to be unflaky (#134118)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Linux_pixel_7pro picture_cache_perf__timeline_summary"
}
-->
The test has been passing for [50 consecutive runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Linux_pixel_7pro%20picture_cache_perf__timeline_summary%22).
This test can be marked as unflaky.

Marks Mac_ios draw_points_perf_ios__timeline_summary to be unflaky (#127933)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Mac_ios draw_points_perf_ios__timeline_summary"
}
-->
The test has been passing for [50 consecutive runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Mac_ios%20draw_points_perf_ios__timeline_summary%22).
This test can be marked as unflaky.

Marks Mac_ios dynamic_path_tessellation_perf_ios__timeline_summary to be unflaky (#133128)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Mac_ios dynamic_path_tessellation_perf_ios__timeline_summary"
}
-->
The test has been passing for [50 consecutive runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Mac_ios%20dynamic_path_tessellation_perf_ios__timeline_summary%22).
This test can be marked as unflaky.

Marks Windows module_test to be unflaky (#134121)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Windows module_test"
}
-->
The issue https://github.com/flutter/flutter/issues/133639 has been closed, and the test has been passing for [50 consecutive runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Windows%20module_test%22).
This test can be marked as unflaky.

Marks Mac_ios draw_vertices_perf_ios__timeline_summary to be unflaky (#134625)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Mac_ios draw_vertices_perf_ios__timeline_summary"
}
-->
The test has been passing for [50 consecutive runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Mac_ios%20draw_vertices_perf_ios__timeline_summary%22).
This test can be marked as unflaky.

Marks Mac_ios draw_atlas_perf_ios__timeline_summary to be unflaky (#134626)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Mac_ios draw_atlas_perf_ios__timeline_summary"
}
-->
The test has been passing for [50 consecutive runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Mac_ios%20draw_atlas_perf_ios__timeline_summary%22).
This test can be marked as unflaky.

Marks Windows_android channels_integration_test_win to be unflaky (#135374)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Windows_android channels_integration_test_win"
}
-->
The issue https://github.com/flutter/flutter/issues/134636 has been closed, and the test has been passing for [50 consecutive runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Windows_android%20channels_integration_test_win%22).
This test can be marked as unflaky.

Marks Linux_pixel_7pro hello_world_impeller to be unflaky (#135372)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Linux_pixel_7pro hello_world_impeller"
}
-->
The test has been passing for [50 consecutive runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Linux_pixel_7pro%20hello_world_impeller%22).
This test can be marked as unflaky.

Fix failing test at master. (#135394)

Marks Linux_samsung_a02 new_gallery__transition_perf to be unflaky (#135373)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Linux_samsung_a02 new_gallery__transition_perf"
}
-->
The test has been passing for [50 consecutive runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Linux_samsung_a02%20new_gallery__transition_perf%22).
This test can be marked as unflaky.

Revert "Marks Linux_samsung_a02 new_gallery__transition_perf to be unflaky" (#135399)

Reverts flutter/flutter#135373

Add a basic golden test for `CupertinoTextSelectionToolbar` (#135267)

Goden tests are easier to understand than `paints..` since the toolbar has a relatively complex path, and this should make PRs that make visual changes easier to review.

The current goldens don't look correct since I messed up the y offset of the tip of the arrow when the arrow is pointing up. Should be fixed in https://github.com/flutter/flutter/pull/133386

Roll Flutter Engine from 2daf5e7bb249 to 3ea1174ecfaa (4 revisions) (#135396)

https://github.com/flutter/engine/compare/2daf5e7bb249...3ea1174ecfaa

2023-09-25 [email protected] In run_tests.py, separate Dart package unit tests from other tests (flutter/engine#46232)
2023-09-24 [email protected] Roll Fuchsia Linux SDK from SqWjDvrDsMfiisUoA... to VKAiabs4VzJ1Py-oA... (flutter/engine#46241)
2023-09-24 [email protected] Roll Fuchsia Mac SDK from W1uZC0_FbXyoCmwJ1... to 0Jl20zAW45rRsTNEu... (flutter/engine#46240)
2023-09-24 [email protected] Roll Fuchsia Linux SDK from M-fNM9YP2Lpc8Y_Dj... to SqWjDvrDsMfiisUoA... (flutter/engine#46239)

Also rolling transitive DEPS:
  fuchsia/sdk/core/linux-amd64 from M-fNM9YP2Lpc to VKAiabs4VzJ1
  fuchsia/sdk/core/mac-amd64 from W1uZC0_FbXyo to 0Jl20zAW45rR

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Roll Flutter Engine from 3ea1174ecfaa to e1c1022c2d6d (2 revisions) (#135403)

https://github.com/flutter/engine/compare/3ea1174ecfaa...e1c1022c2d6d

2023-09-25 [email protected] Roll Skia from 983f42f4c76b to b8bc0c080aa8 (1 revision) (flutter/engine#46247)
2023-09-25 [email protected] Roll Fuchsia Mac SDK from 0Jl20zAW45rRsTNEu... to SNqQGAfjWL3PbUABh... (flutter/engine#46246)

Also rolling transitive DEPS:
  fuchsia/sdk/core/mac-amd64 from 0Jl20zAW45rR to SNqQGAfjWL3P

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Roll Flutter Engine from e1c1022c2d6d to e6d3bac5c723 (2 revisions) (#135410)

https://github.com/flutter/engine/compare/e1c1022c2d6d...e6d3bac5c723

2023-09-25 [email protected] Roll Fuchsia Linux SDK from VKAiabs4VzJ1Py-oA... to uY9WEf2tJxa1Hpp4v... (flutter/engine#46252)
2023-09-25 [email protected] Roll Skia from b8bc0c080aa8 to 31ceb1669d1c (1 revision) (flutter/engine#46249)

Also rolling transitive DEPS:
  fuchsia/sdk/core/linux-amd64 from VKAiabs4VzJ1 to uY9WEf2tJxa1

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Revert "Marks Linux_pixel_7pro hello_world_impeller to be unflaky" (#135388)

Reverts flutter/flutter#135372

Roll Flutter Engine from e6d3bac5c723 to 2c4c1108aa87 (1 revision) (#135424)

https://github.com/flutter/engine/compare/e6d3bac5c723...2c4c1108aa87

2023-09-25 49699333+dependabot[bot]@users.noreply.github.com Bump archive from 3.3.9 to 3.4.2 in /lib/web_ui (flutter/engine#46253)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Roll Packages from 98ebcd3d9c05 to e548ae1d2045 (5 revisions) (#135431)

https://github.com/flutter/packages/compare/98ebcd3d9c05...e548ae1d2045

2023-09-23 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 2.21.7 to 2.21.8 (flutter/packages#4952)
2023-09-23 [email protected] Manual roll Flutter from 893650416352 to f92884c7b846 (48 revisions) (flutter/packages#4985)
2023-09-22 [email protected] [image_picker_android] check if data from result is empty when picking a single img or video (flutter/packages#4836)
2023-09-22 [email protected] [camera_android] Removes usage of `_ambiguate` method in tests (flutter/packages#4948)
2023-09-22 49699333+dependabot[bot]@users.noreply.github.com [sign_in]: Bump com.google.android.gms:play-services-auth from 20.6.0 to 20.7.0 in /packages/google_sign_in/google_sign_in_android/android (flutter/packages#4841)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Roll Flutter Engine from 2c4c1108aa87 to 1ae3d20332f0 (4 revisions) (#135438)

https://github.com/flutter/engine/compare/2c4c1108aa87...1ae3d20332f0

2023-09-25 [email protected] Switch goma to reclient for Linux host engine targets (flutter/engine#45884)
2023-09-25 [email protected] Roll Skia from 7a49397a02b4 to e16a9b5b2c48 (1 revision) (flutter/engine#46258)
2023-09-25 [email protected] Roll Skia from 569a30fbdbdf to 7a49397a02b4 (2 revisions) (flutter/engine#46257)
2023-09-25 [email protected] Roll Skia from 31ceb1669d1c to 569a30fbdbdf (1 revision) (flutter/engine#46256)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

simulatedAccessibilityTraversal account for force merging (#135178)

fixes https://github.com/flutter/flutter/issues/135144

[Velocity Tracker] Fix: Issue 97761: Flutter Scrolling does not match iOS; inadvertent scrolling when user lifts up finger (#132291)

**Issue:** https://github.com/flutter/flutter/issues/97761

https://github.com/flutter/flutter/assets/1863934/53c5e0df-b85a-483c-a17d-bddd18db3aa9

The bug is very simple to understand - `velocity_tracker.dart` **only adds new samples while your finger is moving**.

**Therefore**, if you move your finger quickly & (important) stop suddenly with no extra movement, the last 3 samples will all be > 0 dy. Regardless of how long you wait, you will get movement when you lift up your finger.

**Logs from velocity_tracker.dart:**
Notice: all 3 `_previousVelocityAt` are `dy > 0` despite a 2 second delay since the last scroll
```
// start moving finger
flutter: addPosition dy:-464.0
flutter: addPosition dy:-465.0
flutter: addPosition dy:-466.0
flutter: addPosition dy:-467.0
flutter: addPosition dy:-468.0
flutter: addPosition dy:-469.0
flutter: addPosition dy:-470.0
// stop moving finger here, keep it still for 2 seconds & lift it up
flutter: _previousVelocityAt(-2) samples(-467.0, -468.0)) dy:-176.772140710624
flutter: _previousVelocityAt(-1) samples(-468.0, -469.0)) dy:-375.0937734433609
flutter: _previousVelocityAt(0) samples(-469.0, -470.0)) dy:-175.71604287471447
flutter: primaryVelocity DragEndDetails(Velocity(0.0, -305.5)).primaryVelocity
flutter: createBallisticSimulation pixels 464.16666666666663 velocity 305.4699824197211
```

**There are 3 options to fix it:**
A. sample uniformly *per unit time* (a larger more risky change, hurts battery life)
B. consider elapsed time since the last sample. If greater than X, assume no more velocity. (easy & just as valid)
C. similar to B, but instead add "ghost samples" of velocity zero, and run calculations as normal (a bit tricker, of dubious benefit imo)

**For Option B I considered two approaches:**
1. _get the current timestamp and compare to event timestamp._  This is tricky because events are documented to use an arbitrary timescale & I wasn't able to find the code that generates the timestamps. This approach could be considered more.
2. _get a new timestamp using Stopwatch and compare now vs when the last sample was added._ This is the solution implemented here.  There is a limitation in that we don't know when addSamples is called relative to the event. But, this estimation is already on a very low latency path & still it gives us a *minimum* time bound which is sufficient for comparison.

**This PR chooses the simplest of the all solutions. Please try it our yourself, it completely solves the problem �** Option _B.1_ would be a nice alternative as well, if we can define and access the same timesource as the pointer tracker in a maintainable simple way.

https://github.com/flutter/flutter/assets/1863934/be50d8e7-d5da-495a-a4af-c71bc541cbe3

Fix and Test Conditional Validator Behavior in FormField (#132714)

In the FormField widget, if a validator is initially set (and validation fails), then subsequently the validator is set to null, the form incorrectly retains its error state. This is not expected behavior as removing the validator should clear any validation errors.

[macOS,iOS] Improve CocoaPods upgrade instructions (#135453)

In our CocoaPods doctor check, if the version of CocoaPods is found to
be too low, rather than emitting a link to the install instructions,
emit a link to the upgrade instructions.

Since this check operates on CocoaPodsStatus, an enum, swtich to using a
case statement and cover all cases.

- [X] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [X] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [X] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [X] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [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

Roll Flutter Engine from 1ae3d20332f0 to 3f606570ac7c (6 revisions) (#135457)

https://github.com/flutter/engine/compare/1ae3d20332f0...3f606570ac7c

2023-09-25 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Switch goma to reclient for Linux clang_tidy targets" (flutter/engine#46267)
2023-09-25 [email protected] Add description to assert in `history.dart` (flutter/engine#46072)
2023-09-25 [email protected] Switch goma to reclient for Linux clang_tidy targets (flutter/engine#45898)
2023-09-25 [email protected] Roll Skia from e16a9b5b2c48 to a19a325cd670 (6 revisions) (flutter/engine#46261)
2023-09-25 [email protected] Roll Dart SDK from 692273b46610 to 216b25f9ea6f (6 revisions) (flutter/engine#46260)
2023-09-25 [email protected] Switch goma to reclient for Linux fuchsia/unopt/android_aot (flutter/engine#45899)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Roll Flutter Engine from 3f606570ac7c to 6bf8067392cf (8 revisions) (#135472)

https://github.com/flutter/engine/compare/3f606570ac7c...6bf8067392cf

2023-09-25 [email protected] Restore goma from rbe before 3.16 branching (flutter/engine#46272)
2023-09-25 [email protected] Add package:tar to DEPS to fix broken 3H configurations (flutter/engine#46273)
2023-09-25 [email protected] Roll Fuchsia Mac SDK from SNqQGAfjWL3PbUABh... to we5owZaebdO_3kyjz... (flutter/engine#46270)
2023-09-25 [email protected] Roll Skia from a19a325cd670 to 00e4d00021a7 (6 revisions) (flutter/engine#46269)
2023-09-25 [email protected] [Impeller] fallback to position data if texture coordinates are undefined. (flutter/engine#46264)
2023-09-25 [email protected] fuchsia: Update FIDL for unknown interactions (flutter/engine#45773)
2023-09-25 [email protected] [Engine] use QoS classes in iOS engine. (flutter/engine#46265)
2023-09-25 [email protected] Revert "Switch goma to reclient for Linux clang_tidy targets (#45898)" (flutter/engine#46266)

Also rolling transitive DEPS:
  fuchsia/sdk/core/mac-amd64 from SNqQGAfjWL3P to we5owZaebdO_

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Add "Frame Request Pending" lag to collected metrics (#135279)

This measures the wall clock time between a new frame being scheduled in dart code to the Vsync callback in the engine

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

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

Part of #129150

Roll Flutter Engine from 6bf8067392cf to 75950dc280d5 (4 revisions) (#135480)

https://github.com/flutter/engine/compare/6bf8067392cf...75950dc280d5

2023-09-26 [email protected] Roll Dart SDK from 216b25f9ea6f to 7c749713c688 (1 revision) (flutter/engine#46284)
2023-09-25 [email protected] [Impeller] Support applying color filters on the CPU for the RRect fast path. (flutter/engine#46281)
2023-09-25 [email protected] Roll Skia from 00e4d00021a7 to b961fc353715 (6 revisions) (flutter/engine#46280)
2023-09-25 [email protected] [Impeller] Dont blow away coverage hint on advanced blends. (flutter/engine#46219)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Roll Flutter Engine from 75950dc280d5 to 230dfeed79ed (3 revisions) (#135489)

https://github.com/flutter/engine/compare/75950dc280d5...230dfeed79ed

2023-09-26 [email protected] Roll Dart SDK from 7c749713c688 to 7c3588c05f87 (1 revision) (flutter/engine#46288)
2023-09-26 [email protected] Prepare fuchsia script to coexist with v1 and v2 of fuchsia builders. (flutter/engine#46126)
2023-09-26 [email protected] Roll Fuchsia Linux SDK from uY9WEf2tJxa1Hpp4v... to a56c8yPp4DDlj_Qbl... (flutter/engine#46285)

Also rolling transitive DEPS:
  fuchsia/sdk/core/linux-amd64 from uY9WEf2tJxa1 to a56c8yPp4DDl

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Roll Flutter Engine from 230dfeed79ed to 7b989a28514e (2 revisions) (#135494)

https://github.com/flutter/engine/compare/230dfeed79ed...7b989a28514e

2023-09-26 [email protected] Roll Skia from b961fc353715 to 8264a73430de (1 revision) (flutter/engine#46289)
2023-09-26 49699333+dependabot[bot]@users.noreply.github.com Bump actions/checkout from 4.0.0 to 4.1.0 (flutter/engine#46290)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Roll Packages from e548ae1d2045 to 619af75f7966 (4 revisions) (#135505)

https://github.com/flutter/packages/compare/e548ae1d2045...619af75f7966

2023-09-25 [email protected] [go_router] Fixes the Android back button ignores top level route's oâ�¦ (flutter/packages#4984)
2023-09-25 49699333+dependabot[bot]@users.noreply.github.com Bump actions/checkout from 4.0.0 to 4.1.0 (flutter/packages#4988)
2023-09-25 [email protected] [camera_android] Set buildconfig to true for compatibility with AGP 8.0+ (flutter/packages#4951)
2023-09-25 [email protected] [various] Remove obsolete symlinks (flutter/packages#4993)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Wait for CONFIGURATION_BUILD_DIR to update when debugging with Xcode (#135444)

So there appears to be a race situation between the flutter CLI and Xcode. In the CLI, we update the `CONFIGURATION_BUILD_DIR` in the Xcode build settings and then tell Xcode to install, launch, and debug the app. When Xcode installs the app, it should use the `CONFIGURATION_BUILD_DIR` to find the bundle. However, it appears that sometimes Xcode hasn't processed the change to the build settings before the install happens, which causes it to not be able to find the bundle.

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

---

Since it's a timing issue, there's not really a consistent way to test it.

I was able to confirm that it works, though, by using the following steps:
1. Create a flutter project
2. Open the project in Xcode
3. `flutter clean`
4. `flutter run --profile -v`

If I saw a print line `stderr: CONFIGURATION_BUILD_DIR: build/Debug-iphoneos`, that means it first found the old and incorrect `CONFIGURATION_BUILD_DIR` before updating to the the new, so I was able to confirm that it would wait until it updated.

[Windows] Add more Arm64 compile and run tests (#135475)

Part of: https://github.com/flutter/flutter/issues/129806

Test runs kicked off using `led`:
* Compile tests
    * � [flutter_gallery_win_desktop__compile](https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/loicsharma_google.com/a23b73ca25cc56309a725c77be0107aaa1f2d09b1f41f1cc04276b85fac34366/+/build.proto?server=chromium-swarm.appspot.com&fbclid=IwAR2Yv8iS9YbTxMZKS2i5zmAz9E8FCNjW6waLq4e8HwtaFtMlapl66UHf73w)
* Start up tests
    * � [windows_startup_test](https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/loicsharma_google.com/e615b28993c8b4fcb90e2d52226f9e4d9478850bee67f1f19a88d37e767dcfc2/+/build.proto?server=chromium-swarm.appspot.com&fbclid=IwAR1YtPTpAr6FRq71fy392orp6PO8t9jN8n-mpWvlDF0xRnnOsq3zsAPabWg)
    * � [flutter_gallery_win_desktop__start_up](https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/loicsharma_google.com/a0148122f81f3eee512ba8e59adcfcff86195eac10dc9a95969b36ae63e0d3e0/+/build.proto?server=chromium-swarm.appspot.com&fbclid=IwAR29O3jW-LyaVAwD54jUmnhfZ2mswqtaZascRoGvteT5gaHihxKI4IastgM)
    * � [flutter_view_win_desktop__start_up](https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/loicsharma_google.com/6dac552365a2d5502aeda81563f4e62f7bdb73f383d98ed8d8ae52c62e00edea/+/build.proto?server=chromium-swarm.appspot.com&fbclid=IwAR2_irHDuoZ0V-PSjYDW082yx8ZeDVhOIk0yjQBAZNVa5iKVIGAWZs8v4lo)
    * � [platform_view_win_desktop__start_up](https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/loicsharma_google.com/e6522c77bcbecabdd1f6d38f3b4e1ea41055d8ae7d61f92b741cc953b94d2e15/+/build.proto?server=chromium-swarm.appspot.com&fbclid=IwAR2X7KJDGjQUWJtpq7KY-nUFK-LA6LvmrAinzj0QuF8pEbpwfsAz6Kv3OkM)
    * � [complex_layout_win_desktop__start_up](https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/loicsharma_google.com/a811334185bc077a5cb69e46fc109ee3e679df6a924ee28d3c73f8b18717fa31/+/build.proto?server=chromium-swarm.appspot.com&fbclid=IwAR0gIiXFMnB_MSaqUxVyTpgpJqc37xSKqOzEsf2oD_oU-AhKPqrGQ-ZD7IY)
* `flutter run` console output tests
    * � [run_debug_test_windows](https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/loicsharma_google.com/1b275a8b161c965c44c09565a5a9784e322cded973b52dc24645496f43aead5a/+/build.proto?server=chromium-swarm.appspot.com&fbclid=IwAR1IlBr0824cq9UKi46j_11eto6HTEQ9KVXF5Is1ZxcSIO7G6IlN-slsyI8)
    * � [run_release_test_windows](https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/loicsharma_google.com/5b259bb5e2c07666fa12f053c3f5bd782bf074563a9afeeea231fa48bd33daa2/+/build.proto?server=chromium-swarm.appspot.com&fbclid=IwAR3DSHzCGL-KN26E-7hQL58qxV2p0Dtb9hE4AZ0HvEY4hp8mCMzX9jznsFQ)

/cc @pbo-linaro

Roll Flutter Engine from 7b989a28514e to acdb364a42d5 (2 revisions) (#135516)

https://github.com/flutter/engine/compare/7b989a28514e...acdb364a42d5

2023-09-26 [email protected] Roll Fuchsia Mac SDK from we5owZaebdO_3kyjz... to OMrTgAfDg9PKXTzq0... (flutter/engine#46294)
2023-09-26 [email protected] Roll Skia from 8264a73430de to dd6a4e3655fc (2 revisions) (flutter/engine#46291)

Also rolling transitive DEPS:
  fuchsia/sdk/core/mac-amd64 from we5owZaebdO_ to OMrTgAfDg9PK

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Switch flutter_tools to run frontend server from AOT snapshot (#135255)

Co-authored-by: Christopher Fujino <[email protected]>

SelectionArea long press selection overlay behavior should match native (#133967)

During a long press, on native iOS the context menu does not show until the long press has ended. The handles are shown immediately when the long press begins. This is true for static and editable text.

For static text on Android, the context menu appears when the long press is initiated, but the handles do not appear until the long press has ended. For editable text on Android, the context menu does not appear until the long press ended, and the handles also do not appear until the end.

For both platforms in editable/static contexts the context menu does not show while doing a long press drag.

I think the behavior where the context menu is not shown until the long press ends makes the most sense even though Android varies in this depending on the context. The user is not able to react to the context menu until the long press has ended.

Other details:
On a windows touch screen device the context menu does not show up until the long press ends in editable/static text contexts. On a long press hold it selects the word on drag start as well as popping up the selection handles (static text).

Allow multiple ParentDataWidgets to write to ParentData (#133581)

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

This allows more than one ParentDataWidget to write to the ParentData of a child render object. Previously only one was allowed. There are some rules though:
1. Only one of a given type of `ParentDataWidget` can write to the `ParentData` of a given child.
  a. For example, 2 `Positioned` widgets wrapping a child of a `Stack` would not be allowed, as only one of type `Positioned` can contribute data.

2. The type of `ParentData` **must** be compatible with all of the `ParentDataWidget`s that want to contribute data.
  a. For example, `TwoDimensionalViewportParentData` mixes in the `KeepAliveParentDataMixin`. So the `ParentData` of a given child would be compatible with the `KeepAlive` `ParentDataWidget`, as well as another `ParentDataWidget` that writes `TwoDimensionalViewportParentData` (or a subclass of `TwoDimensionalViewportParentData` - This was the motivation for this change, where a `ParentDataWidget` is being used in `TableView` with the parent data type being a subclass of `TwoDimensionalViewportParentData`.)

[flutter_tools] fix tests with no native assets running native asset build (#135474)

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

[documentation] remove repeated "For example," in RenderSliverEdgeInsetsPadding documentation (#135297)

There was a repeated "For example," in the documentation of `RenderSliverEdgeInsetsPadding`. This PR fix this.

Revert "Switch flutter_tools to run frontend server from AOT snapshot" (#135537)

Reverts flutter/flutter#135255

This broke Google Testing, and requires an internal patch before relanding.

Roll Flutter Engine from acdb364a42d5 to 0a8ad236e4af (5 revisions) (#135527)

https://github.com/flutter/engine/compare/acdb364a42d5...0a8ad236e4af

2023-09-26 [email protected] [canvaskit] Use DirectionalLight_Shadow flag for drawing shadows (flutter/engine#46292)
2023-09-26 [email protected] [Impeller] fixes behavior for blurred rounded rect clear (flutter/engine#46167)
2023-09-26 [email protected] Roll Skia from dd6a4e3655fc to bc4f22353590 (6 revisions) (flutter/engine#46299)
2023-09-26 [email protected] Clean up the docstring for ColorFilter.matrix (flutter/engine#46298)
2023-09-26 49699333+dependabot[bot]@users.noreply.github.com Bump uuid from 4.0.0 to 4.1.0 in /lib/web_ui (flutter/engine#46293)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Roll Flutter Engine from 0a8ad236e4af to f70f65f7a622 (5 revisions) (#135549)

https://github.com/flutter/engine/compare/0a8ad236e4af...f70f65f7a622

2023-09-27 [email protected] Roll Skia from d1215b38667c to 76aecbaea259 (1 revision) (flutter/engine#46309)
2023-09-27 [email protected] Roll Skia from bc4f22353590 to d1215b38667c (4 revisions) (flutter/engine#46306)
2023-09-26 [email protected] Roll Fuchsia Linux SDK from a56c8yPp4DDlj_Qbl... to Lg6FR6iDnZeV6y-E8... (flutter/engine#46302)
2023-09-26 [email protected] [ios] Fix app extension not able to find assets from unloaded bundle (flutter/engine#46283)
2023-09-26 [email protected] [Android] Fix enableSuggestions set to false not honored (flutter/engine#46037)

Also rolling transitive DEPS:
  fuchsia/sdk/core/linux-amd64 from a56c8yPp4DDl to Lg6FR6iDnZeV

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

✨ `flutter config --list` (#135401)

Resolves #81831.

The PR improves the `config` command in below ways:
- Does not print the settings in usages or other options.
- Adds the `--list` flag to print the full settings list.
- Separates usages for settings and analytics.
- Prints the restart tip when clearing features.

Native assets support for Windows (#134203)

Support for FFI calls with `@Native external` functions through Native assets on Windows. This enables bundling native code without any build-system boilerplate code.

For more info see:

* https://github.com/flutter/flutter/issues/129757

Mainly follows the design of https://github.com/flutter/flutter/pull/134031.

Specifically for Windows in this PR is the logic for finding the compiler `cl.exe` and environment variables that contain the paths to the Windows headers `vcvars.bat` based on `vswhere.exe`.

Marks Linux_pixel_7pro hello_world_impeller to be unflaky (#135564)

<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
  "name": "Linux_pixel_7pro hello_world_impeller"
}
-->
The test has been passing for [50 consecutive
runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Linux_pixel_7pro%20hello_world_impeller%22).
This test can be marked as unflaky.

Roll Packages from 619af75f7966 to 21c2ebb39c07 (6 revisions) (#135602)

https://github.com/flutter/packages/compare/619af75f7966...21c2ebb39c07

2023-09-26 [email protected] [Android] Add new tasks for subset of tests to run API 33 (flutter/packages#4974)
2023-09-26 [email protected] [video_player] Update iOS prefixes (flutter/packages#4994)
2023-09-26 [email protected] [go_router] Fix @tool directive with missing @end-tool (flutter/packages#4998)
2023-09-26 [email protected] [GoRouter] option to override initial route set by platform  (flutter/packages#4717)
2023-09-26 [email protected] [video_player] Ensures autoplay is false on the web. (flutter/packages#4961)
2023-09-26 [email protected] [camera_android] Downgrade to AGP 7.3.0 to fix build_alll_packages test failures (flutter/packages#4997)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Config changes for linux coverage. (#135604)

This build runs for over and hour and it does not need to run on presubmit or release candidate branches.

Fix `SearchAnchor`'s search view isn't updated when the theme changes & widgets inside the search view do not inherit local themes (#132749)

fixes [SearchAnchor (search view) UI glitch on platform brightness changes](https://github.com/flutter/flutter/issues/131835)
fixes [Search view widgets cannot inherit local themes](https://github.com/flutter/flutter/issues/132741)

- This fixes an issue where the `SearchAnchor`'s search view isn't updated when the platform brightness changes.
- Fixes an issue where widgets inside the search view cannot use local themes

`SearchAnchor` currently passed both global and local themes on the search view popup pushing and it uses anchor. button's context to look up the theme.

![search_view drawio (1)](https://github.com/flutter/flutter/assets/48603081/b5317fb1-ee73-461c-a119-f2a1e29f5909)

As a result, when the platform changes and the search view is rebuilt, it cannot use the updated theme.

https://github.com/flutter/flutter/assets/48603081/2f1ebe74-e7d5-4ef3-b97c-a741c3d68964

Similar to `PopupMenuButton`, the theme should be located in the search view so that when the platform brightness is updated and the search view is rebuilt it can use the updated theme.

![search_view drawio](https://github.com/flutter/flutter/assets/48603081/4e48c0cb-a558-4de6-9865-5f51981a343f)

https://github.com/flutter/flutter/assets/48603081/d8d85982-c661-4cac-83e8-0488b1d93daf

However, the search view's context cannot access local themes so I added support for `InheritedTheme`, which fixes the local. theme issue for both the search view and widgets inside the search view.

![Screenshot 2023-08-17 at 15 54 02](https://github.com/flutter/flutter/assets/48603081/dec18ba3-9f01-4706-987a-eb2fd4afb180)

![Screenshot 2023-08-17 at 15 55 15](https://github.com/flutter/flutter/assets/48603081/13f2797a-7f70-43b5-bc56-7971cf76a61d)

made top level if checks gaurd clauses (#135070)

This is a tiny tweak to replace some top level if clauses with guard clauses in `FutureBuilder`. I find the resultant code much more readable, but this is a matter of taste and I didn't see any info one way or another on it in the style guide so let me know if this is not to your all's preference.

Support ensureVisible/showOnScreen/showInViewport for 2D Scrolling (#135182)

fix last test

get compiling

fix

implement features
  • Loading branch information
jonahwilliams authored and christopherfujino committed Oct 16, 2023
1 parent 22b0a62 commit 2f8d64e
Show file tree
Hide file tree
Showing 31 changed files with 1,528 additions and 656 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# This file controls Flutter-level build steps. It should not be edited.
cmake_minimum_required(VERSION 3.14)

set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral")
Expand All @@ -10,11 +9,6 @@ include(${EPHEMERAL_DIR}/generated_config.cmake)
# https://github.com/flutter/flutter/issues/57146.
set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper")

# Set fallback configurations for older versions of the flutter tool.
if (NOT DEFINED FLUTTER_TARGET_PLATFORM)
set(FLUTTER_TARGET_PLATFORM "windows-x64")
endif()

# === Flutter Library ===
set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll")

Expand Down Expand Up @@ -97,7 +91,7 @@ add_custom_command(
COMMAND ${CMAKE_COMMAND} -E env
${FLUTTER_TOOL_ENVIRONMENT}
"${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat"
${FLUTTER_TARGET_PLATFORM} $<CONFIG>
windows-x64 $<CONFIG>
VERBATIM
)
add_custom_target(flutter_assemble DEPENDS
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//
// Generated file. Do not edit.
//

// clang-format off

#include "generated_plugin_registrant.h"

#include <url_launcher_windows/url_launcher_windows.h>

void RegisterPlugins(flutter::PluginRegistry* registry) {
UrlLauncherWindowsRegisterWithRegistrar(
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//
// Generated file. Do not edit.
//

// clang-format off

#ifndef GENERATED_PLUGIN_REGISTRANT_
#define GENERATED_PLUGIN_REGISTRANT_

#include <flutter/plugin_registry.h>

// Registers Flutter plugins.
void RegisterPlugins(flutter::PluginRegistry* registry);

#endif // GENERATED_PLUGIN_REGISTRANT_
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#
# Generated file, do not edit.
#

list(APPEND FLUTTER_PLUGIN_LIST
url_launcher_windows
)

list(APPEND FLUTTER_FFI_PLUGIN_LIST
)

set(PLUGIN_BUNDLED_LIBRARIES)

foreach(plugin ${FLUTTER_PLUGIN_LIST})
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin})
target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
endforeach(plugin)

foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin})
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
endforeach(ffi_plugin)
11 changes: 11 additions & 0 deletions examples/hello_world/linux/flutter/generated_plugin_registrant.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
//
// Generated file. Do not edit.
//

// clang-format off

#include "generated_plugin_registrant.h"


void fl_register_plugins(FlPluginRegistry* registry) {
}
15 changes: 15 additions & 0 deletions examples/hello_world/linux/flutter/generated_plugin_registrant.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//
// Generated file. Do not edit.
//

// clang-format off

#ifndef GENERATED_PLUGIN_REGISTRANT_
#define GENERATED_PLUGIN_REGISTRANT_

#include <flutter_linux/flutter_linux.h>

// Registers Flutter plugins.
void fl_register_plugins(FlPluginRegistry* registry);

#endif // GENERATED_PLUGIN_REGISTRANT_
23 changes: 23 additions & 0 deletions examples/hello_world/linux/flutter/generated_plugins.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#
# Generated file, do not edit.
#

list(APPEND FLUTTER_PLUGIN_LIST
)

list(APPEND FLUTTER_FFI_PLUGIN_LIST
)

set(PLUGIN_BUNDLED_LIBRARIES)

foreach(plugin ${FLUTTER_PLUGIN_LIST})
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin})
target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
endforeach(plugin)

foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin})
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
endforeach(ffi_plugin)
2 changes: 2 additions & 0 deletions packages/flutter_tools/lib/executable.dart
Original file line number Diff line number Diff line change
Expand Up @@ -173,9 +173,11 @@ List<FlutterCommand> generateCommands({
fileSystem: globals.fs,
),
BuildCommand(
artifacts: globals.artifacts!,
fileSystem: globals.fs,
buildSystem: globals.buildSystem,
osUtils: globals.os,
processUtils: globals.processUtils,
verboseHelp: verboseHelp,
androidSdk: globals.androidSdk,
logger: globals.logger,
Expand Down
15 changes: 14 additions & 1 deletion packages/flutter_tools/lib/src/artifacts.dart
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ enum Artifact {

/// The location of file generators.
flutterToolsFileGenerators,

/// Pre-built desktop debug app.
flutterPreviewDevice,
}

/// A subset of [Artifact]s that are platform and build mode independent
Expand Down Expand Up @@ -213,6 +216,8 @@ String? _artifactToFileName(Artifact artifact, Platform hostPlatform, [ BuildMod
return 'const_finder.dart.snapshot';
case Artifact.flutterToolsFileGenerators:
return '';
case Artifact.flutterPreviewDevice:
return 'flutter_preview$exe';
}
}

Expand Down Expand Up @@ -573,6 +578,7 @@ class CachedArtifacts implements Artifacts {
case Artifact.windowsCppClientWrapper:
case Artifact.windowsDesktopPath:
case Artifact.flutterToolsFileGenerators:
case Artifact.flutterPreviewDevice:
return _getHostArtifactPath(artifact, platform, mode);
}
}
Expand Down Expand Up @@ -612,6 +618,7 @@ class CachedArtifacts implements Artifacts {
case Artifact.windowsCppClientWrapper:
case Artifact.windowsDesktopPath:
case Artifact.flutterToolsFileGenerators:
case Artifact.flutterPreviewDevice:
return _getHostArtifactPath(artifact, platform, mode);
}
}
Expand Down Expand Up @@ -663,6 +670,7 @@ class CachedArtifacts implements Artifacts {
case Artifact.windowsCppClientWrapper:
case Artifact.windowsDesktopPath:
case Artifact.flutterToolsFileGenerators:
case Artifact.flutterPreviewDevice:
return _getHostArtifactPath(artifact, platform, mode);
}
}
Expand Down Expand Up @@ -745,6 +753,9 @@ class CachedArtifacts implements Artifacts {
throw StateError('Artifact $artifact not available for platform $platform.');
case Artifact.flutterToolsFileGenerators:
return _getFileGeneratorsPath();
case Artifact.flutterPreviewDevice:
assert(platform == TargetPlatform.windows_x64);
return _cache.getArtifactDirectory('flutter_preview').childFile('flutter_preview.exe').path;
}
}

Expand Down Expand Up @@ -1016,6 +1027,8 @@ class CachedLocalEngineArtifacts implements Artifacts {
return _fileSystem.path.join(_getDartSdkPath(), 'bin', 'utils', artifactFileName);
case Artifact.flutterToolsFileGenerators:
return _getFileGeneratorsPath();
case Artifact.flutterPreviewDevice:
throw UnimplementedError('TODO!'); // TODO
}
}

Expand Down Expand Up @@ -1118,7 +1131,6 @@ class CachedLocalWebSdkArtifacts implements Artifacts {
_platform = platform,
_operatingSystemUtils = operatingSystemUtils;


final Artifacts _parent;
final String _webSdkPath;
final FileSystem _fileSystem;
Expand Down Expand Up @@ -1169,6 +1181,7 @@ class CachedLocalWebSdkArtifacts implements Artifacts {
case Artifact.fontSubset:
case Artifact.constFinder:
case Artifact.flutterToolsFileGenerators:
case Artifact.flutterPreviewDevice:
break;
}
}
Expand Down
29 changes: 22 additions & 7 deletions packages/flutter_tools/lib/src/commands/build.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@
import 'package:meta/meta.dart';

import '../android/android_sdk.dart';
import '../artifacts.dart';
import '../base/file_system.dart';
import '../base/logger.dart';
import '../base/os.dart';
import '../base/process.dart';
import '../build_info.dart';
import '../build_system/build_system.dart';
import '../cache.dart';
import '../commands/build_linux.dart';
import '../commands/build_macos.dart';
import '../commands/build_windows.dart';
Expand All @@ -21,15 +24,18 @@ import 'build_bundle.dart';
import 'build_ios.dart';
import 'build_ios_framework.dart';
import 'build_macos_framework.dart';
import 'build_preview.dart';
import 'build_web.dart';

class BuildCommand extends FlutterCommand {
BuildCommand({
required Artifacts artifacts,
required FileSystem fileSystem,
required BuildSystem buildSystem,
required OperatingSystemUtils osUtils,
required Logger logger,
required AndroidSdk? androidSdk,
required ProcessUtils processUtils,
bool verboseHelp = false,
}){
_addSubcommand(
Expand Down Expand Up @@ -67,6 +73,14 @@ class BuildCommand extends FlutterCommand {
verboseHelp: verboseHelp
));
_addSubcommand(BuildWindowsCommand(logger: logger, verboseHelp: verboseHelp));
_addSubcommand(BuildPreviewCommand(
artifacts: artifacts,
flutterRoot: Cache.flutterRoot!,
fs: fileSystem,
logger: logger,
processUtils: processUtils,
verboseHelp: verboseHelp,
));
}

void _addSubcommand(BuildSubCommand command) {
Expand All @@ -90,14 +104,15 @@ class BuildCommand extends FlutterCommand {

abstract class BuildSubCommand extends FlutterCommand {
BuildSubCommand({
required Logger logger,
required this.logger,
required bool verboseHelp
}): _logger = logger {
}) {
requiresPubspecYaml();
usesFatalWarningsOption(verboseHelp: verboseHelp);
}

final Logger _logger;
@protected
final Logger logger;

@override
bool get reportNullSafety => true;
Expand All @@ -111,15 +126,15 @@ abstract class BuildSubCommand extends FlutterCommand {
@protected
void displayNullSafetyMode(BuildInfo buildInfo) {
if (buildInfo.nullSafetyMode != NullSafetyMode.sound) {
_logger.printStatus('');
_logger.printStatus(
logger.printStatus('');
logger.printStatus(
'Building without sound null safety ⚠️',
emphasis: true,
);
_logger.printStatus(
logger.printStatus(
'Dart 3 will only support sound null safety, see https://dart.dev/null-safety',
);
}
_logger.printStatus('');
logger.printStatus('');
}
}
Loading

0 comments on commit 2f8d64e

Please sign in to comment.