From 6d590d389aa1b3b976f78e5c5b3bc57dc01f5459 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Fri, 15 May 2026 11:33:06 -0700 Subject: [PATCH 1/5] Remove enableFabricRenderer() call from DefaultNewArchitectureEntryPoint (#56854) Summary: The `enableFabricRenderer()` flag is being deleted; it always returns true on the canary release stage. In `loadWithFeatureFlags`, replace both `featureFlags.enableFabricRenderer()` reads with the literal `true` for `privateFabricEnabled` and `privateConcurrentReactEnabled`. Behavior is unchanged. Changelog: [Internal] Reviewed By: javache Differential Revision: D105229919 --- .../react/defaults/DefaultNewArchitectureEntryPoint.kt | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt index c98b2952966a..72d44b944f61 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt @@ -114,9 +114,7 @@ public object DefaultNewArchitectureEntryPoint { internal fun loadWithFeatureFlags(featureFlags: ReactNativeFeatureFlagsProvider) { ReactNativeFeatureFlags.override(featureFlags) - privateFabricEnabled = featureFlags.enableFabricRenderer() privateTurboModulesEnabled = featureFlags.useTurboModules() - privateConcurrentReactEnabled = featureFlags.enableFabricRenderer() privateBridgelessEnabled = featureFlags.enableBridgelessArchitecture() val (isValid, errorMessage) = @@ -134,9 +132,7 @@ public object DefaultNewArchitectureEntryPoint { private var privateFabricEnabled: Boolean = false - @JvmStatic - public val fabricEnabled: Boolean - get() = privateFabricEnabled + @JvmStatic public val fabricEnabled: Boolean = true private var privateTurboModulesEnabled: Boolean = false @@ -146,9 +142,7 @@ public object DefaultNewArchitectureEntryPoint { private var privateConcurrentReactEnabled: Boolean = false - @JvmStatic - public val concurrentReactEnabled: Boolean - get() = privateConcurrentReactEnabled + @JvmStatic public val concurrentReactEnabled: Boolean = true private var privateBridgelessEnabled: Boolean = false From 2b501c04e4dadd41f657ad942ba09a06e5fa8883 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Fri, 15 May 2026 11:33:06 -0700 Subject: [PATCH 2/5] Remove enableFabricRenderer() call from ReactInstanceManager (#56855) Summary: The `ReactNativeNewArchitectureFeatureFlags.enableFabricRenderer()` flag is being deleted; it always returns true on the canary release stage. In `createRootView`, inline `setIsFabric(true)` and remove the now-unused import. Behavior is unchanged. Changelog: [Internal] Reviewed By: javache Differential Revision: D105230246 --- .../src/main/java/com/facebook/react/ReactInstanceManager.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java index bbd03e246bcf..8f97e9e39dac 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java @@ -75,7 +75,6 @@ import com.facebook.react.interfaces.TaskInterface; import com.facebook.react.internal.AndroidChoreographerProvider; import com.facebook.react.internal.ChoreographerProvider; -import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlags; import com.facebook.react.modules.appearance.AppearanceModule; import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler; import com.facebook.react.modules.core.DeviceEventManagerModule; @@ -320,8 +319,6 @@ public JavaScriptExecutorFactory getJavaScriptExecutorFactory() { Activity currentActivity = getCurrentActivity(); if (currentActivity != null) { ReactRootView rootView = new ReactRootView(currentActivity); - boolean isFabric = ReactNativeNewArchitectureFeatureFlags.enableFabricRenderer(); - rootView.setIsFabric(isFabric); rootView.startReactApplication(ReactInstanceManager.this, appKey, new Bundle()); return rootView; } From 861ec44bb11461550d18d572599a68ac48bba9a9 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Fri, 15 May 2026 11:33:06 -0700 Subject: [PATCH 3/5] Remove enableFabricRenderer() assertion from ReactHostImpl (#56856) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: The `ReactNativeNewArchitectureFeatureFlags.enableFabricRenderer()` flag is being deleted; it always returns true on the canary release stage. The DEBUG-only `assertCondition(enableFabricRenderer(), ...)` check in `getOrCreateStartTask` becomes tautological — delete it. The other DEBUG assertions in the same block (`enableBridgelessArchitecture`, `useTurboModules`) are unaffected. Behavior is unchanged. Changelog: [Internal] Reviewed By: javache Differential Revision: D105230489 --- .../main/java/com/facebook/react/runtime/ReactHostImpl.kt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt index 42c78a912082..eece1d138d85 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt @@ -857,11 +857,6 @@ public class ReactHostImpl( "enableBridgelessArchitecture FeatureFlag must be set to start ReactNative.", ) - Assertions.assertCondition( - ReactNativeNewArchitectureFeatureFlags.enableFabricRenderer(), - "enableFabricRenderer FeatureFlag must be set to start ReactNative.", - ) - Assertions.assertCondition( ReactNativeNewArchitectureFeatureFlags.useTurboModules(), "useTurboModules FeatureFlag must be set to start ReactNative.", From 363383b235ed75e27ff4d4bc3c6b1d2836ed2f29 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Fri, 15 May 2026 11:33:06 -0700 Subject: [PATCH 4/5] Inline true in ReactActivityDelegate.isFabricEnabled() (#56857) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: The `ReactNativeNewArchitectureFeatureFlags.enableFabricRenderer()` flag is being deleted; it always returns true on the canary release stage. The default body of `ReactActivityDelegate.isFabricEnabled()` reads the flag — change it to `return true` directly. The method itself is preserved because it is a polymorphic `protected` hook that subclasses (e.g., `DefaultReactActivityDelegate`) override to provide per-activity behavior. Behavior is unchanged. Changelog: [Internal] Reviewed By: javache Differential Revision: D105230961 --- .../src/main/java/com/facebook/react/ReactActivityDelegate.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index 2e80bb26fe7a..16d44fe4c54a 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -309,7 +309,7 @@ protected ReactActivity getReactActivity() { * @return true if Fabric is enabled for this Activity, false otherwise. */ protected boolean isFabricEnabled() { - return ReactNativeNewArchitectureFeatureFlags.enableFabricRenderer(); + return true; } /** From 41db94e0668f62c84f9beeb5a20268c85d55fa9a Mon Sep 17 00:00:00 2001 From: David Vacca Date: Fri, 15 May 2026 11:33:06 -0700 Subject: [PATCH 5/5] Inline true in ReactDelegate.isFabricEnabled initializer (#56859) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: The `ReactNativeNewArchitectureFeatureFlags.enableFabricRenderer()` flag is being deleted; it always returns true on the canary release stage. The default initializer of `ReactDelegate.isFabricEnabled` reads the flag — change it to `true` directly. The field itself is preserved because it can be set by the deprecated `(activity, reactNativeHost, appKey, launchOptions, fabricEnabled)` constructor that lets callers override the default. Behavior is unchanged. Changelog: [Internal] Reviewed By: javache Differential Revision: D105231216 --- .../src/main/java/com/facebook/react/ReactDelegate.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt index eef741c689d3..b377dfd260a0 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt @@ -49,9 +49,7 @@ public open class ReactDelegate { * * @return true if Fabric is enabled for this Activity, false otherwise. */ - protected var isFabricEnabled: Boolean = - ReactNativeNewArchitectureFeatureFlags.enableFabricRenderer() - private set + protected val isFabricEnabled: Boolean = true /** * Do not use this constructor as it's not accounting for New Architecture at all. You should use