24171 Commits

Author SHA1 Message Date
skia-flutter-autoroll
561b64ecf2 Roll Skia from 53848cbd4e30 to b5b5ee1d0a93 (2 revisions) (flutter/engine#46467)
https://skia.googlesource.com/skia.git/+log/53848cbd4e30..b5b5ee1d0a93

2023-10-02 fmalita@chromium.org [skottie] Add missing SkUnicode include
2023-10-02 kjlubick@google.com Enforce IWYU on more src/core files

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,djsollen@google.com,jacksongardner@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
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
2023-10-02 17:15:35 +00:00
skia-flutter-autoroll
8989d1431c Roll Skia from 3a7a3bbd27d4 to 53848cbd4e30 (3 revisions) (flutter/engine#46466)
https://skia.googlesource.com/skia.git/+log/3a7a3bbd27d4..53848cbd4e30

2023-10-02 johnstiles@google.com Factor out `invokeFP` so that it can be called by outside code.
2023-10-02 herb@google.com Add a quadratic crossings finder for testing
2023-10-02 kjlubick@google.com Replace exec_tools -> tools and update to Bazel 6.3.2

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,djsollen@google.com,jacksongardner@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
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
2023-10-02 16:32:14 +00:00
skia-flutter-autoroll
21058e84f8 Roll Skia from e72023890373 to 3a7a3bbd27d4 (1 revision) (flutter/engine#46464)
https://skia.googlesource.com/skia.git/+log/e72023890373..3a7a3bbd27d4

2023-10-02 fmalita@chromium.org [skottie] Add support for custom text locales

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,djsollen@google.com,jacksongardner@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
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
2023-10-02 15:47:05 +00:00
skia-flutter-autoroll
4a59845a8a Roll Dart SDK from c9b521394392 to 311a337a4b1a (1 revision) (flutter/engine#46457)
https://dart.googlesource.com/sdk.git/+log/c9b521394392..311a337a4b1a

2023-10-02 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-221.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jacksongardner@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: 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
2023-10-02 13:23:36 +00:00
Bruno Leroux
2475a550db [Linux] Rename 'set_allow_channel_overflow' to 'set_warns_on_channel_… (flutter/engine#46360)
## Description

This PR is a follow-up to https://github.com/flutter/engine/pull/44636 which introduces the `set_allow_channel_overflow` function. It renames this function to `set_warns_on_channel_overflow`.

The previous naming was inspired by the framework side implementation.
c00c022036/lib/ui/channel_buffers.dart (L574)

During the review of the iOS/macOS implementation, https://github.com/flutter/engine/pull/44848#discussion_r1310463864, we agreed that the existing naming is confusing because it implies that overflow will be allowed, but this not the case this function is used to enable/disable error messages when a channel overflows. 

## Related Issue

Follow-up for https://github.com/flutter/flutter/issues/132386.

## Tests

Updates 2 tests.
2023-10-02 05:36:16 +00:00
skia-flutter-autoroll
4f0a905e54 Roll Skia from a2e605c42ba8 to 7bd63cc5cba3 (1 revision) (flutter/engine#46452)
https://skia.googlesource.com/skia.git/+log/a2e605c42ba8..7bd63cc5cba3

2023-10-02 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from c8eb90e92f62 to a17b968c91ef (1 revision)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,djsollen@google.com,jacksongardner@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
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
2023-10-02 05:32:25 +00:00
Jonah Williams
a7bac4e984 [Impeller] disable texture to texture blit in GLES. (flutter/engine#46443)
These are failing with a GL_INVALID_OPERATION.
2023-09-30 23:49:17 +00:00
Matan Lurey
aa8dd4faa7 [Impeller] Make some Open GL errors non-fatal, check in debug mode (not unopt). (flutter/engine#46434)
Closes https://github.com/flutter/flutter/issues/135767.
2023-09-30 09:43:58 -07:00
skia-flutter-autoroll
1457312aa0 Roll Dart SDK from 4574906880c1 to c4e955c13ed5 (1 revision) (flutter/engine#46439)
https://dart.googlesource.com/sdk.git/+log/4574906880c1..c4e955c13ed5

2023-09-30 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-219.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jacksongardner@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: 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
2023-09-30 13:22:35 +00:00
skia-flutter-autoroll
bd4adbe772 Roll Fuchsia Linux SDK from U0lgvzao-MdzfEvoT... to ZDxyy9-hcaVyv65as... (flutter/engine#46437)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC jacksongardner@google.com,rmistry@google.com,zra@google.com 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
2023-09-30 11:38:38 +00:00
skia-flutter-autoroll
0a66048b74 Roll Dart SDK from 9aca08d40398 to 4574906880c1 (1 revision) (flutter/engine#46435)
https://dart.googlesource.com/sdk.git/+log/9aca08d40398..4574906880c1

2023-09-30 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-218.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jacksongardner@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: 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
2023-09-30 05:28:33 +00:00
Jason Simmons
50a17ba824 [Impeller] Apply the transform to PointFieldGeometry coverage (flutter/engine#46428)
Fixes https://github.com/flutter/flutter/issues/134068
2023-09-30 01:53:23 +00:00
skia-flutter-autoroll
3e7ec67048 Roll Dart SDK from 0931bb8a43c8 to 9aca08d40398 (1 revision) (flutter/engine#46432)
https://dart.googlesource.com/sdk.git/+log/0931bb8a43c8..9aca08d40398

2023-09-30 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-217.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jacksongardner@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: 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
2023-09-30 01:27:03 +00:00
gaaclarke
b674ebe6db [Impeller] fixed subpass filter coverage with image filters (flutter/engine#46431)
fixes: https://github.com/flutter/flutter/issues/135777
fixes: https://github.com/flutter/flutter/issues/135766
fixes: https://github.com/flutter/flutter/issues/135212

## 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 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
[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
[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
2023-09-29 18:00:38 -07:00
John McCutchan
af107ceba5 Add an AndroidManifest.xml flag to disable ImageReader backed Platform Views (flutter/engine#46430)
An internal customer is seeing flickering on some high FPS phones.

While we try and reproduce / gain more knowledge of this problem this PR adds a AndroidManifest.xml flag to disable their usage.

The boolean flag is:
```
"io.flutter.embedding.android.DisableImageReaderPlatformViews"
```

Adding the following to your manifest will disable their usage:

```
<meta-data
  android:name="io.flutter.embedding.android.DisableImageReaderPlatformViews"
  android:value="true" />
```
2023-09-30 00:33:33 +00:00
Casey Hillers
f61c3b45a2 Disable enableHardwareBufferRenderingTarget (flutter/engine#46425)
* Causing flickering in web views
* Follow up of cl/569435819 for Google to unblock the rolls
2023-09-29 22:56:07 +00:00
Tong Mu
c7f206212a Multi-view Rasterizer (flutter/engine#45512)
This PR refactors `Rasterizer` so that it's more suitable for multi-view.

Design doc: [flutter.dev/go/multi-view-pipeline-and-rasterizer](http://flutter.dev/go/multi-view-pipeline-and-rasterizer)

With this change, `Rasterizer::DrawToSurfaces` has a structure that can handle drawing to multiple views, although the lack of some functionality still blocks it, mostly related to `ExternalViewEmbedder` and `RasterCache`. 

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-09-29 21:43:55 +00:00
skia-flutter-autoroll
62ddadfc03 Roll Dart SDK from 955a3a964621 to 0931bb8a43c8 (1 revision) (flutter/engine#46423)
https://dart.googlesource.com/sdk.git/+log/955a3a964621..0931bb8a43c8

2023-09-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-216.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jacksongardner@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: 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
2023-09-29 21:28:56 +00:00
Jonah Williams
b8e79543f6 [Impeller] Redo simplify invert colors. (flutter/engine#46416)
Now with fewer state bugs.

Fixes https://github.com/flutter/flutter/issues/135699
2023-09-29 21:11:16 +00:00
Jackson Gardner
2c58573690 Use dart:_wasm constructs to avoid dependence on WebAssembly.Function (flutter/engine#46388)
Use the newly exposed functionality in `dart:_wasm` to fix up two different hacks we have:
1) When creating an image from an image source, use `wasm:import` instead of `@Native` and pass the image source directly as an externref. (Direct wasm binding instead of a JS interop shim, yay).
2) When binding the surface callback, previously we were wrapping the callback in a JS function, and then using `WebAssembly.Function` to create a wasm function wrapper around that. Now, we can create a `WasmFuncRef` that is a direct reference to a dart function and pass that over. Now there are no intermediary JavaScript layers when skwasm calls back to us, and we no longer are dependent on the type reflection flag in Chrome.

This fixes https://github.com/flutter/flutter/issues/134556
2023-09-29 20:52:36 +00:00
skia-flutter-autoroll
1848abe6c0 Roll Skia from 2d4045f55fd5 to a063eaeaf1e0 (6 revisions) (flutter/engine#46420)
https://skia.googlesource.com/skia.git/+log/2d4045f55fd5..a063eaeaf1e0

2023-09-29 michaelludwig@google.com Revert "Reland "[skif] Draw FilterResults directly for layer restoration""
2023-09-29 kjlubick@google.com Add CI jobs to test external_client build of "buffet" options
2023-09-29 kjlubick@google.com Revert "Add fontations gm to Bazel build of viewer"
2023-09-29 kjlubick@google.com Add fast-reject when SkStream implements getLength() but not getPosition()
2023-09-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 4d31920a095a to 8ac5d8e1a9fe (3 revisions)
2023-09-29 michaelludwig@google.com Reland "[skif] Draw FilterResults directly for layer restoration"

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,bungeman@google.com,jacksongardner@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
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
2023-09-29 20:46:27 +00:00
skia-flutter-autoroll
9cc5d3b14d Manual roll Dart SDK from e042e83c85a5 to 955a3a964621 (2 revisions) (flutter/engine#46412)
Manual roll requested by zra@google.com

https://dart.googlesource.com/sdk.git/+log/e042e83c85a5..955a3a964621

2023-09-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-215.0.dev
2023-09-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-214.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jacksongardner@google.com,zra@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: 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
2023-09-29 18:46:03 +00:00
auto-submit[bot]
38a714dd32 Reverts "[Impeller] simplify invert colors flag by supporting composed color filters." (flutter/engine#46414)
Reverts flutter/engine#46391
Initiated by: jonahwilliams
This change reverts the following previous change:
Original Description:
Fixes https://github.com/flutter/flutter/issues/135699

To avoid the ugly complicated code for conditionally applying both colorfilters, make the dl dispatcher handle merging these filters together in a defined order. The original bug is caused by not checking for invert colors in a CPU fast path.
2023-09-29 18:01:26 +00:00
Jonah Williams
8f76254d3e [Impeller] simplify invert colors flag by supporting composed color filters. (flutter/engine#46391)
Fixes https://github.com/flutter/flutter/issues/135699

To avoid the ugly complicated code for conditionally applying both colorfilters, make the dl dispatcher handle merging these filters together in a defined order. The original bug is caused by not checking for invert colors in a CPU fast path.
2023-09-29 17:52:05 +00:00
skia-flutter-autoroll
6c9712b1ea Manual roll Dart SDK from 077d768accfa to e042e83c85a5 (3 revisions) (flutter/engine#46409)
Manual roll requested by zra@google.com

https://dart.googlesource.com/sdk.git/+log/077d768accfa..e042e83c85a5

2023-09-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-213.0.dev
2023-09-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-212.0.dev
2023-09-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-211.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jacksongardner@google.com,zra@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: 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
2023-09-29 17:28:12 +00:00
skia-flutter-autoroll
53d0146d28 Roll Skia from 9f8242377455 to 2d4045f55fd5 (3 revisions) (flutter/engine#46408)
https://skia.googlesource.com/skia.git/+log/9f8242377455..2d4045f55fd5

2023-09-29 johnstiles@google.com Add support for null child FPs to SkMesh.
2023-09-29 johnstiles@google.com Pass mesh children into MeshOp and Mesh geometry processor.
2023-09-29 kjlubick@google.com Add fontations gm to Bazel build of viewer

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,bungeman@google.com,jacksongardner@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
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
2023-09-29 17:15:01 +00:00
skia-flutter-autoroll
fa478742e8 Roll Skia from a80c164ffb8a to 9f8242377455 (1 revision) (flutter/engine#46406)
https://skia.googlesource.com/skia.git/+log/a80c164ffb8a..9f8242377455

2023-09-29 johnstiles@google.com Fix latent bug in fragmentProcessorHasCoordsParam.

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,bungeman@google.com,jacksongardner@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
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
2023-09-29 16:30:41 +00:00
gaaclarke
543348a044 [Impeller] Implements canvas recorder with trace serializer (flutter/engine#46376)
This implements a portion of impeller canvas recorder that just prints
log statements to understand what is getting rendered in impeller when
executing code from the framework. Eventually this should get moved to
the displaylist layer when we have golden and interactive tests at that
layer.

This was useful for me to debug a fidelity issue, the hope is that
others will find it useful and can expand it as necessary. Eventually
the recordings can be used to generate tests.

design doc:
[go/impeller-canvas-recorder](http://goto.google.com/impeller-canvas-recorder)

## 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].
- [ ] 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 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
[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
[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
2023-09-29 09:24:27 -07:00
skia-flutter-autoroll
bbc2d84b56 Roll Fuchsia Linux SDK from l2RxJKPfYn7QzGOoL... to vbw3Gwj-6eN7rSqb4... (flutter/engine#46401)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC jacksongardner@google.com,rmistry@google.com,zra@google.com 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
2023-09-29 10:13:13 +00:00
dependabot[bot]
4c923ebadc Bump webdriver from 3.0.2 to 3.0.3 in /lib/web_ui (flutter/engine#46400)
Bumps [webdriver](https://github.com/google/webdriver.dart) from 3.0.2 to 3.0.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/google/webdriver.dart/blob/master/CHANGELOG.md">webdriver's changelog</a>.</em></p>
<blockquote>
<h2>3.0.3</h2>
<ul>
<li>Include a content-type header when sending requests from <code>async_html.dart</code>.
The content-type is necessary for compatibility with GeckoDriver 0.27.0 and
newer versions.  The content-type header was already being sent in IO clients
for a long time, so only the HTML client had to be updated.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/google/webdriver.dart/commits">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=webdriver&package-manager=pub&previous-version=3.0.2&new-version=3.0.3)](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 show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@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>
2023-09-29 10:05:05 +00:00
Matej Knopp
d4d0a41bd7 [macOS] Ensure first responder is consistent during and after text input (flutter/engine#46032)
Fixes https://github.com/flutter/flutter/issues/134906
Fixes https://github.com/flutter/flutter/issues/133832

This ensures that there are only two first responder widgets -
`FlutterView` when text input is not active and `TextInputPlugin` when
text input is active. The PR also prevents `FlutterView` stealing first
responder status on mouse click events during text input.

Previously when `TextInputClient` resigned it made `nextResponder` the
first responder, but that was incorrect - `nextResponder` being the
superview (`FlutterViewWrapper`).

## 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 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
[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
[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
2023-09-29 11:02:42 +02:00
skia-flutter-autoroll
326aec6fdb Roll Skia from 08485e753e3a to 75033613a49f (2 revisions) (flutter/engine#46396)
https://skia.googlesource.com/skia.git/+log/08485e753e3a..75033613a49f

2023-09-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from d0c5366041fc to c8eb90e92f62 (2 revisions)
2023-09-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 1b2986736fd2 to a42cebae4e42 (19 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,bungeman@google.com,jacksongardner@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
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
2023-09-29 05:30:16 +00:00
Jonah Williams
2bcf0587ac [Impeller] revert stencil config changes. (flutter/engine#46386)
This was an experiment that didn't really pan out. Revert the changes to simplify rendering logic.
2023-09-28 22:39:06 +00:00
skia-flutter-autoroll
2a5bcd4802 Roll Skia from 33502f9b0c7d to 08485e753e3a (1 revision) (flutter/engine#46384)
https://skia.googlesource.com/skia.git/+log/33502f9b0c7d..08485e753e3a

2023-09-28 johnstiles@google.com Add emitTextureSamplersForFPs method to ProgramBuilder.

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,bungeman@google.com,jacksongardner@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
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
2023-09-28 22:18:07 +00:00
skia-flutter-autoroll
1fb03eae7e Roll Fuchsia Linux SDK from cu6apvEZ2P6zhishc... to l2RxJKPfYn7QzGOoL... (flutter/engine#46382)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC jacksongardner@google.com,rmistry@google.com,zra@google.com 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
2023-09-28 21:23:01 +00:00
gaaclarke
ffb68709ee Remove opacity layer dcheck. (flutter/engine#46160)
In https://github.com/flutter/flutter/issues/132849 it was found that rendering happens fine when this dcheck is removed.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-09-28 21:16:50 +00:00
Matan Lurey
3e3251147a Add initial support for 4x MSAA in OpenGLES backend. (flutter/engine#46381)
Initial support _towards_ https://github.com/flutter/flutter/issues/130045.

This updates the `PROC_TABLE`, and adds (and supports) `Type::kRenderBufferMultisampled`.

The type remains unused in the actual engine, and will be in a follow-up PR once we like this one!

/cc @chinmaygarde
2023-09-28 20:44:31 +00:00
Matej Knopp
fab42e688a Reland: [macOS] performKeyEquivalent cleanup (flutter/engine#46377)
Fixes the issue in original PR where `FlutterViewWrapper` does not pass the key equivalent to subviews thus prevents `TextInputPlugin` from receiving it. Also adds a regression test for this scenario.

Note that key equivalent flow does not respect the regular responder chain. It is passed from root view to down to subviews and if unhandled will be forwarded to menus.

Original message: 

https://github.com/flutter/engine/pull/40706 added a duplicate `NSEvent (KeyEquivalentMarker)` category. This PR removes it. It also removes the call to `markAsKeyEquivalent` from `FlutterViewController`. That call is internal to `FlutterTextInputPlugin` and classes outside should not be calling it.

*If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].*

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-09-28 20:41:11 +00:00
Matej Knopp
839d6adae7 [macOS] TextInputPlugin should mark navigation events in IME popover as handled (flutter/engine#46141)
Fixes https://github.com/flutter/flutter/issues/134699

Because of NSTextInputContext API limitations it is not straightforward to determine whether `TextInputPlugin` has handled a text equivalent event or whether it should pass it on. Previously we marked all event  that didn't result in a TextInputClient action as unhandled, but that's does not work for arrow key events while the IME popover is active.

This PR will mark arrow keys event as handled if there is active composition.

*If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].*

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-09-28 20:37:47 +00:00
gaaclarke
0a75ad30ae Removed unnecessary dynamic dispatch (flutter/engine#46369)
Small performance tweak.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-09-28 20:17:48 +00:00
Joel Winarske
40b832a838 [Impeller] Fix OpenGLES EGL_BAD_ACCESS due to context being current on multiple threads. (flutter/engine#46287)
On Linux setting the EGL context from one thread, then setting from another thread will trigger a EGL_BAD_ACCESS error.  The resolution is to clear the context after use on the thread that set it.

https://github.com/flutter/flutter/issues/130619
2023-09-28 20:10:09 +00:00
AJI
86b582a6bc Fix damage calculation when not providing populate_existing_damage for gl embedder (flutter/engine#45611)
# Description

This PR fixes the `gl_populate_existing_damage` in embedder.cc, which currently returns an empty rectangle when a full repaint is needed. This leads to the `frame_damage` being considered empty in rasterizer.cc, causing incorrect partial repaint within Flutter when `gl_populate_existing_damage` is not provided by the embedder.

# Related Issue

https://github.com/flutter/flutter/issues/119601

# Tests

Add a new test. Also fixes damage calculation related tests in EmbedderTest by

* Use a new Dart embedder fixture entry point `render_gradient_retained` which retains the old layer to make sure layer tree diff happens.
* Add `latch.Wait()` after `SetGLPresentCallback` to make sure assertions have been executed.
* Make `existing_damage_rects` static since it should be valid after `populate_existing_damage` returns.
2023-09-28 20:06:51 +00:00
Matej Knopp
c94d335b6b [macOS] FlutterTextInputPlugin should clip to bounds (flutter/engine#46142)
Fixes https://github.com/flutter/flutter/issues/135219
(formerly https://github.com/flutter/flutter/issues/128956)

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-09-28 19:05:55 +00:00
Chris Bracken
87e27ff202 Revert "[macOS] performKeyEquivalent cleanup (#45946)" (flutter/engine#46374)
This broke some keyboard shortcut handling (e.g. cmd-a to select all).

This reverts commit 0deacc6c7023789c4a75155e6798b3cccdc6384a.


## Pre-launch Checklist

- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I signed the [CLA].
- [ ] 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
[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
2023-09-28 10:45:11 -07:00
Matej Knopp
0deacc6c70 [macOS] performKeyEquivalent cleanup (flutter/engine#45946)
https://github.com/flutter/engine/pull/40706 added a duplicate `NSEvent (KeyEquivalentMarker)` category. This PR removes it. It also removes the call to `markAsKeyEquivalent` from `FlutterViewController`. That call is internal to `FlutterTextInputPlugin` and classes outside should not be calling it.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-09-28 17:28:47 +00:00
skia-flutter-autoroll
5b9610fed9 Roll Skia from bcbcb109bad6 to d8a71d549262 (1 revision) (flutter/engine#46367)
https://skia.googlesource.com/skia.git/+log/bcbcb109bad6..d8a71d549262

2023-09-28 jmbetancourt@google.com expose getSlotInfo to JS skottie bindings

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,bungeman@google.com,jacksongardner@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
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
2023-09-28 16:05:04 +00:00
skia-flutter-autoroll
da36ad6002 Manual roll Dart SDK from 7c3588c05f87 to 077d768accfa (11 revisions) (flutter/engine#46366)
Manual roll requested by zra@google.com

https://dart.googlesource.com/sdk.git/+log/7c3588c05f87..077d768accfa

2023-09-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-210.0.dev
2023-09-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-209.0.dev
2023-09-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-208.0.dev
2023-09-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-207.0.dev
2023-09-27 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-206.0.dev
2023-09-27 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-205.0.dev
2023-09-27 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-204.0.dev
2023-09-27 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-203.0.dev
2023-09-27 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-202.0.dev
2023-09-27 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-201.0.dev
2023-09-26 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.2.0-200.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter-engine
Please CC dart-vm-team@google.com,jacksongardner@google.com,zra@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: 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
2023-09-28 15:38:04 +00:00
Bruno Leroux
f732952384 [Android] Rename allowChannelBufferOverflow to `setWarnsOnChannelOv… (flutter/engine#46361)
## Description

This PR is a follow-up to https://github.com/flutter/engine/pull/44434 which introduces the `allowChannelBufferOverflow` function. It renames this function to `setWarnsOnChannelOverflow`.

The previous naming was inspired by the framework side implementation.
c00c022036/lib/ui/channel_buffers.dart (L574)

During the review of the iOS/macOS implementation, https://github.com/flutter/engine/pull/44848#discussion_r1310463864, we agreed that the existing naming is confusing because it implies that overflow will be allowed, but this not the case this function is used to enable/disable error messages when a channel overflows. 

## Related Issue

Follow-up for https://github.com/flutter/flutter/issues/132386.

## Tests

Updates 1 test.
2023-09-28 14:08:12 +00:00
skia-flutter-autoroll
2fa365eb17 Roll Skia from d410e03a6b9b to cfac8410d773 (1 revision) (flutter/engine#46362)
https://skia.googlesource.com/skia.git/+log/d410e03a6b9b..cfac8410d773

2023-09-28 kjlubick@google.com Expand //:core and introduce //:png_decode_codec et al

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,bungeman@google.com,jacksongardner@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
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
2023-09-28 13:03:33 +00:00
skia-flutter-autoroll
b8a3cc3bb2 Roll Fuchsia Linux SDK from 6Y22MutFhgL7ua18F... to cu6apvEZ2P6zhishc... (flutter/engine#46355)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter-engine
Please CC jacksongardner@google.com,rmistry@google.com,zra@google.com 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
2023-09-28 08:39:34 +00:00