From 57375bbb70560a384408984d32654fb92a3cf639 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Tue, 29 Sep 2026 04:10:42 -0700 Subject: [PATCH 1/3] Use umbrellas instead of direct includes in react/renderer/scheduler module (#58551) 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 --- .../react-native/ReactCommon/React-Fabric.podspec | 1 + .../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 +- 6 files changed, 13 insertions(+), 18 deletions(-) diff --git a/packages/react-native/ReactCommon/React-Fabric.podspec b/packages/react-native/ReactCommon/React-Fabric.podspec index a80ef92ba6a8..38fcab30e886 100644 --- a/packages/react-native/ReactCommon/React-Fabric.podspec +++ b/packages/react-native/ReactCommon/React-Fabric.podspec @@ -106,6 +106,7 @@ Pod::Spec.new do |s| "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/view/platform/cxx\"", "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/view\"", "\"$(PODS_TARGET_SRCROOT)/react/renderer/core\"", + "\"$(PODS_TARGET_SRCROOT)/react/renderer/componentregistry\"", "\"$(PODS_TARGET_SRCROOT)/react/renderer/debug\"", ] end 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 From 405e2d4f4e93a7a8f1b491a764d2ebf2d7c935b3 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Tue, 29 Sep 2026 04:10:42 -0700 Subject: [PATCH 2/3] Use umbrellas instead of direct includes in react/runtime module (#58550) Summary: Changelog: [Internal] Part of the C++ stable API migration to umbrella includes. Fixes tier reachability violations in the `react/runtime` module. The headers in this module are "for frameworks" tier (they include ``), but they reached public-tier modules through fine-grained includes: ``, ``, `` and ``. Each of these 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 switches the five affected headers (`BridgelessNativeMethodCallInvoker.h`, `BufferedRuntimeExecutor.h`, `CallInvokerImpl.h`, `ReactInstance.h`, `TimerManager.h`) to the ``, `` and `` umbrellas. Each umbrella scopes `RN_UMBRELLA_CONTEXT` around its includes, so the guard accepts them. `` has no include of its own anymore because `` re-exports it. The umbrellas are supersets of the headers they replace, so every previously visible declaration stays available and there is no functional change. Out of scope: `ReactInstance.cpp` and the module's C++ tests keep the fine-grained includes. They are compiled only within React Native's own build and are never preprocessed by consumers, which matches the umbrellas' documented guidance. Other modules are migrated in separate changes. Reviewed By: cortinico Differential Revision: D120316197 --- .../react/runtime/BridgelessNativeMethodCallInvoker.h | 2 +- .../ReactCommon/react/runtime/BufferedRuntimeExecutor.h | 4 ++-- .../ReactCommon/react/runtime/CallInvokerImpl.h | 3 +-- .../ReactCommon/react/runtime/React-RuntimeCore.podspec | 2 +- .../react-native/ReactCommon/react/runtime/ReactInstance.h | 6 +++--- .../react-native/ReactCommon/react/runtime/TimerManager.h | 2 +- 6 files changed, 9 insertions(+), 10 deletions(-) diff --git a/packages/react-native/ReactCommon/react/runtime/BridgelessNativeMethodCallInvoker.h b/packages/react-native/ReactCommon/react/runtime/BridgelessNativeMethodCallInvoker.h index 19afec86b7b3..21c9ea91a57a 100644 --- a/packages/react-native/ReactCommon/react/runtime/BridgelessNativeMethodCallInvoker.h +++ b/packages/react-native/ReactCommon/react/runtime/BridgelessNativeMethodCallInvoker.h @@ -9,7 +9,7 @@ #include -#include +#include #include #include diff --git a/packages/react-native/ReactCommon/react/runtime/BufferedRuntimeExecutor.h b/packages/react-native/ReactCommon/react/runtime/BufferedRuntimeExecutor.h index a29b3fc702c9..4f54ea30bc8b 100644 --- a/packages/react-native/ReactCommon/react/runtime/BufferedRuntimeExecutor.h +++ b/packages/react-native/ReactCommon/react/runtime/BufferedRuntimeExecutor.h @@ -9,8 +9,8 @@ #include -#include -#include +#include +#include #include #include #include diff --git a/packages/react-native/ReactCommon/react/runtime/CallInvokerImpl.h b/packages/react-native/ReactCommon/react/runtime/CallInvokerImpl.h index f4b44505ac1b..ba94771c527d 100644 --- a/packages/react-native/ReactCommon/react/runtime/CallInvokerImpl.h +++ b/packages/react-native/ReactCommon/react/runtime/CallInvokerImpl.h @@ -9,8 +9,7 @@ #include -#include -#include +#include #include #include diff --git a/packages/react-native/ReactCommon/react/runtime/React-RuntimeCore.podspec b/packages/react-native/ReactCommon/react/runtime/React-RuntimeCore.podspec index 1f91a792e1a9..7768e75e9e1f 100644 --- a/packages/react-native/ReactCommon/react/runtime/React-RuntimeCore.podspec +++ b/packages/react-native/ReactCommon/react/runtime/React-RuntimeCore.podspec @@ -36,7 +36,7 @@ Pod::Spec.new do |s| resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_RuntimeCore") s.dependency "React-jsiexecutor" - s.dependency "React-cxxreact" + add_dependency(s, "React-cxxreact") add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"]) s.dependency "React-jsi" s.dependency "React-jserrorhandler" diff --git a/packages/react-native/ReactCommon/react/runtime/ReactInstance.h b/packages/react-native/ReactCommon/react/runtime/ReactInstance.h index 5d61e681fbb1..1ec9392feeb0 100644 --- a/packages/react-native/ReactCommon/react/runtime/ReactInstance.h +++ b/packages/react-native/ReactCommon/react/runtime/ReactInstance.h @@ -9,9 +9,9 @@ #include -#include -#include -#include +#include +#include +#include #include #include #include diff --git a/packages/react-native/ReactCommon/react/runtime/TimerManager.h b/packages/react-native/ReactCommon/react/runtime/TimerManager.h index 7ace46ee81fd..ecd04cf4205d 100644 --- a/packages/react-native/ReactCommon/react/runtime/TimerManager.h +++ b/packages/react-native/ReactCommon/react/runtime/TimerManager.h @@ -9,7 +9,7 @@ #include -#include +#include #include #include From 672ec01a82eeddcc688c488f1da282efe5cea439 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Tue, 29 Sep 2026 04:10:42 -0700 Subject: [PATCH 3/3] Use umbrella instead of a direct include in react/renderer/telemetry module (#58553) Summary: Changelog: [Internal] Update the react/renderer/telemetry module to use the `React/Utils.h` umbrella include instead of a direct one. Reviewed By: cortinico Differential Revision: D120316919 --- .../ReactCommon/react/renderer/telemetry/SurfaceTelemetry.h | 2 +- .../ReactCommon/react/renderer/telemetry/TransactionTelemetry.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/telemetry/SurfaceTelemetry.h b/packages/react-native/ReactCommon/react/renderer/telemetry/SurfaceTelemetry.h index 26848773c92a..685e9dbf3406 100644 --- a/packages/react-native/ReactCommon/react/renderer/telemetry/SurfaceTelemetry.h +++ b/packages/react-native/ReactCommon/react/renderer/telemetry/SurfaceTelemetry.h @@ -11,8 +11,8 @@ #include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/telemetry/TransactionTelemetry.h b/packages/react-native/ReactCommon/react/renderer/telemetry/TransactionTelemetry.h index 2f53debedf58..92289403b252 100644 --- a/packages/react-native/ReactCommon/react/renderer/telemetry/TransactionTelemetry.h +++ b/packages/react-native/ReactCommon/react/renderer/telemetry/TransactionTelemetry.h @@ -13,7 +13,7 @@ #include #include -#include +#include namespace facebook::react {