22309 Commits

Author SHA1 Message Date
Jason Simmons
b4b589148b [Impeller] Return image decoder error messages to the Dart API (flutter/engine#42175)
Fixes https://github.com/flutter/flutter/issues/127061

See https://github.com/flutter/flutter/issues/126768
2023-05-22 20:43:05 +00:00
fzyzcjy
7387859481 Again a two-word super tiny typo (flutter/engine#42181)
Find this when reading source code today...

Btw, what about introducing a spell checker to Flutter source code? ;)

## 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 Hixie said 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
[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-05-22 13:28:16 -07:00
Chris Yang
b20b25128a Reland "[ios_platform_view] only recycle maskView when the view is applying mutators #41573" (flutter/engine#42115)
The original PR (https://github.com/flutter/engine/pull/41573) was reverted due to https://github.com/flutter/flutter/issues/126951

The issue will be fixed in https://github.com/flutter/engine/pull/42079

This needs to be landed after https://github.com/flutter/engine/pull/42079

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-05-22 20:10:37 +00:00
Jason Simmons
c40d8bbc8e [Impeller] Use untransformed text bounds to calculate the size of ColorSourceTextContents (flutter/engine#42142)
Previously this was attempting to invert the TransformBounds done by GetCoverage.  TransformBounds computes a bounding box of the transformed rectangle and can not be reversed.

Fixes https://github.com/flutter/flutter/issues/127103
2023-05-22 20:01:49 +00:00
Jonah Williams
19c071da39 [Impeller] Add UV compute shader. (flutter/engine#42192)
Adds a compute shader that computes the UV mapping for an arbitrary geometry. Use it with drawPoints since I didn't realize it was possible to use an image shader with this 😆 .
2023-05-22 20:01:47 +00:00
Jonah Williams
e4427e5c92 [Impeller] remove final cmd buffer waitUntilScheduled on physical iOS (flutter/engine#42160)
From local testing, this doesn't seem to be necessary on physical iOS devices, with or without platform views.
2023-05-22 20:00:37 +00:00
skia-flutter-autoroll
fee0f3ae59 Roll Skia from 2612bb159848 to d448fe07ea46 (5 revisions) (flutter/engine#42213)
https://skia.googlesource.com/skia.git/+log/2612bb159848..d448fe07ea46

2023-05-22 michaelludwig@google.com [skif] Remove dedicated SkDropShadowImageFilter implementation
2023-05-22 fmalita@chromium.org [skottie] Don't revalidate during render()
2023-05-22 michaelludwig@google.com [skif] Add FilterResult::Builder and update SkMergeImageFilter to use it
2023-05-22 michaelludwig@google.com Skip flaky tests in Xe and Radeon ANGLE D3D9
2023-05-22 kjlubick@google.com Update all versions of Bazelisk and add one for Intel Macs

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,rmistry@google.com,scroggo@google.com,zra@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-05-22 19:59:03 +00:00
Alexander Aprelev
88faba02e2 Skip and ignore boringssl/src/rust when looking for the licenses. (flutter/engine#42210)
third_party/boringssl/src/rust/bssl-crypto/deny.toml coming in as part of https://dart-review.googlesource.com/c/sdk/+/304210 triggers 'potential license' license script error.

Rust sources of boringssl are not included into flutter, don't need to be scanned for licenses.
2023-05-22 19:53:54 +00:00
Jonah Williams
6ee594c86f [Impeller] Create reusable prefix sum. (flutter/engine#42167)
Creates a reusable function macro for performing a prefix sum. Eventually, we'll need this for polyline decomposition

![image](https://github.com/flutter/engine/assets/8975114/3d9af2b2-f1ea-413a-ac1f-d4a69211388e)

Reasonably fast with max (1024) input elements.
2023-05-22 16:08:06 +00:00
skia-flutter-autoroll
80d986be9f Roll Skia from ef226c5a7930 to 2612bb159848 (1 revision) (flutter/engine#42209)
https://skia.googlesource.com/skia.git/+log/ef226c5a7930..2612bb159848

2023-05-22 kjlubick@google.com Remove GPU code from MaskFilters

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,rmistry@google.com,scroggo@google.com,zra@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-05-22 16:08:05 +00:00
skia-flutter-autoroll
82d77fd9ab Roll Skia from 76303a5498e9 to 79088c6b7a33 (2 revisions) (flutter/engine#42204)
https://skia.googlesource.com/skia.git/+log/76303a5498e9..79088c6b7a33

2023-05-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from a17cd49ee1eb to 19a1ee338aa1
2023-05-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from b6ae2e881c8b to a17cd49ee1eb (7 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,rmistry@google.com,scroggo@google.com,zra@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-05-22 07:27:35 +00:00
Tong Mu
4a01af4737 [macOS] Clean up unused methods in FlutterRenderer (flutter/engine#42196)
This PR removes the methods in `FlutterRenderer` that will never be
used.

These methods allows the engine to get a drawable and present a
drawable, but they will never be called on the macOS embedder. This is
because they go through the `FlutterMetalRendererConfig` struct to
`GPUSurfaceMetalSkia`, which is bypassed if the engine has a non-null
external view embedder, which the macOS always provides.

Removing these methods not only cleans up the code (and the confusion),
but also reduces the methods that might need to be migrated for the
multi-view project.

After this change, `FlutterRenderer` is left with very few
functionalities:
* It hosts `device` and `commandQueue`.
* It creates `FlutterRendererConfig`.
* It implements `FlutterTextureRegistry` and
`FlutterTextureRegistrarDelegate`, linking `FlutterTexture` and
`FlutterTextureRegistrar`.

We might want to refactor this class, but that's for the future.

## 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 Hixie said 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
[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-05-21 16:53:57 -07:00
skia-flutter-autoroll
b43f7317f1 Roll Skia from 5b2005e47bf3 to 2d4ea9542e83 (1 revision) (flutter/engine#42200)
https://skia.googlesource.com/skia.git/+log/5b2005e47bf3..2d4ea9542e83

2023-05-21 johnstiles@google.com Fix fuzzer-discovered issue with empty buffers.

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,rmistry@google.com,scroggo@google.com,zra@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-05-21 17:03:23 +00:00
skia-flutter-autoroll
e41cfec63d Roll Skia from 7c7dff949a27 to 5b2005e47bf3 (1 revision) (flutter/engine#42199)
https://skia.googlesource.com/skia.git/+log/7c7dff949a27..5b2005e47bf3

2023-05-21 johnstiles@google.com Reject SkSL programs that are larger than 8MB.

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,rmistry@google.com,scroggo@google.com,zra@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-05-21 15:12:05 +00:00
Kevin Lubick
7751d1c5eb Move SkSurface::MakeNull to SkSurfaces::Null (flutter/engine#42158)
In https://skia-review.googlesource.com/c/skia/+/696537 (and earlier in
https://skia-review.googlesource.com/c/skia/+/687639), Skia moved all
SkSurface factories. This changes the last calls of the old static
methods to the methods in the `SkSurfaces` namespace

## 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 Hixie said 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 `///`).
- [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
2023-05-20 10:11:44 -04:00
skia-flutter-autoroll
a98b701976 Roll Fuchsia Linux SDK from TWjmvLCOnYAUgAzvT... to c_fRDyBVZX-MwW5fS... (flutter/engine#42189)
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 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-05-20 10:20:23 +00:00
skia-flutter-autoroll
218a9ef722 Roll Skia from 7202b405f061 to b4a4782cf89d (19 revisions) (flutter/engine#42185)
https://skia.googlesource.com/skia.git/+log/7202b405f061..b4a4782cf89d

2023-05-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 68bc448fa901 to 44392282e953 (5 revisions)
2023-05-19 lovisolo@google.com [bazel] Remove SkImageAndroid.h from //include/android:public_hdrs.
2023-05-19 kjlubick@google.com Revert "Remove legacy SkSurface factories"
2023-05-19 johnstiles@google.com Add WGSL support for short-circuited expressions.
2023-05-19 johnstiles@google.com Add new SkSL tests to dm.
2023-05-19 armansito@google.com [vello] Support compiling the vello dependencies using Bazel
2023-05-19 penghuang@chromium.org dawn: use alpha version of BlendFactor for wgpu::BlendState::alpha
2023-05-19 johnstiles@google.com Implement non-trivial ternary expressions in WGSL.
2023-05-19 lovisolo@google.com [bazel] //tests/adb_test.bzl: Rewrite test runner in Go.
2023-05-19 jamesgk@google.com [graphite] Choose renderer before updating clip stack
2023-05-19 kjlubick@google.com Remove legacy SkSurface factories
2023-05-19 michaelludwig@google.com [skif] Remove legacy SkPictureImageFilter
2023-05-19 michaelludwig@google.com [skif] Update SkImageImageFilter to use FilterResult
2023-05-19 lovisolo@google.com [bazel] //tests/android.bzl: Rewrite tarball creation script in Go.
2023-05-19 johnstiles@google.com Allow WGSL expression generators to emit extra statements.
2023-05-19 johnstiles@google.com Add new 'Statement' level for operator precedence.
2023-05-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 3600ed906bb4 to 68bc448fa901 (3 revisions)
2023-05-19 kjlubick@google.com Speculative fixes for CreateDockerImage_Skia_Release
2023-05-19 lovisolo@google.com [bazel] BazelTest-* task schema: Add support for precompiled Android tests.

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,johnstiles@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 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-05-20 06:44:22 +00:00
Dan Field
f9b687885e [Impeller] avoid creating multiple concurrent message loops for Andorid Vulkan (flutter/engine#42146)
Fixes https://github.com/flutter/flutter/issues/127160

We should avoid creating multiple message loops that each have as many threads as processors on the machine.
2023-05-20 03:41:18 +00:00
Jackson Gardner
8812268345 Implement ImageFilter/ColorFilter/MaskFilter in Skwasm (flutter/engine#42088)
This implements https://github.com/flutter/flutter/issues/126342

This implements `ImageFilter`, `ColorFilter` and `MaskFilter` in Skwasm. This includes support on the `Paint` object, as well as the `SceneBuilder` layers that use these types.
2023-05-20 00:46:10 +00:00
gaaclarke
d18ae43605 [Impeller] Made other vulkan objects cleanup properly. (flutter/engine#42113)
fixes https://github.com/flutter/flutter/issues/127058

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-05-20 00:38:19 +00:00
ColdPaleLight
026967383a [Impeller] Fix the issue that 'coverage_coords' is incorrectly calculated in 'FillPathGeometry::GetPositionUVBuffer' (flutter/engine#42155)
fix https://github.com/flutter/flutter/issues/127183

## without patch
![3Q7pxQTjei](https://github.com/flutter/engine/assets/31977171/5d7ce98a-afef-4d42-96a4-b3524345e69a)
## whti patch
![LRG6o1t9mm](https://github.com/flutter/engine/assets/31977171/66c9c3f9-762c-4dc8-b10b-cde179a7bbc4)
2023-05-19 23:45:22 +00:00
chunhtai
dcfd92f566 Overrides accessibilityScrollToVisible (flutter/engine#42047)
fixes https://github.com/flutter/flutter/issues/61624

Observed behavior is that this method is called when an item is swipe-to-focusd in VoiceOver.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-05-19 22:02:05 +00:00
Chris Bracken
206d0974f7 [macOS] Extract PlatformView mutator clip updating (flutter/engine#42164)
Extracts `updatePathClipViewsWithPaths:origin:` which updates the stack of AppKit clip views hosting the platform view.

This change is a cleanup change for readability and makes no semantic changes to how mutator views are applied. Existing unit tests in [FlutterMutatorViewTest.mm](https://github.com/flutter/engine/blob/main/shell/platform/darwin/macos/framework/Source/FlutterMutatorViewTest.mm) are expected to pass without changes.

This is refactoring prior to applying a fix for rotation handling.

Issue: https://github.com/flutter/flutter/issues/124490

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-05-19 19:37:11 +00:00
htoor3
1046b076ce [web] Fix event offset for transformed widgets (and text input nodes). (flutter/engine#41870)
Text inputs have moved outside of the shadowDOM and are now using the pointer event offset calculation algorithm that platform views use.  However, transforms (e.g. scaling) applied to the input element aren't currently accounted for, which leads to incorrect offsets and clicks being registered inaccurately.

This PR attempts to transform those offset coordinates using the transform matrix data that is included in the geometry information sent over to `text_editing.dart` from the framework.

## Issues

* Fixes https://github.com/flutter/flutter/issues/125948 (text editing)
* Fixes https://github.com/flutter/flutter/issues/126661 (platform view scaling)
* Fixes https://github.com/flutter/flutter/issues/126754

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-05-19 19:25:58 +00:00
Zachary Anderson
079f084e48 Roll goldctl to f808dcff91b221ae313e540c09d79696cd08b8de (flutter/engine#42166)
Engine PR to match https://github.com/flutter/flutter/pull/127218
2023-05-19 19:06:49 +00:00
Brandon DeRosier
d650e423f1 [Impeller] Limit blur kernel to 1000x1000 pixels (flutter/engine#42154)
Resolves https://github.com/flutter/flutter/issues/127151.

This is the same internal limit that Skia uses.
2023-05-19 11:34:07 -07:00
skia-flutter-autoroll
215d6aad06 Roll Skia from 0a63dbe8cd15 to 7202b405f061 (1 revision) (flutter/engine#42162)
https://skia.googlesource.com/skia.git/+log/0a63dbe8cd15..7202b405f061

2023-05-19 jvanverth@google.com [graphite] Add some additional texture formats for Dawn backend.

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,johnstiles@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 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-05-19 17:29:05 +00:00
Jonah Williams
1c923dd421 [Impeller] Fix 1d threadgroup dispatch size, Implement drawPoint geometry computation with compute, fallback to specialized CPU. (flutter/engine#42060)
Compute shader implementation of https://github.com/flutter/engine/pull/41803

I found this to be generally more straightforward, and we can revisit the vertex shader approach with GLES.

Benchmark is pending here: https://github.com/flutter/flutter/pull/126728

Note: rendering behavior is identical even though this is now a single draw call. This is becuase strokes have overdraw prevention enabled by default, while this new contents does not

![image](https://github.com/flutter/engine/assets/8975114/29d84e0d-7be6-426a-b5e3-5226c1953a47)
2023-05-19 17:25:53 +00:00
Jonah Williams
edf62bb82b [Impeller] use host image upload path on simulator (flutter/engine#42161)
This might help with https://github.com/flutter/flutter/issues/126768#issuecomment-1554469333
2023-05-19 16:51:51 +00:00
hellohuanlin
ebe810b435 [floating_cursor_selection]add some comments on the tricky part (flutter/engine#42136)
Many parts of the floating cursor selection feature is pretty tricky. Some took me a while to figure out. So I added some comments to explain a bit for future readers. 

*List which issues are fixed by this PR. You must list at least one issue.*

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

*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-05-19 16:42:58 +00:00
skia-flutter-autoroll
17085a8d3d Roll Skia from 9cc604b2c3ed to 0a63dbe8cd15 (1 revision) (flutter/engine#42159)
https://skia.googlesource.com/skia.git/+log/9cc604b2c3ed..0a63dbe8cd15

2023-05-19 ccameron@chromium.org SkJpegCodec: Fix error in gainmap extraction

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,johnstiles@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 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-05-19 15:08:05 +00:00
Mouad Debbar
281dea65ad [web] Cleanup Vector3 (flutter/engine#42096)
We have limited use of `Vector3` in the engine, so I converted it into a record and removed almost all of its methods.

Converting it to a record also means it's not mutable anymore, which is a positive in my book. That required a few minor changes in `Matrix4` but nothing major.
2023-05-19 14:05:29 +00:00
skia-flutter-autoroll
df8fa2a9aa Roll Skia from 37e853069c04 to 9e38597c3757 (1 revision) (flutter/engine#42148)
https://skia.googlesource.com/skia.git/+log/37e853069c04..9e38597c3757

2023-05-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 588114bc957f to b6ae2e881c8b (8 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,johnstiles@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 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-05-19 07:25:01 +00:00
Bruno Leroux
72e6f7f567 [Android] Fix BasicMessageChannel.resizeChannelBuffer (flutter/engine#41982)
## Description

This PR updates `BasicMessageChannel.resizeChannelBuffer` implementation. Previous implementation builds a wrong `ByteBuffer` and was not tested so it is difficult to know when it stopped working.  

## Related Issue

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

## Tests

Adds 1 test.
2023-05-19 03:46:05 +00:00
Yegor
1811689d04 [web:a11y] support dialogs described by descendants (flutter/engine#42108)
Add a new `RouteName` semantic role for nodes with `namesRoute` set without a `scopesRoute`. Such nodes provide a description for the nearest ancestor dialog node. The web equivalent of this is when an element `role="dialog"` is described by pointing to one of its children using `aria-labelledby` and `aria-describedby`. Here's an example:

```
<div
  role="dialog"
  aria-labelledby="dialog1Title"
  aria-describedby="dialog1Desc">
  <h2 id="dialog1Title">Your personal details were successfully updated</h2>
  <p id="dialog1Desc">
    You can change your details at any time in the user account section.
  </p>
  <button>Close</button>
</div>
```

([Source](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/dialog_role))

Flutter currently does not distinguish between "labelled by" and "described by". In my testing, only `aria-describedby` resulted in an announcement of the dialog's description upon opening. `aria-labelledby` required that the dialog element itself be focusable, which is not the case. So I went with `aria-describedby`.

Fixes https://github.com/flutter/flutter/issues/126030
2023-05-19 00:25:19 +00:00
chunhtai
750599021c Makes android embedding to send full uri (flutter/engine#41836)
related https://github.com/flutter/flutter/issues/100624

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-05-18 23:38:17 +00:00
skia-flutter-autoroll
899c5f2304 Roll Skia from 2ffed2e4c6f8 to 8931359a74f1 (4 revisions) (flutter/engine#42139)
https://skia.googlesource.com/skia.git/+log/2ffed2e4c6f8..8931359a74f1

2023-05-18 johnstiles@google.com Always add braces when writing child statements in WGSL.
2023-05-18 johnstiles@google.com Eliminate DSLFunction entirely.
2023-05-18 michaelludwig@google.com [skif] Delete legacy SkColorFilterImageFilter impl
2023-05-18 michaelludwig@google.com [skif] Don't evaluate empty-source filters for SkNoDrawCanvases

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,johnstiles@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 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-05-18 23:32:30 +00:00
skia-flutter-autoroll
a8b4c20910 Roll Skia from ac47a05bf253 to 2ffed2e4c6f8 (8 revisions) (flutter/engine#42137)
https://skia.googlesource.com/skia.git/+log/ac47a05bf253..2ffed2e4c6f8

2023-05-18 lovisolo@google.com [bazel] Add "label" part to "BazelTest" task schema.
2023-05-18 robertphillips@google.com Expand Protected content tests
2023-05-18 brianosman@google.com Fix some anti-patterns in SkIcoCodec, unique_ptr assignment
2023-05-18 johnstiles@google.com Eliminate DSLVar.h entirely.
2023-05-18 johnstiles@google.com Remove unused DSLVar types.
2023-05-18 jvanverth@google.com [graphite] Add premul to alpha YUV images
2023-05-18 johnstiles@google.com Remove DSLCore entirely.
2023-05-18 johnstiles@google.com Remove ErrorReporter functions from DSLCore.

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,johnstiles@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 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-05-18 21:37:48 +00:00
Chris Bracken
49afcc0101 [macOS] Refactor PlatformView mutators (flutter/engine#42130)
This refactors `[FlutterMutatorView applyLayer:]` to split out orthogonal behaviour into smaller functions for better readability/maintainability.

Extracts:
* General transform composition to CATransformFromMutations
* Opacity handling
* MasterClip computation
* RoundedRectClip computation

This change is a cleanup change for readability and makes no semantic changes to how mutator views are applied. Existing unit tests in [FlutterMutatorViewTest.mm](https://github.com/flutter/engine/blob/main/shell/platform/darwin/macos/framework/Source/FlutterMutatorViewTest.mm) are expected to pass without changes.

This is refactoring prior to applying a fix for rotation handling.

Issue: https://github.com/flutter/flutter/issues/124490

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-05-18 20:41:05 +00:00
Bruno Leroux
d35d4dc958 [Android] Return keyboard pressed state (flutter/engine#41695)
## Description

This PR updates the Android engine in order to answer to keyboard pressed state queries from the framework (as implemented in https://github.com/flutter/flutter/pull/122885).

## Related Issue

Fixes https://github.com/flutter/flutter/issues/122441
Android engine implementation for https://github.com/flutter/flutter/issues/87391

## Tests

Adds 2 tests.
2023-05-18 20:35:21 +00:00
chunhtai
d21dc12d2f Make iOS embedding to send full uri for deeplinks (flutter/engine#41992)
related https://github.com/flutter/flutter/issues/100624

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-05-18 20:31:17 +00:00
Kevin Chisholm
0c46b09bbf Add configuration for automating release notes (flutter/engine#42132)
GitHub's automated changelog generation allows teams to setup a configuration file to determine how these changelogs will be generated.  

A similar file is available in flutter/flutter for release note generation.  As tags have been added to flutter/engine, we now have the ability to generate release notes in the same fashion.
2023-05-18 18:01:06 +00:00
skia-flutter-autoroll
fa4aa93e8d Roll Skia from 62841fa33e95 to ac47a05bf253 (9 revisions) (flutter/engine#42131)
https://skia.googlesource.com/skia.git/+log/62841fa33e95..ac47a05bf253

2023-05-18 jamesgk@google.com [graphite] Enable dual-src blending in Metal
2023-05-18 lovisolo@google.com [bazel] Add skia_android_unit_test macro.
2023-05-18 lovisolo@google.com [bazel] Reland reverted CLs due to broken G3 roll.
2023-05-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from b35367eac089 to f7b24ac464f9 (4 revisions)
2023-05-18 brianosman@google.com Fix SkString's move constructor
2023-05-18 ccameron@chromium.org HDR gainmaps: Require Version 1.0
2023-05-18 herb@google.com Split the cubic and quad into separate fuzzers
2023-05-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from 588114bc957f to 64efc3ca9c0e
2023-05-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 9de2cfb06593 to bcbf23c5f184 (7 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,johnstiles@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 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-05-18 17:59:18 +00:00
Jesse Seales
6e5c919f89 Vuln scan github actions permissions (flutter/engine#42099)
The lack of permissions on the vulnerability scanning github actions
yaml will cause all runs to fail at the upload SARIF to security tab
stage. This change adds the permissions for that stage to succeed.

A successful test run is can be seen here:
https://github.com/flutter/engine/actions/runs/5006551387/jobs/8971979211

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

## 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
2023-05-18 12:08:56 -04:00
skia-flutter-autoroll
b761a2d297 Roll Skia from ad8fa4a38668 to 62841fa33e95 (2 revisions) (flutter/engine#42123)
https://skia.googlesource.com/skia.git/+log/ad8fa4a38668..62841fa33e95

2023-05-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 28718d8b4108 to f549d5e6c663 (1 revision)
2023-05-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 8e2c784328a9 to 588114bc957f (7 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,johnstiles@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 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-05-18 16:05:51 +00:00
skia-flutter-autoroll
c3335ebe05 Roll Skia from ffa425bacfc4 to caff30d16ae7 (29 revisions) (flutter/engine#42116)
https://skia.googlesource.com/skia.git/+log/ffa425bacfc4..caff30d16ae7

2023-05-17 johnstiles@google.com Simplify if-else chain in releaseProgram.
2023-05-17 johnstiles@google.com Move Parser::Checkpoint out of the header.
2023-05-17 bungeman@google.com Regularize DirectWrite format handling
2023-05-17 bungeman@google.com Reorganize DirectWrite glyph representation selection
2023-05-17 michaelludwig@google.com [skif] Don't intersect against desired output unnecessarily
2023-05-17 johnstiles@google.com Migrate DSLCore::ReleaseProgram into Compiler.
2023-05-17 johnstiles@google.com Remove Declare(DSLGlobalVar) from DSLCore.
2023-05-17 johnstiles@google.com Eliminate src/sksl/dsl/priv directory.
2023-05-17 johnstiles@google.com Eliminate DSLWriter entirely.
2023-05-17 johnstiles@google.com Migrate DSLWriter::Var to VarDeclaration::Convert.
2023-05-17 nicolettep@google.com [graphite] Create & cache descriptor sets
2023-05-17 michaelludwig@google.com [skif] Update SkShaderImageFilter to use FilterResult
2023-05-17 jmbetancourt@google.com [skottie] add proxy to PropertyObserver
2023-05-17 brianosman@google.com Revert "Add src/cityhash"
2023-05-17 johnstiles@google.com Remove unreferenced header DSL.h.
2023-05-17 jamesgk@google.com [graphite] Enable framebuffer fetch on Metal
2023-05-17 jamesgk@google.com [graphite] Use framebuffer fetch when available
2023-05-17 kjlubick@google.com Move SkStrikeSpec::MakeSDFT to src/text/gpu
2023-05-17 kjlubick@google.com Enforce IWYU on SkStrike* and src/text/*
2023-05-17 brianosman@google.com Add src/cityhash
2023-05-17 jvanverth@google.com [graphite] Fix YV12 colors.
2023-05-17 johnstiles@google.com Disallow calling DSLWriter::Var more than once.
2023-05-17 jmbetancourt@google.com [skottie] accept a proxy for SlotManager's ResourceProvider
2023-05-17 johnstiles@google.com Delete dead code in DSLWriter.
2023-05-17 brianosman@google.com Move SkChecksum.h from include/private to src/core
2023-05-17 johnstiles@google.com Add TArray::reserve_exact for exact-fit sizing.
2023-05-17 kjlubick@google.com Delete unused shim image factory code
2023-05-17 jvanverth@google.com [graphite] Fix encoded origin for YUVA textures.
2023-05-17 johnstiles@google.com Move symbol-table parameter setup inside FunctionDeclaration.

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,johnstiles@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 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-05-18 02:25:22 +00:00
Chris Bracken
871632b29b [macOS] Clean up PlatformView mutator scaling (flutter/engine#42110)
When applying platform view mutators, the mutations array includes a
transform from logical to physical coordinates. Since Cocoa deals only
in logical points, we inject a physical to logical coordinate transform
to counteract this.

Rather than applying this multiple times throughout the
`[FlutterMutatorView applyFlutterLayer]` method we gather a list of
transforms that includes the additional physical to logical scale
transform.

This change is a cleanup change for readability and makes no semantic
changes to how mutator views are applied. Existing unit tests in
[FlutterMutatorViewTest.mm](https://github.com/flutter/engine/blob/main/shell/platform/darwin/macos/framework/Source/FlutterMutatorViewTest.mm)
are expected to pass without changes.

## 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.
- [ ] 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
2023-05-17 17:11:51 -07:00
Xilai Zhang
3b3f315061 [g3 roll] Revert "add non-rendering operation culling to DisplayListBuilder" (flutter/engine#42097)
temporary revert of flutter/engine#41463

context: b/283038609
2023-05-17 23:48:04 +00:00
skia-flutter-autoroll
be1a1d5cfe Roll Fuchsia Linux SDK from YrEDYUB9NKhirgo5s... to SDKw1RvH0dWiJXERo... (flutter/engine#42100)
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 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-05-17 19:56:04 +00:00
Jonah Williams
0b212a6348 [Impelller] fix flickering due to synchronization issues in compute tessellator. (flutter/engine#42076)
We must wait until the compute command buffer has completed before its safe to use the contents of that buffer. THis fixes the flickering I've observed when running the unit test locally.

Test only change, no impact to shipped code.
2023-05-17 18:57:15 +00:00