Jonah Williams
4fef40c0f6
[Impeller] OpenGL MSAA for desktop/web devices. ( #163939 )
...
Add support for MSAA without the render to texture extension. This
allows our CI goldens to run with anti aliasing.
Fixes https://github.com/flutter/flutter/issues/158360 (again)
2025-03-10 23:16:28 +00:00
engine-flutter-autoroll
1beba504d9
Roll Skia from 95d0fb365d73 to b9f4a95a5976 (6 revisions) ( #164937 )
...
https://skia.googlesource.com/skia.git/+log/95d0fb365d73..b9f4a95a5976
2025-03-10 jvanverth@google.com Revert "[graphite] Add
TextAtlasManager::freeGpuResources()."
2025-03-10 bungeman@google.com Only call format_message when needed
2025-03-10 jvanverth@google.com [graphite] Add
TextAtlasManager::freeGpuResources().
2025-03-10 egdaniel@google.com Reland "Fix need query for copyOnWrite
for dual-proxies Ganesh images."
2025-03-10 jvanverth@google.com [graphite] Possible fixes for
ClipAtlasManager PGO crash.
2025-03-10 fmalita@google.com Suppress new tests on lottie-web perf bots
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 codefu@google.com ,danieldilan@google.com,kjlubick@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-10 23:06:54 +00:00
Jonah Williams
95e10121a8
[Impeller] Fixes to YUV imports on Android, Incomplete read of pipeline cache data, missing enabled extensions. ( #164744 )
...
- Handle textures that require a YUV import but aren't an undefined
format.
- INCOMPLETE is actually a success case for the pipeline cache. CERTAIN
drivers ALWAYS return incomplete, even when they wrote all the data.
Probably an off by one or something like that...
- Ensures Optional AndroidExtensions are enabled
- Only creates a YUV conversion if necessary
2025-03-10 22:43:36 +00:00
Jackson Gardner
b2a4a05683
[skwasm] Dynamic Threading ( #164748 )
...
This switches skwasm over from the emscripten pthreads implementation to
emscripten's "wasm workers" threading implementation. The pthreads
implementation simply will not run at all in a non-crossOriginIsolated
context, but the wasm workers implementation only fails if we actually
attempt to spawn a thread. This means we can actually choose whether to
use a single-threaded or multi-threaded strategy at runtime, which means
we don't have to build two variants of skwasm for single- vs
multi-threaded.
2025-03-10 21:23:29 +00:00
engine-flutter-autoroll
d6c4153332
Roll Fuchsia Linux SDK from U-zlyIZrZRbr9I6gv... to ngvNj-Ffcrgs_jPdQ... ( #164926 )
...
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
Please CC codefu@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-10 20:44:17 +00:00
engine-flutter-autoroll
ffaec10986
Roll Skia from 4ac86f17f2d4 to 95d0fb365d73 (3 revisions) ( #164917 )
...
https://skia.googlesource.com/skia.git/+log/4ac86f17f2d4..95d0fb365d73
2025-03-10 lukasza@chromium.org [rust png] Stop supporting old `png`
0.17 versions.
2025-03-10 kjlubick@google.com Remove legacy mismatched blit code
2025-03-10 tingshao@microsoft.com Move definition of
SkSVGDOM::MakeFromStream to cpp file
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 codefu@google.com ,danieldilan@google.com,kjlubick@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-10 18:09:35 +00:00
Jonah Williams
b16430b2fd
[macOS] Enable Impeller by default on macOS. ( #164572 )
...
Enables impeller by default on macOS devices. An opt out can still be
configured by passing --no-enable-impeller or using the
FLTEnableImpeller / NO setting in the Info.plist.
2025-03-10 16:19:21 +00:00
engine-flutter-autoroll
93c8ed0775
Roll Fuchsia Linux SDK from 6tAcm4hdtXPE55GJP... to U-zlyIZrZRbr9I6gv... ( #164868 )
...
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
Please CC codefu@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-09 16:36:24 +00:00
engine-flutter-autoroll
95aee5b6b8
Roll Fuchsia Linux SDK from ixl5bKWCqsRiYGvps... to 6tAcm4hdtXPE55GJP... ( #164838 )
...
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
Please CC codefu@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-08 14:24:30 +00:00
engine-flutter-autoroll
99d21c80d4
Roll Skia from b29851b2ada6 to 916caa2f0102 (1 revision) ( #164835 )
...
https://skia.googlesource.com/skia.git/+log/b29851b2ada6..916caa2f0102
2025-03-07 egdaniel@google.com Revert "Fix need query for copyOnWrite
for dual-proxies Ganesh images."
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 codefu@google.com ,kjlubick@google.com,michaelludwig@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-08 07:25:10 +00:00
Jonah Williams
a7e276a20d
[Impeller] add capability check for extended range formats. ( #164817 )
...
Fixes https://github.com/flutter/flutter/issues/164794
We support devices that do not support XR formats. If we try to decode
to an XR format this will fail at runtime.
2025-03-08 02:43:08 +00:00
Tong Mu
83781ae65c
RoundSuperellipse algorithm v3: Ultrawideband heuristic formula ( #164755 )
...
This PR revises the algorithm for RoundSuperellipses, replacing the
current "max ratio" approximation with an algorithm that works for
ratios from 2.0 to infinity.
The previous "max ratio" approximation, which replaces the middle of
edges with straight lines when the ratio is above 2.3, turns out to
produce results too close to classic RRects. After reexamining the
shapes and more calculation, I discovered that the max-ratio
approximation is flawed. Even squircles with with really high ratios
(~100) have a significant part of the edges that must not be
approximated by straight lines.
The new version is much closer to native.
### Comparison
Native: (Notice the long wedgy gap at the end of curves)
<img
src="https://github.com/user-attachments/assets/61b60191-7d45-4c49-9e09-b0422243cd8c "
width="400"/>
Before PR: (Notice the short wedgy gap at the end of curves)
<img
src="https://github.com/user-attachments/assets/15ea374b-4b16-4187-aaa4-94f432fbb61e "
width="400"/>
After PR:
<img
src="https://github.com/user-attachments/assets/973ef4d1-7c26-44a9-b45e-10d109d5618b "
width="400"/>
Another example (after PR). Even though the rectangular RSE has ratios
of around 4, there are still curvature near the middle section of edges,
which can be identified with the help of antialias pixels.
<img width="838" alt="image"
src="https://github.com/user-attachments/assets/5078d098-c582-48a8-81e5-615909def675 "
/>
### Details
I found that `n` has really good linearity towards larger ratios.
<img width="844" alt="image"
src="https://github.com/user-attachments/assets/73e99e45-a0f0-450b-8e2b-f6fd97082958 "
/>
I also found a good candidate for the precomputed unknown (called
`k_xJ`), which has a smooth curve at the beginning and almost straight
line towards larger `n`, removing the need to cap the scope of
application of the formula.
<img width="1203" alt="image"
src="https://github.com/user-attachments/assets/67664898-2dbd-4f00-a9ba-d76030cf3742 "
/>
The algorithm for paths are also updated in a similar way and
approximated the Bezier factors with heuristic formulae for bigger `n`s.
I've also verified that the path deviates from the geometry by no more
than 0.01% over the range of n [15, 100]
Theoretically removing "stretch" should simplify the algorithms.
Unfortunately I had to spend more lines to process cases of zero radii,
which were conveniently handled by stretches.
## 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], including [Features
we expect every widget to implement].
- [ ] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [ ] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [ ] 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/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-03-08 02:39:09 +00:00
engine-flutter-autoroll
8b29bc6d8a
Roll Skia from cbc7e99d6c2f to b29851b2ada6 (10 revisions) ( #164812 )
...
https://skia.googlesource.com/skia.git/+log/cbc7e99d6c2f..b29851b2ada6
2025-03-07 fmalita@google.com [skottie] Roll lottie-samples to include
new regression test assets
2025-03-07 bungeman@google.com Remove and de-duplicate Android FontMgr
streams
2025-03-07 egdaniel@google.com Fix need query for copyOnWrite for
dual-proxies Ganesh images.
2025-03-07 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
shaders-base from 81fa6c51b85b to 536def9c5709
2025-03-07 kjlubick@google.com Update documentation about rolling into
Chromium
2025-03-07 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
skottie-base from 7b44b80c0fac to 9ee87e7f230f
2025-03-07 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
debugger-app-base from cc91ae26ecef to bfb2f80c0482
2025-03-07 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
jsfiddle-base from 18808c894e65 to b07c254904bc
2025-03-07 lukasza@chromium.org [rust png] Update `png` from 0.17.15 to
0.18.0-rc
2025-03-07 michaelludwig@google.com [skif] Fix device-to-layer bounds
mapping
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 codefu@google.com ,kjlubick@google.com,michaelludwig@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-07 23:21:32 +00:00
Jonah Williams
74a8d79e14
[Impeller] dont redundantly set stencil reference on vulkan backend. ( #164763 )
...
Cache the last stencil reference in RenderPassVK. If the requested
stencil reference is set to the same value, don't update it on the cmd
buffer.
Hypothetical performance improvement, but easy to do.
2025-03-07 22:53:26 +00:00
Jason Simmons
c0e6f90652
Use Python 3.12 to run the yapf formatter if no lower version is available ( #164807 )
...
Python 3.12 still provides the dependencies required by yapf (such as
lib2to3)
2025-03-07 20:54:09 +00:00
Jason Simmons
d14d2505f3
[Impeller] Store the TextureGLES cached framebuffer object as a reactor handle ( #164761 )
...
TextureGLES references may be owned by garbage collected objects. If a
GC drops the last reference to a TextureGLES, then the TextureGLES
destructor will run on a thread that does not have an EGL context. That
will cause failures when the destructor tries to delete the cached FBO
held by the TextureGLES.
This PR replaces the raw FBO handle with a ReactorGLES untracked handle.
The ReactorGLES will schedule deletion of the underlying FBO on a thread
that can call GLES APIs.
2025-03-07 18:50:23 +00:00
engine-flutter-autoroll
d9f48174fc
Roll Skia from 79f8af105a61 to 32c1931117b8 (1 revision) ( #164782 )
...
https://skia.googlesource.com/skia.git/+log/79f8af105a61..32c1931117b8
2025-03-07 kjlubick@google.com Remove staging flag around
DawnTextureInfo
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 codefu@google.com ,kjlubick@google.com,michaelludwig@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-07 15:30:09 +00:00
engine-flutter-autoroll
e190868b71
Roll Fuchsia Linux SDK from fhm5z889sA5T1AQao... to ixl5bKWCqsRiYGvps... ( #164780 )
...
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
Please CC codefu@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-07 12:15:27 +00:00
Jim Graham
f1090285df
Clip layers reduce rrects and paths to simpler shapes when possible ( #164693 )
...
Flutter code can pass clips in the widget tree down as Path objects even
if they were originally simpler shapes. We now catch those
simplifications in the clip_*_layer code and perform reduced operations
in their place.
2025-03-07 05:01:22 +00:00
Jonah Williams
a45d325bad
[Impeller] test empty snapshot and allocation failure. ( #164668 )
...
Speculative fix for https://github.com/flutter/flutter/issues/164628
If our render target allocation failed, we need to bail out of toImage
so that we don't crash. Adds a test that simulates this by asking for a
0x0 texture.
2025-03-07 02:35:28 +00:00
engine-flutter-autoroll
dadb05cf8e
Roll Skia from 263308ea4386 to cc74d34e7e68 (2 revisions) ( #164746 )
...
https://skia.googlesource.com/skia.git/+log/263308ea4386..cc74d34e7e68
2025-03-06 bungeman@google.com Use SkTypefaceID instead of uint32_t
2025-03-06 bungeman@google.com Use SkGlyphID instead of uint16_t
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 codefu@google.com ,kjlubick@google.com,michaelludwig@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-07 00:07:42 +00:00
chunhtai
e0b9869468
Adds aria-controls support ( #163894 )
...
<!--
Thanks for filing a pull request!
Reviewers are typically assigned within a week of filing a request.
To learn more about code review, see our documentation on Tree Hygiene:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
-->
adding a new property in semantics properties called
controlsVisibilityOfNodes, where developer can assign
SemanticsProperties.identifier of other nodes to indicates which nodes'
visibilities this node controls
fixes https://github.com/flutter/flutter/issues/162125
## 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], including [Features
we expect every widget to implement].
- [ ] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [ ] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [ ] 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/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-03-06 22:41:09 +00:00
Jim Graham
66e910d27e
Migrate Mutators to DisplayList/Impeller geometry ( #164258 )
...
Mutator types and MutatorsStack will now use DisplayList/Impeller
geometry objects.
2025-03-06 21:27:51 +00:00
engine-flutter-autoroll
50f6b48e85
Roll Skia from ccd8cc23aa94 to 263308ea4386 (1 revision) ( #164728 )
...
https://skia.googlesource.com/skia.git/+log/ccd8cc23aa94..263308ea4386
2025-03-06 jamesgk@google.com [graphite] Specialization for clamp image
tiling
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 codefu@google.com ,kjlubick@google.com,michaelludwig@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-06 19:42:07 +00:00
engine-flutter-autoroll
321fbc0e7e
Roll Skia from fefecd49e03a to ccd8cc23aa94 (1 revision) ( #164712 )
...
https://skia.googlesource.com/skia.git/+log/fefecd49e03a..ccd8cc23aa94
2025-03-06 kjlubick@google.com Style and readability cleanups for
MaskFilterBase and DrawBase
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 codefu@google.com ,kjlubick@google.com,michaelludwig@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-06 15:22:29 +00:00
Mouad Debbar
d778ed25a4
[web] Detect scrollable semantics nodes more reliably ( #164491 )
...
When a text field is inside a scrollable, and the virtual keyboard shows
up, it (sometimes) makes the scrollable semantics node have a 0 extent.
In that case, the scrollable node has no scroll actions attached. In the
web engine, we detect that as a change of roles (from scrollable to
generic) which causes a DOM mutation above the text field, so the
browser shifts focus to the `<body>`.
In order to avoid this bug, this PR changes how we detect a scrollable
node by checking for the
[`hasImplicitScrolling`](https://api.flutter.dev/flutter/dart-ui/SemanticsFlag/hasImplicitScrolling-constant.html )
flag.
Fixes https://github.com/flutter/flutter/issues/154741
2025-03-06 14:56:27 +00:00
Matthew Kosarek
099e6d39fe
[windows] wire the focus request and the focus events through the Windows platform ( #164296 )
...
## What's changed?
- When a view is focused or unfocused, an event is now sent to the
engine. This makes it so the proper view has focus when the
corresponding window is focused. Thus, global shortcuts now work across
views 🎉
- Applications can request for a particular view to be focused, which
causes the corresponding window to be focused
- Wrote unit tests for all of this
## How To Test
1. Merge `windows/view_focus_event` into
[canonical/foundation](https://github.com/canonical/flutter/tree/foundation )
2. Create a new app:
```dart
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() {
final RegularWindowController controller1 = RegularWindowController(size: const Size(640, 480));
final RegularWindowController controller2 = RegularWindowController(size: const Size(640, 480));
runWidget(ViewCollection(
views: [
RegularWindow(controller: controller1, child: MyApp(otherController: controller2)),
RegularWindow(controller: controller2, child: MyApp(otherController: controller1)),
]
));
}
class IncrementIntent extends Intent {
const IncrementIntent();
}
class MyApp extends StatelessWidget {
const MyApp({super.key, required this.otherController});
final RegularWindowController otherController;
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Shortcut Counter',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: CounterPage(otherController: otherController),
);
}
}
class CounterPage extends StatefulWidget {
const CounterPage({super.key, required this.otherController});
final RegularWindowController otherController;
@override
_CounterPageState createState() => _CounterPageState();
}
class _CounterPageState extends State<CounterPage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Shortcuts(
shortcuts: {
LogicalKeySet(LogicalKeyboardKey.space): const IncrementIntent(),
},
child: Actions(
actions: {
IncrementIntent: CallbackAction<IncrementIntent>(onInvoke: (intent) {
_incrementCounter();
return null;
}),
},
child: Focus(
autofocus: true,
child: Scaffold(
appBar: AppBar(title: const Text('Shortcut Counter')),
body: Center(
child: Column(children: [Text(
'Counter: $_counter',
style: const TextStyle(fontSize: 24),
),
OutlinedButton(onPressed: () {
WidgetsBinding.instance.platformDispatcher.requestViewFocusChange(
direction: ViewFocusDirection.forward,
state: ViewFocusState.focused,
viewId: widget.otherController.rootView.viewId,
);
}, child: const Text('Focus other window'))]),
),
),
),
),
);
}
}
```
3. Run with:
```
flutter run --debug --local-engine-src-path C:/dev/flutter/engine/src/ --local-engine host_debug_unopt --local-engine-host host_debug_unopt lib/main.dart --enable-multi-window
```
4. Pressing spacebar while either window is focused should make the
corresponding counter go up
5. Clicking the button on either window should make the other window
become focused
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [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/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-03-06 13:42:52 +00:00
engine-flutter-autoroll
78d5a95a52
Roll Skia from 0c3880f94970 to e315b0ab7c84 (1 revision) ( #164669 )
...
https://skia.googlesource.com/skia.git/+log/0c3880f94970..e315b0ab7c84
2025-03-05 kjlubick@google.com Add chromium-specific tools for dealing
with SkPMColor
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 codefu@google.com ,kjlubick@google.com,michaelludwig@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-06 02:10:42 +00:00
Jonah Williams
80913c3389
[Impeller] use device private on non-iOS devices. ( #164601 )
...
Redo of https://github.com/flutter/flutter/pull/164573
Fixes https://github.com/flutter/flutter/issues/136365
Fixes https://github.com/flutter/flutter/issues/134399
We should avoid using "host visible" textures outside of iOS, which
besides arm macs, is the only place they are supported. Deletes a test
that was completely invalid because it was testing a feature "the gpu
sync switch aka iOS background check" that was never used in mutli_frame
image codecs.
2025-03-06 00:32:20 +00:00
engine-flutter-autoroll
27030bb245
Roll Skia from 43294a662fd0 to 0c3880f94970 (1 revision) ( #164661 )
...
https://skia.googlesource.com/skia.git/+log/43294a662fd0..0c3880f94970
2025-03-05 michaelludwig@google.com [graphite] Add universal
TextureFormat enum
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 codefu@google.com ,kjlubick@google.com,michaelludwig@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-05 23:52:19 +00:00
engine-flutter-autoroll
0e43c50faa
Roll Skia from 4cf9f0b77d41 to 43294a662fd0 (4 revisions) ( #164649 )
...
https://skia.googlesource.com/skia.git/+log/4cf9f0b77d41..43294a662fd0
2025-03-05 kjlubick@google.com Remove outdated SK_GANESH documentation
from SkUserConfig.h
2025-03-05 bungeman@google.com Roll HarfBuzz from a070f9eb to ca3cd48f
(502 commits)
2025-03-05 lukasza@chromium.org [rust png] Update `cxx` from 1.0.135 to
1.0.143.
2025-03-05 bungeman@google.com Roll FreeType from 59320b2d to 5d4e649f
(46 commits)
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 codefu@google.com ,kjlubick@google.com,michaelludwig@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-05 21:33:06 +00:00
gaaclarke
fef2adca24
Cleanup content context ( #164229 )
...
cleanup followup to https://github.com/flutter/flutter/pull/164058
This is just a refactor that makes content_context.h more manageable.
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [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/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-03-05 21:07:25 +00:00
Jonah Williams
1cd6cb0cdc
[Impeller] fix macOS managed memory. ( #164635 )
...
Still crashes with non UMA GPU. Reason is that the if check is using
`MTLResourceStorageModeManaged` when it should be using
`MTLStorageModeManaged`
Fixes https://github.com/flutter/flutter/issues/163218
2025-03-05 20:40:20 +00:00
Jackson Gardner
1e9676fc95
[skwasm] Clear font collection cache when font is loaded manually. ( #164588 )
...
This addresses https://github.com/flutter/flutter/issues/159375
We just need to clear the font collection's cache if we added a font via
the `loadFontFromList` API.
2025-03-05 18:23:20 +00:00
Gray Mackall
1301475873
Implement clipPath
Mutator for hcpp ( #164525 )
...
Implements `clipPath` mutator for hcpp.
Fixes https://github.com/flutter/flutter/issues/164219
https://github.com/user-attachments/assets/2c98e621-c73e-40ca-bc76-77de1a3826a0
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [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/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
---------
Co-authored-by: Gray Mackall <mackall@google.com>
2025-03-05 06:45:21 +00:00
auto-submit[bot]
ca9d3b018a
Reverts "[Impeller] use DeviceLocal textures for gifs on non-iOS devices. ( #164573 )" ( #164600 )
...
<!-- start_original_pr_link -->
Reverts: flutter/flutter#164573
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: jonahwilliams
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: le crash
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: jonahwilliams
<!-- end_original_pr_author -->
<!-- start_reviewers -->
Reviewed By: {matanlurey}
<!-- end_reviewers -->
<!-- start_revert_body -->
This change reverts the following previous change:
Part of https://github.com/flutter/flutter/issues/136365 ,
https://github.com/flutter/flutter/issues/134399
We only use DeviceLocal on iOS to work around background requirements.
On other platforms there is no need for this.
<!-- end_revert_body -->
Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2025-03-05 05:45:26 +00:00
Jonah Williams
ccf99229c7
[macos] prefer integrated GPU. ( #164569 )
...
Attempted fix for https://github.com/flutter/flutter/issues/163218
There are very few macOS devices with multiple GPUs and they were only
brielfy sold. We seem to have a problem o the specific devices when
choosing the dedicated GPU. INstead, lets try forcing the integrated GPU
when its available.
2025-03-05 03:24:27 +00:00
engine-flutter-autoroll
c35fd09792
Roll Skia from 46705a22edc3 to 03a3f653d64e (1 revision) ( #164590 )
...
https://skia.googlesource.com/skia.git/+log/46705a22edc3..03a3f653d64e
2025-03-04 jamesgk@google.com [graphite] Don't statically initialize
objects
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 codefu@google.com ,kjlubick@google.com,michaelludwig@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-05 01:58:11 +00:00
Paul Sturm
99d265e484
when resetting FlutterPlatformViewsController, clear out some additional internal state to prevent it from carrying over across a Hot Restart ( #164456 )
...
<!--
Thanks for filing a pull request!
Reviewers are typically assigned within a week of filing a request.
To learn more about code review, see our documentation on Tree Hygiene:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
-->
When performing a Hot Restart on iOS in an app that uses PlatformViews,
a "recreating_view" PlatformException can be thrown. This happens
because some of the state of FlutterPlatformViewsController is not
cleared as part of the Hot Restart. Specifically,
`self.previousCompositionOrder` will have its previous value from before
the Hot Restart. The fix here clears that state as part of the Hot
Restart.
Fixes https://github.com/flutter/flutter/issues/163935
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [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/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-03-05 00:53:43 +00:00
engine-flutter-autoroll
f3d0f5a2ca
Roll Fuchsia Linux SDK from Rt6pxGFLVAJHduM0V... to fhm5z889sA5T1AQao... ( #164583 )
...
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
Please CC codefu@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-05 00:49:27 +00:00
Jonah Williams
80aefeb01e
[Impeller] use DeviceLocal textures for gifs on non-iOS devices. ( #164573 )
...
Part of https://github.com/flutter/flutter/issues/136365 ,
https://github.com/flutter/flutter/issues/134399
We only use DeviceLocal on iOS to work around background requirements.
On other platforms there is no need for this.
2025-03-04 22:49:22 +00:00
Loïc Sharma
7e2b4e8f86
[Web] Improve onboarding docs ( #164246 )
2025-03-04 19:20:28 +00:00
engine-flutter-autoroll
db8dde6564
Roll Skia from 15b0d7575e64 to 20266c9ca4c0 (3 revisions) ( #164558 )
...
https://skia.googlesource.com/skia.git/+log/15b0d7575e64..20266c9ca4c0
2025-03-04 jamesgk@google.com [graphite] Take SkColorInfo array as
argument to precomp image object
2025-03-04 kjlubick@google.com Make ARGB32 blitting more consistent on
x64 and NEON (arm) codepaths
2025-03-04 hcm@google.com Merge 6 release notes into RELEASE_NOTES.md
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 codefu@google.com ,kjlubick@google.com,michaelludwig@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-04 18:39:08 +00:00
Alexander Aprelev
ae7388838c
Reland dart sdks that were causing dartaotruntime issues in g3 ( #164307 ) ( #164554 )
...
This reverts commit 6ec7ae3a1c0bc9e32bdbb7e53da216ec35404bcb as g3 is
believed to be in a good state to receive dart sdk changes.
2025-03-04 18:01:28 +00:00
Jason Simmons
47a710ba99
Move flutter/third_party/txt into flutter/txt ( #164248 )
...
The flutter/txt library does not currently contain any third-party code.
2025-03-04 16:13:40 +00:00
engine-flutter-autoroll
6da9f78b22
Roll Skia from f8f5c61d4197 to 15b0d7575e64 (1 revision) ( #164547 )
...
https://skia.googlesource.com/skia.git/+log/f8f5c61d4197..15b0d7575e64
2025-03-04 hcm@google.com Update Skia milestone to 136
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 codefu@google.com ,kjlubick@google.com,michaelludwig@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-04 16:02:10 +00:00
Robert Ancell
3b884b0871
Don't process cursor changes until view is realized. ( #164349 )
...
For views created with fl_view_new_for_engine() the cursor processing
was subscribed to before the window had realized. This caused the
following warnings on startup:
[+3105 ms] (com.example.flutter_multi_view_test:619234): Gdk-CRITICAL
**: 13:00:35.501: gdk_window_get_display: assertion 'GDK_IS_WINDOW
(window)' failed
[ ] (com.example.flutter_multi_view_test:619234): Gdk-CRITICAL **:
13:00:35.501: gdk_cursor_new_from_name: assertion 'GDK_IS_DISPLAY
(display)' failed
[ ] (com.example.flutter_multi_view_test:619234): Gdk-CRITICAL **:
13:00:35.501: gdk_window_set_cursor: assertion 'GDK_IS_WINDOW (window)'
failed
Co-authored-by: Matthew Kosarek <matt.kosarek@canonical.com>
2025-03-04 15:37:02 +00:00
Matthew Kosarek
9246b02af1
feature: make the text input plugin use the correct view on the Windows platform ( #163847 )
...
## What's new?
- Updates the `TextInput.setClient` method to expect a view ID, which is
already being sent up by clients. This makes it so that the IME info
shows on the text input correctly across views 🎉 . Also - text input
on windows works properly across views (although it was working before
too)
- Using the view ID in `TextInputPlugin::HandleMethodCall` to resolve
the view
- Update tests to no longer assume that we are using the implicit view
id
- Add two tests to ensure that the view id is set
## What's fixed?
- Partially fixes: https://github.com/flutter/flutter/issues/142845
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [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/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-03-04 15:22:20 +00:00
engine-flutter-autoroll
98bedbe313
Roll Skia from 52d06100a044 to 6912d66c0c7a (1 revision) ( #164526 )
...
https://skia.googlesource.com/skia.git/+log/52d06100a044..6912d66c0c7a
2025-03-04 lokokung@google.com [dawn][headers] Removes use of ifdef for
Descriptor change.
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 kjlubick@google.com ,matanl@google.com,michaelludwig@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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-04 02:42:44 +00:00
Chris Bracken
88f8104411
Eliminate platform-specific logging in core engine ( #164522 )
...
In f4d1c89df1329f8b868812e360409ec06f7abed1 (flutter/engine#25402 ),
logging was extracted into the embedder API. In subsequent patches, this
logic was extracted into the iOS, Android, macOS, Windows, and Linux
embedders. The platform-specific fallback logging in `ui_dart_state.cc`
is therefore no longer necessary and should not exist in the
platform-portable engine.
For referece, platform-specific logging can now be found in the
following locations:
iOS:
060e159d53/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm (L74-L84)
Android:
ad3d8f5934/engine/src/flutter/shell/platform/android/flutter_main.cc (L175-L179)
Embedder API:
ad3d8f5934/engine/src/flutter/shell/platform/embedder/embedder.cc (L2096-L2104)
macOS:
ad3d8f5934/engine/src/flutter/shell/platform/darwin/macos/framework/Source/FlutterEngine.mm (L643-L649)
Windows and Linux are extracted in this patch, and the fallback to log
to stdout is moved into the embedder API shim.
No test changes since this is a refactoring with no behaviour changes,
and covered by existing tests, such as:
ad3d8f5934/engine/src/flutter/shell/platform/darwin/macos/framework/Source/FlutterEngineTest.mm (L205-L225)
## Pre-launch Checklist
- [X] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [X] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [X] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [X] I signed the [CLA].
- [X] I listed at least one issue that this PR fixes in the description
above.
- [X] I updated/added relevant documentation (doc comments with `///`).
- [X] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [X] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [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/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-03-04 02:34:32 +00:00