Repository navigation
[video_player] Fix crash regression with async calls on iOS/macOS - #13383
Merged
auto-submit[bot] merged 3 commits intoOct 23, 2026
Merged
auto-submit[bot] merged 3 commits into
auto-submit[bot] merged 3 commits into
Conversation
Contributor
There was a problem hiding this comment.
Code Review
This pull request modifies VideoPlayerInstanceBridge in VideoPlayer.swift to hold a weak reference to VideoPlayer instead of an unowned reference, preventing crashes if the player is disposed during an active asynchronous method. All bridge methods now use optional chaining with fallback default values. A new unit test, apiBridgeHandlesPlayerDestruction, has been added to verify this behavior, and the package version is bumped to 2.12.3. There are no review comments to address.
jmagman
approved these changes
Oct 23, 2026
reginaldalfret
pushed a commit
to reginaldalfret/flutter
that referenced
this pull request
Oct 26, 2026
flutter/packages@108dad0...23a05b6 2026-10-23 [email protected] [video_player] Fix crash regression with async calls on iOS/macOS (flutter/packages#13383) 2026-10-23 [email protected] [material_ui] Migrate M3 SegmentedButton template to use new gen_defaults (flutter/packages#13227) 2026-10-23 [email protected] [material_ui] Migrate M3 Slider template to use new gen_defaults (flutter/packages#13195) 2026-10-23 [email protected] [material_ui] Migrate M3 BottomAppBar template to use new gen_defaults (flutter/packages#13385) If this roll has caused a breakage, revert this CL and set the roller to dry run mode using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC [email protected] 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
suryaKommana2662
pushed a commit
to suryaKommana2662/flutter
that referenced
this pull request
Oct 29, 2026
flutter/packages@108dad0...23a05b6 2026-10-23 [email protected] [video_player] Fix crash regression with async calls on iOS/macOS (flutter/packages#13383) 2026-10-23 [email protected] [material_ui] Migrate M3 SegmentedButton template to use new gen_defaults (flutter/packages#13227) 2026-10-23 [email protected] [material_ui] Migrate M3 Slider template to use new gen_defaults (flutter/packages#13195) 2026-10-23 [email protected] [material_ui] Migrate M3 BottomAppBar template to use new gen_defaults (flutter/packages#13385) If this roll has caused a breakage, revert this CL and set the roller to dry run mode using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC [email protected] 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Because Pigeon closures have references to the bridge object that serves as the API handler, it's not safe for it to have an
unownedreference to the player instance that it delegates to. This changes it to a weak reference, and uses dummy return values as necessary for cases where the player has already been destroyed by the time the async call reaches the bridge.Also includes a unit test simulating that situation, which crashes without the fix.
Fixes flutter/flutter#195056
Pre-Review Checklist
[shared_preferences]///).Footnotes
Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. ↩ ↩2