From bde71dab81a3cecd898c6d512a79f813534c4682 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Fri, 15 May 2026 11:15:17 -0700 Subject: [PATCH 1/6] 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 d934b1da3c5b18b0bc609e92075a99cdfaac5b74 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Fri, 15 May 2026 11:15:17 -0700 Subject: [PATCH 2/6] 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 f9c34c589817a2066c09d318ad3865530a0c0d58 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Fri, 15 May 2026 11:15:17 -0700 Subject: [PATCH 3/6] 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 5a73dec893b31514851ac9ee04701385de241715 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Fri, 15 May 2026 11:15:17 -0700 Subject: [PATCH 4/6] 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 d5199c21d0b98e88ddf0b1b39ba4666f1db64701 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Fri, 15 May 2026 11:15:17 -0700 Subject: [PATCH 5/6] 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 From 7f6cdee28cb4db7f0828a74cf9ed6133cadfac20 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Fri, 15 May 2026 11:15:17 -0700 Subject: [PATCH 6/6] Delete enableFabricRenderer() from ReactNativeNewArchitectureFeatureFlags (#56860) Summary: The `enableFabricRenderer()` flag is being removed entirely; it was always set to true in the canary release stage. All callers of `ReactNativeNewArchitectureFeatureFlags.enableFabricRenderer()` were inlined in earlier diffs. This diff: - Removes the wrapper method `ReactNativeNewArchitectureFeatureFlags.enableFabricRenderer()`. - Removes the `override fun enableFabricRenderer(): Boolean = true` from `ReactNativeNewArchitectureFeatureFlagsDefaults`. Both classes are non-`generated`, so they are edited directly. The next diff will remove the underlying `ReactNativeFeatureFlags.enableFabricRenderer()` API by regenerating the codegen output. Behavior is unchanged. Changelog: [Internal] Reviewed By: javache Differential Revision: D105231777 --- .../ReactNativeNewArchitectureFeatureFlags.kt | 12 ------------ ...ReactNativeNewArchitectureFeatureFlagsDefaults.kt | 2 -- 2 files changed, 14 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlags.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlags.kt index e816005bbbb3..8fd0001e140e 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlags.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlags.kt @@ -35,18 +35,6 @@ public object ReactNativeNewArchitectureFeatureFlags { return ReactNativeFeatureFlags.enableBridgelessArchitecture() } - @JvmStatic - public fun enableFabricRenderer(): Boolean { - if (ReactBuildConfig.UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE) { - Assertions.assertCondition( - ReactNativeFeatureFlags.enableFabricRenderer(), - "ReactNativeFeatureFlags.enableFabricRenderer() should be set to TRUE when Strict Mode is enabled", - ) - return true - } - return ReactNativeFeatureFlags.enableFabricRenderer() - } - @JvmStatic public fun useFabricInterop(): Boolean { if (ReactBuildConfig.UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt index 7a8589728740..18cff863440d 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt @@ -25,8 +25,6 @@ public open class ReactNativeNewArchitectureFeatureFlagsDefaults() : override fun enableBridgelessArchitecture(): Boolean = true - override fun enableFabricRenderer(): Boolean = true - override fun useNativeViewConfigsInBridgelessMode(): Boolean = true override fun useTurboModuleInterop(): Boolean = true