Skip to content

Commit 7474d2e

Browse files
coadofacebook-github-bot
authored andcommitted
Reach public modules through umbrellas from for-frameworks headers (#58969)
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`): `<React/View.h>`, `<React/RendererCore.h>`, `<React/Graphics.h>`, `<React/ImageManager.h>`. - `ComponentDescriptorFactory.h`: `<React/RendererCore.h>`, `<React/Utils.h>`, `<React/ComponentRegistry.h>`. - `react/renderer/core` `DynamicEventPayload.h`, `DynamicPointerEvent.h`, `DynamicPropsUtilities.h`, `ReactRootViewTagGenerator.h`: `<React/RendererCore.h>`. - `DefaultTurboModules.h`: `<React/NativeModuleCore.h>`. - iOS/macOS `RCTInstance.h` and `RCTContextContainerHandling.h`: `<React/CallInvoker.h>`, `<React/Utils.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 `<React/RendererCore.h>` 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
1 parent 861635c commit 7474d2e

16 files changed

Lines changed: 23 additions & 29 deletions

File tree

‎packages/react-native/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
#include <react/cxxstableapi/FrameworksGuard.h>
1111

12-
#include <ReactCommon/TurboModule.h>
12+
#include <React/NativeModuleCore.h>
1313

1414
namespace facebook::react {
1515

‎packages/react-native/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
#include <react/debug/react_native_assert.h>
1616
#include <react/renderer/animations/conversions.h>
1717
#include <react/renderer/animations/utils.h>
18-
#include <react/renderer/components/image/ImageProps.h>
1918
#include <react/renderer/components/view/ViewProps.h>
2019
#include <react/renderer/components/view/ViewPropsInterpolation.h>
2120
#include <react/renderer/core/ComponentDescriptor.h>

‎packages/react-native/ReactCommon/react/renderer/componentregistry/CMakeLists.txt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ file(GLOB react_renderer_componentregistry_SRC CONFIGURE_DEPENDS *.cpp)
1212
add_library(react_renderer_componentregistry OBJECT ${react_renderer_componentregistry_SRC})
1313

1414
target_include_directories(react_renderer_componentregistry PUBLIC ${REACT_COMMON_DIR})
15-
target_include_directories(react_renderer_componentregistry INTERFACE ${REACT_COMMON_DIR}/react/renderer/componentregistry)
15+
target_include_directories(react_renderer_componentregistry PUBLIC ${REACT_COMMON_DIR}/react/renderer/componentregistry)
1616

1717
target_link_libraries(react_renderer_componentregistry
1818
folly_runtime

‎packages/react-native/ReactCommon/react/renderer/componentregistry/ComponentDescriptorFactory.h‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,10 @@
1111

1212
#include <memory>
1313

14-
#include <react/renderer/core/ComponentDescriptor.h>
15-
#include <react/renderer/core/EventDispatcher.h>
16-
#include <react/utils/ContextContainer.h>
14+
#include <React/RendererCore.h>
15+
#include <React/Utils.h>
1716

18-
#include "ComponentDescriptorRegistry.h"
17+
#include <React/ComponentRegistry.h>
1918

2019
namespace facebook::react {
2120

‎packages/react-native/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212
#include <memory>
1313

14+
#include <React/RendererCore.h>
1415
#include <react/renderer/components/image/ImageShadowNode.h>
15-
#include <react/renderer/core/ConcreteComponentDescriptor.h>
1616

1717
namespace facebook::react {
1818

‎packages/react-native/ReactCommon/react/renderer/components/image/ImageEventEmitter.h‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212
#include <cstdint>
1313

14-
#include <react/renderer/components/view/ViewEventEmitter.h>
15-
#include <react/renderer/imagemanager/primitives.h>
14+
#include <React/ImageManager.h>
15+
#include <React/View.h>
1616

1717
namespace facebook::react {
1818

‎packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.h‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
#include <optional>
1313
#include <string>
1414

15-
#include <react/renderer/components/view/ViewProps.h>
16-
#include <react/renderer/core/PropsParserContext.h>
17-
#include <react/renderer/graphics/Color.h>
18-
#include <react/renderer/imagemanager/primitives.h>
15+
#include <React/Graphics.h>
16+
#include <React/ImageManager.h>
17+
#include <React/RendererCore.h>
18+
#include <React/View.h>
1919

2020
namespace facebook::react {
2121

‎packages/react-native/ReactCommon/react/renderer/components/image/ImageShadowNode.h‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,12 @@
1111

1212
#include <memory>
1313

14+
#include <React/ImageManager.h>
15+
#include <React/RendererCore.h>
16+
#include <React/View.h>
1417
#include <react/renderer/components/image/ImageEventEmitter.h>
1518
#include <react/renderer/components/image/ImageProps.h>
1619
#include <react/renderer/components/image/ImageState.h>
17-
#include <react/renderer/components/view/ConcreteViewShadowNode.h>
18-
#include <react/renderer/core/ShadowNodeFamily.h>
19-
#include <react/renderer/imagemanager/ImageManager.h>
20-
#include <react/renderer/imagemanager/primitives.h>
2120

2221
namespace facebook::react {
2322

‎packages/react-native/ReactCommon/react/renderer/components/image/ImageState.h‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@
1212
#include <memory>
1313
#include <utility>
1414

15-
#include <react/renderer/imagemanager/ImageRequest.h>
16-
#include <react/renderer/imagemanager/ImageRequestParams.h>
17-
#include <react/renderer/imagemanager/primitives.h>
15+
#include <React/ImageManager.h>
1816

1917
#ifdef ANDROID
2018
#include <folly/dynamic.h>

‎packages/react-native/ReactCommon/react/renderer/core/CMakeLists.txt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ file(GLOB react_renderer_core_SRC CONFIGURE_DEPENDS *.cpp)
1212
add_library(react_renderer_core OBJECT ${react_renderer_core_SRC})
1313

1414
target_include_directories(react_renderer_core PUBLIC ${REACT_COMMON_DIR})
15-
target_include_directories(react_renderer_core INTERFACE ${REACT_COMMON_DIR}/react/renderer/core)
15+
target_include_directories(react_renderer_core PUBLIC ${REACT_COMMON_DIR}/react/renderer/core)
1616
target_link_libraries(react_renderer_core
1717
folly_runtime
1818
glog

0 commit comments

Comments
 (0)