From e00c9ae5f680ff330f79ab4d88d2d38cf2c2c765 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Wed, 30 Sep 2026 01:07:07 -0700 Subject: [PATCH 1/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 --- .../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 8b84f704eef5..44cc2cb41211 100644 --- a/packages/react-native/ReactCommon/React-Fabric.podspec +++ b/packages/react-native/ReactCommon/React-Fabric.podspec @@ -107,6 +107,7 @@ Pod::Spec.new do |s| "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/view\"", "\"$(PODS_TARGET_SRCROOT)/react/renderer/componentregistry\"", "\"$(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 35243a216b716d79b902536a174faaa7a35b978c Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Wed, 30 Sep 2026 05:12:12 -0700 Subject: [PATCH 2/3] Use umbrellas instead of direct includes in react/runtime module (#58550) Summary: Pull Request resolved: https://github.com/react/react-native/pull/58550 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. 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 +- .../react/runtime/platform/ios/React-RuntimeApple.podspec | 2 +- 7 files changed, 10 insertions(+), 11 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 diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec b/packages/react-native/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec index 175b9968cbca..6b4a055574b3 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec @@ -41,7 +41,7 @@ Pod::Spec.new do |s| resolve_use_frameworks(s, header_mappings_dir: "./", module_name: "React_RuntimeApple") s.dependency "React-jsiexecutor" - s.dependency "React-cxxreact" + add_dependency(s, "React-cxxreact") s.dependency "React-callinvoker" add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"]) s.dependency "React-runtimescheduler" From 82e6da88fbae096ed35ab8bdf0c82a907ade1dad Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Wed, 30 Sep 2026 06:06:36 -0700 Subject: [PATCH 3/3] Use umbrella instead of a direct include in react/renderer/telemetry module (#58553) Summary: Pull Request resolved: https://github.com/react/react-native/pull/58553 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 {