Prevent ASWebAuthenticationSession
crash when browser reloads due to cookies being cleared
#904
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.
📋 Changes
This PR adds a workaround for the crash reported in #902. The crash is caused by a double-release problem deep inside
ASWebAthenticationSession,
which happens sometimes when the browser reloads due to the cookies being cleared mid-way through.The workaround amounts to holding a strong reference to the
ASWebAuthenticationSession
instance, as described in http://ww.openradar.appspot.com/FB12132525. To prevent memory leaks in certain circumstances due to multiple held instances, only oneASWebAuthenticationSession
session can be held in memory at a time.📎 References
ASWebAuthenticationSession
bug report: http://ww.openradar.appspot.com/FB12132525🎯 Testing
Unit tests were added, and the change was manually tested with an iPhone 14 Pro Max running iOS 18.2.1, using Xcode 16.2 (16C5032a).