macOS: port ResizeSynchronizer to Swift#168959
macOS: port ResizeSynchronizer to Swift#168959auto-submit[bot] merged 1 commit intoflutter:masterfrom
Conversation
3ce6b81 to
56272d5
Compare
6a64d0f to
1c42cfd
Compare
This patch: * migrates FlutterResizeSynchronizer from Objective-C to Swift. * reorders the performCommit parameters to support trailing closure syntax in Swift. * adds an optional onTimeout parameter to ResizeSynchronizer.beginResize. * adds test coverage for the timeout case. * significantly improves the class documentation. * adds the first Swift Testing tests for the macOS embedder. * adds the new tests to run_test.py. Issue: flutter#168564 Issue: flutter#144791
1c42cfd to
cc456ce
Compare
| /// provided to handle this event. | ||
| /// - Shutdown: The synchronization can be cleanly interrupted by calling `shutDown()`, which will | ||
| /// also unblock any pending `beginResize()` call. After shutdown, `beginResize()` will no | ||
| /// longer block. |
There was a problem hiding this comment.
Seems to me after shutdown, we stop synchronizing since isShuttingDown never becomes false again. May be worth adding to this comment?
There was a problem hiding this comment.
Oh or maybe that's what you meant by "will no longer block"
There was a problem hiding this comment.
Ah yep that's exactly what I mean.
i.e. no need to block any longer since when shutting down, the app is going away so there's no more need to synchronise window updates with flutter content updates.
engine/src/flutter/shell/platform/darwin/macos/framework/Source/ResizeSynchronizer.swift
Show resolved
Hide resolved
|
This seems to have negative impact on project navigation. SwiftLSP doesn't seem to be able to figure out the correct compilation options for swift files, so for example autocomplete for I tried generating compile_commands.json through This would be an unfortunate regression, given that autocomplete and code navigation currently works pretty much 100% with objc/clangd, and especially for people unfamiliar with parts of codebase being able to quickly navigate through the code can be very helpful. |
engine/src/flutter/shell/platform/darwin/macos/framework/Source/ResizeSynchronizer.swift
Show resolved
Hide resolved
engine/src/flutter/shell/platform/darwin/macos/framework/Source/ResizeSynchronizer.swift
Show resolved
Hide resolved
loic-sharma
left a comment
There was a problem hiding this comment.
Desktop resizing logic looks good to me, but I don't know Swift :)
Roll Flutter from 9a78af5 to 33cdd8e (60 revisions) flutter/flutter@9a78af5...33cdd8e 2025-05-21 [email protected] Feat: Add persistentFooterDecoration for scaffold (flutter/flutter#167524) 2025-05-21 [email protected] Removed repeated entry in `CHANGELOG.md` (flutter/flutter#165273) 2025-05-21 [email protected] [native assets] Graduate to preview (flutter/flutter#169194) 2025-05-21 [email protected] [Impeller] disable gl ext render to texture on vivante. (flutter/flutter#169153) 2025-05-21 [email protected] fix(widget_inspector): add null check for flex factor property to prevent exception (flutter/flutter#167890) 2025-05-21 [email protected] Unpin leak_tracker. (flutter/flutter#169079) 2025-05-21 [email protected] runtime/dart: fuchsia::io::MODE_TYPE_FILE -> V_TYPE_FILE (flutter/flutter#168952) 2025-05-21 [email protected] Remove `isExplicitPackageDependenciesEnabled: true`, it is the default. (flutter/flutter#169156) 2025-05-21 [email protected] Roll pub packages (flutter/flutter#169181) 2025-05-20 [email protected] Fix the issue with Tooltip (flutter/flutter#168546) 2025-05-20 [email protected] [native assets] Roll dependencies (flutter/flutter#169073) 2025-05-20 [email protected] Add documentation for experimental branches, update artifacts. (flutter/flutter#169109) 2025-05-20 [email protected] [flutter_tool] Remove unused environment flags in JS compiler (flutter/flutter#169097) 2025-05-20 [email protected] Add support for hiding widget subtrees from the widget inspector (flutter/flutter#169007) 2025-05-20 [email protected] Roll Fuchsia GN SDK from jsZSHIOmQAs3URvWU... to _tkqOQZ2qB5CxDe57... (flutter/flutter#169113) 2025-05-20 [email protected] Skip running `Linux fuchsia_test` on non-master channel. (flutter/flutter#169106) 2025-05-19 [email protected] Roll Skia from c97451da059f to 13a299964c9f (61 revisions) (flutter/flutter#169099) 2025-05-19 [email protected] Shared element transition for predictive back (flutter/flutter#154718) 2025-05-19 [email protected] Fix DDC library bundle format test files to correctly pass flags (flutter/flutter#169095) 2025-05-19 [email protected] Clean up redundant new line in the GPUSurfaceGLSkia constructor initializer list (flutter/flutter#169031) 2025-05-19 [email protected] Fix keyboard_hot_restart_ios flakes (flutter/flutter#168518) 2025-05-19 [email protected] fix android studio lint about lambda argument (flutter/flutter#168901) 2025-05-19 [email protected] Fix typo in gpu_surface_gl_impeller.cc (flutter/flutter#168395) 2025-05-19 [email protected] Modernize system executable detection across components (flutter/flutter#169018) 2025-05-19 [email protected] Update documentation for `Size` and `Rect` classes (flutter/flutter#168031) 2025-05-19 [email protected] Update the `RangeSlider` widget to the 2024 Material Design appearance (flutter/flutter#163736) 2025-05-19 [email protected] Roll Packages from 58d4016 to af0b9a9 (5 revisions) (flutter/flutter#169075) 2025-05-19 [email protected] Only bundle assets and plugins from transitive closure of dependencies (flutter/flutter#160443) 2025-05-19 [email protected] Make FlutterGeneratedPluginSwiftPackage an Xcode root package (flutter/flutter#168789) 2025-05-19 [email protected] docs: Update deprecation message for Slider.year2023 (flutter/flutter#169053) 2025-05-18 [email protected] macOS: port ResizeSynchronizer to Swift (flutter/flutter#168959) 2025-05-17 [email protected] Roll Dart SDK from dc323ec0c1a3 to 7c40eba6bf77 (3 revisions) (flutter/flutter#169024) 2025-05-17 [email protected] [tool] Remove unused `reportNullSafety` getter (flutter/flutter#168484) 2025-05-17 [email protected] Add flag to skip bundling extension safe builds in frameworks for DDM (flutter/flutter#168955) 2025-05-16 [email protected] Fixes Navigator calls onPopInvokedWithResult when onPopPage return false (flutter/flutter#168567) 2025-05-16 [email protected] [hcpp/hc] Fix talkback for HC and HCPP Android platform views (flutter/flutter#168939) 2025-05-16 [email protected] [Impeller] separate immutable sampler descriptors. (flutter/flutter#169011) 2025-05-16 [email protected] TextField magnifier stuck on long press cancel (flutter/flutter#167881) 2025-05-16 [email protected] Fix Chip delete button semantic bounds (flutter/flutter#168310) 2025-05-16 [email protected] Roll Fuchsia Linux SDK from Jj-iDG5uPOsFgY2_H... to XtPp9bBW49iDJ0wbA... (flutter/flutter#169009) 2025-05-16 [email protected] [ Widget Preview ] Refactor `@Preview()` detection and code generation (flutter/flutter#168307) 2025-05-16 [email protected] Roll Packages from 2dff621 to 58d4016 (2 revisions) (flutter/flutter#168999) 2025-05-16 [email protected] Remove `unittests` from `windows_host_engine` GN targets. (flutter/flutter#168991) 2025-05-16 [email protected] Fix bug with debugging support code not getting injected on edge devices (flutter/flutter#168073) 2025-05-16 [email protected] Roll Dart SDK from a1db62a5dd14 to dc323ec0c1a3 (4 revisions) (flutter/flutter#168989) 2025-05-16 [email protected] Resolve Cupertino textstyle in MaterialBasedCupertinoThemeData (flutter/flutter#167597) ...
Roll Flutter from 9a78af5 to 33cdd8e (60 revisions) flutter/flutter@9a78af5...33cdd8e 2025-05-21 [email protected] Feat: Add persistentFooterDecoration for scaffold (flutter/flutter#167524) 2025-05-21 [email protected] Removed repeated entry in `CHANGELOG.md` (flutter/flutter#165273) 2025-05-21 [email protected] [native assets] Graduate to preview (flutter/flutter#169194) 2025-05-21 [email protected] [Impeller] disable gl ext render to texture on vivante. (flutter/flutter#169153) 2025-05-21 [email protected] fix(widget_inspector): add null check for flex factor property to prevent exception (flutter/flutter#167890) 2025-05-21 [email protected] Unpin leak_tracker. (flutter/flutter#169079) 2025-05-21 [email protected] runtime/dart: fuchsia::io::MODE_TYPE_FILE -> V_TYPE_FILE (flutter/flutter#168952) 2025-05-21 [email protected] Remove `isExplicitPackageDependenciesEnabled: true`, it is the default. (flutter/flutter#169156) 2025-05-21 [email protected] Roll pub packages (flutter/flutter#169181) 2025-05-20 [email protected] Fix the issue with Tooltip (flutter/flutter#168546) 2025-05-20 [email protected] [native assets] Roll dependencies (flutter/flutter#169073) 2025-05-20 [email protected] Add documentation for experimental branches, update artifacts. (flutter/flutter#169109) 2025-05-20 [email protected] [flutter_tool] Remove unused environment flags in JS compiler (flutter/flutter#169097) 2025-05-20 [email protected] Add support for hiding widget subtrees from the widget inspector (flutter/flutter#169007) 2025-05-20 [email protected] Roll Fuchsia GN SDK from jsZSHIOmQAs3URvWU... to _tkqOQZ2qB5CxDe57... (flutter/flutter#169113) 2025-05-20 [email protected] Skip running `Linux fuchsia_test` on non-master channel. (flutter/flutter#169106) 2025-05-19 [email protected] Roll Skia from c97451da059f to 13a299964c9f (61 revisions) (flutter/flutter#169099) 2025-05-19 [email protected] Shared element transition for predictive back (flutter/flutter#154718) 2025-05-19 [email protected] Fix DDC library bundle format test files to correctly pass flags (flutter/flutter#169095) 2025-05-19 [email protected] Clean up redundant new line in the GPUSurfaceGLSkia constructor initializer list (flutter/flutter#169031) 2025-05-19 [email protected] Fix keyboard_hot_restart_ios flakes (flutter/flutter#168518) 2025-05-19 [email protected] fix android studio lint about lambda argument (flutter/flutter#168901) 2025-05-19 [email protected] Fix typo in gpu_surface_gl_impeller.cc (flutter/flutter#168395) 2025-05-19 [email protected] Modernize system executable detection across components (flutter/flutter#169018) 2025-05-19 [email protected] Update documentation for `Size` and `Rect` classes (flutter/flutter#168031) 2025-05-19 [email protected] Update the `RangeSlider` widget to the 2024 Material Design appearance (flutter/flutter#163736) 2025-05-19 [email protected] Roll Packages from 58d4016 to af0b9a9 (5 revisions) (flutter/flutter#169075) 2025-05-19 [email protected] Only bundle assets and plugins from transitive closure of dependencies (flutter/flutter#160443) 2025-05-19 [email protected] Make FlutterGeneratedPluginSwiftPackage an Xcode root package (flutter/flutter#168789) 2025-05-19 [email protected] docs: Update deprecation message for Slider.year2023 (flutter/flutter#169053) 2025-05-18 [email protected] macOS: port ResizeSynchronizer to Swift (flutter/flutter#168959) 2025-05-17 [email protected] Roll Dart SDK from dc323ec0c1a3 to 7c40eba6bf77 (3 revisions) (flutter/flutter#169024) 2025-05-17 [email protected] [tool] Remove unused `reportNullSafety` getter (flutter/flutter#168484) 2025-05-17 [email protected] Add flag to skip bundling extension safe builds in frameworks for DDM (flutter/flutter#168955) 2025-05-16 [email protected] Fixes Navigator calls onPopInvokedWithResult when onPopPage return false (flutter/flutter#168567) 2025-05-16 [email protected] [hcpp/hc] Fix talkback for HC and HCPP Android platform views (flutter/flutter#168939) 2025-05-16 [email protected] [Impeller] separate immutable sampler descriptors. (flutter/flutter#169011) 2025-05-16 [email protected] TextField magnifier stuck on long press cancel (flutter/flutter#167881) 2025-05-16 [email protected] Fix Chip delete button semantic bounds (flutter/flutter#168310) 2025-05-16 [email protected] Roll Fuchsia Linux SDK from Jj-iDG5uPOsFgY2_H... to XtPp9bBW49iDJ0wbA... (flutter/flutter#169009) 2025-05-16 [email protected] [ Widget Preview ] Refactor `@Preview()` detection and code generation (flutter/flutter#168307) 2025-05-16 [email protected] Roll Packages from 2dff621 to 58d4016 (2 revisions) (flutter/flutter#168999) 2025-05-16 [email protected] Remove `unittests` from `windows_host_engine` GN targets. (flutter/flutter#168991) 2025-05-16 [email protected] Fix bug with debugging support code not getting injected on edge devices (flutter/flutter#168073) 2025-05-16 [email protected] Roll Dart SDK from a1db62a5dd14 to dc323ec0c1a3 (4 revisions) (flutter/flutter#168989) 2025-05-16 [email protected] Resolve Cupertino textstyle in MaterialBasedCupertinoThemeData (flutter/flutter#167597) ...
Roll Flutter from 9a78af5 to 33cdd8e (60 revisions) flutter/flutter@9a78af5...33cdd8e 2025-05-21 [email protected] Feat: Add persistentFooterDecoration for scaffold (flutter/flutter#167524) 2025-05-21 [email protected] Removed repeated entry in `CHANGELOG.md` (flutter/flutter#165273) 2025-05-21 [email protected] [native assets] Graduate to preview (flutter/flutter#169194) 2025-05-21 [email protected] [Impeller] disable gl ext render to texture on vivante. (flutter/flutter#169153) 2025-05-21 [email protected] fix(widget_inspector): add null check for flex factor property to prevent exception (flutter/flutter#167890) 2025-05-21 [email protected] Unpin leak_tracker. (flutter/flutter#169079) 2025-05-21 [email protected] runtime/dart: fuchsia::io::MODE_TYPE_FILE -> V_TYPE_FILE (flutter/flutter#168952) 2025-05-21 [email protected] Remove `isExplicitPackageDependenciesEnabled: true`, it is the default. (flutter/flutter#169156) 2025-05-21 [email protected] Roll pub packages (flutter/flutter#169181) 2025-05-20 [email protected] Fix the issue with Tooltip (flutter/flutter#168546) 2025-05-20 [email protected] [native assets] Roll dependencies (flutter/flutter#169073) 2025-05-20 [email protected] Add documentation for experimental branches, update artifacts. (flutter/flutter#169109) 2025-05-20 [email protected] [flutter_tool] Remove unused environment flags in JS compiler (flutter/flutter#169097) 2025-05-20 [email protected] Add support for hiding widget subtrees from the widget inspector (flutter/flutter#169007) 2025-05-20 [email protected] Roll Fuchsia GN SDK from jsZSHIOmQAs3URvWU... to _tkqOQZ2qB5CxDe57... (flutter/flutter#169113) 2025-05-20 [email protected] Skip running `Linux fuchsia_test` on non-master channel. (flutter/flutter#169106) 2025-05-19 [email protected] Roll Skia from c97451da059f to 13a299964c9f (61 revisions) (flutter/flutter#169099) 2025-05-19 [email protected] Shared element transition for predictive back (flutter/flutter#154718) 2025-05-19 [email protected] Fix DDC library bundle format test files to correctly pass flags (flutter/flutter#169095) 2025-05-19 [email protected] Clean up redundant new line in the GPUSurfaceGLSkia constructor initializer list (flutter/flutter#169031) 2025-05-19 [email protected] Fix keyboard_hot_restart_ios flakes (flutter/flutter#168518) 2025-05-19 [email protected] fix android studio lint about lambda argument (flutter/flutter#168901) 2025-05-19 [email protected] Fix typo in gpu_surface_gl_impeller.cc (flutter/flutter#168395) 2025-05-19 [email protected] Modernize system executable detection across components (flutter/flutter#169018) 2025-05-19 [email protected] Update documentation for `Size` and `Rect` classes (flutter/flutter#168031) 2025-05-19 [email protected] Update the `RangeSlider` widget to the 2024 Material Design appearance (flutter/flutter#163736) 2025-05-19 [email protected] Roll Packages from 58d4016 to af0b9a9 (5 revisions) (flutter/flutter#169075) 2025-05-19 [email protected] Only bundle assets and plugins from transitive closure of dependencies (flutter/flutter#160443) 2025-05-19 [email protected] Make FlutterGeneratedPluginSwiftPackage an Xcode root package (flutter/flutter#168789) 2025-05-19 [email protected] docs: Update deprecation message for Slider.year2023 (flutter/flutter#169053) 2025-05-18 [email protected] macOS: port ResizeSynchronizer to Swift (flutter/flutter#168959) 2025-05-17 [email protected] Roll Dart SDK from dc323ec0c1a3 to 7c40eba6bf77 (3 revisions) (flutter/flutter#169024) 2025-05-17 [email protected] [tool] Remove unused `reportNullSafety` getter (flutter/flutter#168484) 2025-05-17 [email protected] Add flag to skip bundling extension safe builds in frameworks for DDM (flutter/flutter#168955) 2025-05-16 [email protected] Fixes Navigator calls onPopInvokedWithResult when onPopPage return false (flutter/flutter#168567) 2025-05-16 [email protected] [hcpp/hc] Fix talkback for HC and HCPP Android platform views (flutter/flutter#168939) 2025-05-16 [email protected] [Impeller] separate immutable sampler descriptors. (flutter/flutter#169011) 2025-05-16 [email protected] TextField magnifier stuck on long press cancel (flutter/flutter#167881) 2025-05-16 [email protected] Fix Chip delete button semantic bounds (flutter/flutter#168310) 2025-05-16 [email protected] Roll Fuchsia Linux SDK from Jj-iDG5uPOsFgY2_H... to XtPp9bBW49iDJ0wbA... (flutter/flutter#169009) 2025-05-16 [email protected] [ Widget Preview ] Refactor `@Preview()` detection and code generation (flutter/flutter#168307) 2025-05-16 [email protected] Roll Packages from 2dff621 to 58d4016 (2 revisions) (flutter/flutter#168999) 2025-05-16 [email protected] Remove `unittests` from `windows_host_engine` GN targets. (flutter/flutter#168991) 2025-05-16 [email protected] Fix bug with debugging support code not getting injected on edge devices (flutter/flutter#168073) 2025-05-16 [email protected] Roll Dart SDK from a1db62a5dd14 to dc323ec0c1a3 (4 revisions) (flutter/flutter#168989) 2025-05-16 [email protected] Resolve Cupertino textstyle in MaterialBasedCupertinoThemeData (flutter/flutter#167597) ...
This patch:
Admittedly, the original purpose was just to add a class that we could write Swift tests for, but things got a bit out of hand.
Issue: #168564
Issue: #144791
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.