From 91a174ee8515b5ccf3914a44f3eb72cb365f04e2 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Mon, 28 Sep 2026 01:41:46 -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 f71dd4e6ae89..13e82bcad5dc 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 f088cf156580..8c4dcb56a84d 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 03c9a882f6a9..211efa9da1f0 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 b971c5d5986f..a5d1b2bdaf69 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 2797c76205f2..ac89b8bdf808 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 8c0fe122bc74..297f1aa2ff15 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 2b07c8469a4b..0db805c4e317 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 434d6112ef18..68b233aed186 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 1a4523d6b30d..a04c0f4947d2 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 b7d600ff6c660a562b08bf8e99e2e966dda41e81 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Mon, 28 Sep 2026 01:41:46 -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 036b1bb1ea35..07ed70233d59 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 768fbc174bf8..4531200f4f00 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 a65269eaa11e..aeeaba017d84 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 efe22ff3e900..b55c9225ccc6 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 7f556cc5b9c0..f85c16c96bd7 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 b06cf1de0e05..a1b0b6198e5a 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 f21901190e5d..182b3c78975c 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 8c9c66b6b3ec..5406602bdfcd 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 f885f9e6e6f1..520b5290277a 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 d7ae8b42fec7..a46e7c2ba7f0 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 0b49bc05ba4c..f7725cd8844c 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 b736b9bf46cd..4439a1a48593 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 4db07aa5f4dc1546350bdf1ad9e67d4204e52f0a Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Mon, 28 Sep 2026 01:41:46 -0700 Subject: [PATCH 3/3] Use umbrellas instead of direct includes in react/renderer/scheduler module Summary: Changelog: [Internal] Update the react/renderer/scheduler module to use the `React/RendererCore.h`, `React/Utils.h`, and `React/ComponentRegistry.h` umbrella includes instead of direct ones. Differential Revision: D120315036 --- .../ReactCommon/react/renderer/scheduler/Scheduler.h | 11 ++++------- .../react/renderer/scheduler/SchedulerDelegate.h | 2 +- .../react/renderer/scheduler/SchedulerToolbox.h | 9 ++++----- .../react/renderer/scheduler/SurfaceHandler.h | 6 ++---- .../react/renderer/scheduler/SurfaceManager.h | 2 +- 5 files changed, 12 insertions(+), 18 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h index 179d6701727e..28c2d86462bf 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h @@ -15,12 +15,10 @@ #include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include @@ -29,7 +27,6 @@ #include #include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h b/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h index 10f45018d94a..e6ca676fdbae 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h @@ -11,7 +11,7 @@ #include -#include +#include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h b/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h index 50ddbdca8015..2e6e34399b36 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h @@ -11,14 +11,13 @@ #include -#include +#include +#include +#include +#include #include -#include -#include #include #include -#include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceHandler.h b/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceHandler.h index 40a1ee28f79c..5e03e796e67a 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceHandler.h @@ -12,11 +12,9 @@ #include #include +#include +#include #include -#include -#include -#include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.h b/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.h index ed76f11d4c11..dcc3968659de 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceManager.h @@ -14,7 +14,7 @@ #include #include -#include +#include #include #include