From fcc8a31ab7c50c218af8120ff4d991f878b83ae1 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Wed, 7 Oct 2026 03:33:05 -0700 Subject: [PATCH] Reach public ReactCommon modules through umbrellas from Android platform headers Summary: Android headers exported through prefab (`react/fabric/*`, `JReadableMapBuffer.h`, and `DefaultComponentsRegistry.h`, which app `OnLoad.cpp` files include) included fine-grained headers of public ReactCommon modules, which trip the modules' public guard under `RN_STRICT_API` in any app or library including them. Switch them to the module umbrellas (``, ``, ``, ``). "For frameworks" includes stay direct, since umbrellas do not re-export them: `ComponentFactory.h` keeps `` for `ComponentRegistryFactory`. To keep that framework-tier header out of app code, `DefaultComponentsRegistry.h` now forward-declares `ComponentFactory` (it only takes it by pointer) and `DefaultComponentsRegistry.cpp` includes it. The guards are inert without `RN_STRICT_API`. Changelog: [Internal] Differential Revision: D123610673 --- .../src/main/jni/react/fabric/AndroidEventBeat.h | 2 +- .../src/main/jni/react/fabric/ComponentFactory.h | 2 +- .../src/main/jni/react/fabric/CoreComponentsRegistry.h | 2 +- .../src/main/jni/react/fabric/EventEmitterWrapper.h | 2 +- .../src/main/jni/react/fabric/FabricMountingManager.h | 2 +- .../src/main/jni/react/fabric/StateWrapperImpl.h | 2 +- .../mapbuffer/react/common/mapbuffer/JReadableMapBuffer.h | 4 ++-- .../react/newarchdefaults/DefaultComponentsRegistry.cpp | 1 + .../jni/react/newarchdefaults/DefaultComponentsRegistry.h | 8 ++++---- 9 files changed, 13 insertions(+), 12 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/AndroidEventBeat.h b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/AndroidEventBeat.h index 8f5a2ce92d04..64338df3b8ca 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/AndroidEventBeat.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/AndroidEventBeat.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "EventBeatManager.h" diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/ComponentFactory.h b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/ComponentFactory.h index e6b72a28173e..37828c5095e1 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/ComponentFactory.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/ComponentFactory.h @@ -7,9 +7,9 @@ #pragma once +#include #include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.h b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.h index 36eec9bbae7b..3e09c9716db8 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.h @@ -7,7 +7,7 @@ #pragma once -#include +#include namespace facebook::react::CoreComponentsRegistry { diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.h b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.h index 50143ad8f6c9..4186c374f848 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/EventEmitterWrapper.h @@ -7,9 +7,9 @@ #pragma once +#include #include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h index 7ed9262f660b..d8aa88b9e386 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h @@ -10,9 +10,9 @@ #include #include +#include #include #include -#include #include namespace facebook::react { diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h index 6e107180b555..39236a319d67 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h @@ -7,10 +7,10 @@ #pragma once +#include #include #include #include -#include #include namespace facebook::react { diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/mapbuffer/react/common/mapbuffer/JReadableMapBuffer.h b/packages/react-native/ReactAndroid/src/main/jni/react/mapbuffer/react/common/mapbuffer/JReadableMapBuffer.h index aed8d355ad13..fc8a329fc1f7 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/mapbuffer/react/common/mapbuffer/JReadableMapBuffer.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/mapbuffer/react/common/mapbuffer/JReadableMapBuffer.h @@ -7,9 +7,9 @@ #pragma once +#include +#include #include -#include -#include #include diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.cpp index ba2b0e64bbca..83970ac8a4c8 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.h b/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.h index b432b1a53714..9a9a5625a544 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.h @@ -7,14 +7,14 @@ #pragma once +#include +#include #include -#include -#include -#include -#include namespace facebook::react { +class ComponentFactory; + class DefaultComponentsRegistry : public facebook::jni::JavaClass { public: constexpr static auto kJavaDescriptor = "Lcom/facebook/react/defaults/DefaultComponentsRegistry;";