22584 Commits

Author SHA1 Message Date
Andrew Kolos
907bbe1bbe
refactor asset bundle code to not depend on the global Cache.flutterRoot (#142277)
Fixes https://github.com/flutter/flutter/issues/142285.

Part of work on https://github.com/flutter/flutter/pull/141194.

This is a refactor. There should be no changes in tool behavior.
2024-01-26 22:01:26 +00:00
Christopher Fujino
97fef98b47
[flutter_tools] remove await runZonedGuarded() in tests (#142336)
For context https://github.com/flutter/flutter/issues/142338
2024-01-26 21:58:03 +00:00
Daco Harkes
8bc0901076
Roll deps from dart-lang/native in templates (#142322)
Update packages from https://github.com/dart-lang/native to the last published stable versions in templates.
2024-01-26 21:42:33 +00:00
Andrew Kolos
69c98bd960
Remove duplicate global declaration of UserMessages (#142281)
Fixes https://github.com/flutter/flutter/issues/142286

This is a refactor. No code behavior changes should be observed.
2024-01-26 21:41:16 +00:00
auto-submit[bot]
114261a63a
Reverts "Add runWidget to bootstrap a widget tree without a default View" (#142339)
Reverts flutter/flutter#141484
Initiated by: eliasyishak
This change reverts the following previous change:
Original Description:
The existing `runApp` bootstraps the widget tree and renders the provided widget into the default view (which is currently the implicit View from `PlatformDispatcher.implicitView` and - in the future - may be a default-created window). Apps, that want more control over the View they are rendered in, need a new way to bootstrap the widget tree: `runWidget`. It does not make any assumptions about the View the provided widget is rendered into. Instead, it is up to the caller to include a View widget in the provided widget tree that specifies where content should be rendered. In the future, this may enable developers to create a custom window for their app instead of relying on the default-created one.
2024-01-26 21:06:27 +00:00
LongCatIsLooong
505845c5ac
Remove textScaleFactor references from flutter/flutter (#142271)
These should the the last remaining `MediaQueryData.textScaleFactor` and `TextScaler.textScaleFactor` references.
2024-01-26 19:12:24 +00:00
Michael Goderbauer
5b44596c5f
Add runWidget to bootstrap a widget tree without a default View (#141484)
The existing `runApp` bootstraps the widget tree and renders the provided widget into the default view (which is currently the implicit View from `PlatformDispatcher.implicitView` and - in the future - may be a default-created window). Apps, that want more control over the View they are rendered in, need a new way to bootstrap the widget tree: `runWidget`. It does not make any assumptions about the View the provided widget is rendered into. Instead, it is up to the caller to include a View widget in the provided widget tree that specifies where content should be rendered. In the future, this may enable developers to create a custom window for their app instead of relying on the default-created one.
2024-01-26 19:12:21 +00:00
Jenn Magder
91f0878fed
Move iOS content validation devicelab test into tool integration test (#142272)
The archiving was running in devicelab because certs are needed to codesign (see #73577).  However now the certs are available in chromium bots.  Move the archiving test into the existing tool integration test, and delete the devicelab variant.

arm64:
https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8757886514651624673/+/u/run_test.dart_for_tool_host_cross_arch_tests_shard_and_subshard_None/test_stdout#L6074_4
x64:
https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8757886514651624689/+/u/run_test.dart_for_tool_host_cross_arch_tests_shard_and_subshard_None/test_stdout#L6389_2

Part of https://github.com/flutter/flutter/issues/142070
2024-01-26 18:04:09 +00:00
Polina Cherkasova
0b686be36e
Fix not disposed ImageInfo in tests. (#142287) 2024-01-26 08:02:41 -08:00
Bartek Pacia
370f40e6df
flutter.groovy: update for Gradle Kotlin DSL compatibility (#142144)
This PR fixes 2 small mistakes in `FlutterExtension`:
- all fields must be `public` in order to be used in Gradle Kotlin DSL the same as in Gradle Groovy DSL
- using `logger` instead of `project.logger` throws an error when executed

This PR re-adds a subset of changes from #141541 which broke the tree and has been reverted.
2024-01-26 09:46:18 +00:00
Polina Cherkasova
15fa68ab1d
Instrument ImageInfo. (#141411) 2024-01-25 17:02:17 -08:00
Qun Cheng
7ff5f81a2e
Fix SegmentedButton default size and default tappable size (#142243)
fix https://github.com/flutter/flutter/issues/121493

`SegmentedButton` uses `TextButton` for each segments. When we have `MaterialTapTargetSize.padded` for `TextButton`, we make sure the minimum tap target size is 48.0( this value can be adjusted by visual density), even tough the actual button size is smaller. When `SegmentedButton` paints segments by using `MultiChildRenderObjectWidget`, it also includes the tap target size so the button that it actually draws always has the same height as the height of the tap target size.

To fix it, this PR firstly calculate the actual height of a text button in `SegmentedButton` class, then we can get the height delta if there is. Then the the value of (Segmented button render box height - the delta) would be the actual button size that we should see.

For now, we are not able to customize the min, max, fixed size in [`SegmentedButton` style](https://api.flutter.dev/flutter/material/SegmentedButton/style.html). So the standard button height is always 40 and can only be customized by `style.visualDensity` and `style.tapTargetSize`; `SegmentedButton` only simulates the `TextButton` behavior when `TextButton`'s height is its default value.

![Screenshot 2024-01-25 at 11 45 42 AM](https://github.com/flutter/flutter/assets/36861262/7451fa96-6d45-4cd3-a894-ca71e776c8ef)

https://github.com/flutter/flutter/assets/36861262/15ca6034-e6e0-4cc6-8fe3-808b4bd6a920
2024-01-26 00:20:21 +00:00
Pierrick Bouvier
37c3978b34
Enable native compilation for windows-arm64 (#141930)
It's now possible to natively compile a flutter app for windows-arm64. Cross-compilation is not yet implemented.

Uses arm64 artifacts now available for Dart/Flutter. Platform detection is based on Abi class, provided by Dart. Depending if Dart is an arm64 or x64 binary, the Abi is set accordingly. Initial bootstrap of dart artifacts (update_dart_sdk.ps1) is checking PROCESSOR_ARCHITECTURE environment variable, which is the way to detect host architecture on Windows.

This is available only for master channel (on other channels, it fallbacks to windows-x64).

On windows-x64, it produces an x64 app. On windows-arm64, it produces an arm64 app.
2024-01-26 00:08:20 +00:00
derdilla
e342667954
fix Ink not updating on TextField newline (#140700)
Fixes a layout bug when using an EditableText and something containing an Ink widget.
2024-01-25 14:51:54 -08:00
Nate
497f912d6e
Implementing switch expressions in the cupertino/ directory (#141591)
Refactors code to use the new `switch` expressions.
2024-01-25 13:29:28 -08:00
LouiseHsu
caba667ed4
Fix incorrect zh-cn translation for Look Up Label in selection controls (#142158)
Fixes https://github.com/flutter/flutter/issues/141764

Translation suggestion here:

https://tc.corp.google.com/btviewer/edittranslation?project=Flutter&msgId=8222331119728136330&language=zh-CN

## 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.
2024-01-25 10:24:42 -08:00
Justin McCandless
204a8848a6
PopScope example improvements (#142163)
Attempting to help users understand how to build a confirmation dialog when exiting a route.
2024-01-25 10:14:49 -08:00
Sigurd Meldgaard
a0e43d3053
Don't show legacy welcome message when analytics are disabled (#140956)
The legacy welcome message would be printed even if `CI=true` confusing
parsers of the output.

This fixes: https://github.com/flutter/flutter/issues/139737

---------

Co-authored-by: eliasyishak <42216813+eliasyishak@users.noreply.github.com>
2024-01-25 16:29:42 +01:00
Andrew Kolos
295a9a2031
provide command to FakeCommand::onRun (#142206)
Part of work on [#101077](https://github.com/flutter/flutter/pull/141194). This is done as a separate PR to avoid a massive diff.

## Context
1. The `FakeCommand` class accepts a list of patterns that's used to match a command given to its `FakeProcessManager`. Since `FakeCommand` can match a list of patterns, not just specifically strings, it can be used to match commands where the exact value of some arguments can't (easily) known ahead of time. For example, a part of the tool may invoke a command with an argument that is the path of a temporarily file that has a randomly-generated basename.
2. The `FakeCommand` class provides on `onRun` parameter, which is a callback that is run when the `FakeProcessManager` runs a command that matches the `FakeCommand` in question.

## Issue
In the event that a `FakeCommand` is constructed using patterns, the test code can't know the exact values used for arguments in the command. This PR proposes changing the type of `onRun` from `VoidCallback?` to `void Function(List<String>)?`. When run, the value `List<String>` parameter will be the full command that the `FakeCommand` matched.

Example:
```dart
FakeCommand(
  command: <Pattern>[
    artifacts.getArtifactPath(Artifact.engineDartBinary),
    'run',
    'vector_graphics_compiler',
    RegExp(r'--input=/.*\.temp'),
    RegExp(r'--output=/.*\.temp'),
  ],
  onRun: (List<String> command) {
    final outputPath = (() { 
      // code to parse `--output` from `command`
    })();
    testFileSystem.file(outputPath).createSync(recursive: true);
  },
)
```
2024-01-25 07:51:25 +00:00
David Iglesias
703e12f524
[ci] Adds test for web hot restart with const App. (#141824)
This PR adds a test that reproduces the problem described in the linked issue: hot restart on the web seems to not update if the app being run is `const`.

The new test is expected to fail, until the `const` issue with hot restart in the web is resolved.

Expected failure mode is a 15s timeout in the following test:

```
02:31 +3 ~1 -1: Hot reload (index.html: Default) (with `const MyApp()`)): newly added code executes during hot restart [E]
  TimeoutException after 0:00:15.000000: Future not completed
  dart:async  _startMicrotaskLoop
  ...
```

(And then a bunch of output that I'm not 100% sure is intended :))

## Issues

* #141588
2024-01-25 01:49:08 +00:00
Renzo Olivares
eba38c4b77
Fix text selection edge scrolling when inside a horizontal scrollable (#140250)
Fixes #129590

* Consider `AxisDirection` when calculating scroll offset used in determining TextSelection during a drag/long press drag. Previously it seems that we were assuming the direction was always vertical 30cc831985/packages/flutter/lib/src/widgets/text_selection.dart (L2842-L2844) .
* SelectableText now considers RenderEditable offset changes and Scrollable offset changes when calculating the TextSelection during a long press drag.
2024-01-25 00:59:06 +00:00
Polina Cherkasova
47d8252a85
Reland "Remove hack from PageView." (#142172)
Original PR: https://github.com/flutter/flutter/pull/141533
Failure: https://fusion2.corp.google.com/presubmit/601217743/OCL:601217743:BASE:601219708:1706132224874:9a4bcab3/targets
Fix: [b/321743868](https://b.corp.google.com/321743868), http://cl/601219001 (added as g3 fix.
2024-01-24 23:44:11 +00:00
Polina Cherkasova
a522b38e96
Upgrade leak_tracker. (#142162) 2024-01-24 15:33:17 -08:00
Jo Jaeyong
23385468a8
Support wireless debugging for iOS 12 or earlier (#141439)
`idevicesyslog` requires the `--network` flag to obtain logs for iOS devices when wirelessly paired. 

When running Flutter on devices with iOS 12 or earlier versions, [the `idevicesyslog` command is used.](5931b4f21d/packages/flutter_tools/lib/src/ios/devices.dart (L1269-L1277)).

Related Issue: #15072
Related PRs: #118104, #118895, #60623
2024-01-24 22:14:08 +00:00
hangyu
6adc8246e4
Update navigationBar label's maxScaleFactor to meet GAR requirement (#141998)
fixes: https://github.com/flutter/flutter/issues/141997
2024-01-24 19:45:47 +00:00
Greg Price
e661ed3a00
Revise tooltip theme docs, including more cross-references (#137316)
Much of the new wording here is borrowed from [ChipTheme], [SliderTheme], or [RadioThemeData], which I think are pretty good. I believe a lot of other theme classes have similar wording too. I've also made some tweaks of my own, notably the references to [MaterialApp.theme].

This started from a desire to have clearer cross-references pointing at what to do with a FooThemeData to make it take effect:
  https://github.com/flutter/flutter/pull/135879#discussion_r1355851481
but then as I started writing I kept finding more and more small things I wanted to adjust, including a couple of bits that were extraneous or obsolete.
2024-01-24 17:26:03 +00:00
LongCatIsLooong
b6e758addb
Fixes #138773, port autocomplete to OverlayPortal (#140285)
Fixes #138773, port autocomplete to OverlayPortal
2024-01-24 16:49:18 +00:00
Jesús S Guerrero
b5262f0d80
Revert "[web] - Fix broken TextField in semantics mode when it's a sibling of Navigator" (#142129)
Reverts flutter/flutter#138446

b/322136071
2024-01-24 16:13:26 +00:00
yim
24e7a0be8b
Don't change the height of the Textfield's labelStyle when it focused. (#141943)
Fixes #141448
2024-01-24 04:13:50 +00:00
Polina Cherkasova
be031cb908
Ignore a leak. (#141737) 2024-01-24 04:01:23 +00:00
Jackson Gardner
a668aa7f99
Revert "Add abifilters to our gradle templates" (#142089)
Reverts flutter/flutter#135529

This had some failures in postsubmit:

https://ci.chromium.org/ui/p/flutter/builders/prod/Linux%20gradle_plugin_light_apk_test/17054/overview
and 

https://ci.chromium.org/ui/p/flutter/builders/prod/Linux%20gradle_plugin_fat_apk_test/17262/overview

We should revert and then investigate.
2024-01-23 19:05:20 -08:00
Gray Mackall
512335230c
Add abifilters to our gradle templates (#135529)
Fixes https://github.com/flutter/flutter/issues/135173, and could also be interpreted as fixing https://github.com/flutter/flutter/issues/83596 based on @chinmaygarde 's comment.
2024-01-23 23:19:23 +00:00
Andrew Kolos
cbe0ceafe2
consolidate AssetBundle::entries and AssetBundle::entryKinds into a new type, AssetBundleEntry (#142029)
Part of work on https://github.com/flutter/flutter/pull/141194

The [`AssetBundle`](0833929c99/packages/flutter_tools/lib/src/asset.dart (L80)) class contains two members, `entries` and `entryKinds`. `entries` contains asset data indexed by asset key. `entryKinds` contains the "kinds" of these assets, again indexed by asset key.

**Change.** Rather than have two separate maps, this PR proposes combining these maps into one by wrapping the asset data and kind into a single data type `AssetBundleEntry`.

**Purpose.** In https://github.com/flutter/flutter/pull/141194, I am considering associating more information with an asset. In particular, what transformers are meant to be applied to it when copying it to the build output. Rather than adding another map member onto `AssetBundle` (e.g. `entryTransformers`), I decided to make things neater by introducing the `AssetBundleEntry` type.
2024-01-23 22:00:46 +00:00
Christopher Fujino
1cee81c40a
[flutter_tools] fix language_version_test and enable shuffle (#142009)
Part of https://github.com/flutter/flutter/issues/85160
2024-01-23 20:31:53 +00:00
Ian Hickson
574e598118
Merge flutter_goldens_client into flutter_goldens (#141900)
This is part 1 of a broken down version of the #140101 refactor.
2024-01-23 21:07:31 +01:00
Lau Ching Jun
f52eaaea08
Allow overriding the native assets yaml file in the resident runner. (#142016)
This is used when the native assets are built by a separate build system.

Context: b/286799303
2024-01-23 19:49:10 +00:00
hangyu
bff417ac43
Update material banner maxScaleFactor to meet GAR requirement (#142015)
fixes: https://github.com/flutter/flutter/issues/142012
2024-01-23 19:24:54 +00:00
Qun Cheng
e86c1c88e2
Add tooltip for the clear button on SearchAnchor's search view (#141804)
Fixes #141347
This PR is to add a "clear text" tooltip for the clear button on `SearchAnchor`'s search view and also add a `clearButtonTooltip` entry for `material_localizations`.
2024-01-23 17:47:06 +00:00
Michael Goderbauer
930403c6c3
Remove unused clipBehavior from OverflowBar (#141976)
Fixes https://github.com/flutter/flutter/issues/141606.

OverflowBar doesn't do any clipping and therefore there's no need to specify a clip behavior.
2024-01-23 17:16:26 +00:00
Bruno Leroux
bef9763008
Add Share button to the SelectableRegion toolbar on Android (#141447)
## Description

This PR adds the share button to text selection toolbar buttons on Android ~~and iOS~~ for `SelectableRegion` (and therefore `SelectionArea`).

https://github.com/flutter/flutter/pull/139479 adds this button for `EditableText` (which is used by `TextField` and `SelectableText` but not by `SelectionArea`).

**Edit**: supporting this on iOS will need more work (see https://github.com/flutter/flutter/pull/141447#issuecomment-1889942622 and https://github.com/flutter/flutter/issues/141775).

## Related Issue

Follow up for https://github.com/flutter/flutter/issues/138728

## Tests

Adds 1 test.
2024-01-23 13:25:34 +00:00
Ian Hickson
5dc3b1894f
Add a comment about how to test flutter_goldens (#141902)
This is part 2 of a broken down version of the #140101 refactor.

This particular change wasn't in that original refactor but is a note to myself so that I remember how to test each of these changes in the future.
2024-01-23 00:49:07 +00:00
Ian Hickson
15ceca93a4
Enable contextMenuBuilder in the absence of selectionControls (#141810) 2024-01-23 00:49:05 +00:00
auto-submit[bot]
b258ca011e
Reverts "hello_world app: migrate to Gradle Kotlin DSL" (#142018)
Reverts flutter/flutter#141541
Initiated by: yusuf-goog
This change reverts the following previous change:
Original Description:
This PR introduces the first app in this repo that fully uses Gradle Kotlin DSL.

It also fixes a bug I found in the process – fields of `FlutterExtensions` must be `public`.
2024-01-23 00:01:17 +00:00
Justin McCandless
0f7f08d535
Floating cursor docs (#133002)
Explains what a "floating cursor" is in the docs.
2024-01-22 14:17:29 -08:00
Gustl22
a98e43a871
refactor: Rename filterPluginsByPlatform, cleanup Platform Strings (#141780)
Part of #137040 and #80374

- Rename _filterPluginsByPlatform to _createPluginMapOfPlatform
- Move method in chronological order
- Cleanup platform strings
2024-01-22 21:54:06 +00:00
Bartek Pacia
e593cdfb80
hello_world app: migrate to Gradle Kotlin DSL (#141541)
This PR introduces the first app in this repo that fully uses Gradle Kotlin DSL.

It also fixes a bug I found in the process – fields of `FlutterExtensions` must be `public`.
2024-01-22 21:47:20 +00:00
Matan Lurey
3b1e96e074
Remove duplicate code as suggested by natebosch. (#141988)
See https://github.com/flutter/flutter/pull/141821/files#r1462288131.
2024-01-22 13:08:36 -08:00
Jesús S Guerrero
a3cd05c6d3
Revert "Remove hack from PageView." (#141977)
Reverts flutter/flutter#141533

 b/321743868
2024-01-22 20:14:44 +00:00
Matan Lurey
0b2269447f
Do not hang on test failures of tests within flutter_tools (#141821)
Fixes https://github.com/flutter/flutter/issues/141823

Before this change, when a test would fail, the terminal would hang (by default for 30s) until killed by the test runner.

Basically, [`runZonedGuarded`](https://api.flutter.dev/flutter/dart-async/runZonedGuarded.html) _does_ document (though not clearly) that a returned future should not be awaited:

```txt
The zone will always be an error-zone ([Zone.errorZone](https://api.flutter.dev/flutter/dart-async/Zone/errorZone.html)), so returning a future created inside the zone, and waiting for it outside of the zone, will risk the future not being seen to complete.
```

For example, you can see other places in Dart and Flutter that we circumvent that problem:

- 5987563e4a/packages/flutter_tools/test/general.shard/base/async_guard_test.dart (L279-L306)
- b04c9c127f/lib/src/dartdoc.dart (L258-L264)
- d1afda52d2/lib/web_ui/dev/browser_process.dart (L20-L22)

I'm open to suggestions on how to test this :)

/cc @natebosch @jakemac53 @lrhn if you have any color commentary for us.
2024-01-22 19:49:59 +00:00
Greg Spencer
0dea82e684
Remove unneeded expectation in test (#141822)
## Description

This removes an unneeded expectation in the test for the AppLifecycleListener.  It's unneeded because the test immediately resets the state anyhow.  I'm removing it because the web implementation sets the value when initializing, so it's never initially null there.

## Related PR
 - https://github.com/flutter/engine/pull/44720#issuecomment-1898482363
2024-01-22 19:46:10 +00:00