Roll dart to 3.1.0-180.0.dev
Changes since last roll
```
bbce07ad394 (tag: 3.1.0-180.0.dev) Version 3.1.0-180.0.dev
81fc5e710d8 (tag: 3.1.0-179.0.dev) Version 3.1.0-179.0.dev
3b850bb1ace [js-rti] Support legacy types in `is FutureOr` specializer.
dcac7808518 Update PULL_REQUEST_TEMPLATE.md
5b3a57908d5 [dart:js_interop] Remove ObjectLiteral
30b9ac9f873 [dds/dap] Don't show skipped tests as passes in debug
adapter output
79b71c789f6 Use ParameterReference for ChangeParameterType.
bc94e7662be [analyzer] Refactor visitConditionExpression in the const
evaluator.
cf5168ea339 (tag: 3.1.0-178.0.dev) Version 3.1.0-178.0.dev
7071c65b8c7 Change TransformSetParser.singleKey() to avoid null asserts.
a3399e3616f [analysis_server] Add support for adding imports with
show/hide + update Move to File
463c7cb5a2f [vm] Support unchecked AsExpressions in the VM
3a598b4c031 [vm, gc] Honor kAllocatablePageSize during promotion and
snapshot reading.
b84077426ab (tag: 3.1.0-177.0.dev) Version 3.1.0-177.0.dev
9421ca07994 Delete old debianpackage-linux builder.
d4c2d659075 Remove unnecessary null check on `initializerType`.
26fd946904e Run CFE presubmit lints with scanner configured for null
safety mode.
cbd1b8d4943 (tag: 3.1.0-176.0.dev) Version 3.1.0-176.0.dev
033fa5e684d [build] Remove unused pipes import from vs_toolchain.py
b5ee6fa8885 [vm/ffi] Support native assets in `dart build` with relative
path
5e8c29e7b68 (tag: 3.1.0-175.0.dev) Version 3.1.0-175.0.dev
7335116e08a (tag: 3.1.0-174.0.dev) Version 3.1.0-174.0.dev
07f587504b1 Reland "[vm] Migrate FFI callbacks to the new metadata
system."
369a8312aa4 [ddc] Fix types of constants in legacy libraries
105f7e17222 (tag: 3.1.0-173.0.dev) Version 3.1.0-173.0.dev
526ce3aba48 Issue 52005. Convert non-exhaustive returning
SwitchStatement to SwitchExpression when followed by throw.
cc18b250ae8 Bump github/codeql-action from 2.3.5 to 2.3.6
5ff0821b274 [kernel,vm] First-class kernel serialization of FutureOrType
and NullType
8d298292719 Use 'coveringNode' name in RefactoringContext, as it is in
Selection.
97ec9e95bf8 Convert imported reference completion tests
f92c6da7bf4 [analyzer] Refactor visitAsExpression and visitIsExpression
in the constant evaluator.
9e196bc7118 Roll gn from 5a004f9427a0 to e3978de3e8da
7c63a493a22 (tag: 3.1.0-172.0.dev) Version 3.1.0-172.0.dev
88f05965ac4 Issue 52606. Fix AstNodeExtension.nodeCovering() when
selection if at the end of Comment.
09df4e5200b [ddc] Fix dynamic calls of generic methods with new types
1e1266f8e6c [ddc] Sync dart_library.js from internal
56cb8de9736 Make ParsedUnitResult and ParsedLibraryResult superclasses
of ResolvedUnitResult and ResolvedLibraryResult respectively.
03b2abf78f2 [deps] rev async, dartdoc, ffi, http, leak_tracker, lints,
mockito, test, tools, webdev
29f121126ba [analysis_server] Allow skipping slow benchmarks with env
variable
```
## Description
This PR fixes an issue related to text input plugin, on IOS, sending a wrong action string to the engine for `FlutterTextInputActionContinue`.
## Related Issue
Fixes https://github.com/flutter/flutter/issues/126922
## Tests
Adds 1 test.
Work towards https://github.com/flutter/flutter/issues/123468
In order to support the usage of BufferView, I generalized the tracked buffer type from DeviceBuffer to Buffer. Should be mostly safe!
I confirmed that this runs correctly under moltenvk but I'm uncertain if there are additional ways to validate.
Previously, when creating native platform views on macOS, we ignored any parameters passed via the framework side "params" argument in the "create" method call, and instead always passed a nil value to the FlutterPlatformViewFactory. This made it impossible for users of macOS platform views to pass constructor arguments to the NSView subclass implementing the platform view.
We now decode the arguments data using the codec specified by the `FlutterPlatformViewFactory` and pass them through to the `[FlutterPlatformViewFactory createWithIdentifier:arguments:]` method where the platform view author can make use of them.
Fixes: https://github.com/flutter/flutter/issues/124723
This is a part of the broader macOS platform view support effort: https://github.com/flutter/flutter/issues/41722
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
The destination buffer format may not exactly match the source format. In particular, the alpha type of the source may need to be converted to the alpha type of the destination.
Fixes https://github.com/flutter/flutter/issues/128102
To make the `HashUrlStrategy` a bit cleaner (at least for the home page), let's get rid of the notorious `/#/` when the app is in the home page.
Non-home pages continue to have a hash in them. After this PR, here are some example URL changes:
- `http://domain.com/#/` => `http://domain.com/`
- `http://domain.com/#/page1` => (remains the same)
This change is backwards compatible, i.e. if you write `http://domain.com/#/` in the address bar, the app will load and open the home page correctly; and flutter will automatically change the URL to `http://domain.com/`.
Fixes https://github.com/flutter/flutter/issues/127608
Make Skwasm consistent with the CanvasKit backend's sampling options in `drawAtlas`. Also, fix the atlas rendering tests so the sprites don't bleed into each other.
Normally when platform view is clipped to a simple rect we rely on
clipping to container layer bounds. However when the clip rect is
rotated the container layer is expanded accordingly and clipping to path
must be used instead.
Fixes https://github.com/flutter/flutter/issues/128175
Fixes: https://github.com/flutter/flutter/issues/128159
In diagnosing test failures for https://github.com/flutter/engine/pull/42330 we discovered that the DisplayList code was not always backwards compatible with computing the bounds of inverted rectangles (where left > right or top > bottom). Historically such rectangles were always rendered as if they were sorted (i.e. `SkRect::makeSorted()`), but we computed bounds as if the bounds only mattered if the supplied rectangle was ordered. So, we would sometimes render a rectangle for which we mis-computed the bounds.
This would rarely surface in the current code as most rendered rectangles would pass through `SkMatrix::mapRect()` which implicitly orders the rectangle as it transforms it, but any attributes applied to the bounds before that method may have been applied "in the wrong direction" - such as:
- stroke width padding
- mask blur padding
- image filter padding
Fixes https://github.com/flutter/flutter/issues/116070
Fixes https://github.com/flutter/flutter/issues/126202
Introduces `DlRegion` class which implements subset of `SkRegion`
required to get non-overlapping rectangles from region.
The implementation is different and faster than `SkRegion` for this
particular use-case (`display_list_region_benchmarks`):
Edit: Updated benchmark to latest revision and natively (initial run
went through rosetta)
```
----------------------------------------------------------------------------
Benchmark Time CPU Iterations
----------------------------------------------------------------------------
BM_RegionBenchmarkDlRegion/Tiny 616 us 616 us 908
BM_RegionBenchmarkSkRegion/Tiny 70559 us 70557 us 10
BM_RegionBenchmarkDlRegion/Small 1315 us 1314 us 537
BM_RegionBenchmarkSkRegion/Small 121736 us 121717 us 6
BM_RegionBenchmarkDlRegion/Medium 1079 us 1079 us 650
BM_RegionBenchmarkSkRegion/Medium 22039 us 22035 us 32
BM_RegionBenchmarkDlRegion/Large 399 us 399 us 1763
BM_RegionBenchmarkSkRegion/Large 1510 us 1510 us 466
```
## 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] and the [C++,
Objective-C, Java style guides].
- [X] I listed at least one issue that this PR fixes in the description
above.
- [X] I added new tests to check the change I am making or feature I am
adding, or Hixie said the PR is test-exempt. See [testing the engine]
for instructions on writing and running engine tests.
- [X] I updated/added relevant documentation (doc comments with `///`).
- [X] I signed the [CLA].
- [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
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[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
3.1.0-163.0.dev is the most recent version in g3 that has successfully
rolled to the framework. This PR rolls the engine back to this last
known good version of Dart.
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.3.5 to 2.3.6.
<details>
<summary>Commits</summary>
<ul>
<li><a href="83f0fe6c49"><code>83f0fe6</code></a> Merge pull request <a href="https://redirect.github.com/github/codeql-action/issues/1713">#1713</a> from github/update-v2.3.6-96f284028</li>
<li><a href="5c8f4be0e9"><code>5c8f4be</code></a> Update changelog for v2.3.6</li>
<li><a href="96f2840282"><code>96f2840</code></a> Merge pull request <a href="https://redirect.github.com/github/codeql-action/issues/1711">#1711</a> from github/henrymercer/improve-supported-versions-u...</li>
<li><a href="89c4c9e65c"><code>89c4c9e</code></a> Merge pull request <a href="https://redirect.github.com/github/codeql-action/issues/1678">#1678</a> from github/henrymercer/default-setup-safeguarding</li>
<li><a href="26f16a5e63"><code>26f16a5</code></a> Rephrase the still supported calculation to make it clearer</li>
<li><a href="955f8596ae"><code>955f859</code></a> Fix sign error</li>
<li><a href="e7cff66ce1"><code>e7cff66</code></a> Fix push</li>
<li><a href="afdba76326"><code>afdba76</code></a> Wait a week before dropping support for end of life GHES versions</li>
<li><a href="07e43a2208"><code>07e43a2</code></a> Open PR with gh CLI</li>
<li><a href="9632771630"><code>9632771</code></a> Address review comments</li>
<li>Additional commits viewable in <a href="0225834cc5...83f0fe6c49">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>