From 8a7faea211ea7c883c75e78999f77e34a08380ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Mon, 12 Oct 2026 06:48:04 -0700 Subject: [PATCH] Reach public modules through umbrellas from for-frameworks headers Summary: Several "for frameworks" headers included fine-grained headers of public modules directly. A framework author includes a for-frameworks header directly, outside any umbrella, so under `RN_STRICT_API` those includes hit the public module's `UmbrellaGuard.h` `#error`, which `RN_ALLOW_FRAMEWORKS` does not suppress. Switch them to the module umbrellas: - Image component (`ImageComponentDescriptor.h`, `ImageEventEmitter.h`, `ImageProps.h`, `ImageShadowNode.h`, `ImageState.h`): ``, ``, ``, ``. - `ComponentDescriptorFactory.h`: ``, ``, ``. - `react/renderer/core` `DynamicEventPayload.h`, `DynamicPointerEvent.h`, `DynamicPropsUtilities.h`, `ReactRootViewTagGenerator.h`: ``. - `DefaultTurboModules.h`: ``. - iOS/macOS `RCTInstance.h` and `RCTContextContainerHandling.h`: ``, ``. Includes of for-frameworks headers in the same module stay direct, since umbrellas do not re-export them. The `react/renderer/core` headers and `ComponentDescriptorFactory.h` now include their own module's umbrella, so the CMake `react_renderer_core` and `react_renderer_componentregistry` targets expose their umbrella directory as `PUBLIC` instead of `INTERFACE`: core's own sources (`EventEmitter.cpp`, `Props.cpp`, `ShadowNode.cpp`, ...) include these headers and must resolve `` too. Each umbrella is a superset of the headers it replaces, so no declarations are lost. The guards are inert without `RN_STRICT_API`. Changelog: [Internal] Reviewed By: cipolleschi Differential Revision: D124320010 --- .../react/nativemodule/defaults/DefaultTurboModules.h | 2 +- .../react/renderer/componentregistry/CMakeLists.txt | 2 +- .../componentregistry/ComponentDescriptorFactory.h | 7 +++---- .../renderer/components/image/ImageComponentDescriptor.h | 2 +- .../react/renderer/components/image/ImageEventEmitter.h | 4 ++-- .../react/renderer/components/image/ImageProps.h | 8 ++++---- .../react/renderer/components/image/ImageShadowNode.h | 7 +++---- .../react/renderer/components/image/ImageState.h | 4 +--- .../ReactCommon/react/renderer/core/CMakeLists.txt | 2 +- .../ReactCommon/react/renderer/core/DynamicEventPayload.h | 2 +- .../ReactCommon/react/renderer/core/DynamicPointerEvent.h | 3 +-- .../react/renderer/core/DynamicPropsUtilities.h | 2 +- .../react/renderer/core/ReactRootViewTagGenerator.h | 2 +- .../ios/ReactCommon/RCTContextContainerHandling.h | 2 +- .../react/runtime/platform/ios/ReactCommon/RCTInstance.h | 2 +- 15 files changed, 23 insertions(+), 28 deletions(-) diff --git a/packages/react-native/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.h b/packages/react-native/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.h index 4a9e72d45084..8dfe13809356 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.h +++ b/packages/react-native/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.h @@ -9,7 +9,7 @@ #include -#include +#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/componentregistry/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/componentregistry/CMakeLists.txt index 84c320d1a7e0..7e517f1c50e4 100644 --- a/packages/react-native/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/componentregistry/CMakeLists.txt @@ -12,7 +12,7 @@ file(GLOB react_renderer_componentregistry_SRC CONFIGURE_DEPENDS *.cpp) add_library(react_renderer_componentregistry OBJECT ${react_renderer_componentregistry_SRC}) target_include_directories(react_renderer_componentregistry PUBLIC ${REACT_COMMON_DIR}) -target_include_directories(react_renderer_componentregistry INTERFACE ${REACT_COMMON_DIR}/react/renderer/componentregistry) +target_include_directories(react_renderer_componentregistry PUBLIC ${REACT_COMMON_DIR}/react/renderer/componentregistry) target_link_libraries(react_renderer_componentregistry folly_runtime diff --git a/packages/react-native/ReactCommon/react/renderer/componentregistry/ComponentDescriptorFactory.h b/packages/react-native/ReactCommon/react/renderer/componentregistry/ComponentDescriptorFactory.h index 81bdccd2dad6..c503a240838a 100644 --- a/packages/react-native/ReactCommon/react/renderer/componentregistry/ComponentDescriptorFactory.h +++ b/packages/react-native/ReactCommon/react/renderer/componentregistry/ComponentDescriptorFactory.h @@ -11,11 +11,10 @@ #include -#include -#include -#include +#include +#include -#include "ComponentDescriptorRegistry.h" +#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h index 7fea5923bae2..e2abdc9654e7 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h @@ -11,8 +11,8 @@ #include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/image/ImageEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/image/ImageEventEmitter.h index ac20b349e085..e3dc96160cb1 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/image/ImageEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/image/ImageEventEmitter.h @@ -11,8 +11,8 @@ #include -#include -#include +#include +#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.h b/packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.h index 47db7c7ef787..592cb1e3c0c4 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.h @@ -12,10 +12,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/image/ImageShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/image/ImageShadowNode.h index e257778e4481..3223722b43f4 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/image/ImageShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/image/ImageShadowNode.h @@ -11,13 +11,12 @@ #include +#include +#include +#include #include #include #include -#include -#include -#include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/image/ImageState.h b/packages/react-native/ReactCommon/react/renderer/components/image/ImageState.h index 41b3e39be620..f1b9bed9acd6 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/image/ImageState.h +++ b/packages/react-native/ReactCommon/react/renderer/components/image/ImageState.h @@ -12,9 +12,7 @@ #include #include -#include -#include -#include +#include #ifdef ANDROID #include diff --git a/packages/react-native/ReactCommon/react/renderer/core/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/core/CMakeLists.txt index d5ea3badd3d2..a8bf05419b3e 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/core/CMakeLists.txt @@ -12,7 +12,7 @@ file(GLOB react_renderer_core_SRC CONFIGURE_DEPENDS *.cpp) add_library(react_renderer_core OBJECT ${react_renderer_core_SRC}) target_include_directories(react_renderer_core PUBLIC ${REACT_COMMON_DIR}) -target_include_directories(react_renderer_core INTERFACE ${REACT_COMMON_DIR}/react/renderer/core) +target_include_directories(react_renderer_core PUBLIC ${REACT_COMMON_DIR}/react/renderer/core) target_link_libraries(react_renderer_core folly_runtime glog diff --git a/packages/react-native/ReactCommon/react/renderer/core/DynamicEventPayload.h b/packages/react-native/ReactCommon/react/renderer/core/DynamicEventPayload.h index 39ae495608d2..2f2f009422c8 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/DynamicEventPayload.h +++ b/packages/react-native/ReactCommon/react/renderer/core/DynamicEventPayload.h @@ -9,8 +9,8 @@ #include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/core/DynamicPointerEvent.h b/packages/react-native/ReactCommon/react/renderer/core/DynamicPointerEvent.h index 00f0d7902c82..2107aee4a481 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/DynamicPointerEvent.h +++ b/packages/react-native/ReactCommon/react/renderer/core/DynamicPointerEvent.h @@ -9,10 +9,9 @@ #include +#include #include #include -#include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/core/DynamicPropsUtilities.h b/packages/react-native/ReactCommon/react/renderer/core/DynamicPropsUtilities.h index 4368743e03b5..b3f262dcca46 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/DynamicPropsUtilities.h +++ b/packages/react-native/ReactCommon/react/renderer/core/DynamicPropsUtilities.h @@ -9,8 +9,8 @@ #include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/core/ReactRootViewTagGenerator.h b/packages/react-native/ReactCommon/react/renderer/core/ReactRootViewTagGenerator.h index 94e13ad4c5e9..f43f322b530f 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/ReactRootViewTagGenerator.h +++ b/packages/react-native/ReactCommon/react/renderer/core/ReactRootViewTagGenerator.h @@ -9,7 +9,7 @@ #include -#include +#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTContextContainerHandling.h b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTContextContainerHandling.h index 411b928bc2e8..2d8d013369e7 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTContextContainerHandling.h +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTContextContainerHandling.h @@ -9,7 +9,7 @@ #import -#import +#import @protocol RCTContextContainerHandling diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h index 8ac61fc1de60..037d78ed00ae 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h @@ -9,9 +9,9 @@ #import +#import #import #import -#import #import #import