From 0fb897623cbe44adcfffa8e9fff9c8852cef80b8 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Mon, 28 Sep 2026 00:49:13 -0700 Subject: [PATCH 1/2] Use umbrella instead of a direct include in bridging module Summary: Changelog: [Internal] Update the bridging module to use `React/Bridging.h` and `React/RendererCore.h` umbrella includes instead of direct ones. Differential Revision: D120311601 --- .../React-RCTAnimatedModuleProvider.podspec | 1 + .../nativemodule/defaults/React-defaultsnativemodule.podspec | 1 + .../react/nativemodule/dom/React-domnativemodule.podspec | 2 +- .../React-intersectionobservernativemodule.podspec | 2 +- .../React-mutationobservernativemodule.podspec | 2 +- .../resizeobserver/React-resizeobservernativemodule.podspec | 2 +- .../viewtransition/React-viewtransitionnativemodule.podspec | 2 +- .../ReactCommon/react/renderer/bridging/CMakeLists.txt | 5 ++++- .../ReactCommon/react/renderer/bridging/bridging.h | 4 ++-- 9 files changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/react-native/ReactApple/RCTAnimatedModuleProvider/React-RCTAnimatedModuleProvider.podspec b/packages/react-native/ReactApple/RCTAnimatedModuleProvider/React-RCTAnimatedModuleProvider.podspec index f71dd4e6ae8..13e82bcad5d 100644 --- a/packages/react-native/ReactApple/RCTAnimatedModuleProvider/React-RCTAnimatedModuleProvider.podspec +++ b/packages/react-native/ReactApple/RCTAnimatedModuleProvider/React-RCTAnimatedModuleProvider.podspec @@ -55,6 +55,7 @@ Pod::Spec.new do |s| s.dependency "React-Fabric/animated" s.dependency "Yoga" + add_dependency(s, "React-Fabric") add_dependency(s, "ReactCommon", :subspec => "turbomodule/core", :additional_framework_paths => ["react/nativemodule/core"]) depend_on_js_engine(s) diff --git a/packages/react-native/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec index f088cf15658..8c4dcb56a84 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec @@ -59,6 +59,7 @@ Pod::Spec.new do |s| s.dependency "React-webperformancenativemodule" s.dependency "React-Fabric/animated" s.dependency "React-cxxstableapi" + add_dependency(s, "React-Fabric") add_dependency(s, "React-RCTFBReactNativeSpec") add_dependency(s, "React-featureflags") add_dependency(s, "React-featureflagsnativemodule") diff --git a/packages/react-native/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec index 03c9a882f6a..211efa9da1f 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec @@ -52,7 +52,7 @@ Pod::Spec.new do |s| s.dependency "Yoga" s.dependency "ReactCommon/turbomodule/core" s.dependency "React-bridging" - s.dependency "React-Fabric" + add_dependency(s, "React-Fabric") s.dependency "React-Fabric/bridging" s.dependency "React-FabricComponents" s.dependency "React-cxxstableapi" diff --git a/packages/react-native/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec index b971c5d5986..a5d1b2bdaf6 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec @@ -57,7 +57,7 @@ Pod::Spec.new do |s| s.dependency "ReactCommon/turbomodule/core" s.dependency "React-bridging" - s.dependency "React-Fabric" + add_dependency(s, "React-Fabric") s.dependency "React-Fabric/bridging" s.dependency "React-runtimescheduler" s.dependency "React-cxxstableapi" diff --git a/packages/react-native/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec index 2797c76205f..ac89b8bdf80 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec @@ -57,7 +57,7 @@ Pod::Spec.new do |s| s.dependency "ReactCommon/turbomodule/core" s.dependency "React-bridging" - s.dependency "React-Fabric" + add_dependency(s, "React-Fabric") s.dependency "React-Fabric/bridging" s.dependency "React-Fabric/observers/mutation" s.dependency "React-featureflags" diff --git a/packages/react-native/ReactCommon/react/nativemodule/resizeobserver/React-resizeobservernativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/resizeobserver/React-resizeobservernativemodule.podspec index 8c0fe122bc7..297f1aa2ff1 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/resizeobserver/React-resizeobservernativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/resizeobserver/React-resizeobservernativemodule.podspec @@ -57,7 +57,7 @@ Pod::Spec.new do |s| s.dependency "ReactCommon/turbomodule/core" s.dependency "React-bridging" - s.dependency "React-Fabric" + add_dependency(s, "React-Fabric") s.dependency "React-Fabric/bridging" s.dependency "React-Fabric/observers/resize" s.dependency "React-runtimescheduler" diff --git a/packages/react-native/ReactCommon/react/nativemodule/viewtransition/React-viewtransitionnativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/viewtransition/React-viewtransitionnativemodule.podspec index 2b07c8469a4..0db805c4e31 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/viewtransition/React-viewtransitionnativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/viewtransition/React-viewtransitionnativemodule.podspec @@ -51,7 +51,7 @@ Pod::Spec.new do |s| s.dependency "Yoga" s.dependency "ReactCommon/turbomodule/core" - s.dependency "React-Fabric" + add_dependency(s, "React-Fabric") s.dependency "React-Fabric/bridging" add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"]) add_dependency(s, "React-RCTFBReactNativeSpec") diff --git a/packages/react-native/ReactCommon/react/renderer/bridging/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/bridging/CMakeLists.txt index 434d6112ef1..68b233aed18 100644 --- a/packages/react-native/ReactCommon/react/renderer/bridging/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/bridging/CMakeLists.txt @@ -12,6 +12,9 @@ add_library(react_renderer_bridging INTERFACE) target_include_directories(react_renderer_bridging INTERFACE ${REACT_COMMON_DIR}) -target_link_libraries(react_renderer_bridging INTERFACE react_cxxstableapi) +target_link_libraries(react_renderer_bridging INTERFACE + react_bridging + react_cxxstableapi + react_renderer_core) target_compile_reactnative_options(react_renderer_bridging INTERFACE) target_compile_options(react_renderer_bridging INTERFACE -Wpedantic) diff --git a/packages/react-native/ReactCommon/react/renderer/bridging/bridging.h b/packages/react-native/ReactCommon/react/renderer/bridging/bridging.h index 1a4523d6b30..a04c0f4947d 100644 --- a/packages/react-native/ReactCommon/react/renderer/bridging/bridging.h +++ b/packages/react-native/ReactCommon/react/renderer/bridging/bridging.h @@ -9,9 +9,9 @@ #include +#include +#include #include -#include -#include namespace facebook::react { From 256ccc19c73d3d8300236a6ab7c333f1005ac14a Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Mon, 28 Sep 2026 03:39:58 -0700 Subject: [PATCH 2/2] Use umbrella instead of a direct include in jsinspector-modern/tracing module (#58552) Summary: Pull Request resolved: https://github.com/react/react-native/pull/58552 Changelog: [Internal] Part of the C++ stable API migration to umbrella includes. Fixes a tier reachability violation in the `jsinspector-modern/tracing` module. The headers in this module are "for frameworks" tier (they include ``), but they reached the timing module directly through ``. That header is protected by ``. Exported headers are preprocessed in the consumer's translation unit, so a consumer building with `RN_STRICT_API` would hit the guard through these transitive includes. `RN_ALLOW_FRAMEWORKS` does not suppress the guard. This change replaces `#include ` with the `` umbrella in all 12 tracing headers that used it. The umbrella scopes `RN_UMBRELLA_CONTEXT` around its include of `primitives.h`, so the guard accepts it. It re-exports the same declarations, so there is no functional change. Out of scope: the module's `.cpp` files (`EventLoopReporter.cpp`, `PerformanceTracer.cpp`, `TraceEventSerializer.cpp`) keep the fine-grained include. They are compiled only within React Native's own build and are never preprocessed by consumers, which matches the umbrella's documented guidance. Other modules are migrated in separate changes. Reviewed By: cortinico Differential Revision: D120313623 --- .../ReactCommon/jsinspector-modern/tracing/ConsoleTimeStamp.h | 2 +- .../ReactCommon/jsinspector-modern/tracing/EventLoopReporter.h | 2 +- .../jsinspector-modern/tracing/FrameTimingSequence.h | 2 +- .../ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h | 2 +- .../ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h | 2 +- .../tracing/RuntimeSamplingProfileTraceEventSerializer.h | 2 +- .../ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h | 2 +- .../ReactCommon/jsinspector-modern/tracing/Timing.h | 2 +- .../ReactCommon/jsinspector-modern/tracing/TraceEvent.h | 2 +- .../jsinspector-modern/tracing/TraceEventGenerator.h | 2 +- .../ReactCommon/jsinspector-modern/tracing/TraceEventProfile.h | 2 +- .../jsinspector-modern/tracing/TraceRecordingState.h | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/ConsoleTimeStamp.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/ConsoleTimeStamp.h index 036b1bb1ea3..07ed70233d5 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/ConsoleTimeStamp.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/ConsoleTimeStamp.h @@ -9,9 +9,9 @@ #include +#include #include #include -#include #include #include diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/EventLoopReporter.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/EventLoopReporter.h index 768fbc174bf..4531200f4f0 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/EventLoopReporter.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/EventLoopReporter.h @@ -10,7 +10,7 @@ #include #if defined(REACT_NATIVE_DEBUGGER_ENABLED) -#include +#include #endif namespace facebook::react::jsinspector_modern::tracing { diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h index a65269eaa11..aeeaba017d8 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h @@ -11,7 +11,7 @@ #include "TraceEvent.h" -#include +#include #include #include diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h index efe22ff3e90..b55c9225ccc 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h @@ -13,7 +13,7 @@ #include "InstanceTracingProfile.h" #include "RuntimeSamplingProfile.h" -#include +#include #include diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h index 7f556cc5b9c..f85c16c96bd 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h @@ -13,7 +13,7 @@ #include "TraceEvent.h" #include "TraceEventProfile.h" -#include +#include #include #include diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.h index b06cf1de0e0..a1b0b6198e5 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.h @@ -11,7 +11,7 @@ #include "RuntimeSamplingProfile.h" -#include +#include namespace facebook::react::jsinspector_modern::tracing { diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h index f21901190e5..182b3c78975 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h @@ -14,7 +14,7 @@ #include #include -#include +#include namespace facebook::react::jsinspector_modern::tracing { diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/Timing.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/Timing.h index 8c9c66b6b3e..5406602bdfc 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/Timing.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/Timing.h @@ -11,7 +11,7 @@ #include -#include +#include namespace facebook::react::jsinspector_modern::tracing { diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEvent.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEvent.h index f885f9e6e6f..520b5290277 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEvent.h @@ -9,8 +9,8 @@ #include +#include #include -#include #include diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h index d7ae8b42fec..a46e7c2ba7f 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h @@ -11,8 +11,8 @@ #include "TraceEvent.h" +#include #include -#include #include #include diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventProfile.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventProfile.h index 0b49bc05ba4..f7725cd8844 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventProfile.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventProfile.h @@ -9,7 +9,7 @@ #include -#include +#include #include #include diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h index b736b9bf46c..4439a1a4859 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h @@ -13,7 +13,7 @@ #include "RuntimeSamplingProfile.h" #include "TracingMode.h" -#include +#include #include