enable android focus race flag
Fixes APP-T4H9
This commit is contained in:
@@ -16,16 +16,17 @@ experimental React Native flags.
|
||||
**TODO: Remove after upgrading to a React Native release that closes the
|
||||
queued Scheduler delegate lifetime race by default.**
|
||||
|
||||
## UIManager.cpp Patch - Fabric focus navigation use-after-free
|
||||
## Fabric focus navigation - Android use-after-free
|
||||
|
||||
Fixes Sentry issue APP-T4H9: a SIGSEGV in
|
||||
`FabricUIManagerBinding::findNextFocusableElement` during focus navigation.
|
||||
|
||||
React Native 0.86 contains the safe implementation behind
|
||||
`fixFindShadowNodeByTagRaceCondition`, but the public default is false. The
|
||||
fallback captures a raw root shadow-node pointer in `tryCommit` and dereferences
|
||||
it after the lock is released, allowing a concurrent commit or surface stop to
|
||||
free the node first. This backports the final upstream implementation, which
|
||||
`fixFindShadowNodeByTagRaceCondition`, but the Android stable default is false.
|
||||
The fallback captures a raw root shadow-node pointer in `tryCommit` and
|
||||
dereferences it after the lock is released, allowing a concurrent commit or
|
||||
surface stop to free the node first. Override only this flag in
|
||||
`ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android` so the guarded path
|
||||
holds the current revision's `shared_ptr` for the entire traversal.
|
||||
|
||||
**TODO: Remove after bumping React Native to a release containing
|
||||
|
||||
Reference in New Issue
Block a user