From fd5be2468b81b28645206e3b7f442d1be6b305da Mon Sep 17 00:00:00 2001 From: Pieter De Baets Date: Tue, 20 Oct 2026 04:10:47 -0700 Subject: [PATCH] Move CoreComponentsRegistry to newarchdefaults (#59220) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Pull Request resolved: https://github.com/react/react-native/pull/59220 `CoreComponentsRegistry` pulls every built-in component implementation into `fabric:jni`, preventing those components from depending on Fabric JNI without a cycle. Move the registry header and implementation into `newarchdefaults:jni`, which already owns default component registration, while preserving both public include paths. Point the registry’s other native consumers at the same shared target. Changelog: [Internal] Differential Revision: D126315162 --- packages/react-native/ReactAndroid/build.gradle.kts | 4 ++++ .../src/main/jni/react/fabric/CMakeLists.txt | 7 ------- .../main/jni/react/newarchdefaults/CMakeLists.txt | 13 +++++++++++++ .../CoreComponentsRegistry.cpp | 4 ++++ .../CoreComponentsRegistry.h | 0 5 files changed, 21 insertions(+), 7 deletions(-) rename packages/react-native/ReactAndroid/src/main/jni/react/{fabric => newarchdefaults}/CoreComponentsRegistry.cpp (98%) rename packages/react-native/ReactAndroid/src/main/jni/react/{fabric => newarchdefaults}/CoreComponentsRegistry.h (100%) diff --git a/packages/react-native/ReactAndroid/build.gradle.kts b/packages/react-native/ReactAndroid/build.gradle.kts index 42111739e6aa..d1f62db67530 100644 --- a/packages/react-native/ReactAndroid/build.gradle.kts +++ b/packages/react-native/ReactAndroid/build.gradle.kts @@ -95,6 +95,10 @@ val preparePrefab by Pair("../ReactCommon/hermes/inspector-modern/", "hermes/inspector-modern/"), // fabricjni Pair("src/main/jni/react/fabric", "react/fabric/"), + Pair( + "src/main/jni/react/newarchdefaults/CoreComponentsRegistry.h", + "react/fabric/", + ), // uimanagerjni Pair("src/main/jni/react/uimanager", "react/uimanager/"), // glog diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt index 4db218564823..557b7a14b23a 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt @@ -51,15 +51,8 @@ target_link_libraries( rrc_legacyviewmanagerinterop react_utils reactnativejni - rrc_image - rrc_modal - rrc_progressbar rrc_root - rrc_safeareaview rrc_scrollview - rrc_switch - rrc_text - rrc_textinput rrc_unimplementedview rrc_view yoga diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/CMakeLists.txt b/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/CMakeLists.txt index cf81e75c2028..62b76deff23f 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/CMakeLists.txt +++ b/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/CMakeLists.txt @@ -29,6 +29,19 @@ target_link_libraries(react_newarchdefaults react_nativemodule_featureflags react_nativemodule_microtasks react_nativemodule_idlecallbacks + react_renderer_attributedstring + react_renderer_componentregistry + react_renderer_textlayoutmanager + rrc_image + rrc_modal + rrc_progressbar + rrc_safeareaview + rrc_scrollview + rrc_switch + rrc_text + rrc_textinput + rrc_unimplementedview + rrc_view jsi) target_compile_reactnative_options(react_newarchdefaults PRIVATE) diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/CoreComponentsRegistry.cpp similarity index 98% rename from packages/react-native/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp rename to packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/CoreComponentsRegistry.cpp index 57c1e0e8d86e..5eacbff0b81d 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/CoreComponentsRegistry.cpp @@ -38,6 +38,10 @@ sharedProviderRegistry() { void addCoreComponents( std::shared_ptr providerRegistry) { + if (providerRegistry == nullptr) { + return; + } + providerRegistry->add( concreteComponentDescriptorProvider< AndroidProgressBarComponentDescriptor>()); diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.h b/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/CoreComponentsRegistry.h similarity index 100% rename from packages/react-native/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.h rename to packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/CoreComponentsRegistry.h