From 4b97507c6609864d842f6e8e3afab8de0d3009a6 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Wed, 30 Sep 2026 05:32:28 -0700 Subject: [PATCH 1/2] 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 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 f0f520fa4a5ba21c6b92a31e76317c9fbebec6c5 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Wed, 30 Sep 2026 05:32:28 -0700 Subject: [PATCH 2/2] 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 +- .../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"