Skip to content

Conversation

@knopp
Copy link
Member

@knopp knopp commented Mar 4, 2025

Fixes #164564 (comment)

This would ensure that raster thread is completely done with the view, i.e. it won't try to use the opengl context, which might be associated with view window. So the client can know for sure, that when the callback returns, it is safe to destroy the view and container window.

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@flutter-dashboard

This comment was marked as outdated.

@github-actions github-actions bot added the engine flutter/engine related. See also e: labels. label Mar 4, 2025
@knopp knopp force-pushed the fix_remove_view_race branch 2 times, most recently from 7c315e7 to 5a238af Compare March 5, 2025 12:14
@knopp knopp changed the title WIP: [Embedder] Only call removeview callback when raster thread is done with the view [Embedder] Only call removeview callback when raster thread is done with the view Mar 5, 2025
@knopp knopp requested review from dkwingsmt and loic-sharma March 5, 2025 12:15
@knopp knopp force-pushed the fix_remove_view_race branch from ddcc3ad to 30c93ac Compare March 5, 2025 14:32
EmbedderConfigBuilder builder(context);
std::mutex engine_mutex;
UniqueEngine engine;
auto render_thread = CreateNewThread("custom_render_thread");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this mimicking the UI thread? Should we call it the UI thread instead?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's mimicking raster thread:

builder.SetRenderTaskRunner(
      &render_task_runner.GetFlutterTaskRunnerDescription());

Copy link
Member

@loic-sharma loic-sharma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me, but please also get an approval from @dkwingsmt if they have the cycles to review this.

Copy link
Contributor

@dkwingsmt dkwingsmt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thank you!

@dkwingsmt
Copy link
Contributor

dkwingsmt commented Mar 11, 2025

Interestingly, I remember that the reason I had to make the callback earlier than the raster thread is because I must not let the main thread block on raster threads, which is further because macOS's rendering mechanism makes raster threads block on main threads (FlutterThreadSynchronizer). I clearly remember that this caused deadlock during my development. However, I've tested this PR on multiview mvp and no deadlock is observed. So I guess it works.

@knopp
Copy link
Member Author

knopp commented Mar 11, 2025

Interestingly, I remember that the reason I had to make the callback earlier than the raster thread is because I must not let the main thread block on raster threads, which is further because macOS's rendering mechanism makes raster threads block on main threads (FlutterThreadSynchronizer). I clearly remember that this caused deadlock during my development. However, I've tested this PR on multiview mvp and no deadlock is observed. So I guess it works.

To elaborate on that: MacOS no longer blocks the raster thread. But even if it did, the waiting would simply need to account for it. Linux for example will block the raster thread during present once it has separate raster thread, but we have way to ensure raster thread progress while blocking main thread, so this can be done without deadlocking. The callback will post a "unblock" message on main thread and the main thread will be pumping flutter messages (ignoring platform main thread messages) until the "unblock" message comes.

All desktop platforms now have resize synchronization implemented in unified way where we are able to only process flutter posted messages on main loop (ignoring other system messages). This makes it possible to block on RemoveView while ensuring raster thread progress.

@knopp knopp force-pushed the fix_remove_view_race branch from 4c538a5 to 25b73c0 Compare March 11, 2025 09:22
@dkwingsmt
Copy link
Contributor

Thank you for the explanation! That sounds great!

@dkwingsmt
Copy link
Contributor

(Feel free to add auto-submit when you feel ready.)

@knopp
Copy link
Member Author

knopp commented Mar 12, 2025

(Feel free to add auto-submit when you feel ready.)

I think want to test this on Linux first after separate raster thread landed.

@chinmaygarde
Copy link
Member

Any progress on this? Perhaps we can split the effort.

@knopp knopp force-pushed the fix_remove_view_race branch from 25b73c0 to 7f9c2a6 Compare March 25, 2025 18:10
@knopp knopp closed this Mar 25, 2025
@knopp knopp reopened this Mar 25, 2025
@knopp
Copy link
Member Author

knopp commented Mar 25, 2025

I think this is good to go. To support multi-view properly on Linux we'll likely go with wayland subsurfaces / custom glx context (x11), which is quite far from current implementation and thus there is no much value in testing this against current Linux implementation.

@knopp knopp force-pushed the fix_remove_view_race branch 3 times, most recently from 5018974 to c1afc56 Compare March 31, 2025 15:10
@knopp
Copy link
Member Author

knopp commented Mar 31, 2025

This breaks Google Testing. Could somebody with access maybe provide some details?

