From d10475342198c813e7a06817a87f1e3e8aeed070 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Mon, 28 Sep 2026 01:41:16 -0700 Subject: [PATCH 1/3] Use umbrella instead of a direct include in bridging module (#58549) Summary: Changelog: [Internal] Update the bridging module to use `React/Bridging.h` and `React/RendererCore.h` umbrella includes instead of direct ones. Reviewed By: cipolleschi 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 e710db671c0d39045004ca4c8f4203cf854569f9 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Mon, 28 Sep 2026 01:41:16 -0700 Subject: [PATCH 2/3] Use umbrella instead of a direct include in jsinspector-modern/tracing module (#58552) Summary: 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 From 33133945931660c86961b44cc5feea7caee0d061 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Mon, 28 Sep 2026 01:41:16 -0700 Subject: [PATCH 3/3] Use umbrella includes for public modules in cdpmetrics Summary: Changelog: [Internal] Replace the fine-grained includes of the public `runtimeexecutor` and `timing` modules in `CdpMetricsReporter.h` and `CdpPerfIssuesReporter.h` with their umbrella headers, `` and ``. Differential Revision: D122117127 --- .../react/performance/cdpmetrics/CdpMetricsReporter.h | 4 ++-- .../react/performance/cdpmetrics/CdpPerfIssuesReporter.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpMetricsReporter.h b/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpMetricsReporter.h index 5ec74d04d94..8112e374028 100644 --- a/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpMetricsReporter.h +++ b/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpMetricsReporter.h @@ -9,11 +9,11 @@ #include -#include +#include +#include #include #include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h b/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h index 979c20554d6..736ce9813db 100644 --- a/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h +++ b/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h @@ -9,11 +9,11 @@ #include -#include +#include +#include #include #include #include -#include namespace facebook::react {