From aacd4bba292266ccceca1e06eead6551ce68d52e Mon Sep 17 00:00:00 2001 From: Nick Lefever Date: Fri, 11 Oct 2024 08:35:34 -0700 Subject: [PATCH] Disable shadow node reference updates by default (#46961) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/46961 Changelog: [Internal] Runtime Shadow Node Reference Syncing causes asserts when updating the shadow tree without passing through the JS-thread. This diff disables the feature by default to avoid the asserts encountered on RN Windows. Reviewed By: sammy-SC Differential Revision: D64188839 fbshipit-source-id: eb65206662d842f8150f1771c86dc8d190cbc3aa --- .../internal/featureflags/ReactNativeFeatureFlagsDefaults.kt | 4 ++-- .../react/featureflags/ReactNativeFeatureFlagsDefaults.h | 4 ++-- .../scripts/featureflags/ReactNativeFeatureFlags.config.js | 2 +- .../src/private/featureflags/ReactNativeFeatureFlags.js | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt index 9bbfa11cfd4d21..aeb8f9719a3e0c 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<9e0db1a47596fec77c29122620b8f633>> */ /** @@ -115,7 +115,7 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi override fun useOptimizedEventBatchingOnAndroid(): Boolean = false - override fun useRuntimeShadowNodeReferenceUpdate(): Boolean = true + override fun useRuntimeShadowNodeReferenceUpdate(): Boolean = false override fun useTurboModuleInterop(): Boolean = false diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h index d43eeff75b814b..e34ca724d92ce5 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<> */ /** @@ -212,7 +212,7 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider { } bool useRuntimeShadowNodeReferenceUpdate() override { - return true; + return false; } bool useTurboModuleInterop() override { diff --git a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js index 4cf49ed3271728..a3c9aaca5baea0 100644 --- a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js +++ b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js @@ -431,7 +431,7 @@ const definitions: FeatureFlagDefinitions = { }, }, useRuntimeShadowNodeReferenceUpdate: { - defaultValue: true, + defaultValue: false, metadata: { dateAdded: '2024-06-03', description: diff --git a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js index cb226d3e55d468..ece609b0c705dc 100644 --- a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js +++ b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<75865f1371182e1ed3bce0f8f367faeb>> + * @generated SignedSource<<1ef57002084a2e38a69b43b7d4d557a9>> * @flow strict */ @@ -373,7 +373,7 @@ export const useOptimizedEventBatchingOnAndroid: Getter = createNativeF /** * When enabled, cloning shadow nodes within react native will update the reference held by the current JS fiber tree. */ -export const useRuntimeShadowNodeReferenceUpdate: Getter = createNativeFlagGetter('useRuntimeShadowNodeReferenceUpdate', true); +export const useRuntimeShadowNodeReferenceUpdate: Getter = createNativeFlagGetter('useRuntimeShadowNodeReferenceUpdate', false); /** * In Bridgeless mode, should legacy NativeModules use the TurboModule system? */