[Cherry Pick 0.79]: Fix modal Crash after closing DesktopPopupSiteBridge #15391
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.
Description
We’re seeing a crash when using DesktopPopupSiteBridge in React Native Windows: after closing the popup, the parent window crashes when processing subsequent messages (e.g., window move).
Type of Change
Why
resolves the modal crash on dismissing the modal.
Resolves [Add Relevant Issue Here]
#15165
What
Fix was to call
AppWindow::Destroyin sequence -> :AppWindow.Destroy,Popup.Hide,Popup.CloseOnly
DesktopPopupSiteBridge::{Hide,Close}were called earlier. furthermore, EnableWindow is win32 API which was forcing the parent window to take input but the popup was never cleanly destroyed and hence the crash.Now EnableWindow is no longer required as parent window automatically gets control when modal App window is destroyed.
Credits - @sundaramramaswamy , the fix was first tested on sample win32 repro .
ref : iamAbhi-916/ModalTest#1
Screenshots
modal_crash_fix.mp4
Testing
tested in playground
Changelog
Should this change be included in the release notes: _indicate yes
Add a brief summary of the change to use in the release notes for the next release.
Fixed modal dialog crash when interacting with parent window after dismissal.
Microsoft Reviewers: Open in CodeFlow