@chinmaygarde
Copy link
Member

This breaks Google Testing. Could somebody with access maybe provide some details?

That presub is having trouble with engine PRs. If the other steps are good to go, I'll clear the flag and land this.

@knopp
Copy link
Member Author

knopp commented Mar 31, 2025

This breaks Google Testing. Could somebody with access maybe provide some details?

That presub is having trouble with engine PRs. If the other steps are good to go, I'll clear the flag and land this.

If you are sure about that go ahead. But it seems to fail pretty consistently with this PR (haven't seen it that much with others).

engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 8, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 8, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 8, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 8, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 8, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 8, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 9, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 9, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 9, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 9, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 9, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 9, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Apr 9, 2025
Manual roll requested by [email protected]

flutter/flutter@02f13c3...212064a

2025-04-06 [email protected] Roll Skia from 8f1638231e34 to da7929d79c28 (1 revision) (flutter/flutter#166657)
2025-04-06 [email protected] Roll Skia from 943df306bc3a to 8f1638231e34 (2 revisions) (flutter/flutter#166647)
2025-04-05 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[web] fix text selection offset in multi-line fields (#166565)" (flutter/flutter#166644)
2025-04-04 [email protected] Roll Skia from a7da13848085 to 943df306bc3a (8 revisions) (flutter/flutter#166609)
2025-04-04 [email protected] Adds semantics input type (flutter/flutter#165925)
2025-04-04 [email protected] Relands "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166598)
2025-04-04 [email protected] [web] fix text selection offset in multi-line fields (flutter/flutter#166565)
2025-04-04 [email protected] [Impeller] if drawTextFrame scale is massive, convert to Path. (flutter/flutter#166234)
2025-04-04 [email protected] [ Widget Previews ] Add `widget_preview_scaffold.shard` to test the `widget_preview_scaffold` template contents (flutter/flutter#166358)
2025-04-04 [email protected] [Embedder] Only call removeview callback when raster thread is done with the view (flutter/flutter#164571)
2025-04-04 [email protected] Roll Packages from 4a36dc6 to 267ac7b (2 revisions) (flutter/flutter#166583)
2025-04-04 [email protected] Roll Dart SDK from 4293d50dd30d to 87965ab4864e (3 revisions) (flutter/flutter#166571)
2025-04-04 [email protected] Disable firefox image_to_byte_data_test as a group. (flutter/flutter#166559)
2025-04-04 [email protected] Add x64 ddm variants (flutter/flutter#166511)
2025-04-04 [email protected] Roll Skia from af7ff0e98c4e to a7da13848085 (3 revisions) (flutter/flutter#166560)
2025-04-04 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166591)
2025-04-03 [email protected] Roll Dart SDK from d174ec16c3ea to 4293d50dd30d (1 revision) (flutter/flutter#166557)
2025-04-03 [email protected] Roll Skia from 5f65df75febd to af7ff0e98c4e (7 revisions) (flutter/flutter#166551)
2025-04-03 [email protected] [Impeller] Render conics without conversion from Flutter apps (flutter/flutter#166305)
2025-04-03 [email protected] Update localizations from console (flutter/flutter#166496)
2025-04-03 [email protected] Roll Fuchsia GN SDK from K_1kHDN1WfObPYHya... to jsZSHIOmQAs3URvWU... (flutter/flutter#166544)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: 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
nick-llewellyn pushed a commit to labrystechnology/flutter_packages that referenced this pull request Apr 23, 2025
)

Manual roll requested by [email protected]

flutter/flutter@02f13c3...212064a

2025-04-06 [email protected] Roll Skia from 8f1638231e34 to da7929d79c28 (1 revision) (flutter/flutter#166657)
2025-04-06 [email protected] Roll Skia from 943df306bc3a to 8f1638231e34 (2 revisions) (flutter/flutter#166647)
2025-04-05 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[web] fix text selection offset in multi-line fields (#166565)" (flutter/flutter#166644)
2025-04-04 [email protected] Roll Skia from a7da13848085 to 943df306bc3a (8 revisions) (flutter/flutter#166609)
2025-04-04 [email protected] Adds semantics input type (flutter/flutter#165925)
2025-04-04 [email protected] Relands "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166598)
2025-04-04 [email protected] [web] fix text selection offset in multi-line fields (flutter/flutter#166565)
2025-04-04 [email protected] [Impeller] if drawTextFrame scale is massive, convert to Path. (flutter/flutter#166234)
2025-04-04 [email protected] [ Widget Previews ] Add `widget_preview_scaffold.shard` to test the `widget_preview_scaffold` template contents (flutter/flutter#166358)
2025-04-04 [email protected] [Embedder] Only call removeview callback when raster thread is done with the view (flutter/flutter#164571)
2025-04-04 [email protected] Roll Packages from 4a36dc6 to 267ac7b (2 revisions) (flutter/flutter#166583)
2025-04-04 [email protected] Roll Dart SDK from 4293d50dd30d to 87965ab4864e (3 revisions) (flutter/flutter#166571)
2025-04-04 [email protected] Disable firefox image_to_byte_data_test as a group. (flutter/flutter#166559)
2025-04-04 [email protected] Add x64 ddm variants (flutter/flutter#166511)
2025-04-04 [email protected] Roll Skia from af7ff0e98c4e to a7da13848085 (3 revisions) (flutter/flutter#166560)
2025-04-04 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166591)
2025-04-03 [email protected] Roll Dart SDK from d174ec16c3ea to 4293d50dd30d (1 revision) (flutter/flutter#166557)
2025-04-03 [email protected] Roll Skia from 5f65df75febd to af7ff0e98c4e (7 revisions) (flutter/flutter#166551)
2025-04-03 [email protected] [Impeller] Render conics without conversion from Flutter apps (flutter/flutter#166305)
2025-04-03 [email protected] Update localizations from console (flutter/flutter#166496)
2025-04-03 [email protected] Roll Fuchsia GN SDK from K_1kHDN1WfObPYHya... to jsZSHIOmQAs3URvWU... (flutter/flutter#166544)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: 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
CodixNinja pushed a commit to CodixNinja/packages that referenced this pull request May 15, 2025
…(#9036)

Manual roll requested by [email protected]

flutter/flutter@02f13c3...212064a

2025-04-06 [email protected] Roll Skia from 8f1638231e34 to da7929d79c28 (1 revision) (flutter/flutter#166657)
2025-04-06 [email protected] Roll Skia from 943df306bc3a to 8f1638231e34 (2 revisions) (flutter/flutter#166647)
2025-04-05 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[web] fix text selection offset in multi-line fields (#166565)" (flutter/flutter#166644)
2025-04-04 [email protected] Roll Skia from a7da13848085 to 943df306bc3a (8 revisions) (flutter/flutter#166609)
2025-04-04 [email protected] Adds semantics input type (flutter/flutter#165925)
2025-04-04 [email protected] Relands "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166598)
2025-04-04 [email protected] [web] fix text selection offset in multi-line fields (flutter/flutter#166565)
2025-04-04 [email protected] [Impeller] if drawTextFrame scale is massive, convert to Path. (flutter/flutter#166234)
2025-04-04 [email protected] [ Widget Previews ] Add `widget_preview_scaffold.shard` to test the `widget_preview_scaffold` template contents (flutter/flutter#166358)
2025-04-04 [email protected] [Embedder] Only call removeview callback when raster thread is done with the view (flutter/flutter#164571)
2025-04-04 [email protected] Roll Packages from 95f8e65 to 57f42e1 (2 revisions) (flutter/flutter#166583)
2025-04-04 [email protected] Roll Dart SDK from 4293d50dd30d to 87965ab4864e (3 revisions) (flutter/flutter#166571)
2025-04-04 [email protected] Disable firefox image_to_byte_data_test as a group. (flutter/flutter#166559)
2025-04-04 [email protected] Add x64 ddm variants (flutter/flutter#166511)
2025-04-04 [email protected] Roll Skia from af7ff0e98c4e to a7da13848085 (3 revisions) (flutter/flutter#166560)
2025-04-04 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166591)
2025-04-03 [email protected] Roll Dart SDK from d174ec16c3ea to 4293d50dd30d (1 revision) (flutter/flutter#166557)
2025-04-03 [email protected] Roll Skia from 5f65df75febd to af7ff0e98c4e (7 revisions) (flutter/flutter#166551)
2025-04-03 [email protected] [Impeller] Render conics without conversion from Flutter apps (flutter/flutter#166305)
2025-04-03 [email protected] Update localizations from console (flutter/flutter#166496)
2025-04-03 [email protected] Roll Fuchsia GN SDK from K_1kHDN1WfObPYHya... to jsZSHIOmQAs3URvWU... (flutter/flutter#166544)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: 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
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
androidseb pushed a commit to androidseb/packages that referenced this pull request Jun 8, 2025
)

Manual roll requested by [email protected]

flutter/flutter@02f13c3...212064a

2025-04-06 [email protected] Roll Skia from 8f1638231e34 to da7929d79c28 (1 revision) (flutter/flutter#166657)
2025-04-06 [email protected] Roll Skia from 943df306bc3a to 8f1638231e34 (2 revisions) (flutter/flutter#166647)
2025-04-05 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[web] fix text selection offset in multi-line fields (#166565)" (flutter/flutter#166644)
2025-04-04 [email protected] Roll Skia from a7da13848085 to 943df306bc3a (8 revisions) (flutter/flutter#166609)
2025-04-04 [email protected] Adds semantics input type (flutter/flutter#165925)
2025-04-04 [email protected] Relands "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166598)
2025-04-04 [email protected] [web] fix text selection offset in multi-line fields (flutter/flutter#166565)
2025-04-04 [email protected] [Impeller] if drawTextFrame scale is massive, convert to Path. (flutter/flutter#166234)
2025-04-04 [email protected] [ Widget Previews ] Add `widget_preview_scaffold.shard` to test the `widget_preview_scaffold` template contents (flutter/flutter#166358)
2025-04-04 [email protected] [Embedder] Only call removeview callback when raster thread is done with the view (flutter/flutter#164571)
2025-04-04 [email protected] Roll Packages from 4a36dc6 to 267ac7b (2 revisions) (flutter/flutter#166583)
2025-04-04 [email protected] Roll Dart SDK from 4293d50dd30d to 87965ab4864e (3 revisions) (flutter/flutter#166571)
2025-04-04 [email protected] Disable firefox image_to_byte_data_test as a group. (flutter/flutter#166559)
2025-04-04 [email protected] Add x64 ddm variants (flutter/flutter#166511)
2025-04-04 [email protected] Roll Skia from af7ff0e98c4e to a7da13848085 (3 revisions) (flutter/flutter#166560)
2025-04-04 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166591)
2025-04-03 [email protected] Roll Dart SDK from d174ec16c3ea to 4293d50dd30d (1 revision) (flutter/flutter#166557)
2025-04-03 [email protected] Roll Skia from 5f65df75febd to af7ff0e98c4e (7 revisions) (flutter/flutter#166551)
2025-04-03 [email protected] [Impeller] Render conics without conversion from Flutter apps (flutter/flutter#166305)
2025-04-03 [email protected] Update localizations from console (flutter/flutter#166496)
2025-04-03 [email protected] Roll Fuchsia GN SDK from K_1kHDN1WfObPYHya... to jsZSHIOmQAs3URvWU... (flutter/flutter#166544)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: 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
zhangyuang pushed a commit to zhangyuang/flutter-fork that referenced this pull request Jun 9, 2025
…ith the view (flutter#164571)

Fixes
flutter#164564 (comment)

This would ensure that raster thread is completely done with the view,
i.e. it won't try to use the opengl context, which might be associated
with view window. So the client can know for sure, that when the
callback returns, it is safe to destroy the view and container window.

## 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: Loïc Sharma <[email protected]>
FMorschel pushed a commit to FMorschel/packages that referenced this pull request Jun 9, 2025
)

Manual roll requested by [email protected]

flutter/flutter@02f13c3...212064a

2025-04-06 [email protected] Roll Skia from 8f1638231e34 to da7929d79c28 (1 revision) (flutter/flutter#166657)
2025-04-06 [email protected] Roll Skia from 943df306bc3a to 8f1638231e34 (2 revisions) (flutter/flutter#166647)
2025-04-05 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[web] fix text selection offset in multi-line fields (#166565)" (flutter/flutter#166644)
2025-04-04 [email protected] Roll Skia from a7da13848085 to 943df306bc3a (8 revisions) (flutter/flutter#166609)
2025-04-04 [email protected] Adds semantics input type (flutter/flutter#165925)
2025-04-04 [email protected] Relands "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166598)
2025-04-04 [email protected] [web] fix text selection offset in multi-line fields (flutter/flutter#166565)
2025-04-04 [email protected] [Impeller] if drawTextFrame scale is massive, convert to Path. (flutter/flutter#166234)
2025-04-04 [email protected] [ Widget Previews ] Add `widget_preview_scaffold.shard` to test the `widget_preview_scaffold` template contents (flutter/flutter#166358)
2025-04-04 [email protected] [Embedder] Only call removeview callback when raster thread is done with the view (flutter/flutter#164571)
2025-04-04 [email protected] Roll Packages from 4a36dc6 to 267ac7b (2 revisions) (flutter/flutter#166583)
2025-04-04 [email protected] Roll Dart SDK from 4293d50dd30d to 87965ab4864e (3 revisions) (flutter/flutter#166571)
2025-04-04 [email protected] Disable firefox image_to_byte_data_test as a group. (flutter/flutter#166559)
2025-04-04 [email protected] Add x64 ddm variants (flutter/flutter#166511)
2025-04-04 [email protected] Roll Skia from af7ff0e98c4e to a7da13848085 (3 revisions) (flutter/flutter#166560)
2025-04-04 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166591)
2025-04-03 [email protected] Roll Dart SDK from d174ec16c3ea to 4293d50dd30d (1 revision) (flutter/flutter#166557)
2025-04-03 [email protected] Roll Skia from 5f65df75febd to af7ff0e98c4e (7 revisions) (flutter/flutter#166551)
2025-04-03 [email protected] [Impeller] Render conics without conversion from Flutter apps (flutter/flutter#166305)
2025-04-03 [email protected] Update localizations from console (flutter/flutter#166496)
2025-04-03 [email protected] Roll Fuchsia GN SDK from K_1kHDN1WfObPYHya... to jsZSHIOmQAs3URvWU... (flutter/flutter#166544)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: 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
Ortes pushed a commit to Ortes/packages that referenced this pull request Jun 25, 2025
)

Manual roll requested by [email protected]

flutter/flutter@02f13c3...212064a

2025-04-06 [email protected] Roll Skia from 8f1638231e34 to da7929d79c28 (1 revision) (flutter/flutter#166657)
2025-04-06 [email protected] Roll Skia from 943df306bc3a to 8f1638231e34 (2 revisions) (flutter/flutter#166647)
2025-04-05 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[web] fix text selection offset in multi-line fields (#166565)" (flutter/flutter#166644)
2025-04-04 [email protected] Roll Skia from a7da13848085 to 943df306bc3a (8 revisions) (flutter/flutter#166609)
2025-04-04 [email protected] Adds semantics input type (flutter/flutter#165925)
2025-04-04 [email protected] Relands "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166598)
2025-04-04 [email protected] [web] fix text selection offset in multi-line fields (flutter/flutter#166565)
2025-04-04 [email protected] [Impeller] if drawTextFrame scale is massive, convert to Path. (flutter/flutter#166234)
2025-04-04 [email protected] [ Widget Previews ] Add `widget_preview_scaffold.shard` to test the `widget_preview_scaffold` template contents (flutter/flutter#166358)
2025-04-04 [email protected] [Embedder] Only call removeview callback when raster thread is done with the view (flutter/flutter#164571)
2025-04-04 [email protected] Roll Packages from 4a36dc6 to 267ac7b (2 revisions) (flutter/flutter#166583)
2025-04-04 [email protected] Roll Dart SDK from 4293d50dd30d to 87965ab4864e (3 revisions) (flutter/flutter#166571)
2025-04-04 [email protected] Disable firefox image_to_byte_data_test as a group. (flutter/flutter#166559)
2025-04-04 [email protected] Add x64 ddm variants (flutter/flutter#166511)
2025-04-04 [email protected] Roll Skia from af7ff0e98c4e to a7da13848085 (3 revisions) (flutter/flutter#166560)
2025-04-04 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166591)
2025-04-03 [email protected] Roll Dart SDK from d174ec16c3ea to 4293d50dd30d (1 revision) (flutter/flutter#166557)
2025-04-03 [email protected] Roll Skia from 5f65df75febd to af7ff0e98c4e (7 revisions) (flutter/flutter#166551)
2025-04-03 [email protected] [Impeller] Render conics without conversion from Flutter apps (flutter/flutter#166305)
2025-04-03 [email protected] Update localizations from console (flutter/flutter#166496)
2025-04-03 [email protected] Roll Fuchsia GN SDK from K_1kHDN1WfObPYHya... to jsZSHIOmQAs3URvWU... (flutter/flutter#166544)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: 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
romanejaquez pushed a commit to romanejaquez/flutter that referenced this pull request Aug 14, 2025
…ith the view (flutter#164571)

Fixes
flutter#164564 (comment)

This would ensure that raster thread is completely done with the view,
i.e. it won't try to use the opengl context, which might be associated
with view window. So the client can know for sure, that when the
callback returns, it is safe to destroy the view and container window.

## 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: Loïc Sharma <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

engine flutter/engine related. See also e: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

FlutterEngineRemoveView may execute the callback too early

4 participants