From d94882e46d9e171991e36bd21072d9e9edcb4b80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 8 Oct 2026 06:22:44 -0700 Subject: [PATCH 01/10] Make TextInput descriptors and prop conversion helpers private Summary: Lower the following `react/renderer/components/textinput` headers from "for frameworks" to private: Platform component descriptors: - Android `androidtextinput/AndroidTextInputComponentDescriptor.h` - iOS and macOS `iostextinput/TextInputComponentDescriptor.h` All three classes are `final`, so they cannot be extended, and they are registered only by React Native's own platform glue (the Android core components registry and the iOS TextInput component view). The Android descriptor is additionally coupled to React Native's Java `FabricUIManager` (it reads theme padding over JNI in `getInitialState`). Prop conversion helpers: - `baseConversions.h` (conversions for the shared text input enums) - iOS and macOS `iostextinput/propsConversions.h` (iOS/macOS text input trait parsers) These are only included by the module's own props sources (`BaseTextInputProps.cpp` and the platform `TextInputProps.cpp` / `AndroidTextInputProps.cpp`). No header includes any of them. The TextInput shadow nodes, props, state and event emitters stay "for frameworks", since third-party text input libraries build on them directly. The iOS/macOS `conversions.h` also stays "for frameworks", as the iOS/macOS `TextInputProps.h` includes it. Changelog: [Internal] Differential Revision: D123643375 --- .../react/renderer/components/textinput/baseConversions.h | 2 +- .../AndroidTextInputComponentDescriptor.h | 2 +- .../iostextinput/TextInputComponentDescriptor.h | 2 +- .../renderer/components/iostextinput/propsConversions.h | 2 +- .../cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api | 8 -------- scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api | 8 -------- .../cxx-api/api-snapshots/ReactCommonFrameworksCxx.api | 2 -- 7 files changed, 4 insertions(+), 22 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h index f203598b227a..f5b61363a5bc 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h index 538c5f03bfbf..5c08a1bf6787 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "AndroidTextInputShadowNode.h" #include "AndroidTextInputState.h" diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h index a204398861c4..a828e8bef109 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h index 51e668b46f26..59150dc471eb 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include #include diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api index 07a514f87218..4ffa84494634 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api @@ -764,7 +764,6 @@ folly::dynamic facebook::react::toDynamic(const facebook::react::FilterFunction& folly::dynamic facebook::react::toDynamic(const facebook::react::ImageSource& imageSource); folly::dynamic facebook::react::toDynamic(const facebook::react::Point& point); folly::dynamic facebook::react::toDynamic(const facebook::react::SharedColor& sharedColor); -folly::dynamic facebook::react::toDynamic(const facebook::react::SubmitBehavior& value); folly::dynamic facebook::react::toDynamic(const std::vector& arrayValue); folly::dynamic facebook::react::toDynamic(const std::vector& arrayValue); folly::dynamic facebook::react::toDynamic(const std::vector& arrayValue); @@ -937,7 +936,6 @@ void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, c void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::LineBreakMode& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::Point& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::Size& result); -void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::SubmitBehavior& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::TextAlignmentVertical& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::TextWidthMode& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::ValueUnit& result); @@ -1159,12 +1157,6 @@ class facebook::react::AndroidSwitchProps : public facebook::react::HostPlatform public virtual folly::dynamic getDiffProps(const facebook::react::Props* prevProps) const override; } -class facebook::react::AndroidTextInputComponentDescriptor : public facebook::react::ConcreteComponentDescriptor { - protected virtual void adopt(facebook::react::ShadowNode& shadowNode) const override; - public AndroidTextInputComponentDescriptor(const facebook::react::ComponentDescriptorParameters& parameters); - public virtual facebook::react::State::Shared createInitialState(const facebook::react::Props::Shared& props, const facebook::react::ShadowNodeFamily::Shared& family) const override; -} - class facebook::react::AndroidTextInputEventEmitter : public facebook::react::BaseViewEventEmitter { } diff --git a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api index cb120cc274d0..dfcc4580f618 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -3570,7 +3570,6 @@ float facebook::react::yogaFloatFromFloat(facebook::react::Float value); folly::dynamic facebook::react::convertIdToFollyDynamic(id json); folly::dynamic facebook::react::diffDynamicProps(const folly::dynamic& oldProps, const folly::dynamic& newProps); folly::dynamic facebook::react::mergeDynamicProps(const folly::dynamic& source, const folly::dynamic& patch, facebook::react::NullValueStrategy nullValueStrategy); -folly::dynamic facebook::react::toDynamic(const facebook::react::SubmitBehavior& value); id facebook::react::convertFollyDynamicToId(const folly::dynamic& dyn); int facebook::react::toInt(const facebook::react::DisplayType& displayType); int facebook::react::toInt(const facebook::react::LayoutDirection& layoutDirection); @@ -3708,7 +3707,6 @@ void facebook::react::fromRawValue(const facebook::react::PropsParserContext& co void facebook::react::fromRawValue(const facebook::react::PropsParserContext& context, const facebook::react::RawValue& value, facebook::react::ScrollViewKeyboardDismissMode& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext& context, const facebook::react::RawValue& value, facebook::react::ScrollViewMaintainVisibleContentPosition& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext& context, const facebook::react::RawValue& value, facebook::react::ScrollViewSnapToAlignment& result); -void facebook::react::fromRawValue(const facebook::react::PropsParserContext& context, const facebook::react::RawValue& value, facebook::react::Selection& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext& context, const facebook::react::RawValue& value, facebook::react::SharedColor& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext& context, const facebook::react::RawValue& value, facebook::react::TextAlignment& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext& context, const facebook::react::RawValue& value, facebook::react::TextBreakStrategy& result); @@ -3740,7 +3738,6 @@ void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, c void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::LineBreakMode& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::Point& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::Size& result); -void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::SubmitBehavior& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::TextAlignmentVertical& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::TextWidthMode& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::ValueUnit& result); @@ -6186,11 +6183,6 @@ class facebook::react::TextAttributes : public facebook::react::DebugStringConve public void apply(facebook::react::TextAttributes textAttributes); } -class facebook::react::TextInputComponentDescriptor : public facebook::react::ConcreteComponentDescriptor { - protected virtual void adopt(facebook::react::ShadowNode& shadowNode) const override; - public TextInputComponentDescriptor(const facebook::react::ComponentDescriptorParameters& parameters); -} - class facebook::react::TextInputEventEmitter : public facebook::react::BaseViewEventEmitter { public void onBlur(const facebook::react::TextInputEventEmitter::Metrics& textInputMetrics) const; public void onChange(const facebook::react::TextInputEventEmitter::Metrics& textInputMetrics) const; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api index cd69da282893..4e3c9f68c860 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -347,7 +347,6 @@ facebook::yoga::FloatOptional facebook::react::yogaOptionalFloatFromFloat(Float float facebook::react::yogaFloatFromFloat(Float value); folly::dynamic facebook::react::diffDynamicProps(const folly::dynamic& oldProps, const folly::dynamic& newProps); folly::dynamic facebook::react::mergeDynamicProps(const folly::dynamic& source, const folly::dynamic& patch, facebook::react::NullValueStrategy nullValueStrategy); -folly::dynamic facebook::react::toDynamic(const facebook::react::SubmitBehavior& value); int facebook::react::toInt(const facebook::react::DisplayType& displayType); int facebook::react::toInt(const facebook::react::LayoutDirection& layoutDirection); size_t facebook::react::attributedStringFragmentHashDisplayWise(const facebook::react::AttributedString::Fragment& fragment); @@ -503,7 +502,6 @@ void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, c void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::LineBreakMode& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::Point& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::Size& result); -void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::SubmitBehavior& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::TextAlignmentVertical& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::TextWidthMode& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::ValueUnit& result); From 4bc3d9b7de7df245be184caa4e6bebdd860aba4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 8 Oct 2026 06:25:51 -0700 Subject: [PATCH 02/10] Make select jsinspector implementation headers private Summary: Mark the following `jsinspector-modern` headers as private instead of for-frameworks. All of them are implementation details of the inspector, and no for-frameworks header includes them: - `ConsoleTask`, `ConsoleTaskContext` and `ConsoleTaskOrchestrator` implement `console.createTask()`: the task object, the context that captures the stack trace when a task is created, and the singleton that tracks which task is currently running. They are only used by the inspector's console sources, a console test, and `PerformanceEntryReporter.cpp`, which reads the current task from the orchestrator. - `EmulationAgent` handles the CDP `Emulation` domain. It is only used by `EmulationAgent.cpp` and `HostAgent.cpp`. - `FallbackRuntimeAgentDelegate` answers CDP requests for a JavaScript runtime that does not support debugging. It is only used by `FallbackRuntimeAgentDelegate.cpp` and `FallbackRuntimeTargetDelegate.cpp`. `FallbackRuntimeTargetDelegate.h`, which creates it, stays for-frameworks. - `InspectorPackagerConnectionImpl.h` defines `InspectorPackagerConnection::Impl`, the hidden implementation of the inspector-proxy protocol. `InspectorPackagerConnection.h` only forward-declares it, and it is only used by `InspectorPackagerConnection.cpp`. `InspectorPackagerConnection.h` and `WebSocketInterfaces.h` stay for-frameworks, because each platform implements `InspectorPackagerConnectionDelegate`. - `RuntimeTargetGlobalStateObserver` installs a JavaScript global that reports a boolean state, such as whether a debugger session is active, and notifies its subscribers when the state changes. `RuntimeTargetTracingStateObserver` uses it to report whether tracing is active. Both are only used by the `RuntimeTarget` sources and their own sources. - `Utf8.h` provides `truncateToValidUTF8`, which trims a byte buffer so it does not end in the middle of a UTF-8 code point when `IO.read` slices a network resource. It is only used by `NetworkIOAgent.cpp` and its own unit test. - `ExecutionContextManager` allocates execution context IDs. It is only created by `HostTarget.cpp` and used by `InstanceTarget.cpp`. `HostTarget.h` and `InstanceTarget.h` only hold it through `std::shared_ptr`, so they now forward-declare it instead of including the header, and the two sources include it directly. React Native's own targets define `RN_BUILDING`, so the private guard does not affect them. Changelog: [Internal] Differential Revision: D123009197 --- .../jsinspector-modern/ConsoleTask.h | 2 +- .../jsinspector-modern/ConsoleTaskContext.h | 2 +- .../ConsoleTaskOrchestrator.h | 2 +- .../jsinspector-modern/EmulationAgent.h | 2 +- .../ExecutionContextManager.h | 2 +- .../FallbackRuntimeAgentDelegate.h | 2 +- .../jsinspector-modern/HostTarget.cpp | 1 + .../jsinspector-modern/HostTarget.h | 2 +- .../InspectorPackagerConnectionImpl.h | 2 +- .../jsinspector-modern/InstanceTarget.cpp | 1 + .../jsinspector-modern/InstanceTarget.h | 2 +- .../RuntimeTargetGlobalStateObserver.h | 2 +- .../RuntimeTargetTracingStateObserver.h | 2 +- .../ReactCommon/jsinspector-modern/Utf8.h | 2 +- .../ReactAndroidFrameworksCxx.api | 86 ------------------- .../api-snapshots/ReactAppleFrameworksCxx.api | 86 ------------------- .../ReactCommonFrameworksCxx.api | 86 ------------------- 17 files changed, 14 insertions(+), 270 deletions(-) diff --git a/packages/react-native/ReactCommon/jsinspector-modern/ConsoleTask.h b/packages/react-native/ReactCommon/jsinspector-modern/ConsoleTask.h index 85ed29d227fb..55773a8e0b4b 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/ConsoleTask.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/ConsoleTask.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include diff --git a/packages/react-native/ReactCommon/jsinspector-modern/ConsoleTaskContext.h b/packages/react-native/ReactCommon/jsinspector-modern/ConsoleTaskContext.h index 9a0d2f4136dd..cc660476b475 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/ConsoleTaskContext.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/ConsoleTaskContext.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "StackTrace.h" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.h b/packages/react-native/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.h index b5c8b5479a85..72c0f14c50a9 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include #include diff --git a/packages/react-native/ReactCommon/jsinspector-modern/EmulationAgent.h b/packages/react-native/ReactCommon/jsinspector-modern/EmulationAgent.h index 2b0869364b15..42f2296f4698 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/EmulationAgent.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/EmulationAgent.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "HostTarget.h" #include "InspectorInterfaces.h" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/ExecutionContextManager.h b/packages/react-native/ReactCommon/jsinspector-modern/ExecutionContextManager.h index 63134a20222b..70a051aac91a 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/ExecutionContextManager.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/ExecutionContextManager.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include diff --git a/packages/react-native/ReactCommon/jsinspector-modern/FallbackRuntimeAgentDelegate.h b/packages/react-native/ReactCommon/jsinspector-modern/FallbackRuntimeAgentDelegate.h index ba5ed9ed4f55..f8b9d0ecdddb 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/FallbackRuntimeAgentDelegate.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/FallbackRuntimeAgentDelegate.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "SessionState.h" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/HostTarget.cpp b/packages/react-native/ReactCommon/jsinspector-modern/HostTarget.cpp index 236debd0b819..39bcdd79de69 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/HostTarget.cpp +++ b/packages/react-native/ReactCommon/jsinspector-modern/HostTarget.cpp @@ -6,6 +6,7 @@ */ #include "HostTarget.h" +#include "ExecutionContextManager.h" #include "HostAgent.h" #include "HostTargetTraceRecording.h" #include "HostTargetTracing.h" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/HostTarget.h b/packages/react-native/ReactCommon/jsinspector-modern/HostTarget.h index 23e2de82821c..eaec5d0cff06 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/HostTarget.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/HostTarget.h @@ -9,7 +9,6 @@ #include -#include "ExecutionContextManager.h" #include "HostCommand.h" #include "InspectorInterfaces.h" #include "InstanceTarget.h" @@ -44,6 +43,7 @@ namespace facebook::react::jsinspector_modern { +class ExecutionContextManager; class HostTargetSession; class HostAgent; class HostTracingAgent; diff --git a/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h b/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h index b59a8430b912..8160a7c24243 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "InspectorInterfaces.h" #include "InspectorPackagerConnection.h" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/InstanceTarget.cpp b/packages/react-native/ReactCommon/jsinspector-modern/InstanceTarget.cpp index 016e399a8b0f..7fb64e3bea6b 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/InstanceTarget.cpp +++ b/packages/react-native/ReactCommon/jsinspector-modern/InstanceTarget.cpp @@ -5,6 +5,7 @@ * LICENSE file in the root directory of this source tree. */ +#include "ExecutionContextManager.h" #include "InstanceAgent.h" #include "SessionState.h" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/InstanceTarget.h b/packages/react-native/ReactCommon/jsinspector-modern/InstanceTarget.h index 35a8b904d596..45b43f412fec 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/InstanceTarget.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/InstanceTarget.h @@ -9,7 +9,6 @@ #include -#include "ExecutionContextManager.h" #include "RuntimeTarget.h" #include "ScopedExecutor.h" #include "SessionState.h" @@ -23,6 +22,7 @@ namespace facebook::react::jsinspector_modern { +class ExecutionContextManager; class InstanceAgent; class InstanceTracingAgent; class HostTargetTraceRecording; diff --git a/packages/react-native/ReactCommon/jsinspector-modern/RuntimeTargetGlobalStateObserver.h b/packages/react-native/ReactCommon/jsinspector-modern/RuntimeTargetGlobalStateObserver.h index ff8819d54259..09a2471d7456 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/RuntimeTargetGlobalStateObserver.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/RuntimeTargetGlobalStateObserver.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include diff --git a/packages/react-native/ReactCommon/jsinspector-modern/RuntimeTargetTracingStateObserver.h b/packages/react-native/ReactCommon/jsinspector-modern/RuntimeTargetTracingStateObserver.h index 44735ab1a5cc..f83e09c8b6a3 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/RuntimeTargetTracingStateObserver.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/RuntimeTargetTracingStateObserver.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include diff --git a/packages/react-native/ReactCommon/jsinspector-modern/Utf8.h b/packages/react-native/ReactCommon/jsinspector-modern/Utf8.h index 6c9f871d04b7..870c367a8c01 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/Utf8.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/Utf8.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include #include diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api index 4ffa84494634..039906a9ba7f 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api @@ -8924,12 +8924,7 @@ template facebook::react::jsinspector_modern::ScopedExecutor facebook::react::jsinspector_modern::makeScopedExecutor(std::shared_ptr self, facebook::react::jsinspector_modern::VoidExecutor executor); template facebook::react::jsinspector_modern::VoidExecutor facebook::react::jsinspector_modern::makeVoidExecutor(facebook::react::jsinspector_modern::ScopedExecutor executor); -void facebook::react::jsinspector_modern::emitGlobalStateObserverChange(facebook::jsi::Runtime& runtime, const char* globalName, const char* callbackName, bool value); void facebook::react::jsinspector_modern::emitNotificationsForTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const facebook::react::jsinspector_modern::FrontendChannel& channel, bool isBackgroundTrace); -void facebook::react::jsinspector_modern::emitTracingStateObserverChange(facebook::jsi::Runtime& runtime, bool isTracing); -void facebook::react::jsinspector_modern::installGlobalStateObserver(facebook::jsi::Runtime& runtime, const char* globalName, const char* statusProperty, const char* callbackName); -void facebook::react::jsinspector_modern::installTracingStateObserver(facebook::jsi::Runtime& runtime); -void facebook::react::jsinspector_modern::truncateToValidUTF8(std::vector& buffer); class facebook::react::jsinspector_modern::CallbackLocalConnection : public facebook::react::jsinspector_modern::ILocalConnection { public CallbackLocalConnection(std::function handler); @@ -8943,62 +8938,6 @@ class facebook::react::jsinspector_modern::CallbackRemoteConnection : public fac public virtual void onMessage(std::string message) override; } -class facebook::react::jsinspector_modern::ConsoleTask { - public ConsoleTask(const facebook::react::jsinspector_modern::ConsoleTask&) = default; - public ConsoleTask(facebook::react::jsinspector_modern::ConsoleTask&&) = default; - public ConsoleTask(std::shared_ptr taskContext); - public facebook::react::jsinspector_modern::ConsoleTask& operator=(const facebook::react::jsinspector_modern::ConsoleTask&) = delete; - public facebook::react::jsinspector_modern::ConsoleTask& operator=(facebook::react::jsinspector_modern::ConsoleTask&&) = delete; - public ~ConsoleTask(); -} - -class facebook::react::jsinspector_modern::ConsoleTaskContext : public std::enable_shared_from_this { - public ConsoleTaskContext(const facebook::react::jsinspector_modern::ConsoleTaskContext&) = delete; - public ConsoleTaskContext(facebook::jsi::Runtime& runtime, facebook::react::jsinspector_modern::RuntimeTargetDelegate& runtimeTargetDelegate, std::string name); - public ConsoleTaskContext(facebook::react::jsinspector_modern::ConsoleTaskContext&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskContext& operator=(const facebook::react::jsinspector_modern::ConsoleTaskContext&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskContext& operator=(facebook::react::jsinspector_modern::ConsoleTaskContext&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskId id() const; - public std::optional getSerializedStackTrace() const; - public void schedule(); - public ~ConsoleTaskContext(); -} - -class facebook::react::jsinspector_modern::ConsoleTaskId { - public ConsoleTaskId() = default; - public ConsoleTaskId(const facebook::react::jsinspector_modern::ConsoleTaskId&) = default; - public ConsoleTaskId(facebook::react::jsinspector_modern::ConsoleTaskId&&) = default; - public bool operator==(const facebook::react::jsinspector_modern::ConsoleTaskId&) const = default; - public facebook::react::jsinspector_modern::ConsoleTaskId& operator=(const facebook::react::jsinspector_modern::ConsoleTaskId&) = default; - public facebook::react::jsinspector_modern::ConsoleTaskId& operator=(facebook::react::jsinspector_modern::ConsoleTaskId&&) = default; - public operator bool() const; - public operator void *() const; - public ~ConsoleTaskId() = default; -} - -class facebook::react::jsinspector_modern::ConsoleTaskOrchestrator { - public ConsoleTaskOrchestrator(const facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&) = delete; - public ConsoleTaskOrchestrator(facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& operator=(const facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& operator=(facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&&) = delete; - public static facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& getInstance(); - public std::shared_ptr top() const; - public void cancelTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public void finishTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public void scheduleTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId, std::weak_ptr taskContext); - public void startTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public ~ConsoleTaskOrchestrator() = default; -} - -class facebook::react::jsinspector_modern::EmulationAgent { - public EmulationAgent(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, facebook::react::jsinspector_modern::HostTargetController& hostTargetController); - public bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); -} - -class facebook::react::jsinspector_modern::ExecutionContextManager { - public int32_t allocateExecutionContextId(); -} - class facebook::react::jsinspector_modern::ExecutionContextSelector { public ExecutionContextSelector() = delete; public ExecutionContextSelector(const facebook::react::jsinspector_modern::ExecutionContextSelector& other) = default; @@ -9013,11 +8952,6 @@ class facebook::react::jsinspector_modern::ExecutionContextSelector { public ~ExecutionContextSelector() = default; } -class facebook::react::jsinspector_modern::FallbackRuntimeAgentDelegate : public facebook::react::jsinspector_modern::RuntimeAgentDelegate { - public FallbackRuntimeAgentDelegate(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, const facebook::react::jsinspector_modern::SessionState& sessionState, std::string engineDescription); - public virtual bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req) override; -} - class facebook::react::jsinspector_modern::FallbackRuntimeTargetDelegate : public facebook::react::jsinspector_modern::RuntimeTargetDelegate { public FallbackRuntimeTargetDelegate(std::string engineDescription); public virtual bool supportsConsole() const override; @@ -9202,22 +9136,6 @@ class facebook::react::jsinspector_modern::InspectorPackagerConnection { public void sendEventToAllConnections(std::string event); } -class facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl : public facebook::react::jsinspector_modern::IWebSocketDelegate, public facebook::react::jsinspector_modern::IPageStatusListener, public std::enable_shared_from_this { - public bool isConnected() const; - public static std::shared_ptr create(std::string url, std::string deviceName, std::string appName, std::unique_ptr delegate); - public using SessionId = uint32_t; - public void closeQuietly(); - public void connect(); - public void scheduleSendToPackager(folly::dynamic message, facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::SessionId sourceSessionId, const std::string& sourcePageId, const std::string& sourceProxySessionId); - public void sendEventToAllConnections(const std::string& event); -} - -class facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::RemoteConnection : public facebook::react::jsinspector_modern::IRemoteConnection { - public RemoteConnection(std::weak_ptr owningPackagerConnection, std::string pageId, facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::SessionId sessionId, std::string proxySessionId); - public virtual void onDisconnect() override; - public virtual void onMessage(std::string message) override; -} - class facebook::react::jsinspector_modern::InspectorPackagerConnectionDelegate { public virtual std::unique_ptr connectWebSocket(const std::string& url, std::weak_ptr delegate) = 0; public virtual void scheduleCallback(std::function callback, std::chrono::milliseconds delayMs) = 0; @@ -12078,10 +11996,6 @@ struct std::hash { public size_t operator()(const facebook::react::AttributedString::Fragment& fragment) const; } -struct std::hash { - public size_t operator()(const facebook::react::jsinspector_modern::ConsoleTaskId& id) const; -} - struct std::hash { public size_t operator()(const facebook::react::jsinspector_modern::ExecutionContextSelector& selector) const; } diff --git a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api index dfcc4580f618..4000147b79b7 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -10855,12 +10855,7 @@ template facebook::react::jsinspector_modern::ScopedExecutor facebook::react::jsinspector_modern::makeScopedExecutor(std::shared_ptr self, facebook::react::jsinspector_modern::VoidExecutor executor); template facebook::react::jsinspector_modern::VoidExecutor facebook::react::jsinspector_modern::makeVoidExecutor(facebook::react::jsinspector_modern::ScopedExecutor executor); -void facebook::react::jsinspector_modern::emitGlobalStateObserverChange(facebook::jsi::Runtime& runtime, const char* globalName, const char* callbackName, bool value); void facebook::react::jsinspector_modern::emitNotificationsForTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const facebook::react::jsinspector_modern::FrontendChannel& channel, bool isBackgroundTrace); -void facebook::react::jsinspector_modern::emitTracingStateObserverChange(facebook::jsi::Runtime& runtime, bool isTracing); -void facebook::react::jsinspector_modern::installGlobalStateObserver(facebook::jsi::Runtime& runtime, const char* globalName, const char* statusProperty, const char* callbackName); -void facebook::react::jsinspector_modern::installTracingStateObserver(facebook::jsi::Runtime& runtime); -void facebook::react::jsinspector_modern::truncateToValidUTF8(std::vector& buffer); class facebook::react::jsinspector_modern::CallbackLocalConnection : public facebook::react::jsinspector_modern::ILocalConnection { public CallbackLocalConnection(std::function handler); @@ -10874,62 +10869,6 @@ class facebook::react::jsinspector_modern::CallbackRemoteConnection : public fac public virtual void onMessage(std::string message) override; } -class facebook::react::jsinspector_modern::ConsoleTask { - public ConsoleTask(const facebook::react::jsinspector_modern::ConsoleTask&) = default; - public ConsoleTask(facebook::react::jsinspector_modern::ConsoleTask&&) = default; - public ConsoleTask(std::shared_ptr taskContext); - public facebook::react::jsinspector_modern::ConsoleTask& operator=(const facebook::react::jsinspector_modern::ConsoleTask&) = delete; - public facebook::react::jsinspector_modern::ConsoleTask& operator=(facebook::react::jsinspector_modern::ConsoleTask&&) = delete; - public ~ConsoleTask(); -} - -class facebook::react::jsinspector_modern::ConsoleTaskContext : public std::enable_shared_from_this { - public ConsoleTaskContext(const facebook::react::jsinspector_modern::ConsoleTaskContext&) = delete; - public ConsoleTaskContext(facebook::jsi::Runtime& runtime, facebook::react::jsinspector_modern::RuntimeTargetDelegate& runtimeTargetDelegate, std::string name); - public ConsoleTaskContext(facebook::react::jsinspector_modern::ConsoleTaskContext&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskContext& operator=(const facebook::react::jsinspector_modern::ConsoleTaskContext&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskContext& operator=(facebook::react::jsinspector_modern::ConsoleTaskContext&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskId id() const; - public std::optional getSerializedStackTrace() const; - public void schedule(); - public ~ConsoleTaskContext(); -} - -class facebook::react::jsinspector_modern::ConsoleTaskId { - public ConsoleTaskId() = default; - public ConsoleTaskId(const facebook::react::jsinspector_modern::ConsoleTaskId&) = default; - public ConsoleTaskId(facebook::react::jsinspector_modern::ConsoleTaskId&&) = default; - public bool operator==(const facebook::react::jsinspector_modern::ConsoleTaskId&) const = default; - public facebook::react::jsinspector_modern::ConsoleTaskId& operator=(const facebook::react::jsinspector_modern::ConsoleTaskId&) = default; - public facebook::react::jsinspector_modern::ConsoleTaskId& operator=(facebook::react::jsinspector_modern::ConsoleTaskId&&) = default; - public operator bool() const; - public operator void *() const; - public ~ConsoleTaskId() = default; -} - -class facebook::react::jsinspector_modern::ConsoleTaskOrchestrator { - public ConsoleTaskOrchestrator(const facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&) = delete; - public ConsoleTaskOrchestrator(facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& operator=(const facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& operator=(facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&&) = delete; - public static facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& getInstance(); - public std::shared_ptr top() const; - public void cancelTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public void finishTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public void scheduleTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId, std::weak_ptr taskContext); - public void startTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public ~ConsoleTaskOrchestrator() = default; -} - -class facebook::react::jsinspector_modern::EmulationAgent { - public EmulationAgent(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, facebook::react::jsinspector_modern::HostTargetController& hostTargetController); - public bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); -} - -class facebook::react::jsinspector_modern::ExecutionContextManager { - public int32_t allocateExecutionContextId(); -} - class facebook::react::jsinspector_modern::ExecutionContextSelector { public ExecutionContextSelector() = delete; public ExecutionContextSelector(const facebook::react::jsinspector_modern::ExecutionContextSelector& other) = default; @@ -10944,11 +10883,6 @@ class facebook::react::jsinspector_modern::ExecutionContextSelector { public ~ExecutionContextSelector() = default; } -class facebook::react::jsinspector_modern::FallbackRuntimeAgentDelegate : public facebook::react::jsinspector_modern::RuntimeAgentDelegate { - public FallbackRuntimeAgentDelegate(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, const facebook::react::jsinspector_modern::SessionState& sessionState, std::string engineDescription); - public virtual bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req) override; -} - class facebook::react::jsinspector_modern::FallbackRuntimeTargetDelegate : public facebook::react::jsinspector_modern::RuntimeTargetDelegate { public FallbackRuntimeTargetDelegate(std::string engineDescription); public virtual bool supportsConsole() const override; @@ -11133,22 +11067,6 @@ class facebook::react::jsinspector_modern::InspectorPackagerConnection { public void sendEventToAllConnections(std::string event); } -class facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl : public facebook::react::jsinspector_modern::IWebSocketDelegate, public facebook::react::jsinspector_modern::IPageStatusListener, public std::enable_shared_from_this { - public bool isConnected() const; - public static std::shared_ptr create(std::string url, std::string deviceName, std::string appName, std::unique_ptr delegate); - public using SessionId = uint32_t; - public void closeQuietly(); - public void connect(); - public void scheduleSendToPackager(folly::dynamic message, facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::SessionId sourceSessionId, const std::string& sourcePageId, const std::string& sourceProxySessionId); - public void sendEventToAllConnections(const std::string& event); -} - -class facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::RemoteConnection : public facebook::react::jsinspector_modern::IRemoteConnection { - public RemoteConnection(std::weak_ptr owningPackagerConnection, std::string pageId, facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::SessionId sessionId, std::string proxySessionId); - public virtual void onDisconnect() override; - public virtual void onMessage(std::string message) override; -} - class facebook::react::jsinspector_modern::InspectorPackagerConnectionDelegate { public virtual std::unique_ptr connectWebSocket(const std::string& url, std::weak_ptr delegate) = 0; public virtual void scheduleCallback(std::function callback, std::chrono::milliseconds delayMs) = 0; @@ -14248,10 +14166,6 @@ struct std::hash { public size_t operator()(const facebook::react::AttributedString::Fragment& fragment) const; } -struct std::hash { - public size_t operator()(const facebook::react::jsinspector_modern::ConsoleTaskId& id) const; -} - struct std::hash { public size_t operator()(const facebook::react::jsinspector_modern::ExecutionContextSelector& selector) const; } diff --git a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api index 4e3c9f68c860..c79f7b5a045f 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -6159,12 +6159,7 @@ template facebook::react::jsinspector_modern::ScopedExecutor facebook::react::jsinspector_modern::makeScopedExecutor(std::shared_ptr self, facebook::react::jsinspector_modern::VoidExecutor executor); template facebook::react::jsinspector_modern::VoidExecutor facebook::react::jsinspector_modern::makeVoidExecutor(facebook::react::jsinspector_modern::ScopedExecutor executor); -void facebook::react::jsinspector_modern::emitGlobalStateObserverChange(facebook::jsi::Runtime& runtime, const char* globalName, const char* callbackName, bool value); void facebook::react::jsinspector_modern::emitNotificationsForTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const facebook::react::jsinspector_modern::FrontendChannel& channel, bool isBackgroundTrace); -void facebook::react::jsinspector_modern::emitTracingStateObserverChange(facebook::jsi::Runtime& runtime, bool isTracing); -void facebook::react::jsinspector_modern::installGlobalStateObserver(facebook::jsi::Runtime& runtime, const char* globalName, const char* statusProperty, const char* callbackName); -void facebook::react::jsinspector_modern::installTracingStateObserver(facebook::jsi::Runtime& runtime); -void facebook::react::jsinspector_modern::truncateToValidUTF8(std::vector& buffer); class facebook::react::jsinspector_modern::CallbackLocalConnection : public facebook::react::jsinspector_modern::ILocalConnection { public CallbackLocalConnection(std::function handler); @@ -6178,62 +6173,6 @@ class facebook::react::jsinspector_modern::CallbackRemoteConnection : public fac public virtual void onMessage(std::string message) override; } -class facebook::react::jsinspector_modern::ConsoleTask { - public ConsoleTask(const facebook::react::jsinspector_modern::ConsoleTask&) = default; - public ConsoleTask(facebook::react::jsinspector_modern::ConsoleTask&&) = default; - public ConsoleTask(std::shared_ptr taskContext); - public facebook::react::jsinspector_modern::ConsoleTask& operator=(const facebook::react::jsinspector_modern::ConsoleTask&) = delete; - public facebook::react::jsinspector_modern::ConsoleTask& operator=(facebook::react::jsinspector_modern::ConsoleTask&&) = delete; - public ~ConsoleTask(); -} - -class facebook::react::jsinspector_modern::ConsoleTaskContext : public std::enable_shared_from_this { - public ConsoleTaskContext(const facebook::react::jsinspector_modern::ConsoleTaskContext&) = delete; - public ConsoleTaskContext(facebook::jsi::Runtime& runtime, facebook::react::jsinspector_modern::RuntimeTargetDelegate& runtimeTargetDelegate, std::string name); - public ConsoleTaskContext(facebook::react::jsinspector_modern::ConsoleTaskContext&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskContext& operator=(const facebook::react::jsinspector_modern::ConsoleTaskContext&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskContext& operator=(facebook::react::jsinspector_modern::ConsoleTaskContext&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskId id() const; - public std::optional getSerializedStackTrace() const; - public void schedule(); - public ~ConsoleTaskContext(); -} - -class facebook::react::jsinspector_modern::ConsoleTaskId { - public ConsoleTaskId() = default; - public ConsoleTaskId(const facebook::react::jsinspector_modern::ConsoleTaskId&) = default; - public ConsoleTaskId(facebook::react::jsinspector_modern::ConsoleTaskId&&) = default; - public bool operator==(const facebook::react::jsinspector_modern::ConsoleTaskId&) const = default; - public facebook::react::jsinspector_modern::ConsoleTaskId& operator=(const facebook::react::jsinspector_modern::ConsoleTaskId&) = default; - public facebook::react::jsinspector_modern::ConsoleTaskId& operator=(facebook::react::jsinspector_modern::ConsoleTaskId&&) = default; - public operator bool() const; - public operator void *() const; - public ~ConsoleTaskId() = default; -} - -class facebook::react::jsinspector_modern::ConsoleTaskOrchestrator { - public ConsoleTaskOrchestrator(const facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&) = delete; - public ConsoleTaskOrchestrator(facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& operator=(const facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& operator=(facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&&) = delete; - public static facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& getInstance(); - public std::shared_ptr top() const; - public void cancelTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public void finishTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public void scheduleTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId, std::weak_ptr taskContext); - public void startTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public ~ConsoleTaskOrchestrator() = default; -} - -class facebook::react::jsinspector_modern::EmulationAgent { - public EmulationAgent(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, facebook::react::jsinspector_modern::HostTargetController& hostTargetController); - public bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); -} - -class facebook::react::jsinspector_modern::ExecutionContextManager { - public int32_t allocateExecutionContextId(); -} - class facebook::react::jsinspector_modern::ExecutionContextSelector { public ExecutionContextSelector() = delete; public ExecutionContextSelector(const facebook::react::jsinspector_modern::ExecutionContextSelector& other) = default; @@ -6248,11 +6187,6 @@ class facebook::react::jsinspector_modern::ExecutionContextSelector { public ~ExecutionContextSelector() = default; } -class facebook::react::jsinspector_modern::FallbackRuntimeAgentDelegate : public facebook::react::jsinspector_modern::RuntimeAgentDelegate { - public FallbackRuntimeAgentDelegate(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, const facebook::react::jsinspector_modern::SessionState& sessionState, std::string engineDescription); - public virtual bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req) override; -} - class facebook::react::jsinspector_modern::FallbackRuntimeTargetDelegate : public facebook::react::jsinspector_modern::RuntimeTargetDelegate { public FallbackRuntimeTargetDelegate(std::string engineDescription); public virtual bool supportsConsole() const override; @@ -6437,22 +6371,6 @@ class facebook::react::jsinspector_modern::InspectorPackagerConnection { public void sendEventToAllConnections(std::string event); } -class facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl : public facebook::react::jsinspector_modern::IWebSocketDelegate, public facebook::react::jsinspector_modern::IPageStatusListener, public std::enable_shared_from_this { - public bool isConnected() const; - public static std::shared_ptr create(std::string url, std::string deviceName, std::string appName, std::unique_ptr delegate); - public using SessionId = uint32_t; - public void closeQuietly(); - public void connect(); - public void scheduleSendToPackager(folly::dynamic message, facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::SessionId sourceSessionId, const std::string& sourcePageId, const std::string& sourceProxySessionId); - public void sendEventToAllConnections(const std::string& event); -} - -class facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::RemoteConnection : public facebook::react::jsinspector_modern::IRemoteConnection { - public RemoteConnection(std::weak_ptr owningPackagerConnection, std::string pageId, facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::SessionId sessionId, std::string proxySessionId); - public virtual void onDisconnect() override; - public virtual void onMessage(std::string message) override; -} - class facebook::react::jsinspector_modern::InspectorPackagerConnectionDelegate { public virtual std::unique_ptr connectWebSocket(const std::string& url, std::weak_ptr delegate) = 0; public virtual void scheduleCallback(std::function callback, std::chrono::milliseconds delayMs) = 0; @@ -9146,10 +9064,6 @@ struct std::hash { public size_t operator()(const facebook::react::AttributedString::Fragment& fragment) const; } -struct std::hash { - public size_t operator()(const facebook::react::jsinspector_modern::ConsoleTaskId& id) const; -} - struct std::hash { public size_t operator()(const facebook::react::jsinspector_modern::ExecutionContextSelector& selector) const; } From e9fd982ba2ee5f8ce0e26cb28f45b9f9fc5878e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 8 Oct 2026 06:30:03 -0700 Subject: [PATCH 03/10] Make select jsinspector tracing implementation headers private Summary: Mark the following tracing headers as private instead of for-frameworks. All of them are implementation details of React Native's tracing infrastructure, and no for-frameworks header includes them: - `EventLoopReporter` is an RAII helper the runtime scheduler uses to report event loop task and microtask phases to the performance tracer. It is only used by `EventLoopReporter.cpp` and `RuntimeScheduler_Modern.cpp`. - `RuntimeSamplingProfileTraceEventSerializer` turns a runtime sampling profile into trace events. It is only used by tracing sources, `TracingAgent.cpp` and its own unit test. - `TraceEventSerializer` serializes trace events to `folly::dynamic`. It is only used by tracing sources and `TracingAgent.cpp`. - `TraceEventGenerator` builds trace events for the performance tracer and the host profile serializer. It is only used by tracing sources and was already not exported in Buck. - `ProfileTreeNode` is an auxiliary tree used to build the profile and deduplicate identical frames. It is only used by `RuntimeSamplingProfileTraceEventSerializer.cpp` and its own unit test. - `Timing.h` defines the tracing clock origin and the conversions from `HighResTimeStamp` and `HighResDuration` to trace event microseconds. It is only used by tracing sources and a tracing unit test. `TracingAgent.h` included `Timing.h` without using it; that include is removed. React Native's own targets define `RN_BUILDING`, so the private guard does not affect them. Changelog: [Internal] Differential Revision: D122780825 --- .../jsinspector-modern/TracingAgent.h | 1 - .../tracing/EventLoopReporter.h | 2 +- .../tracing/ProfileTreeNode.h | 2 +- ...ntimeSamplingProfileTraceEventSerializer.h | 2 +- .../jsinspector-modern/tracing/Timing.h | 2 +- .../tracing/TraceEventGenerator.h | 2 +- .../tracing/TraceEventSerializer.h | 2 +- .../ReactAndroidFrameworksCxx.api | 61 ------------------- .../api-snapshots/ReactAppleFrameworksCxx.api | 61 ------------------- .../ReactCommonFrameworksCxx.api | 61 ------------------- 10 files changed, 6 insertions(+), 190 deletions(-) diff --git a/packages/react-native/ReactCommon/jsinspector-modern/TracingAgent.h b/packages/react-native/ReactCommon/jsinspector-modern/TracingAgent.h index c58c6cf48e5a..ba3631d742d5 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/TracingAgent.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/TracingAgent.h @@ -15,7 +15,6 @@ #include #include #include -#include namespace facebook::react::jsinspector_modern { diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/EventLoopReporter.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/EventLoopReporter.h index 4531200f4f00..bb8ebdb97c5b 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/EventLoopReporter.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/EventLoopReporter.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #if defined(REACT_NATIVE_DEBUGGER_ENABLED) #include diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/ProfileTreeNode.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/ProfileTreeNode.h index 5efd0d022784..9439e0e83fb0 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/ProfileTreeNode.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/ProfileTreeNode.h @@ -7,7 +7,7 @@ #pragma once -#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 a1b0b6198e5a..e4019bb29431 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "RuntimeSamplingProfile.h" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/Timing.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/Timing.h index 5406602bdfcd..1fef1c0d2916 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/Timing.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/Timing.h @@ -7,7 +7,7 @@ #pragma once -#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 a46e7c2ba7f0..c5580bcbb60d 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "TraceEvent.h" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.h index 8b83f24be2f7..b1f99195443f 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "TraceEvent.h" #include "TraceEventProfile.h" diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api index 039906a9ba7f..a4524c2db52f 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api @@ -9569,7 +9569,6 @@ class facebook::react::jsinspector_modern::WeakList { } -constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::TRACING_TIME_ORIGIN; constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::kCurrentBufferStartTimeUninitialized; using facebook::react::jsinspector_modern::tracing::Categories = folly::small_vector; using facebook::react::jsinspector_modern::tracing::ConsoleTimeStampEntry = std::variant; @@ -9578,7 +9577,6 @@ using facebook::react::jsinspector_modern::tracing::Headers = std::map facebook::react::jsinspector_modern::tracing::getTracingCategoryFromString(const std::string& str); std::optional facebook::react::jsinspector_modern::tracing::getConsoleTimeStampColorFromString(const std::string& str); std::optional facebook::react::jsinspector_modern::tracing::getConsoleTimeStampDetailFromObject(facebook::jsi::Runtime& runtime, const facebook::jsi::Value& detailValue); @@ -9587,7 +9585,6 @@ std::string facebook::react::jsinspector_modern::tracing::consoleTimeStampColorT std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const facebook::react::jsinspector_modern::tracing::Categories& categories); std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const std::set& categories); std::string facebook::react::jsinspector_modern::tracing::tracingCategoryToString(const facebook::react::jsinspector_modern::tracing::Category& category); -uint64_t facebook::react::jsinspector_modern::tracing::highResTimeStampToTracingClockTimeStamp(facebook::react::HighResTimeStamp timestamp); class facebook::react::jsinspector_modern::tracing::HostTracingProfileSerializer { public static void emitAsDataCollectedChunks(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const std::function& chunkCallback, size_t maxChunkBytes, uint16_t profileTraceEventsChunkSize); @@ -9618,56 +9615,16 @@ class facebook::react::jsinspector_modern::tracing::PerformanceTracer { public void unsubscribeFromTracingStateChanges(uint32_t subscriptionId); } -class facebook::react::jsinspector_modern::tracing::ProfileTreeNode { - public ProfileTreeNode(uint32_t id, facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType codeType, facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame callFrame, uint32_t parentId = facebook::react::jsinspector_modern::tracing::ProfileTreeNode::NO_PARENT); - public bool hasParent() const; - public const facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame& getCallFrame() const; - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode* addChild(uint32_t childId, facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType childCodeType, facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame childCallFrame); - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode* getIfAlreadyExists(facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType childCodeType, const facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame& childCallFrame); - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType getCodeType() const; - public static constexpr uint32_t NO_PARENT; - public uint32_t getId() const; - public uint32_t getParentId() const; -} - -enum facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType { - JavaScript, - Other, -} - class facebook::react::jsinspector_modern::tracing::RawRuntimeProfile { public virtual ~RawRuntimeProfile() = default; } -class facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfileTraceEventSerializer { - public static void serializeAndDispatch(facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile&& profile, facebook::react::jsinspector_modern::tracing::IdGenerator& profileIdGenerator, facebook::react::HighResTimeStamp tracingStartTime, const std::function& dispatchCallback, uint16_t traceEventChunkSize, uint16_t profileChunkSize = PROFILE_CHUNK_SIZE, uint16_t maxUniqueNodesPerChunk = MAX_UNIQUE_NODES_PER_CHUNK); - public static void serializeAndDispatch(std::vector&& profiles, facebook::react::jsinspector_modern::tracing::IdGenerator& profileIdGenerator, facebook::react::HighResTimeStamp tracingStartTime, const std::function& dispatchCallback, uint16_t traceEventChunkSize, uint16_t profileChunkSize = PROFILE_CHUNK_SIZE, uint16_t maxUniqueNodesPerChunk = MAX_UNIQUE_NODES_PER_CHUNK); -} - class facebook::react::jsinspector_modern::tracing::TargetTracingAgent { protected facebook::react::jsinspector_modern::tracing::TraceRecordingState& state_; public TargetTracingAgent(facebook::react::jsinspector_modern::tracing::TraceRecordingState& state); public bool isRunningInBackgroundMode(); } -class facebook::react::jsinspector_modern::tracing::TraceEventGenerator { - public static facebook::react::jsinspector_modern::tracing::TraceEvent createIdleBeginFrameEvent(facebook::react::jsinspector_modern::tracing::FrameSequenceId sequenceId, int layerTreeId, facebook::react::HighResTimeStamp timestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createNeedsBeginFrameChangedEvent(int layerTreeId, facebook::react::HighResTimeStamp timestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createScreenshotEvent(facebook::react::jsinspector_modern::tracing::FrameSequenceId frameSequenceId, int sourceId, std::vector&& snapshot, facebook::react::HighResTimeStamp expectedDisplayTime, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createSetLayerTreeIdEvent(std::string frame, int layerTreeId, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId, facebook::react::HighResTimeStamp timestamp); - public static std::pair createFrameTimingsEvents(facebook::react::jsinspector_modern::tracing::FrameSequenceId sequenceId, int layerTreeId, facebook::react::HighResTimeStamp beginTimestamp, facebook::react::HighResTimeStamp endTimestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); -} - -class facebook::react::jsinspector_modern::tracing::TraceEventSerializer { - public static folly::dynamic serialize(facebook::react::jsinspector_modern::tracing::TraceEvent&& event); - public static folly::dynamic serializeProfileChunk(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk&& profileChunk); - public static folly::dynamic serializeProfileChunkCPUProfile(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile&& cpuProfile); - public static folly::dynamic serializeProfileChunkCPUProfileNode(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile::Node&& node); - public static folly::dynamic serializeProfileChunkCPUProfileNodeCallFrame(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile::Node::CallFrame&& callFrame); - public static folly::dynamic serializeProfileChunkTimeDeltas(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::TimeDeltas&& deltas); - public static size_t estimateJsonSize(const folly::dynamic& value); -} - enum facebook::react::jsinspector_modern::tracing::Category { Frame, HiddenTimeline, @@ -9692,25 +9649,11 @@ enum facebook::react::jsinspector_modern::tracing::ConsoleTimeStampColor { Warning, } -enum facebook::react::jsinspector_modern::tracing::EventLoopPhase { - Microtasks, - Task, -} - enum facebook::react::jsinspector_modern::tracing::Mode { Background, CDP, } -struct facebook::react::jsinspector_modern::tracing::EventLoopReporter { - public EventLoopReporter(const facebook::react::jsinspector_modern::tracing::EventLoopReporter&) = delete; - public EventLoopReporter(facebook::react::jsinspector_modern::tracing::EventLoopPhase phase); - public EventLoopReporter(facebook::react::jsinspector_modern::tracing::EventLoopReporter&&) = delete; - public facebook::react::jsinspector_modern::tracing::EventLoopReporter& operator=(const facebook::react::jsinspector_modern::tracing::EventLoopReporter&) = delete; - public facebook::react::jsinspector_modern::tracing::EventLoopReporter& operator=(facebook::react::jsinspector_modern::tracing::EventLoopReporter&&) = delete; - public ~EventLoopReporter(); -} - struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence { public FrameTimingSequence() = delete; public FrameTimingSequence(facebook::react::jsinspector_modern::tracing::FrameSequenceId id, facebook::react::jsinspector_modern::tracing::ThreadId threadId, facebook::react::HighResTimeStamp beginTimestamp, facebook::react::HighResTimeStamp endTimestamp, std::optional> screenshot = std::nullopt, facebook::react::HighResDuration vsyncInterval = facebook::react::HighResDuration::zero()); @@ -9736,10 +9679,6 @@ struct facebook::react::jsinspector_modern::tracing::HostTracingProfile { public ~HostTracingProfile() = default; } -struct facebook::react::jsinspector_modern::tracing::IdGenerator { - public uint32_t getNext(); -} - struct facebook::react::jsinspector_modern::tracing::InstanceTracingProfile { public std::vector performanceTraceEvents; } diff --git a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api index 4000147b79b7..ea2e0f6cdb07 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -11428,7 +11428,6 @@ class facebook::react::jsinspector_modern::WeakList { } -constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::TRACING_TIME_ORIGIN; constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::kCurrentBufferStartTimeUninitialized; using facebook::react::jsinspector_modern::tracing::Categories = folly::small_vector; using facebook::react::jsinspector_modern::tracing::ConsoleTimeStampEntry = std::variant; @@ -11437,7 +11436,6 @@ using facebook::react::jsinspector_modern::tracing::Headers = std::map facebook::react::jsinspector_modern::tracing::getTracingCategoryFromString(const std::string& str); std::optional facebook::react::jsinspector_modern::tracing::getConsoleTimeStampColorFromString(const std::string& str); std::optional facebook::react::jsinspector_modern::tracing::getConsoleTimeStampDetailFromObject(facebook::jsi::Runtime& runtime, const facebook::jsi::Value& detailValue); @@ -11446,7 +11444,6 @@ std::string facebook::react::jsinspector_modern::tracing::consoleTimeStampColorT std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const facebook::react::jsinspector_modern::tracing::Categories& categories); std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const std::set& categories); std::string facebook::react::jsinspector_modern::tracing::tracingCategoryToString(const facebook::react::jsinspector_modern::tracing::Category& category); -uint64_t facebook::react::jsinspector_modern::tracing::highResTimeStampToTracingClockTimeStamp(facebook::react::HighResTimeStamp timestamp); class facebook::react::jsinspector_modern::tracing::HostTracingProfileSerializer { public static void emitAsDataCollectedChunks(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const std::function& chunkCallback, size_t maxChunkBytes, uint16_t profileTraceEventsChunkSize); @@ -11477,56 +11474,16 @@ class facebook::react::jsinspector_modern::tracing::PerformanceTracer { public void unsubscribeFromTracingStateChanges(uint32_t subscriptionId); } -class facebook::react::jsinspector_modern::tracing::ProfileTreeNode { - public ProfileTreeNode(uint32_t id, facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType codeType, facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame callFrame, uint32_t parentId = facebook::react::jsinspector_modern::tracing::ProfileTreeNode::NO_PARENT); - public bool hasParent() const; - public const facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame& getCallFrame() const; - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode* addChild(uint32_t childId, facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType childCodeType, facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame childCallFrame); - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode* getIfAlreadyExists(facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType childCodeType, const facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame& childCallFrame); - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType getCodeType() const; - public static constexpr uint32_t NO_PARENT; - public uint32_t getId() const; - public uint32_t getParentId() const; -} - -enum facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType { - JavaScript, - Other, -} - class facebook::react::jsinspector_modern::tracing::RawRuntimeProfile { public virtual ~RawRuntimeProfile() = default; } -class facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfileTraceEventSerializer { - public static void serializeAndDispatch(facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile&& profile, facebook::react::jsinspector_modern::tracing::IdGenerator& profileIdGenerator, facebook::react::HighResTimeStamp tracingStartTime, const std::function& dispatchCallback, uint16_t traceEventChunkSize, uint16_t profileChunkSize = PROFILE_CHUNK_SIZE, uint16_t maxUniqueNodesPerChunk = MAX_UNIQUE_NODES_PER_CHUNK); - public static void serializeAndDispatch(std::vector&& profiles, facebook::react::jsinspector_modern::tracing::IdGenerator& profileIdGenerator, facebook::react::HighResTimeStamp tracingStartTime, const std::function& dispatchCallback, uint16_t traceEventChunkSize, uint16_t profileChunkSize = PROFILE_CHUNK_SIZE, uint16_t maxUniqueNodesPerChunk = MAX_UNIQUE_NODES_PER_CHUNK); -} - class facebook::react::jsinspector_modern::tracing::TargetTracingAgent { protected facebook::react::jsinspector_modern::tracing::TraceRecordingState& state_; public TargetTracingAgent(facebook::react::jsinspector_modern::tracing::TraceRecordingState& state); public bool isRunningInBackgroundMode(); } -class facebook::react::jsinspector_modern::tracing::TraceEventGenerator { - public static facebook::react::jsinspector_modern::tracing::TraceEvent createIdleBeginFrameEvent(facebook::react::jsinspector_modern::tracing::FrameSequenceId sequenceId, int layerTreeId, facebook::react::HighResTimeStamp timestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createNeedsBeginFrameChangedEvent(int layerTreeId, facebook::react::HighResTimeStamp timestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createScreenshotEvent(facebook::react::jsinspector_modern::tracing::FrameSequenceId frameSequenceId, int sourceId, std::vector&& snapshot, facebook::react::HighResTimeStamp expectedDisplayTime, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createSetLayerTreeIdEvent(std::string frame, int layerTreeId, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId, facebook::react::HighResTimeStamp timestamp); - public static std::pair createFrameTimingsEvents(facebook::react::jsinspector_modern::tracing::FrameSequenceId sequenceId, int layerTreeId, facebook::react::HighResTimeStamp beginTimestamp, facebook::react::HighResTimeStamp endTimestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); -} - -class facebook::react::jsinspector_modern::tracing::TraceEventSerializer { - public static folly::dynamic serialize(facebook::react::jsinspector_modern::tracing::TraceEvent&& event); - public static folly::dynamic serializeProfileChunk(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk&& profileChunk); - public static folly::dynamic serializeProfileChunkCPUProfile(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile&& cpuProfile); - public static folly::dynamic serializeProfileChunkCPUProfileNode(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile::Node&& node); - public static folly::dynamic serializeProfileChunkCPUProfileNodeCallFrame(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile::Node::CallFrame&& callFrame); - public static folly::dynamic serializeProfileChunkTimeDeltas(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::TimeDeltas&& deltas); - public static size_t estimateJsonSize(const folly::dynamic& value); -} - enum facebook::react::jsinspector_modern::tracing::Category { Frame, HiddenTimeline, @@ -11551,25 +11508,11 @@ enum facebook::react::jsinspector_modern::tracing::ConsoleTimeStampColor { Warning, } -enum facebook::react::jsinspector_modern::tracing::EventLoopPhase { - Microtasks, - Task, -} - enum facebook::react::jsinspector_modern::tracing::Mode { Background, CDP, } -struct facebook::react::jsinspector_modern::tracing::EventLoopReporter { - public EventLoopReporter(const facebook::react::jsinspector_modern::tracing::EventLoopReporter&) = delete; - public EventLoopReporter(facebook::react::jsinspector_modern::tracing::EventLoopPhase phase); - public EventLoopReporter(facebook::react::jsinspector_modern::tracing::EventLoopReporter&&) = delete; - public facebook::react::jsinspector_modern::tracing::EventLoopReporter& operator=(const facebook::react::jsinspector_modern::tracing::EventLoopReporter&) = delete; - public facebook::react::jsinspector_modern::tracing::EventLoopReporter& operator=(facebook::react::jsinspector_modern::tracing::EventLoopReporter&&) = delete; - public ~EventLoopReporter(); -} - struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence { public FrameTimingSequence() = delete; public FrameTimingSequence(facebook::react::jsinspector_modern::tracing::FrameSequenceId id, facebook::react::jsinspector_modern::tracing::ThreadId threadId, facebook::react::HighResTimeStamp beginTimestamp, facebook::react::HighResTimeStamp endTimestamp, std::optional> screenshot = std::nullopt, facebook::react::HighResDuration vsyncInterval = facebook::react::HighResDuration::zero()); @@ -11595,10 +11538,6 @@ struct facebook::react::jsinspector_modern::tracing::HostTracingProfile { public ~HostTracingProfile() = default; } -struct facebook::react::jsinspector_modern::tracing::IdGenerator { - public uint32_t getNext(); -} - struct facebook::react::jsinspector_modern::tracing::InstanceTracingProfile { public std::vector performanceTraceEvents; } diff --git a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api index c79f7b5a045f..95cfd9c3eab1 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -6732,7 +6732,6 @@ class facebook::react::jsinspector_modern::WeakList { } -constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::TRACING_TIME_ORIGIN; constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::kCurrentBufferStartTimeUninitialized; using facebook::react::jsinspector_modern::tracing::Categories = folly::small_vector; using facebook::react::jsinspector_modern::tracing::ConsoleTimeStampEntry = std::variant; @@ -6741,7 +6740,6 @@ using facebook::react::jsinspector_modern::tracing::Headers = std::map facebook::react::jsinspector_modern::tracing::getTracingCategoryFromString(const std::string& str); std::optional facebook::react::jsinspector_modern::tracing::getConsoleTimeStampColorFromString(const std::string& str); std::optional facebook::react::jsinspector_modern::tracing::getConsoleTimeStampDetailFromObject(facebook::jsi::Runtime& runtime, const facebook::jsi::Value& detailValue); @@ -6750,7 +6748,6 @@ std::string facebook::react::jsinspector_modern::tracing::consoleTimeStampColorT std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const facebook::react::jsinspector_modern::tracing::Categories& categories); std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const std::set& categories); std::string facebook::react::jsinspector_modern::tracing::tracingCategoryToString(const facebook::react::jsinspector_modern::tracing::Category& category); -uint64_t facebook::react::jsinspector_modern::tracing::highResTimeStampToTracingClockTimeStamp(facebook::react::HighResTimeStamp timestamp); class facebook::react::jsinspector_modern::tracing::HostTracingProfileSerializer { public static void emitAsDataCollectedChunks(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const std::function& chunkCallback, size_t maxChunkBytes, uint16_t profileTraceEventsChunkSize); @@ -6781,56 +6778,16 @@ class facebook::react::jsinspector_modern::tracing::PerformanceTracer { public void unsubscribeFromTracingStateChanges(uint32_t subscriptionId); } -class facebook::react::jsinspector_modern::tracing::ProfileTreeNode { - public ProfileTreeNode(uint32_t id, facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType codeType, facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame callFrame, uint32_t parentId = facebook::react::jsinspector_modern::tracing::ProfileTreeNode::NO_PARENT); - public bool hasParent() const; - public const facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame& getCallFrame() const; - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode* addChild(uint32_t childId, facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType childCodeType, facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame childCallFrame); - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode* getIfAlreadyExists(facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType childCodeType, const facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame& childCallFrame); - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType getCodeType() const; - public static constexpr uint32_t NO_PARENT; - public uint32_t getId() const; - public uint32_t getParentId() const; -} - -enum facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType { - JavaScript, - Other, -} - class facebook::react::jsinspector_modern::tracing::RawRuntimeProfile { public virtual ~RawRuntimeProfile() = default; } -class facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfileTraceEventSerializer { - public static void serializeAndDispatch(facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile&& profile, facebook::react::jsinspector_modern::tracing::IdGenerator& profileIdGenerator, facebook::react::HighResTimeStamp tracingStartTime, const std::function& dispatchCallback, uint16_t traceEventChunkSize, uint16_t profileChunkSize = PROFILE_CHUNK_SIZE, uint16_t maxUniqueNodesPerChunk = MAX_UNIQUE_NODES_PER_CHUNK); - public static void serializeAndDispatch(std::vector&& profiles, facebook::react::jsinspector_modern::tracing::IdGenerator& profileIdGenerator, facebook::react::HighResTimeStamp tracingStartTime, const std::function& dispatchCallback, uint16_t traceEventChunkSize, uint16_t profileChunkSize = PROFILE_CHUNK_SIZE, uint16_t maxUniqueNodesPerChunk = MAX_UNIQUE_NODES_PER_CHUNK); -} - class facebook::react::jsinspector_modern::tracing::TargetTracingAgent { protected facebook::react::jsinspector_modern::tracing::TraceRecordingState& state_; public TargetTracingAgent(facebook::react::jsinspector_modern::tracing::TraceRecordingState& state); public bool isRunningInBackgroundMode(); } -class facebook::react::jsinspector_modern::tracing::TraceEventGenerator { - public static facebook::react::jsinspector_modern::tracing::TraceEvent createIdleBeginFrameEvent(facebook::react::jsinspector_modern::tracing::FrameSequenceId sequenceId, int layerTreeId, facebook::react::HighResTimeStamp timestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createNeedsBeginFrameChangedEvent(int layerTreeId, facebook::react::HighResTimeStamp timestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createScreenshotEvent(facebook::react::jsinspector_modern::tracing::FrameSequenceId frameSequenceId, int sourceId, std::vector&& snapshot, facebook::react::HighResTimeStamp expectedDisplayTime, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createSetLayerTreeIdEvent(std::string frame, int layerTreeId, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId, facebook::react::HighResTimeStamp timestamp); - public static std::pair createFrameTimingsEvents(facebook::react::jsinspector_modern::tracing::FrameSequenceId sequenceId, int layerTreeId, facebook::react::HighResTimeStamp beginTimestamp, facebook::react::HighResTimeStamp endTimestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); -} - -class facebook::react::jsinspector_modern::tracing::TraceEventSerializer { - public static folly::dynamic serialize(facebook::react::jsinspector_modern::tracing::TraceEvent&& event); - public static folly::dynamic serializeProfileChunk(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk&& profileChunk); - public static folly::dynamic serializeProfileChunkCPUProfile(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile&& cpuProfile); - public static folly::dynamic serializeProfileChunkCPUProfileNode(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile::Node&& node); - public static folly::dynamic serializeProfileChunkCPUProfileNodeCallFrame(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile::Node::CallFrame&& callFrame); - public static folly::dynamic serializeProfileChunkTimeDeltas(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::TimeDeltas&& deltas); - public static size_t estimateJsonSize(const folly::dynamic& value); -} - enum facebook::react::jsinspector_modern::tracing::Category { Frame, HiddenTimeline, @@ -6855,25 +6812,11 @@ enum facebook::react::jsinspector_modern::tracing::ConsoleTimeStampColor { Warning, } -enum facebook::react::jsinspector_modern::tracing::EventLoopPhase { - Microtasks, - Task, -} - enum facebook::react::jsinspector_modern::tracing::Mode { Background, CDP, } -struct facebook::react::jsinspector_modern::tracing::EventLoopReporter { - public EventLoopReporter(const facebook::react::jsinspector_modern::tracing::EventLoopReporter&) = delete; - public EventLoopReporter(facebook::react::jsinspector_modern::tracing::EventLoopPhase phase); - public EventLoopReporter(facebook::react::jsinspector_modern::tracing::EventLoopReporter&&) = delete; - public facebook::react::jsinspector_modern::tracing::EventLoopReporter& operator=(const facebook::react::jsinspector_modern::tracing::EventLoopReporter&) = delete; - public facebook::react::jsinspector_modern::tracing::EventLoopReporter& operator=(facebook::react::jsinspector_modern::tracing::EventLoopReporter&&) = delete; - public ~EventLoopReporter(); -} - struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence { public FrameTimingSequence() = delete; public FrameTimingSequence(facebook::react::jsinspector_modern::tracing::FrameSequenceId id, facebook::react::jsinspector_modern::tracing::ThreadId threadId, facebook::react::HighResTimeStamp beginTimestamp, facebook::react::HighResTimeStamp endTimestamp, std::optional> screenshot = std::nullopt, facebook::react::HighResDuration vsyncInterval = facebook::react::HighResDuration::zero()); @@ -6899,10 +6842,6 @@ struct facebook::react::jsinspector_modern::tracing::HostTracingProfile { public ~HostTracingProfile() = default; } -struct facebook::react::jsinspector_modern::tracing::IdGenerator { - public uint32_t getNext(); -} - struct facebook::react::jsinspector_modern::tracing::InstanceTracingProfile { public std::vector performanceTraceEvents; } From 6f25f3efa76c720e0075eace002c6401b77b877f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 8 Oct 2026 06:34:58 -0700 Subject: [PATCH 04/10] Make `StackTraceParser.h` private in jserrorhandler Summary: `StackTraceParser` is an implementation detail of `JsErrorHandler`: it is only used by `JsErrorHandler.cpp` and its own unit test, and `JsErrorHandler.h` does not include it. Mark it as a private header instead of a for-frameworks one. - Swap `FrameworksGuard.h` for `PrivateGuard.h` in `StackTraceParser.h`. - Include `JsErrorHandler.h` via its namespaced path so the header resolves when it is not exported alongside it. - Stop shipping `StackTraceParser.h` as a header for prebuilt `React-jserrorhandler` pods. Changelog: [Internal] Differential Revision: D122770464 --- .../ReactCommon/jserrorhandler/React-jserrorhandler.podspec | 2 +- .../ReactCommon/jserrorhandler/StackTraceParser.h | 4 ++-- scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api | 4 ---- scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api | 4 ---- scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api | 4 ---- 5 files changed, 3 insertions(+), 15 deletions(-) diff --git a/packages/react-native/ReactCommon/jserrorhandler/React-jserrorhandler.podspec b/packages/react-native/ReactCommon/jserrorhandler/React-jserrorhandler.podspec index c0fb2e9c0d61..c29d4df2c232 100644 --- a/packages/react-native/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +++ b/packages/react-native/ReactCommon/jserrorhandler/React-jserrorhandler.podspec @@ -34,7 +34,7 @@ Pod::Spec.new do |s| s.platforms = min_supported_versions s.source = source s.header_dir = "jserrorhandler" - s.source_files = podspec_sources(["ErrorUtils.{cpp,h}", "JsErrorHandler.{cpp,h}", "StackTraceParser.{cpp,h}"], ["ErrorUtils.h", "JsErrorHandler.h", "StackTraceParser.h"]) + s.source_files = podspec_sources(["ErrorUtils.{cpp,h}", "JsErrorHandler.{cpp,h}", "StackTraceParser.{cpp,h}"], ["ErrorUtils.h", "JsErrorHandler.h"]) s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => header_search_paths.join(' '), "USE_HEADERMAP" => "YES", diff --git a/packages/react-native/ReactCommon/jserrorhandler/StackTraceParser.h b/packages/react-native/ReactCommon/jserrorhandler/StackTraceParser.h index d5ecce8fa03c..ea213dfc1f3f 100644 --- a/packages/react-native/ReactCommon/jserrorhandler/StackTraceParser.h +++ b/packages/react-native/ReactCommon/jserrorhandler/StackTraceParser.h @@ -7,11 +7,11 @@ #pragma once -#include +#include +#include #include #include -#include "JsErrorHandler.h" namespace facebook::react { diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api index a4524c2db52f..630136bda3b5 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api @@ -3788,10 +3788,6 @@ class facebook::react::SharedColor { public std::string toString() const noexcept; } -class facebook::react::StackTraceParser { - public static std::vector parse(bool isHermes, const std::string& stackString); -} - class facebook::react::State { protected State(facebook::react::StateData::Shared data, const facebook::react::State& previousState); protected State(facebook::react::StateData::Shared data, facebook::react::ShadowNodeFamily::Weak family); diff --git a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api index ea2e0f6cdb07..2b27669a076b 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -6020,10 +6020,6 @@ class facebook::react::SharedColor { public std::string toString() const noexcept; } -class facebook::react::StackTraceParser { - public static std::vector parse(bool isHermes, const std::string& stackString); -} - class facebook::react::State { protected State(facebook::react::StateData::Shared data, const facebook::react::State& previousState); protected State(facebook::react::StateData::Shared data, facebook::react::ShadowNodeFamily::Weak family); diff --git a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api index 95cfd9c3eab1..a6de74642c79 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -2383,10 +2383,6 @@ class facebook::react::SharedColor { public std::string toString() const noexcept; } -class facebook::react::StackTraceParser { - public static std::vector parse(bool isHermes, const std::string& stackString); -} - class facebook::react::State { protected State(facebook::react::StateData::Shared data, const facebook::react::State& previousState); protected State(facebook::react::StateData::Shared data, facebook::react::ShadowNodeFamily::Weak family); From 86fec13ac5e82161a7e44e84111d79a0d20701ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 8 Oct 2026 06:39:01 -0700 Subject: [PATCH 05/10] Make host target tracing implementation headers private Summary: Mark the following headers as private instead of for-frameworks. All of them are implementation details of the host target and how it records and serializes a trace, and no for-frameworks header includes them: - `HostTracingProfileSerializer` transforms a `HostTracingProfile` into serialized trace events. It is only used by its own source and `HostTargetTracing.h`. - `HostTargetTracing.h` provides `emitNotificationsForTracingProfile`, which uses the serializer to send a captured profile to frontend channels as `Tracing.dataCollected` events followed by `Tracing.tracingComplete`. It is only used by `HostTarget.cpp` and `TracingAgent.cpp`, and was already not exported in Buck. - `HostTargetTraceRecording` holds the state of an in-progress host trace recording. `HostTarget.h` only forward-declares it, and it is only used by `HostTarget.cpp`, `HostTargetTraceRecording.cpp` and `HostTargetTracing.cpp`. - `TimeWindowedBuffer` is a generic buffer that keeps only elements inside a time window. It is only used by `HostTargetTraceRecording` and its own unit test. - `TracingAgent` handles the CDP `Tracing.start` and `Tracing.stop` requests for the host agent. It is only used by `HostAgent.cpp` and `TracingAgent.cpp`, and was already not exported in Buck. - `HostAgent` handles CDP requests for a host target. `HostTarget.h` only forward-declares it, and it is only used by `HostAgent.cpp`, `HostTarget.cpp` and `HostTargetTraceRecording.h`. - `InstanceAgent` handles CDP requests for an instance target. `InstanceTarget.h` only forward-declares it, and it is only used by `HostAgent.h`, `HostAgent.cpp`, `InstanceAgent.cpp` and `InstanceTarget.cpp`. - `InspectorUtilities.h` provides connection adapters for `InspectorInterfaces`: `CallbackLocalConnection`, `CallbackRemoteConnection`, `RAIIRemoteConnection` and `NullRemoteConnection`. It is only used by `HostTarget.cpp` and `InspectorUtilities.cpp`, and was already not exported in Buck. Headers that include one another change together: `HostTargetTracing.h` includes `HostTracingProfileSerializer.h`, `HostTargetTraceRecording.h` stores a `TimeWindowedBuffer` by value and includes `HostAgent.h`, and `HostAgent.h` includes `InstanceAgent.h`, so keeping any of these includers for-frameworks would expose a private header. `HostTracingProfile.h`, `FrameTimingSequence.h`, `TraceRecordingState.h` and `TracingCategory.h` stay for-frameworks because other for-frameworks headers include them. React Native's own targets define `RN_BUILDING`, so the private guard does not affect them. Changelog: [Internal] Differential Revision: D122791607 --- .../jsinspector-modern/HostAgent.h | 2 +- .../HostTargetTraceRecording.h | 2 +- .../jsinspector-modern/HostTargetTracing.h | 2 +- .../jsinspector-modern/InspectorUtilities.h | 2 +- .../jsinspector-modern/InstanceAgent.h | 2 +- .../jsinspector-modern/TracingAgent.h | 2 +- .../tracing/HostTracingProfileSerializer.h | 2 +- .../tracing/TimeWindowedBuffer.h | 2 +- .../ReactAndroidFrameworksCxx.api | 141 ++++-------------- .../api-snapshots/ReactAppleFrameworksCxx.api | 141 ++++-------------- .../ReactCommonFrameworksCxx.api | 141 ++++-------------- 11 files changed, 86 insertions(+), 353 deletions(-) diff --git a/packages/react-native/ReactCommon/jsinspector-modern/HostAgent.h b/packages/react-native/ReactCommon/jsinspector-modern/HostAgent.h index 981e1c88fcab..8467613e71dd 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/HostAgent.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/HostAgent.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "HostTarget.h" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h b/packages/react-native/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h index b341811e822f..e35afee3b899 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "HostAgent.h" #include "HostTarget.h" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/HostTargetTracing.h b/packages/react-native/ReactCommon/jsinspector-modern/HostTargetTracing.h index 9392075d538a..970e95412008 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/HostTargetTracing.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/HostTargetTracing.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "InspectorInterfaces.h" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/InspectorUtilities.h b/packages/react-native/ReactCommon/jsinspector-modern/InspectorUtilities.h index f4c25ce62e4d..d46c8d4f9a88 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/InspectorUtilities.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/InspectorUtilities.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "InspectorInterfaces.h" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/InstanceAgent.h b/packages/react-native/ReactCommon/jsinspector-modern/InstanceAgent.h index 56dbe15137ba..54c3e853ad98 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/InstanceAgent.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/InstanceAgent.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "RuntimeTarget.h" #include "SessionState.h" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/TracingAgent.h b/packages/react-native/ReactCommon/jsinspector-modern/TracingAgent.h index ba3631d742d5..0735c74b7556 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/TracingAgent.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/TracingAgent.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "HostTarget.h" #include "InspectorInterfaces.h" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.h index 1c811939bfd5..27fc82711335 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include "FrameTimingSequence.h" #include "HostTracingProfile.h" diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h b/packages/react-native/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h index 182b3c78975c..e2dd190541b5 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include #include diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api index 630136bda3b5..d68c3c84186c 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api @@ -8912,27 +8912,12 @@ facebook::react::jsinspector_modern::IInspector& facebook::react::jsinspector_mo folly::dynamic facebook::react::jsinspector_modern::createHostMetadataPayload(const facebook::react::jsinspector_modern::HostTargetMetadata& metadata); folly::dynamic facebook::react::jsinspector_modern::targetCapabilitiesToDynamic(const facebook::react::jsinspector_modern::InspectorTargetCapabilities& capabilities); std::unique_ptr facebook::react::jsinspector_modern::makeTestInspectorInstance(); -template -void facebook::react::jsinspector_modern::emitNotificationsForTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const ChannelsRange& channels, bool isBackgroundTrace); template facebook::react::jsinspector_modern::ScopedExecutor facebook::react::jsinspector_modern::makeScopedExecutor(std::shared_ptr self, facebook::react::jsinspector_modern::ScopedExecutor executor); template facebook::react::jsinspector_modern::ScopedExecutor facebook::react::jsinspector_modern::makeScopedExecutor(std::shared_ptr self, facebook::react::jsinspector_modern::VoidExecutor executor); template facebook::react::jsinspector_modern::VoidExecutor facebook::react::jsinspector_modern::makeVoidExecutor(facebook::react::jsinspector_modern::ScopedExecutor executor); -void facebook::react::jsinspector_modern::emitNotificationsForTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const facebook::react::jsinspector_modern::FrontendChannel& channel, bool isBackgroundTrace); - -class facebook::react::jsinspector_modern::CallbackLocalConnection : public facebook::react::jsinspector_modern::ILocalConnection { - public CallbackLocalConnection(std::function handler); - public virtual void disconnect() override; - public virtual void sendMessage(std::string message) override; -} - -class facebook::react::jsinspector_modern::CallbackRemoteConnection : public facebook::react::jsinspector_modern::IRemoteConnection { - public CallbackRemoteConnection(std::function handler); - public virtual void onDisconnect() override; - public virtual void onMessage(std::string message) override; -} class facebook::react::jsinspector_modern::ExecutionContextSelector { public ExecutionContextSelector() = delete; @@ -8960,19 +8945,6 @@ class facebook::react::jsinspector_modern::FallbackRuntimeTargetDelegate : publi public virtual void enableSamplingProfiler() override; } -class facebook::react::jsinspector_modern::HostAgent { - public HostAgent(const facebook::react::jsinspector_modern::FrontendChannel& frontendChannel, facebook::react::jsinspector_modern::HostTargetController& targetController, facebook::react::jsinspector_modern::HostTargetMetadata hostMetadata, facebook::react::jsinspector_modern::SessionState& sessionState, facebook::react::jsinspector_modern::VoidExecutor executor); - public HostAgent(const facebook::react::jsinspector_modern::HostAgent&) = delete; - public HostAgent(facebook::react::jsinspector_modern::HostAgent&&) = delete; - public bool isEligibleForBackgroundTrace() const; - public facebook::react::jsinspector_modern::HostAgent& operator=(const facebook::react::jsinspector_modern::HostAgent&) = delete; - public facebook::react::jsinspector_modern::HostAgent& operator=(facebook::react::jsinspector_modern::HostAgent&&) = delete; - public void emitSystemStateChanged(bool isSingleHost); - public void handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); - public void setCurrentInstanceAgent(std::shared_ptr agent); - public ~HostAgent(); -} - class facebook::react::jsinspector_modern::HostTarget : public facebook::react::jsinspector_modern::EnableExecutorFromThis { public HostTarget(const facebook::react::jsinspector_modern::HostTarget&) = delete; public HostTarget(facebook::react::jsinspector_modern::HostTarget&&) = delete; @@ -9039,16 +9011,6 @@ struct facebook::react::jsinspector_modern::HostTargetDelegate::SetEmulatedMedia public std::string colorScheme; } -class facebook::react::jsinspector_modern::HostTargetTraceRecording { - public HostTargetTraceRecording(facebook::react::jsinspector_modern::HostTarget& hostTarget, facebook::react::jsinspector_modern::tracing::Mode tracingMode, std::set enabledCategories, std::optional windowSize = std::nullopt); - public bool isBackgroundInitiated() const; - public bool isUserInitiated() const; - public facebook::react::jsinspector_modern::tracing::HostTracingProfile stop(); - public void recordFrameTimings(facebook::react::jsinspector_modern::tracing::FrameTimingSequence frameTimingSequence); - public void setTracedInstance(facebook::react::jsinspector_modern::InstanceTarget* instanceTarget); - public void start(); -} - class facebook::react::jsinspector_modern::HostTargetTracingDelegate { public HostTargetTracingDelegate() = default; public HostTargetTracingDelegate(const facebook::react::jsinspector_modern::HostTargetTracingDelegate&) = delete; @@ -9060,11 +9022,6 @@ class facebook::react::jsinspector_modern::HostTargetTracingDelegate { public virtual ~HostTargetTracingDelegate() = default; } -class facebook::react::jsinspector_modern::HostTracingAgent { - public HostTracingAgent(facebook::react::jsinspector_modern::tracing::TraceRecordingState& state); - public void setTracedInstance(facebook::react::jsinspector_modern::InstanceTarget* instanceTarget); -} - class facebook::react::jsinspector_modern::IDestructible { public virtual ~IDestructible() = 0; } @@ -9138,13 +9095,6 @@ class facebook::react::jsinspector_modern::InspectorPackagerConnectionDelegate { public virtual ~InspectorPackagerConnectionDelegate() = default; } -class facebook::react::jsinspector_modern::InstanceAgent { - public InstanceAgent(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, facebook::react::jsinspector_modern::InstanceTarget& target, facebook::react::jsinspector_modern::SessionState& sessionState); - public bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); - public void sendConsoleMessage(facebook::react::jsinspector_modern::SimpleConsoleMessage message); - public void setCurrentRuntime(facebook::react::jsinspector_modern::RuntimeTarget* runtime); -} - class facebook::react::jsinspector_modern::InstanceTarget : public facebook::react::jsinspector_modern::EnableExecutorFromThis { public InstanceTarget(const facebook::react::jsinspector_modern::InstanceTarget&) = delete; public InstanceTarget(facebook::react::jsinspector_modern::InstanceTarget&&) = delete; @@ -9167,12 +9117,6 @@ class facebook::react::jsinspector_modern::InstanceTargetDelegate { public virtual ~InstanceTargetDelegate(); } -class facebook::react::jsinspector_modern::InstanceTracingAgent { - public InstanceTracingAgent(facebook::react::jsinspector_modern::tracing::TraceRecordingState& state); - public void setTracedRuntime(facebook::react::jsinspector_modern::RuntimeTarget* runtimeTarget); - public ~InstanceTracingAgent(); -} - class facebook::react::jsinspector_modern::JCxxInspectorPackagerConnection : public jni::HybridClass { public static constexpr auto kJavaDescriptor; public static void registerNatives(); @@ -9271,20 +9215,11 @@ class facebook::react::jsinspector_modern::NotImplementedException : public std: public const char* what() const noexcept override; } -class facebook::react::jsinspector_modern::NullRemoteConnection : public facebook::react::jsinspector_modern::IRemoteConnection { -} - class facebook::react::jsinspector_modern::PerfMonitorUpdateHandler { public PerfMonitorUpdateHandler(facebook::react::jsinspector_modern::HostTargetDelegate& delegate); public void handlePerfIssueAdded(const std::string& message); } -class facebook::react::jsinspector_modern::RAIIRemoteConnection { - public RAIIRemoteConnection(std::unique_ptr remote); - public void onMessage(std::string message); - public ~RAIIRemoteConnection(); -} - class facebook::react::jsinspector_modern::RuntimeAgent { public RuntimeAgent(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, facebook::react::jsinspector_modern::RuntimeTargetController& targetController, facebook::react::jsinspector_modern::ExecutionContextDescription executionContextDescription, facebook::react::jsinspector_modern::SessionState& sessionState, std::unique_ptr delegate); public bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); @@ -9365,12 +9300,6 @@ class facebook::react::jsinspector_modern::StackTrace { public virtual ~StackTrace() = default; } -class facebook::react::jsinspector_modern::TracingAgent { - public TracingAgent(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, facebook::react::jsinspector_modern::SessionState& sessionState, facebook::react::jsinspector_modern::HostTargetController& hostTargetController); - public bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); - public ~TracingAgent(); -} - enum facebook::react::jsinspector_modern::ConsoleAPIType { kAssert, kClear, @@ -9565,7 +9494,32 @@ class facebook::react::jsinspector_modern::WeakList { } -constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::kCurrentBufferStartTimeUninitialized; +using facebook::react::jsinspector_modern::cdp::ParseError = folly::json::parse_error; +using facebook::react::jsinspector_modern::cdp::RequestId = long long; +using facebook::react::jsinspector_modern::cdp::TypeError = folly::TypeError; +facebook::react::jsinspector_modern::cdp::PreparsedRequest facebook::react::jsinspector_modern::cdp::preparse(std::string_view message); +std::string facebook::react::jsinspector_modern::cdp::jsonError(std::optional id, facebook::react::jsinspector_modern::cdp::ErrorCode code, std::optional message = std::nullopt); +std::string facebook::react::jsinspector_modern::cdp::jsonNotification(const std::string& method, std::optional params = std::nullopt); +std::string facebook::react::jsinspector_modern::cdp::jsonRequest(facebook::react::jsinspector_modern::cdp::RequestId id, const std::string& method, std::optional params = std::nullopt); +std::string facebook::react::jsinspector_modern::cdp::jsonResult(facebook::react::jsinspector_modern::cdp::RequestId id, const folly::dynamic& result = folly::dynamic::object()); + +enum facebook::react::jsinspector_modern::cdp::ErrorCode { + InternalError, + InvalidParams, + InvalidRequest, + MethodNotFound, + ParseError, +} + +struct facebook::react::jsinspector_modern::cdp::PreparsedRequest { + public bool operator==(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& rhs) const; + public facebook::react::jsinspector_modern::cdp::RequestId id; + public folly::dynamic params; + public std::string method; + public std::string toJson() const; +} + + using facebook::react::jsinspector_modern::tracing::Categories = folly::small_vector; using facebook::react::jsinspector_modern::tracing::ConsoleTimeStampEntry = std::variant; using facebook::react::jsinspector_modern::tracing::FrameSequenceId = uint64_t; @@ -9582,12 +9536,6 @@ std::string facebook::react::jsinspector_modern::tracing::serializeTracingCatego std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const std::set& categories); std::string facebook::react::jsinspector_modern::tracing::tracingCategoryToString(const facebook::react::jsinspector_modern::tracing::Category& category); -class facebook::react::jsinspector_modern::tracing::HostTracingProfileSerializer { - public static void emitAsDataCollectedChunks(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const std::function& chunkCallback, size_t maxChunkBytes, uint16_t profileTraceEventsChunkSize); - public static void emitFrameTimings(std::vector&& frameTimings, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::HighResTimeStamp recordingStartTimestamp, const std::function& chunkCallback, size_t maxChunkBytes); - public static void emitPerformanceTraceEvents(std::vector&& events, const std::function& chunkCallback, size_t maxChunkBytes); -} - class facebook::react::jsinspector_modern::tracing::PerformanceTracer { public bool isTracing() const; public bool startTracing(); @@ -9774,17 +9722,6 @@ struct facebook::react::jsinspector_modern::tracing::TraceRecordingState { public ~TraceRecordingState() = default; } -template -class facebook::react::jsinspector_modern::tracing::TimeWindowedBuffer { - public TimeWindowedBuffer(); - public TimeWindowedBuffer(facebook::react::jsinspector_modern::tracing::TimeWindowedBuffer::TimestampAccessor timestampAccessor, facebook::react::HighResDuration windowSize); - public std::vector pruneExpiredAndExtract(facebook::react::HighResTimeStamp windowRightBoundary = facebook::react::HighResTimeStamp::now()); - public using TimestampAccessor = std::function; - public void clear(); - public void push(T&& element); - public void push(const T& element); -} - template class facebook::react::jsinspector_modern::tracing::PerformanceTracerSection { public PerformanceTracerSection(const char* name, const char* track = nullptr, const char* trackGroup = nullptr, const char* color = nullptr, Args... args) noexcept; @@ -9796,32 +9733,6 @@ class facebook::react::jsinspector_modern::tracing::PerformanceTracerSection { } -using facebook::react::jsinspector_modern::cdp::ParseError = folly::json::parse_error; -using facebook::react::jsinspector_modern::cdp::RequestId = long long; -using facebook::react::jsinspector_modern::cdp::TypeError = folly::TypeError; -facebook::react::jsinspector_modern::cdp::PreparsedRequest facebook::react::jsinspector_modern::cdp::preparse(std::string_view message); -std::string facebook::react::jsinspector_modern::cdp::jsonError(std::optional id, facebook::react::jsinspector_modern::cdp::ErrorCode code, std::optional message = std::nullopt); -std::string facebook::react::jsinspector_modern::cdp::jsonNotification(const std::string& method, std::optional params = std::nullopt); -std::string facebook::react::jsinspector_modern::cdp::jsonRequest(facebook::react::jsinspector_modern::cdp::RequestId id, const std::string& method, std::optional params = std::nullopt); -std::string facebook::react::jsinspector_modern::cdp::jsonResult(facebook::react::jsinspector_modern::cdp::RequestId id, const folly::dynamic& result = folly::dynamic::object()); - -enum facebook::react::jsinspector_modern::cdp::ErrorCode { - InternalError, - InvalidParams, - InvalidRequest, - MethodNotFound, - ParseError, -} - -struct facebook::react::jsinspector_modern::cdp::PreparsedRequest { - public bool operator==(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& rhs) const; - public facebook::react::jsinspector_modern::cdp::RequestId id; - public folly::dynamic params; - public std::string method; - public std::string toJson() const; -} - - template struct facebook::react::array_detail::BridgingStatic { public static facebook::jsi::Array toJs(facebook::jsi::Runtime& rt, const T& array, const std::shared_ptr& jsInvoker); diff --git a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api index 2b27669a076b..7b39f105f76f 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -10843,27 +10843,12 @@ facebook::react::jsinspector_modern::IInspector& facebook::react::jsinspector_mo folly::dynamic facebook::react::jsinspector_modern::createHostMetadataPayload(const facebook::react::jsinspector_modern::HostTargetMetadata& metadata); folly::dynamic facebook::react::jsinspector_modern::targetCapabilitiesToDynamic(const facebook::react::jsinspector_modern::InspectorTargetCapabilities& capabilities); std::unique_ptr facebook::react::jsinspector_modern::makeTestInspectorInstance(); -template -void facebook::react::jsinspector_modern::emitNotificationsForTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const ChannelsRange& channels, bool isBackgroundTrace); template facebook::react::jsinspector_modern::ScopedExecutor facebook::react::jsinspector_modern::makeScopedExecutor(std::shared_ptr self, facebook::react::jsinspector_modern::ScopedExecutor executor); template facebook::react::jsinspector_modern::ScopedExecutor facebook::react::jsinspector_modern::makeScopedExecutor(std::shared_ptr self, facebook::react::jsinspector_modern::VoidExecutor executor); template facebook::react::jsinspector_modern::VoidExecutor facebook::react::jsinspector_modern::makeVoidExecutor(facebook::react::jsinspector_modern::ScopedExecutor executor); -void facebook::react::jsinspector_modern::emitNotificationsForTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const facebook::react::jsinspector_modern::FrontendChannel& channel, bool isBackgroundTrace); - -class facebook::react::jsinspector_modern::CallbackLocalConnection : public facebook::react::jsinspector_modern::ILocalConnection { - public CallbackLocalConnection(std::function handler); - public virtual void disconnect() override; - public virtual void sendMessage(std::string message) override; -} - -class facebook::react::jsinspector_modern::CallbackRemoteConnection : public facebook::react::jsinspector_modern::IRemoteConnection { - public CallbackRemoteConnection(std::function handler); - public virtual void onDisconnect() override; - public virtual void onMessage(std::string message) override; -} class facebook::react::jsinspector_modern::ExecutionContextSelector { public ExecutionContextSelector() = delete; @@ -10891,19 +10876,6 @@ class facebook::react::jsinspector_modern::FallbackRuntimeTargetDelegate : publi public virtual void enableSamplingProfiler() override; } -class facebook::react::jsinspector_modern::HostAgent { - public HostAgent(const facebook::react::jsinspector_modern::FrontendChannel& frontendChannel, facebook::react::jsinspector_modern::HostTargetController& targetController, facebook::react::jsinspector_modern::HostTargetMetadata hostMetadata, facebook::react::jsinspector_modern::SessionState& sessionState, facebook::react::jsinspector_modern::VoidExecutor executor); - public HostAgent(const facebook::react::jsinspector_modern::HostAgent&) = delete; - public HostAgent(facebook::react::jsinspector_modern::HostAgent&&) = delete; - public bool isEligibleForBackgroundTrace() const; - public facebook::react::jsinspector_modern::HostAgent& operator=(const facebook::react::jsinspector_modern::HostAgent&) = delete; - public facebook::react::jsinspector_modern::HostAgent& operator=(facebook::react::jsinspector_modern::HostAgent&&) = delete; - public void emitSystemStateChanged(bool isSingleHost); - public void handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); - public void setCurrentInstanceAgent(std::shared_ptr agent); - public ~HostAgent(); -} - class facebook::react::jsinspector_modern::HostTarget : public facebook::react::jsinspector_modern::EnableExecutorFromThis { public HostTarget(const facebook::react::jsinspector_modern::HostTarget&) = delete; public HostTarget(facebook::react::jsinspector_modern::HostTarget&&) = delete; @@ -10970,16 +10942,6 @@ struct facebook::react::jsinspector_modern::HostTargetDelegate::SetEmulatedMedia public std::string colorScheme; } -class facebook::react::jsinspector_modern::HostTargetTraceRecording { - public HostTargetTraceRecording(facebook::react::jsinspector_modern::HostTarget& hostTarget, facebook::react::jsinspector_modern::tracing::Mode tracingMode, std::set enabledCategories, std::optional windowSize = std::nullopt); - public bool isBackgroundInitiated() const; - public bool isUserInitiated() const; - public facebook::react::jsinspector_modern::tracing::HostTracingProfile stop(); - public void recordFrameTimings(facebook::react::jsinspector_modern::tracing::FrameTimingSequence frameTimingSequence); - public void setTracedInstance(facebook::react::jsinspector_modern::InstanceTarget* instanceTarget); - public void start(); -} - class facebook::react::jsinspector_modern::HostTargetTracingDelegate { public HostTargetTracingDelegate() = default; public HostTargetTracingDelegate(const facebook::react::jsinspector_modern::HostTargetTracingDelegate&) = delete; @@ -10991,11 +10953,6 @@ class facebook::react::jsinspector_modern::HostTargetTracingDelegate { public virtual ~HostTargetTracingDelegate() = default; } -class facebook::react::jsinspector_modern::HostTracingAgent { - public HostTracingAgent(facebook::react::jsinspector_modern::tracing::TraceRecordingState& state); - public void setTracedInstance(facebook::react::jsinspector_modern::InstanceTarget* instanceTarget); -} - class facebook::react::jsinspector_modern::IDestructible { public virtual ~IDestructible() = 0; } @@ -11069,13 +11026,6 @@ class facebook::react::jsinspector_modern::InspectorPackagerConnectionDelegate { public virtual ~InspectorPackagerConnectionDelegate() = default; } -class facebook::react::jsinspector_modern::InstanceAgent { - public InstanceAgent(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, facebook::react::jsinspector_modern::InstanceTarget& target, facebook::react::jsinspector_modern::SessionState& sessionState); - public bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); - public void sendConsoleMessage(facebook::react::jsinspector_modern::SimpleConsoleMessage message); - public void setCurrentRuntime(facebook::react::jsinspector_modern::RuntimeTarget* runtime); -} - class facebook::react::jsinspector_modern::InstanceTarget : public facebook::react::jsinspector_modern::EnableExecutorFromThis { public InstanceTarget(const facebook::react::jsinspector_modern::InstanceTarget&) = delete; public InstanceTarget(facebook::react::jsinspector_modern::InstanceTarget&&) = delete; @@ -11098,12 +11048,6 @@ class facebook::react::jsinspector_modern::InstanceTargetDelegate { public virtual ~InstanceTargetDelegate(); } -class facebook::react::jsinspector_modern::InstanceTracingAgent { - public InstanceTracingAgent(facebook::react::jsinspector_modern::tracing::TraceRecordingState& state); - public void setTracedRuntime(facebook::react::jsinspector_modern::RuntimeTarget* runtimeTarget); - public ~InstanceTracingAgent(); -} - class facebook::react::jsinspector_modern::LoadNetworkResourceDelegate { public LoadNetworkResourceDelegate() = default; public LoadNetworkResourceDelegate(const facebook::react::jsinspector_modern::LoadNetworkResourceDelegate&) = delete; @@ -11143,20 +11087,11 @@ class facebook::react::jsinspector_modern::NotImplementedException : public std: public const char* what() const noexcept override; } -class facebook::react::jsinspector_modern::NullRemoteConnection : public facebook::react::jsinspector_modern::IRemoteConnection { -} - class facebook::react::jsinspector_modern::PerfMonitorUpdateHandler { public PerfMonitorUpdateHandler(facebook::react::jsinspector_modern::HostTargetDelegate& delegate); public void handlePerfIssueAdded(const std::string& message); } -class facebook::react::jsinspector_modern::RAIIRemoteConnection { - public RAIIRemoteConnection(std::unique_ptr remote); - public void onMessage(std::string message); - public ~RAIIRemoteConnection(); -} - class facebook::react::jsinspector_modern::RuntimeAgent { public RuntimeAgent(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, facebook::react::jsinspector_modern::RuntimeTargetController& targetController, facebook::react::jsinspector_modern::ExecutionContextDescription executionContextDescription, facebook::react::jsinspector_modern::SessionState& sessionState, std::unique_ptr delegate); public bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); @@ -11237,12 +11172,6 @@ class facebook::react::jsinspector_modern::StackTrace { public virtual ~StackTrace() = default; } -class facebook::react::jsinspector_modern::TracingAgent { - public TracingAgent(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, facebook::react::jsinspector_modern::SessionState& sessionState, facebook::react::jsinspector_modern::HostTargetController& hostTargetController); - public bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); - public ~TracingAgent(); -} - enum facebook::react::jsinspector_modern::ConsoleAPIType { kAssert, kClear, @@ -11424,7 +11353,32 @@ class facebook::react::jsinspector_modern::WeakList { } -constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::kCurrentBufferStartTimeUninitialized; +using facebook::react::jsinspector_modern::cdp::ParseError = folly::json::parse_error; +using facebook::react::jsinspector_modern::cdp::RequestId = long long; +using facebook::react::jsinspector_modern::cdp::TypeError = folly::TypeError; +facebook::react::jsinspector_modern::cdp::PreparsedRequest facebook::react::jsinspector_modern::cdp::preparse(std::string_view message); +std::string facebook::react::jsinspector_modern::cdp::jsonError(std::optional id, facebook::react::jsinspector_modern::cdp::ErrorCode code, std::optional message = std::nullopt); +std::string facebook::react::jsinspector_modern::cdp::jsonNotification(const std::string& method, std::optional params = std::nullopt); +std::string facebook::react::jsinspector_modern::cdp::jsonRequest(facebook::react::jsinspector_modern::cdp::RequestId id, const std::string& method, std::optional params = std::nullopt); +std::string facebook::react::jsinspector_modern::cdp::jsonResult(facebook::react::jsinspector_modern::cdp::RequestId id, const folly::dynamic& result = folly::dynamic::object()); + +enum facebook::react::jsinspector_modern::cdp::ErrorCode { + InternalError, + InvalidParams, + InvalidRequest, + MethodNotFound, + ParseError, +} + +struct facebook::react::jsinspector_modern::cdp::PreparsedRequest { + public bool operator==(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& rhs) const; + public facebook::react::jsinspector_modern::cdp::RequestId id; + public folly::dynamic params; + public std::string method; + public std::string toJson() const; +} + + using facebook::react::jsinspector_modern::tracing::Categories = folly::small_vector; using facebook::react::jsinspector_modern::tracing::ConsoleTimeStampEntry = std::variant; using facebook::react::jsinspector_modern::tracing::FrameSequenceId = uint64_t; @@ -11441,12 +11395,6 @@ std::string facebook::react::jsinspector_modern::tracing::serializeTracingCatego std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const std::set& categories); std::string facebook::react::jsinspector_modern::tracing::tracingCategoryToString(const facebook::react::jsinspector_modern::tracing::Category& category); -class facebook::react::jsinspector_modern::tracing::HostTracingProfileSerializer { - public static void emitAsDataCollectedChunks(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const std::function& chunkCallback, size_t maxChunkBytes, uint16_t profileTraceEventsChunkSize); - public static void emitFrameTimings(std::vector&& frameTimings, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::HighResTimeStamp recordingStartTimestamp, const std::function& chunkCallback, size_t maxChunkBytes); - public static void emitPerformanceTraceEvents(std::vector&& events, const std::function& chunkCallback, size_t maxChunkBytes); -} - class facebook::react::jsinspector_modern::tracing::PerformanceTracer { public bool isTracing() const; public bool startTracing(); @@ -11633,17 +11581,6 @@ struct facebook::react::jsinspector_modern::tracing::TraceRecordingState { public ~TraceRecordingState() = default; } -template -class facebook::react::jsinspector_modern::tracing::TimeWindowedBuffer { - public TimeWindowedBuffer(); - public TimeWindowedBuffer(facebook::react::jsinspector_modern::tracing::TimeWindowedBuffer::TimestampAccessor timestampAccessor, facebook::react::HighResDuration windowSize); - public std::vector pruneExpiredAndExtract(facebook::react::HighResTimeStamp windowRightBoundary = facebook::react::HighResTimeStamp::now()); - public using TimestampAccessor = std::function; - public void clear(); - public void push(T&& element); - public void push(const T& element); -} - template class facebook::react::jsinspector_modern::tracing::PerformanceTracerSection { public PerformanceTracerSection(const char* name, const char* track = nullptr, const char* trackGroup = nullptr, const char* color = nullptr, Args... args) noexcept; @@ -11655,32 +11592,6 @@ class facebook::react::jsinspector_modern::tracing::PerformanceTracerSection { } -using facebook::react::jsinspector_modern::cdp::ParseError = folly::json::parse_error; -using facebook::react::jsinspector_modern::cdp::RequestId = long long; -using facebook::react::jsinspector_modern::cdp::TypeError = folly::TypeError; -facebook::react::jsinspector_modern::cdp::PreparsedRequest facebook::react::jsinspector_modern::cdp::preparse(std::string_view message); -std::string facebook::react::jsinspector_modern::cdp::jsonError(std::optional id, facebook::react::jsinspector_modern::cdp::ErrorCode code, std::optional message = std::nullopt); -std::string facebook::react::jsinspector_modern::cdp::jsonNotification(const std::string& method, std::optional params = std::nullopt); -std::string facebook::react::jsinspector_modern::cdp::jsonRequest(facebook::react::jsinspector_modern::cdp::RequestId id, const std::string& method, std::optional params = std::nullopt); -std::string facebook::react::jsinspector_modern::cdp::jsonResult(facebook::react::jsinspector_modern::cdp::RequestId id, const folly::dynamic& result = folly::dynamic::object()); - -enum facebook::react::jsinspector_modern::cdp::ErrorCode { - InternalError, - InvalidParams, - InvalidRequest, - MethodNotFound, - ParseError, -} - -struct facebook::react::jsinspector_modern::cdp::PreparsedRequest { - public bool operator==(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& rhs) const; - public facebook::react::jsinspector_modern::cdp::RequestId id; - public folly::dynamic params; - public std::string method; - public std::string toJson() const; -} - - template struct facebook::react::array_detail::BridgingStatic { public static facebook::jsi::Array toJs(facebook::jsi::Runtime& rt, const T& array, const std::shared_ptr& jsInvoker); diff --git a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api index a6de74642c79..f75258f4f184 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -6147,27 +6147,12 @@ facebook::react::jsinspector_modern::IInspector& facebook::react::jsinspector_mo folly::dynamic facebook::react::jsinspector_modern::createHostMetadataPayload(const facebook::react::jsinspector_modern::HostTargetMetadata& metadata); folly::dynamic facebook::react::jsinspector_modern::targetCapabilitiesToDynamic(const facebook::react::jsinspector_modern::InspectorTargetCapabilities& capabilities); std::unique_ptr facebook::react::jsinspector_modern::makeTestInspectorInstance(); -template -void facebook::react::jsinspector_modern::emitNotificationsForTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const ChannelsRange& channels, bool isBackgroundTrace); template facebook::react::jsinspector_modern::ScopedExecutor facebook::react::jsinspector_modern::makeScopedExecutor(std::shared_ptr self, facebook::react::jsinspector_modern::ScopedExecutor executor); template facebook::react::jsinspector_modern::ScopedExecutor facebook::react::jsinspector_modern::makeScopedExecutor(std::shared_ptr self, facebook::react::jsinspector_modern::VoidExecutor executor); template facebook::react::jsinspector_modern::VoidExecutor facebook::react::jsinspector_modern::makeVoidExecutor(facebook::react::jsinspector_modern::ScopedExecutor executor); -void facebook::react::jsinspector_modern::emitNotificationsForTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const facebook::react::jsinspector_modern::FrontendChannel& channel, bool isBackgroundTrace); - -class facebook::react::jsinspector_modern::CallbackLocalConnection : public facebook::react::jsinspector_modern::ILocalConnection { - public CallbackLocalConnection(std::function handler); - public virtual void disconnect() override; - public virtual void sendMessage(std::string message) override; -} - -class facebook::react::jsinspector_modern::CallbackRemoteConnection : public facebook::react::jsinspector_modern::IRemoteConnection { - public CallbackRemoteConnection(std::function handler); - public virtual void onDisconnect() override; - public virtual void onMessage(std::string message) override; -} class facebook::react::jsinspector_modern::ExecutionContextSelector { public ExecutionContextSelector() = delete; @@ -6195,19 +6180,6 @@ class facebook::react::jsinspector_modern::FallbackRuntimeTargetDelegate : publi public virtual void enableSamplingProfiler() override; } -class facebook::react::jsinspector_modern::HostAgent { - public HostAgent(const facebook::react::jsinspector_modern::FrontendChannel& frontendChannel, facebook::react::jsinspector_modern::HostTargetController& targetController, facebook::react::jsinspector_modern::HostTargetMetadata hostMetadata, facebook::react::jsinspector_modern::SessionState& sessionState, facebook::react::jsinspector_modern::VoidExecutor executor); - public HostAgent(const facebook::react::jsinspector_modern::HostAgent&) = delete; - public HostAgent(facebook::react::jsinspector_modern::HostAgent&&) = delete; - public bool isEligibleForBackgroundTrace() const; - public facebook::react::jsinspector_modern::HostAgent& operator=(const facebook::react::jsinspector_modern::HostAgent&) = delete; - public facebook::react::jsinspector_modern::HostAgent& operator=(facebook::react::jsinspector_modern::HostAgent&&) = delete; - public void emitSystemStateChanged(bool isSingleHost); - public void handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); - public void setCurrentInstanceAgent(std::shared_ptr agent); - public ~HostAgent(); -} - class facebook::react::jsinspector_modern::HostTarget : public facebook::react::jsinspector_modern::EnableExecutorFromThis { public HostTarget(const facebook::react::jsinspector_modern::HostTarget&) = delete; public HostTarget(facebook::react::jsinspector_modern::HostTarget&&) = delete; @@ -6274,16 +6246,6 @@ struct facebook::react::jsinspector_modern::HostTargetDelegate::SetEmulatedMedia public std::string colorScheme; } -class facebook::react::jsinspector_modern::HostTargetTraceRecording { - public HostTargetTraceRecording(facebook::react::jsinspector_modern::HostTarget& hostTarget, facebook::react::jsinspector_modern::tracing::Mode tracingMode, std::set enabledCategories, std::optional windowSize = std::nullopt); - public bool isBackgroundInitiated() const; - public bool isUserInitiated() const; - public facebook::react::jsinspector_modern::tracing::HostTracingProfile stop(); - public void recordFrameTimings(facebook::react::jsinspector_modern::tracing::FrameTimingSequence frameTimingSequence); - public void setTracedInstance(facebook::react::jsinspector_modern::InstanceTarget* instanceTarget); - public void start(); -} - class facebook::react::jsinspector_modern::HostTargetTracingDelegate { public HostTargetTracingDelegate() = default; public HostTargetTracingDelegate(const facebook::react::jsinspector_modern::HostTargetTracingDelegate&) = delete; @@ -6295,11 +6257,6 @@ class facebook::react::jsinspector_modern::HostTargetTracingDelegate { public virtual ~HostTargetTracingDelegate() = default; } -class facebook::react::jsinspector_modern::HostTracingAgent { - public HostTracingAgent(facebook::react::jsinspector_modern::tracing::TraceRecordingState& state); - public void setTracedInstance(facebook::react::jsinspector_modern::InstanceTarget* instanceTarget); -} - class facebook::react::jsinspector_modern::IDestructible { public virtual ~IDestructible() = 0; } @@ -6373,13 +6330,6 @@ class facebook::react::jsinspector_modern::InspectorPackagerConnectionDelegate { public virtual ~InspectorPackagerConnectionDelegate() = default; } -class facebook::react::jsinspector_modern::InstanceAgent { - public InstanceAgent(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, facebook::react::jsinspector_modern::InstanceTarget& target, facebook::react::jsinspector_modern::SessionState& sessionState); - public bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); - public void sendConsoleMessage(facebook::react::jsinspector_modern::SimpleConsoleMessage message); - public void setCurrentRuntime(facebook::react::jsinspector_modern::RuntimeTarget* runtime); -} - class facebook::react::jsinspector_modern::InstanceTarget : public facebook::react::jsinspector_modern::EnableExecutorFromThis { public InstanceTarget(const facebook::react::jsinspector_modern::InstanceTarget&) = delete; public InstanceTarget(facebook::react::jsinspector_modern::InstanceTarget&&) = delete; @@ -6402,12 +6352,6 @@ class facebook::react::jsinspector_modern::InstanceTargetDelegate { public virtual ~InstanceTargetDelegate(); } -class facebook::react::jsinspector_modern::InstanceTracingAgent { - public InstanceTracingAgent(facebook::react::jsinspector_modern::tracing::TraceRecordingState& state); - public void setTracedRuntime(facebook::react::jsinspector_modern::RuntimeTarget* runtimeTarget); - public ~InstanceTracingAgent(); -} - class facebook::react::jsinspector_modern::LoadNetworkResourceDelegate { public LoadNetworkResourceDelegate() = default; public LoadNetworkResourceDelegate(const facebook::react::jsinspector_modern::LoadNetworkResourceDelegate&) = delete; @@ -6447,20 +6391,11 @@ class facebook::react::jsinspector_modern::NotImplementedException : public std: public const char* what() const noexcept override; } -class facebook::react::jsinspector_modern::NullRemoteConnection : public facebook::react::jsinspector_modern::IRemoteConnection { -} - class facebook::react::jsinspector_modern::PerfMonitorUpdateHandler { public PerfMonitorUpdateHandler(facebook::react::jsinspector_modern::HostTargetDelegate& delegate); public void handlePerfIssueAdded(const std::string& message); } -class facebook::react::jsinspector_modern::RAIIRemoteConnection { - public RAIIRemoteConnection(std::unique_ptr remote); - public void onMessage(std::string message); - public ~RAIIRemoteConnection(); -} - class facebook::react::jsinspector_modern::RuntimeAgent { public RuntimeAgent(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, facebook::react::jsinspector_modern::RuntimeTargetController& targetController, facebook::react::jsinspector_modern::ExecutionContextDescription executionContextDescription, facebook::react::jsinspector_modern::SessionState& sessionState, std::unique_ptr delegate); public bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); @@ -6541,12 +6476,6 @@ class facebook::react::jsinspector_modern::StackTrace { public virtual ~StackTrace() = default; } -class facebook::react::jsinspector_modern::TracingAgent { - public TracingAgent(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, facebook::react::jsinspector_modern::SessionState& sessionState, facebook::react::jsinspector_modern::HostTargetController& hostTargetController); - public bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); - public ~TracingAgent(); -} - enum facebook::react::jsinspector_modern::ConsoleAPIType { kAssert, kClear, @@ -6728,7 +6657,32 @@ class facebook::react::jsinspector_modern::WeakList { } -constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::kCurrentBufferStartTimeUninitialized; +using facebook::react::jsinspector_modern::cdp::ParseError = folly::json::parse_error; +using facebook::react::jsinspector_modern::cdp::RequestId = long long; +using facebook::react::jsinspector_modern::cdp::TypeError = folly::TypeError; +facebook::react::jsinspector_modern::cdp::PreparsedRequest facebook::react::jsinspector_modern::cdp::preparse(std::string_view message); +std::string facebook::react::jsinspector_modern::cdp::jsonError(std::optional id, facebook::react::jsinspector_modern::cdp::ErrorCode code, std::optional message = std::nullopt); +std::string facebook::react::jsinspector_modern::cdp::jsonNotification(const std::string& method, std::optional params = std::nullopt); +std::string facebook::react::jsinspector_modern::cdp::jsonRequest(facebook::react::jsinspector_modern::cdp::RequestId id, const std::string& method, std::optional params = std::nullopt); +std::string facebook::react::jsinspector_modern::cdp::jsonResult(facebook::react::jsinspector_modern::cdp::RequestId id, const folly::dynamic& result = folly::dynamic::object()); + +enum facebook::react::jsinspector_modern::cdp::ErrorCode { + InternalError, + InvalidParams, + InvalidRequest, + MethodNotFound, + ParseError, +} + +struct facebook::react::jsinspector_modern::cdp::PreparsedRequest { + public bool operator==(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& rhs) const; + public facebook::react::jsinspector_modern::cdp::RequestId id; + public folly::dynamic params; + public std::string method; + public std::string toJson() const; +} + + using facebook::react::jsinspector_modern::tracing::Categories = folly::small_vector; using facebook::react::jsinspector_modern::tracing::ConsoleTimeStampEntry = std::variant; using facebook::react::jsinspector_modern::tracing::FrameSequenceId = uint64_t; @@ -6745,12 +6699,6 @@ std::string facebook::react::jsinspector_modern::tracing::serializeTracingCatego std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const std::set& categories); std::string facebook::react::jsinspector_modern::tracing::tracingCategoryToString(const facebook::react::jsinspector_modern::tracing::Category& category); -class facebook::react::jsinspector_modern::tracing::HostTracingProfileSerializer { - public static void emitAsDataCollectedChunks(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const std::function& chunkCallback, size_t maxChunkBytes, uint16_t profileTraceEventsChunkSize); - public static void emitFrameTimings(std::vector&& frameTimings, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::HighResTimeStamp recordingStartTimestamp, const std::function& chunkCallback, size_t maxChunkBytes); - public static void emitPerformanceTraceEvents(std::vector&& events, const std::function& chunkCallback, size_t maxChunkBytes); -} - class facebook::react::jsinspector_modern::tracing::PerformanceTracer { public bool isTracing() const; public bool startTracing(); @@ -6937,17 +6885,6 @@ struct facebook::react::jsinspector_modern::tracing::TraceRecordingState { public ~TraceRecordingState() = default; } -template -class facebook::react::jsinspector_modern::tracing::TimeWindowedBuffer { - public TimeWindowedBuffer(); - public TimeWindowedBuffer(facebook::react::jsinspector_modern::tracing::TimeWindowedBuffer::TimestampAccessor timestampAccessor, facebook::react::HighResDuration windowSize); - public std::vector pruneExpiredAndExtract(facebook::react::HighResTimeStamp windowRightBoundary = facebook::react::HighResTimeStamp::now()); - public using TimestampAccessor = std::function; - public void clear(); - public void push(T&& element); - public void push(const T& element); -} - template class facebook::react::jsinspector_modern::tracing::PerformanceTracerSection { public PerformanceTracerSection(const char* name, const char* track = nullptr, const char* trackGroup = nullptr, const char* color = nullptr, Args... args) noexcept; @@ -6959,32 +6896,6 @@ class facebook::react::jsinspector_modern::tracing::PerformanceTracerSection { } -using facebook::react::jsinspector_modern::cdp::ParseError = folly::json::parse_error; -using facebook::react::jsinspector_modern::cdp::RequestId = long long; -using facebook::react::jsinspector_modern::cdp::TypeError = folly::TypeError; -facebook::react::jsinspector_modern::cdp::PreparsedRequest facebook::react::jsinspector_modern::cdp::preparse(std::string_view message); -std::string facebook::react::jsinspector_modern::cdp::jsonError(std::optional id, facebook::react::jsinspector_modern::cdp::ErrorCode code, std::optional message = std::nullopt); -std::string facebook::react::jsinspector_modern::cdp::jsonNotification(const std::string& method, std::optional params = std::nullopt); -std::string facebook::react::jsinspector_modern::cdp::jsonRequest(facebook::react::jsinspector_modern::cdp::RequestId id, const std::string& method, std::optional params = std::nullopt); -std::string facebook::react::jsinspector_modern::cdp::jsonResult(facebook::react::jsinspector_modern::cdp::RequestId id, const folly::dynamic& result = folly::dynamic::object()); - -enum facebook::react::jsinspector_modern::cdp::ErrorCode { - InternalError, - InvalidParams, - InvalidRequest, - MethodNotFound, - ParseError, -} - -struct facebook::react::jsinspector_modern::cdp::PreparsedRequest { - public bool operator==(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& rhs) const; - public facebook::react::jsinspector_modern::cdp::RequestId id; - public folly::dynamic params; - public std::string method; - public std::string toJson() const; -} - - template struct facebook::react::array_detail::BridgingStatic { public static facebook::jsi::Array toJs(facebook::jsi::Runtime& rt, const T& array, const std::shared_ptr& jsInvoker); From c663bfd77ad802457f9a57eb554b8fc76cbc5dfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 8 Oct 2026 06:40:26 -0700 Subject: [PATCH 06/10] Make ViewPropsInterpolation.h private Summary: Move `ViewPropsInterpolation.h` from the public tier of the C++ stable API to the private tier, and remove it from the `` umbrella. The header defines `interpolateViewProps`, an inline helper that interpolates opacity and transform between two `ViewProps` during a layout animation. It is an implementation detail of React Native's layout animation system, the only code that calls it, and it is not part of the API for component authors. No public or for-frameworks header includes it. React Native's own targets define `RN_BUILDING`, so the private guard does not affect them. The header stays published by every build system, consistent with other private headers. Changelog: [Internal] Differential Revision: D123651988 --- .../ReactCommon/react/renderer/components/view/React/View.h | 1 - .../react/renderer/components/view/ViewPropsInterpolation.h | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/React/View.h b/packages/react-native/ReactCommon/react/renderer/components/view/React/View.h index 09d0f82ef11e..ce20d40aa0c6 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/React/View.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/React/View.h @@ -51,7 +51,6 @@ #include #include #include -#include #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h b/packages/react-native/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h index 99fb1ce9043f..da57a08f77e6 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include #include From dbac457d1fe266e5a803f5b75ff4d16c082c8dc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 8 Oct 2026 06:48:08 -0700 Subject: [PATCH 07/10] Make LayoutConformance component headers for-frameworks Summary: Move `LayoutConformanceComponentDescriptor.h`, `LayoutConformanceProps.h` and `LayoutConformanceShadowNode.h` from the public tier of the C++ stable API to the for-frameworks tier, and remove them from the `` umbrella. These headers implement the experimental `LayoutConformance` core component. Native component authors do not use them, but a platform that registers React Native's core components does: `YogaLayoutableShadowNode::resolveErrata` checks for `LayoutConformanceShadowNode` with a `dynamic_cast` to choose the Yoga errata, so a platform has to register React Native's own descriptor for the component to have any effect. That makes them framework-author API rather than private headers. The `LayoutConformance` enum and its conversions stay public in `primitives.h` and `conversions.h`. A for-frameworks header has to reach public headers through their umbrella, so the three headers now include `` and `` instead of fine-grained paths, and compile when included directly under strict API enforcement. `LayoutConformanceProps.h` was the only umbrella member that included the public `conversions.h`, so `conversions.h` is added to `` directly to keep it available through the umbrella. No build files change: the headers stay published, because React Native's own core component registries outside this module include them. Changelog: [Internal] Differential Revision: D123895702 --- .../view/LayoutConformanceComponentDescriptor.h | 4 ++-- .../renderer/components/view/LayoutConformanceProps.h | 7 +++---- .../components/view/LayoutConformanceShadowNode.h | 5 ++--- .../react/renderer/components/view/React/View.h | 4 +--- .../cxx-api/api-snapshots/ReactAndroidDebugCxx.api | 11 ----------- .../cxx-api/api-snapshots/ReactAndroidNewarchCxx.api | 11 ----------- .../cxx-api/api-snapshots/ReactAndroidReleaseCxx.api | 11 ----------- scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api | 11 ----------- .../cxx-api/api-snapshots/ReactAppleNewarchCxx.api | 11 ----------- .../cxx-api/api-snapshots/ReactAppleReleaseCxx.api | 11 ----------- scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api | 11 ----------- .../cxx-api/api-snapshots/ReactCommonNewarchCxx.api | 11 ----------- .../cxx-api/api-snapshots/ReactCommonReleaseCxx.api | 11 ----------- 13 files changed, 8 insertions(+), 111 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h index 55b3389958fc..62dab54cd3c2 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h @@ -7,10 +7,10 @@ #pragma once -#include +#include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h b/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h index d66dfbfee722..41aef7005ef6 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h @@ -7,11 +7,10 @@ #pragma once -#include +#include -#include -#include -#include +#include +#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h index 40eb27a32865..00bb83485360 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h @@ -7,11 +7,10 @@ #pragma once -#include +#include -#include +#include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/React/View.h b/packages/react-native/ReactCommon/react/renderer/components/view/React/View.h index ce20d40aa0c6..40ce388c76f0 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/React/View.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/React/View.h @@ -41,9 +41,6 @@ #include #include #include -#include -#include -#include #include #include #include @@ -55,6 +52,7 @@ #include #include #include +#include #include #undef RN_UMBRELLA_CONTEXT diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api index 777b8427b4ba..1c491a4f5525 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api @@ -376,7 +376,6 @@ struct facebook::hermes::ISetEventLoopControl : public facebook::jsi::ICast { const char facebook::react::ViewComponentName[]; const facebook::react::EventTag facebook::react::EMPTY_EVENT_TAG; constexpr auto facebook::react::rncore_ModuleProvider; -constexpr char facebook::react::LayoutConformanceShadowNodeComponentName[]; constexpr facebook::react::ReactNativeVersionType facebook::react::ReactNativeVersion; constexpr facebook::react::Tag facebook::react::kNoTag; constexpr uint32_t facebook::react::INITIAL_BUCKETS_SIZE; @@ -424,7 +423,6 @@ using facebook::react::GradientDirection = std::variant; -using facebook::react::LayoutConformanceComponentDescriptor = facebook::react::ConcreteComponentDescriptor; using facebook::react::ModalHostViewSupportedOrientationsMask = uint32_t; using facebook::react::NativeMethodCallFunc = std::function; using facebook::react::PromiseSetupFunctionType = std::function)>; @@ -1728,9 +1726,6 @@ struct facebook::react::JavaTurboModule::InitParams { public std::string moduleName; } -class facebook::react::LayoutConformanceShadowNode : public facebook::react::ConcreteShadowNode { -} - class facebook::react::LayoutableShadowNode : public facebook::react::ShadowNode { public LayoutableShadowNode(const facebook::react::ShadowNode& sourceShadowNode, const facebook::react::ShadowNodeFragment& fragment); public LayoutableShadowNode(const facebook::react::ShadowNodeFragment& fragment, const facebook::react::ShadowNodeFamily::Shared& family, facebook::react::ShadowNodeTraits traits); @@ -3398,12 +3393,6 @@ struct facebook::react::JTurboModuleWithJSIBindings : public facebook::jni::Java public static constexpr auto kJavaDescriptor; } -struct facebook::react::LayoutConformanceProps : public facebook::react::YogaStylableProps { - public LayoutConformanceProps() = default; - public LayoutConformanceProps(const facebook::react::PropsParserContext& context, const facebook::react::LayoutConformanceProps& sourceProps, const facebook::react::RawProps& rawProps); - public facebook::react::LayoutConformance mode; -} - struct facebook::react::LayoutConstraints { public facebook::react::LayoutDirection layoutDirection; public facebook::react::Size clamp(const facebook::react::Size& size) const; diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api index e61666350cc0..70cdf10b9a66 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api @@ -376,7 +376,6 @@ struct facebook::hermes::ISetEventLoopControl : public facebook::jsi::ICast { const char facebook::react::ViewComponentName[]; const facebook::react::EventTag facebook::react::EMPTY_EVENT_TAG; constexpr auto facebook::react::rncore_ModuleProvider; -constexpr char facebook::react::LayoutConformanceShadowNodeComponentName[]; constexpr facebook::react::ReactNativeVersionType facebook::react::ReactNativeVersion; constexpr facebook::react::Tag facebook::react::kNoTag; constexpr uint32_t facebook::react::INITIAL_BUCKETS_SIZE; @@ -424,7 +423,6 @@ using facebook::react::GradientDirection = std::variant; -using facebook::react::LayoutConformanceComponentDescriptor = facebook::react::ConcreteComponentDescriptor; using facebook::react::ModalHostViewSupportedOrientationsMask = uint32_t; using facebook::react::NativeMethodCallFunc = std::function; using facebook::react::PromiseSetupFunctionType = std::function)>; @@ -1727,9 +1725,6 @@ struct facebook::react::JavaTurboModule::InitParams { public std::string moduleName; } -class facebook::react::LayoutConformanceShadowNode : public facebook::react::ConcreteShadowNode { -} - class facebook::react::LayoutableShadowNode : public facebook::react::ShadowNode { public LayoutableShadowNode(const facebook::react::ShadowNode& sourceShadowNode, const facebook::react::ShadowNodeFragment& fragment); public LayoutableShadowNode(const facebook::react::ShadowNodeFragment& fragment, const facebook::react::ShadowNodeFamily::Shared& family, facebook::react::ShadowNodeTraits traits); @@ -3391,12 +3386,6 @@ struct facebook::react::JTurboModuleWithJSIBindings : public facebook::jni::Java public static constexpr auto kJavaDescriptor; } -struct facebook::react::LayoutConformanceProps : public facebook::react::YogaStylableProps { - public LayoutConformanceProps() = default; - public LayoutConformanceProps(const facebook::react::PropsParserContext& context, const facebook::react::LayoutConformanceProps& sourceProps, const facebook::react::RawProps& rawProps); - public facebook::react::LayoutConformance mode; -} - struct facebook::react::LayoutConstraints { public facebook::react::LayoutDirection layoutDirection; public facebook::react::Size clamp(const facebook::react::Size& size) const; diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api index e61666350cc0..70cdf10b9a66 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api @@ -376,7 +376,6 @@ struct facebook::hermes::ISetEventLoopControl : public facebook::jsi::ICast { const char facebook::react::ViewComponentName[]; const facebook::react::EventTag facebook::react::EMPTY_EVENT_TAG; constexpr auto facebook::react::rncore_ModuleProvider; -constexpr char facebook::react::LayoutConformanceShadowNodeComponentName[]; constexpr facebook::react::ReactNativeVersionType facebook::react::ReactNativeVersion; constexpr facebook::react::Tag facebook::react::kNoTag; constexpr uint32_t facebook::react::INITIAL_BUCKETS_SIZE; @@ -424,7 +423,6 @@ using facebook::react::GradientDirection = std::variant; -using facebook::react::LayoutConformanceComponentDescriptor = facebook::react::ConcreteComponentDescriptor; using facebook::react::ModalHostViewSupportedOrientationsMask = uint32_t; using facebook::react::NativeMethodCallFunc = std::function; using facebook::react::PromiseSetupFunctionType = std::function)>; @@ -1727,9 +1725,6 @@ struct facebook::react::JavaTurboModule::InitParams { public std::string moduleName; } -class facebook::react::LayoutConformanceShadowNode : public facebook::react::ConcreteShadowNode { -} - class facebook::react::LayoutableShadowNode : public facebook::react::ShadowNode { public LayoutableShadowNode(const facebook::react::ShadowNode& sourceShadowNode, const facebook::react::ShadowNodeFragment& fragment); public LayoutableShadowNode(const facebook::react::ShadowNodeFragment& fragment, const facebook::react::ShadowNodeFamily::Shared& family, facebook::react::ShadowNodeTraits traits); @@ -3391,12 +3386,6 @@ struct facebook::react::JTurboModuleWithJSIBindings : public facebook::jni::Java public static constexpr auto kJavaDescriptor; } -struct facebook::react::LayoutConformanceProps : public facebook::react::YogaStylableProps { - public LayoutConformanceProps() = default; - public LayoutConformanceProps(const facebook::react::PropsParserContext& context, const facebook::react::LayoutConformanceProps& sourceProps, const facebook::react::RawProps& rawProps); - public facebook::react::LayoutConformance mode; -} - struct facebook::react::LayoutConstraints { public facebook::react::LayoutDirection layoutDirection; public facebook::react::Size clamp(const facebook::react::Size& size) const; diff --git a/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api index 4a7b602e202b..0ff047deee49 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api @@ -3177,7 +3177,6 @@ struct facebook::hermes::ISetEventLoopControl : public facebook::jsi::ICast { const char facebook::react::ViewComponentName[]; const facebook::react::EventTag facebook::react::EMPTY_EVENT_TAG; -constexpr char facebook::react::LayoutConformanceShadowNodeComponentName[]; constexpr facebook::react::ReactNativeVersionType facebook::react::ReactNativeVersion; constexpr facebook::react::Tag facebook::react::kNoTag; constexpr uint32_t facebook::react::INITIAL_BUCKETS_SIZE; @@ -3224,7 +3223,6 @@ using facebook::react::GradientDirection = std::variant; -using facebook::react::LayoutConformanceComponentDescriptor = facebook::react::ConcreteComponentDescriptor; using facebook::react::ModalHostViewSupportedOrientationsMask = uint32_t; using facebook::react::NativeMethodCallFunc = std::function; using facebook::react::PromiseSetupFunctionType = std::function)>; @@ -4038,9 +4036,6 @@ class facebook::react::JSBigString : public facebook::jsi::Buffer { public ~JSBigString() override = default; } -class facebook::react::LayoutConformanceShadowNode : public facebook::react::ConcreteShadowNode { -} - class facebook::react::LayoutableShadowNode : public facebook::react::ShadowNode { public LayoutableShadowNode(const facebook::react::ShadowNode& sourceShadowNode, const facebook::react::ShadowNodeFragment& fragment); public LayoutableShadowNode(const facebook::react::ShadowNodeFragment& fragment, const facebook::react::ShadowNodeFamily::Shared& family, facebook::react::ShadowNodeTraits traits); @@ -5498,12 +5493,6 @@ struct facebook::react::ImageURLLoaderAttribution { public std::string queryRootName; } -struct facebook::react::LayoutConformanceProps : public facebook::react::YogaStylableProps { - public LayoutConformanceProps() = default; - public LayoutConformanceProps(const facebook::react::PropsParserContext& context, const facebook::react::LayoutConformanceProps& sourceProps, const facebook::react::RawProps& rawProps); - public facebook::react::LayoutConformance mode; -} - struct facebook::react::LayoutConstraints { public facebook::react::LayoutDirection layoutDirection; public facebook::react::Size clamp(const facebook::react::Size& size) const; diff --git a/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api index 8a11f3569d73..11e51045eacc 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api @@ -3169,7 +3169,6 @@ struct facebook::hermes::ISetEventLoopControl : public facebook::jsi::ICast { const char facebook::react::ViewComponentName[]; const facebook::react::EventTag facebook::react::EMPTY_EVENT_TAG; -constexpr char facebook::react::LayoutConformanceShadowNodeComponentName[]; constexpr facebook::react::ReactNativeVersionType facebook::react::ReactNativeVersion; constexpr facebook::react::Tag facebook::react::kNoTag; constexpr uint32_t facebook::react::INITIAL_BUCKETS_SIZE; @@ -3216,7 +3215,6 @@ using facebook::react::GradientDirection = std::variant; -using facebook::react::LayoutConformanceComponentDescriptor = facebook::react::ConcreteComponentDescriptor; using facebook::react::ModalHostViewSupportedOrientationsMask = uint32_t; using facebook::react::NativeMethodCallFunc = std::function; using facebook::react::PromiseSetupFunctionType = std::function)>; @@ -4029,9 +4027,6 @@ class facebook::react::JSBigString : public facebook::jsi::Buffer { public ~JSBigString() override = default; } -class facebook::react::LayoutConformanceShadowNode : public facebook::react::ConcreteShadowNode { -} - class facebook::react::LayoutableShadowNode : public facebook::react::ShadowNode { public LayoutableShadowNode(const facebook::react::ShadowNode& sourceShadowNode, const facebook::react::ShadowNodeFragment& fragment); public LayoutableShadowNode(const facebook::react::ShadowNodeFragment& fragment, const facebook::react::ShadowNodeFamily::Shared& family, facebook::react::ShadowNodeTraits traits); @@ -5483,12 +5478,6 @@ struct facebook::react::ImageURLLoaderAttribution { public std::string queryRootName; } -struct facebook::react::LayoutConformanceProps : public facebook::react::YogaStylableProps { - public LayoutConformanceProps() = default; - public LayoutConformanceProps(const facebook::react::PropsParserContext& context, const facebook::react::LayoutConformanceProps& sourceProps, const facebook::react::RawProps& rawProps); - public facebook::react::LayoutConformance mode; -} - struct facebook::react::LayoutConstraints { public facebook::react::LayoutDirection layoutDirection; public facebook::react::Size clamp(const facebook::react::Size& size) const; diff --git a/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api index aa1ff6a9eb94..2880a844e09f 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api @@ -3177,7 +3177,6 @@ struct facebook::hermes::ISetEventLoopControl : public facebook::jsi::ICast { const char facebook::react::ViewComponentName[]; const facebook::react::EventTag facebook::react::EMPTY_EVENT_TAG; -constexpr char facebook::react::LayoutConformanceShadowNodeComponentName[]; constexpr facebook::react::ReactNativeVersionType facebook::react::ReactNativeVersion; constexpr facebook::react::Tag facebook::react::kNoTag; constexpr uint32_t facebook::react::INITIAL_BUCKETS_SIZE; @@ -3224,7 +3223,6 @@ using facebook::react::GradientDirection = std::variant; -using facebook::react::LayoutConformanceComponentDescriptor = facebook::react::ConcreteComponentDescriptor; using facebook::react::ModalHostViewSupportedOrientationsMask = uint32_t; using facebook::react::NativeMethodCallFunc = std::function; using facebook::react::PromiseSetupFunctionType = std::function)>; @@ -4037,9 +4035,6 @@ class facebook::react::JSBigString : public facebook::jsi::Buffer { public ~JSBigString() override = default; } -class facebook::react::LayoutConformanceShadowNode : public facebook::react::ConcreteShadowNode { -} - class facebook::react::LayoutableShadowNode : public facebook::react::ShadowNode { public LayoutableShadowNode(const facebook::react::ShadowNode& sourceShadowNode, const facebook::react::ShadowNodeFragment& fragment); public LayoutableShadowNode(const facebook::react::ShadowNodeFragment& fragment, const facebook::react::ShadowNodeFamily::Shared& family, facebook::react::ShadowNodeTraits traits); @@ -5491,12 +5486,6 @@ struct facebook::react::ImageURLLoaderAttribution { public std::string queryRootName; } -struct facebook::react::LayoutConformanceProps : public facebook::react::YogaStylableProps { - public LayoutConformanceProps() = default; - public LayoutConformanceProps(const facebook::react::PropsParserContext& context, const facebook::react::LayoutConformanceProps& sourceProps, const facebook::react::RawProps& rawProps); - public facebook::react::LayoutConformance mode; -} - struct facebook::react::LayoutConstraints { public facebook::react::LayoutDirection layoutDirection; public facebook::react::Size clamp(const facebook::react::Size& size) const; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api index 217e69f46061..b86dece29a74 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api @@ -73,7 +73,6 @@ struct facebook::hermes::ISetEventLoopControl : public facebook::jsi::ICast { const char facebook::react::ViewComponentName[]; const facebook::react::EventTag facebook::react::EMPTY_EVENT_TAG; -constexpr char facebook::react::LayoutConformanceShadowNodeComponentName[]; constexpr facebook::react::ReactNativeVersionType facebook::react::ReactNativeVersion; constexpr facebook::react::Tag facebook::react::kNoTag; constexpr uint32_t facebook::react::INITIAL_BUCKETS_SIZE; @@ -108,7 +107,6 @@ using facebook::react::GradientDirection = std::variant; -using facebook::react::LayoutConformanceComponentDescriptor = facebook::react::ConcreteComponentDescriptor; using facebook::react::NativeMethodCallFunc = std::function; using facebook::react::PromiseSetupFunctionType = std::function)>; using facebook::react::RawPropsPropNameHash = uint32_t; @@ -837,9 +835,6 @@ class facebook::react::JSBigString : public facebook::jsi::Buffer { public ~JSBigString() override = default; } -class facebook::react::LayoutConformanceShadowNode : public facebook::react::ConcreteShadowNode { -} - class facebook::react::LayoutableShadowNode : public facebook::react::ShadowNode { public LayoutableShadowNode(const facebook::react::ShadowNode& sourceShadowNode, const facebook::react::ShadowNodeFragment& fragment); public LayoutableShadowNode(const facebook::react::ShadowNodeFragment& fragment, const facebook::react::ShadowNodeFamily::Shared& family, facebook::react::ShadowNodeTraits traits); @@ -1865,12 +1860,6 @@ struct facebook::react::FilterFunction { public std::variant parameters; } -struct facebook::react::LayoutConformanceProps : public facebook::react::YogaStylableProps { - public LayoutConformanceProps() = default; - public LayoutConformanceProps(const facebook::react::PropsParserContext& context, const facebook::react::LayoutConformanceProps& sourceProps, const facebook::react::RawProps& rawProps); - public facebook::react::LayoutConformance mode; -} - struct facebook::react::LayoutConstraints { public facebook::react::LayoutDirection layoutDirection; public facebook::react::Size clamp(const facebook::react::Size& size) const; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api index 05433e06a97a..cb3f8e416ed2 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api @@ -73,7 +73,6 @@ struct facebook::hermes::ISetEventLoopControl : public facebook::jsi::ICast { const char facebook::react::ViewComponentName[]; const facebook::react::EventTag facebook::react::EMPTY_EVENT_TAG; -constexpr char facebook::react::LayoutConformanceShadowNodeComponentName[]; constexpr facebook::react::ReactNativeVersionType facebook::react::ReactNativeVersion; constexpr facebook::react::Tag facebook::react::kNoTag; constexpr uint32_t facebook::react::INITIAL_BUCKETS_SIZE; @@ -108,7 +107,6 @@ using facebook::react::GradientDirection = std::variant; -using facebook::react::LayoutConformanceComponentDescriptor = facebook::react::ConcreteComponentDescriptor; using facebook::react::NativeMethodCallFunc = std::function; using facebook::react::PromiseSetupFunctionType = std::function)>; using facebook::react::RawPropsPropNameHash = uint32_t; @@ -836,9 +834,6 @@ class facebook::react::JSBigString : public facebook::jsi::Buffer { public ~JSBigString() override = default; } -class facebook::react::LayoutConformanceShadowNode : public facebook::react::ConcreteShadowNode { -} - class facebook::react::LayoutableShadowNode : public facebook::react::ShadowNode { public LayoutableShadowNode(const facebook::react::ShadowNode& sourceShadowNode, const facebook::react::ShadowNodeFragment& fragment); public LayoutableShadowNode(const facebook::react::ShadowNodeFragment& fragment, const facebook::react::ShadowNodeFamily::Shared& family, facebook::react::ShadowNodeTraits traits); @@ -1858,12 +1853,6 @@ struct facebook::react::FilterFunction { public std::variant parameters; } -struct facebook::react::LayoutConformanceProps : public facebook::react::YogaStylableProps { - public LayoutConformanceProps() = default; - public LayoutConformanceProps(const facebook::react::PropsParserContext& context, const facebook::react::LayoutConformanceProps& sourceProps, const facebook::react::RawProps& rawProps); - public facebook::react::LayoutConformance mode; -} - struct facebook::react::LayoutConstraints { public facebook::react::LayoutDirection layoutDirection; public facebook::react::Size clamp(const facebook::react::Size& size) const; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api index 05433e06a97a..cb3f8e416ed2 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api @@ -73,7 +73,6 @@ struct facebook::hermes::ISetEventLoopControl : public facebook::jsi::ICast { const char facebook::react::ViewComponentName[]; const facebook::react::EventTag facebook::react::EMPTY_EVENT_TAG; -constexpr char facebook::react::LayoutConformanceShadowNodeComponentName[]; constexpr facebook::react::ReactNativeVersionType facebook::react::ReactNativeVersion; constexpr facebook::react::Tag facebook::react::kNoTag; constexpr uint32_t facebook::react::INITIAL_BUCKETS_SIZE; @@ -108,7 +107,6 @@ using facebook::react::GradientDirection = std::variant; -using facebook::react::LayoutConformanceComponentDescriptor = facebook::react::ConcreteComponentDescriptor; using facebook::react::NativeMethodCallFunc = std::function; using facebook::react::PromiseSetupFunctionType = std::function)>; using facebook::react::RawPropsPropNameHash = uint32_t; @@ -836,9 +834,6 @@ class facebook::react::JSBigString : public facebook::jsi::Buffer { public ~JSBigString() override = default; } -class facebook::react::LayoutConformanceShadowNode : public facebook::react::ConcreteShadowNode { -} - class facebook::react::LayoutableShadowNode : public facebook::react::ShadowNode { public LayoutableShadowNode(const facebook::react::ShadowNode& sourceShadowNode, const facebook::react::ShadowNodeFragment& fragment); public LayoutableShadowNode(const facebook::react::ShadowNodeFragment& fragment, const facebook::react::ShadowNodeFamily::Shared& family, facebook::react::ShadowNodeTraits traits); @@ -1858,12 +1853,6 @@ struct facebook::react::FilterFunction { public std::variant parameters; } -struct facebook::react::LayoutConformanceProps : public facebook::react::YogaStylableProps { - public LayoutConformanceProps() = default; - public LayoutConformanceProps(const facebook::react::PropsParserContext& context, const facebook::react::LayoutConformanceProps& sourceProps, const facebook::react::RawProps& rawProps); - public facebook::react::LayoutConformance mode; -} - struct facebook::react::LayoutConstraints { public facebook::react::LayoutDirection layoutDirection; public facebook::react::Size clamp(const facebook::react::Size& size) const; From 31632fa6c3ac7a8605228382a215368b1ba0303b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 8 Oct 2026 07:33:55 -0700 Subject: [PATCH 08/10] Make TurboModule host integration headers for-frameworks Summary: Move the following `react/nativemodule/core` headers from the public tier to the for-frameworks tier: - `TurboModuleBinding.h` - not called by native module authors, - `JavaInteropTurboModule.h` (Android) and `RCTInteropTurboModule.h` (iOS) - legacy The C++ API snapshots are regenerated: these symbols are removed from the Debug, Release and Newarch snapshots and stay in the Frameworks snapshots. Changelog: [Internal] Differential Revision: D124104733 --- .../core/React/NativeModuleCore.h | 2 -- .../core/ReactCommon/TurboModuleBinding.h | 5 ++--- .../ReactCommon/JavaInteropTurboModule.h | 6 ++--- .../ios/ReactCommon/RCTInteropTurboModule.h | 2 ++ .../ios/ReactCommon/RCTTurboModuleManager.mm | 1 + .../api-snapshots/ReactAndroidDebugCxx.api | 19 ---------------- .../api-snapshots/ReactAndroidNewarchCxx.api | 19 ---------------- .../api-snapshots/ReactAndroidReleaseCxx.api | 19 ---------------- .../api-snapshots/ReactAppleDebugCxx.api | 22 ------------------- .../api-snapshots/ReactAppleNewarchCxx.api | 22 ------------------- .../api-snapshots/ReactAppleReleaseCxx.api | 22 ------------------- .../api-snapshots/ReactCommonDebugCxx.api | 6 ----- .../api-snapshots/ReactCommonNewarchCxx.api | 6 ----- .../api-snapshots/ReactCommonReleaseCxx.api | 6 ----- 14 files changed, 7 insertions(+), 150 deletions(-) diff --git a/packages/react-native/ReactCommon/react/nativemodule/core/React/NativeModuleCore.h b/packages/react-native/ReactCommon/react/nativemodule/core/React/NativeModuleCore.h index 3428575914d7..3c94e2cadd66 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/core/React/NativeModuleCore.h +++ b/packages/react-native/ReactCommon/react/nativemodule/core/React/NativeModuleCore.h @@ -33,13 +33,11 @@ #include #include -#include #include #include #include #ifdef ANDROID -#include #include #endif diff --git a/packages/react-native/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h b/packages/react-native/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h index ca0990fd4f63..dc3d64711d2b 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +++ b/packages/react-native/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h @@ -7,15 +7,14 @@ #pragma once -#include +#include #include #include +#include #include -#include - namespace facebook::react { class BridgelessNativeModuleProxy; diff --git a/packages/react-native/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaInteropTurboModule.h b/packages/react-native/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaInteropTurboModule.h index 14a0a95b6456..59756d18ffa8 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaInteropTurboModule.h +++ b/packages/react-native/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaInteropTurboModule.h @@ -7,19 +7,17 @@ #pragma once -#include +#include #ifndef RCT_REMOVE_LEGACY_MODULE_INTEROP #include #include -#include +#include #include #include -#include "JavaTurboModule.h" - namespace facebook::react { class JSI_EXPORT JavaInteropTurboModule : public JavaTurboModule { diff --git a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h index 957be1e85147..2b6ccc8847f9 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h +++ b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h @@ -7,6 +7,8 @@ #pragma once +#include + #ifndef RCT_REMOVE_LEGACY_MODULE_INTEROP #import diff --git a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm index 10f87ec53f89..83cfe2308b63 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +++ b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm @@ -28,6 +28,7 @@ #import #import #import +#import #import using namespace facebook; diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api index 1c491a4f5525..066c3ffbf245 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api @@ -1687,19 +1687,6 @@ class facebook::react::JWritableMapBuffer : public facebook::jni::JavaClass& methodDescriptors); - public virtual std::vector getPropertyNames(facebook::jsi::Runtime& runtime) override; -} - -struct facebook::react::JavaInteropTurboModule::MethodDescriptor { - public facebook::react::TurboModuleMethodValueKind jsiReturnKind; - public int jsArgCount; - public std::string jniSignature; - public std::string methodName; -} - class facebook::react::JavaMessageQueueThread : public facebook::jni::JavaClass { public static constexpr auto kJavaDescriptor; } @@ -2488,12 +2475,6 @@ struct facebook::react::TurboModule::MethodMetadata { public size_t argCount; } -class facebook::react::TurboModuleBinding { - public static void install(facebook::jsi::Runtime& runtime, TurboModuleProviderFunctionType&& moduleProvider, TurboModuleProviderFunctionType&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public static void install(facebook::jsi::Runtime& runtime, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& moduleProvider, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public ~TurboModuleBinding(); -} - class facebook::react::TurboModuleManager : public jni::HybridClass { public static constexpr auto kJavaDescriptor; public static jni::local_ref initHybrid(jni::alias_ref, jni::alias_ref jsCallInvokerHolder, jni::alias_ref nativeMethodCallInvokerHolder, jni::alias_ref delegate); diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api index 70cdf10b9a66..b26ce9c593e9 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api @@ -1686,19 +1686,6 @@ class facebook::react::JWritableMapBuffer : public facebook::jni::JavaClass& methodDescriptors); - public virtual std::vector getPropertyNames(facebook::jsi::Runtime& runtime) override; -} - -struct facebook::react::JavaInteropTurboModule::MethodDescriptor { - public facebook::react::TurboModuleMethodValueKind jsiReturnKind; - public int jsArgCount; - public std::string jniSignature; - public std::string methodName; -} - class facebook::react::JavaMessageQueueThread : public facebook::jni::JavaClass { public static constexpr auto kJavaDescriptor; } @@ -2481,12 +2468,6 @@ struct facebook::react::TurboModule::MethodMetadata { public size_t argCount; } -class facebook::react::TurboModuleBinding { - public static void install(facebook::jsi::Runtime& runtime, TurboModuleProviderFunctionType&& moduleProvider, TurboModuleProviderFunctionType&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public static void install(facebook::jsi::Runtime& runtime, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& moduleProvider, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public ~TurboModuleBinding(); -} - class facebook::react::TurboModuleManager : public jni::HybridClass { public static constexpr auto kJavaDescriptor; public static jni::local_ref initHybrid(jni::alias_ref, jni::alias_ref jsCallInvokerHolder, jni::alias_ref nativeMethodCallInvokerHolder, jni::alias_ref delegate); diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api index 70cdf10b9a66..b26ce9c593e9 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api @@ -1686,19 +1686,6 @@ class facebook::react::JWritableMapBuffer : public facebook::jni::JavaClass& methodDescriptors); - public virtual std::vector getPropertyNames(facebook::jsi::Runtime& runtime) override; -} - -struct facebook::react::JavaInteropTurboModule::MethodDescriptor { - public facebook::react::TurboModuleMethodValueKind jsiReturnKind; - public int jsArgCount; - public std::string jniSignature; - public std::string methodName; -} - class facebook::react::JavaMessageQueueThread : public facebook::jni::JavaClass { public static constexpr auto kJavaDescriptor; } @@ -2481,12 +2468,6 @@ struct facebook::react::TurboModule::MethodMetadata { public size_t argCount; } -class facebook::react::TurboModuleBinding { - public static void install(facebook::jsi::Runtime& runtime, TurboModuleProviderFunctionType&& moduleProvider, TurboModuleProviderFunctionType&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public static void install(facebook::jsi::Runtime& runtime, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& moduleProvider, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public ~TurboModuleBinding(); -} - class facebook::react::TurboModuleManager : public jni::HybridClass { public static constexpr auto kJavaDescriptor; public static jni::local_ref initHybrid(jni::alias_ref, jni::alias_ref jsCallInvokerHolder, jni::alias_ref nativeMethodCallInvokerHolder, jni::alias_ref delegate); diff --git a/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api index 0ff047deee49..2bbed06ae69b 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api @@ -4379,22 +4379,6 @@ class facebook::react::NativeWebSocketModuleSpecJSI : public facebook::react::Ob public NativeWebSocketModuleSpecJSI(const facebook::react::ObjCTurboModule::InitParams& params); } -class facebook::react::ObjCInteropTurboModule : public facebook::react::ObjCTurboModule { - protected virtual NSString* getArgumentTypeName(facebook::jsi::Runtime& runtime, NSString* methodName, int argIndex) override; - protected virtual facebook::jsi::Value convertReturnIdToJSIValue(facebook::jsi::Runtime& runtime, const char* methodName, facebook::react::TurboModuleMethodValueKind returnType, id result) override; - protected virtual facebook::jsi::Value create(facebook::jsi::Runtime& runtime, const facebook::jsi::PropNameID& propName) override; - protected virtual void setInvocationArg(facebook::jsi::Runtime& runtime, const char* methodName, const std::string& objCArgType, const facebook::jsi::Value& arg, size_t i, NSInvocation* inv, NSMutableArray* retainedObjectsForInvocation, bool mustCopyBytes) override; - public ObjCInteropTurboModule(const facebook::react::ObjCTurboModule::InitParams& params); - public virtual std::vector getPropertyNames(facebook::jsi::Runtime& runtime) override; -} - -struct facebook::react::ObjCInteropTurboModule::MethodDescriptor { - public SEL selector; - public facebook::react::TurboModuleMethodValueKind jsReturnKind; - public size_t jsArgCount; - public std::string methodName; -} - class facebook::react::ObjCTurboModule : public facebook::react::TurboModule { protected virtual NSString* getArgumentTypeName(facebook::jsi::Runtime& runtime, NSString* methodName, int argIndex); protected virtual facebook::jsi::Value convertReturnIdToJSIValue(facebook::jsi::Runtime& runtime, const char* methodName, facebook::react::TurboModuleMethodValueKind returnType, id result); @@ -4738,12 +4722,6 @@ struct facebook::react::TurboModule::MethodMetadata { public size_t argCount; } -class facebook::react::TurboModuleBinding { - public static void install(facebook::jsi::Runtime& runtime, TurboModuleProviderFunctionType&& moduleProvider, TurboModuleProviderFunctionType&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public static void install(facebook::jsi::Runtime& runtime, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& moduleProvider, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public ~TurboModuleBinding(); -} - class facebook::react::TurboModuleWithJSIBindings { public static void installJSIBindings(const std::shared_ptr& cxxModule, facebook::jsi::Runtime& runtime); public virtual ~TurboModuleWithJSIBindings() = default; diff --git a/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api index 11e51045eacc..b3819d8f45b6 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api @@ -4370,22 +4370,6 @@ class facebook::react::NativeWebSocketModuleSpecJSI : public facebook::react::Ob public NativeWebSocketModuleSpecJSI(const facebook::react::ObjCTurboModule::InitParams& params); } -class facebook::react::ObjCInteropTurboModule : public facebook::react::ObjCTurboModule { - protected virtual NSString* getArgumentTypeName(facebook::jsi::Runtime& runtime, NSString* methodName, int argIndex) override; - protected virtual facebook::jsi::Value convertReturnIdToJSIValue(facebook::jsi::Runtime& runtime, const char* methodName, facebook::react::TurboModuleMethodValueKind returnType, id result) override; - protected virtual facebook::jsi::Value create(facebook::jsi::Runtime& runtime, const facebook::jsi::PropNameID& propName) override; - protected virtual void setInvocationArg(facebook::jsi::Runtime& runtime, const char* methodName, const std::string& objCArgType, const facebook::jsi::Value& arg, size_t i, NSInvocation* inv, NSMutableArray* retainedObjectsForInvocation, bool mustCopyBytes) override; - public ObjCInteropTurboModule(const facebook::react::ObjCTurboModule::InitParams& params); - public virtual std::vector getPropertyNames(facebook::jsi::Runtime& runtime) override; -} - -struct facebook::react::ObjCInteropTurboModule::MethodDescriptor { - public SEL selector; - public facebook::react::TurboModuleMethodValueKind jsReturnKind; - public size_t jsArgCount; - public std::string methodName; -} - class facebook::react::ObjCTurboModule : public facebook::react::TurboModule { protected virtual NSString* getArgumentTypeName(facebook::jsi::Runtime& runtime, NSString* methodName, int argIndex); protected virtual facebook::jsi::Value convertReturnIdToJSIValue(facebook::jsi::Runtime& runtime, const char* methodName, facebook::react::TurboModuleMethodValueKind returnType, id result); @@ -4723,12 +4707,6 @@ struct facebook::react::TurboModule::MethodMetadata { public size_t argCount; } -class facebook::react::TurboModuleBinding { - public static void install(facebook::jsi::Runtime& runtime, TurboModuleProviderFunctionType&& moduleProvider, TurboModuleProviderFunctionType&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public static void install(facebook::jsi::Runtime& runtime, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& moduleProvider, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public ~TurboModuleBinding(); -} - class facebook::react::TurboModuleWithJSIBindings { public static void installJSIBindings(const std::shared_ptr& cxxModule, facebook::jsi::Runtime& runtime); public virtual ~TurboModuleWithJSIBindings() = default; diff --git a/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api index 2880a844e09f..6b8b113c97f4 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api @@ -4378,22 +4378,6 @@ class facebook::react::NativeWebSocketModuleSpecJSI : public facebook::react::Ob public NativeWebSocketModuleSpecJSI(const facebook::react::ObjCTurboModule::InitParams& params); } -class facebook::react::ObjCInteropTurboModule : public facebook::react::ObjCTurboModule { - protected virtual NSString* getArgumentTypeName(facebook::jsi::Runtime& runtime, NSString* methodName, int argIndex) override; - protected virtual facebook::jsi::Value convertReturnIdToJSIValue(facebook::jsi::Runtime& runtime, const char* methodName, facebook::react::TurboModuleMethodValueKind returnType, id result) override; - protected virtual facebook::jsi::Value create(facebook::jsi::Runtime& runtime, const facebook::jsi::PropNameID& propName) override; - protected virtual void setInvocationArg(facebook::jsi::Runtime& runtime, const char* methodName, const std::string& objCArgType, const facebook::jsi::Value& arg, size_t i, NSInvocation* inv, NSMutableArray* retainedObjectsForInvocation, bool mustCopyBytes) override; - public ObjCInteropTurboModule(const facebook::react::ObjCTurboModule::InitParams& params); - public virtual std::vector getPropertyNames(facebook::jsi::Runtime& runtime) override; -} - -struct facebook::react::ObjCInteropTurboModule::MethodDescriptor { - public SEL selector; - public facebook::react::TurboModuleMethodValueKind jsReturnKind; - public size_t jsArgCount; - public std::string methodName; -} - class facebook::react::ObjCTurboModule : public facebook::react::TurboModule { protected virtual NSString* getArgumentTypeName(facebook::jsi::Runtime& runtime, NSString* methodName, int argIndex); protected virtual facebook::jsi::Value convertReturnIdToJSIValue(facebook::jsi::Runtime& runtime, const char* methodName, facebook::react::TurboModuleMethodValueKind returnType, id result); @@ -4731,12 +4715,6 @@ struct facebook::react::TurboModule::MethodMetadata { public size_t argCount; } -class facebook::react::TurboModuleBinding { - public static void install(facebook::jsi::Runtime& runtime, TurboModuleProviderFunctionType&& moduleProvider, TurboModuleProviderFunctionType&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public static void install(facebook::jsi::Runtime& runtime, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& moduleProvider, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public ~TurboModuleBinding(); -} - class facebook::react::TurboModuleWithJSIBindings { public static void installJSIBindings(const std::shared_ptr& cxxModule, facebook::jsi::Runtime& runtime); public virtual ~TurboModuleWithJSIBindings() = default; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api index b86dece29a74..f9fb1449c29e 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api @@ -1206,12 +1206,6 @@ struct facebook::react::TurboModule::MethodMetadata { public size_t argCount; } -class facebook::react::TurboModuleBinding { - public static void install(facebook::jsi::Runtime& runtime, TurboModuleProviderFunctionType&& moduleProvider, TurboModuleProviderFunctionType&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public static void install(facebook::jsi::Runtime& runtime, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& moduleProvider, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public ~TurboModuleBinding(); -} - class facebook::react::TurboModuleWithJSIBindings { public static void installJSIBindings(const std::shared_ptr& cxxModule, facebook::jsi::Runtime& runtime); public virtual ~TurboModuleWithJSIBindings() = default; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api index cb3f8e416ed2..31d4890a27fc 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api @@ -1199,12 +1199,6 @@ struct facebook::react::TurboModule::MethodMetadata { public size_t argCount; } -class facebook::react::TurboModuleBinding { - public static void install(facebook::jsi::Runtime& runtime, TurboModuleProviderFunctionType&& moduleProvider, TurboModuleProviderFunctionType&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public static void install(facebook::jsi::Runtime& runtime, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& moduleProvider, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public ~TurboModuleBinding(); -} - class facebook::react::TurboModuleWithJSIBindings { public static void installJSIBindings(const std::shared_ptr& cxxModule, facebook::jsi::Runtime& runtime); public virtual ~TurboModuleWithJSIBindings() = default; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api index cb3f8e416ed2..31d4890a27fc 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api @@ -1199,12 +1199,6 @@ struct facebook::react::TurboModule::MethodMetadata { public size_t argCount; } -class facebook::react::TurboModuleBinding { - public static void install(facebook::jsi::Runtime& runtime, TurboModuleProviderFunctionType&& moduleProvider, TurboModuleProviderFunctionType&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public static void install(facebook::jsi::Runtime& runtime, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& moduleProvider, facebook::react::TurboModuleProviderFunctionTypeWithRuntime&& legacyModuleProvider = nullptr, std::shared_ptr longLivedObjectCollection = nullptr); - public ~TurboModuleBinding(); -} - class facebook::react::TurboModuleWithJSIBindings { public static void installJSIBindings(const std::shared_ptr& cxxModule, facebook::jsi::Runtime& runtime); public virtual ~TurboModuleWithJSIBindings() = default; From b9cb4129a15684881363c87eb740c16f235af714 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 8 Oct 2026 07:34:37 -0700 Subject: [PATCH 09/10] Classify cxxreact/JSBundleType.h as for-frameworks Summary: `JSBundleType.h` exposes bundle-format detection internals (`BundleHeader`, `ScriptTag`, `parseTypeFromHeader`, `isHermesBytecodeBundle`). Within React Native it is only used by the bundle loaders, but out-of-tree platforms read `BundleHeader` directly, so it is classified as "for frameworks" rather than private. The C++ API snapshots are regenerated: these symbols are removed from the Debug, Release and Newarch snapshots and stay in the Frameworks snapshots. Changelog: [Internal] Differential Revision: D124104985 --- .../ReactCommon/cxxreact/JSBundleType.h | 2 +- .../ReactCommon/cxxreact/React/JSBigString.h | 1 - .../api-snapshots/ReactAndroidDebugCxx.api | 20 ------------------- .../api-snapshots/ReactAndroidNewarchCxx.api | 20 ------------------- .../api-snapshots/ReactAndroidReleaseCxx.api | 20 ------------------- .../api-snapshots/ReactAppleDebugCxx.api | 20 ------------------- .../api-snapshots/ReactAppleNewarchCxx.api | 20 ------------------- .../api-snapshots/ReactAppleReleaseCxx.api | 20 ------------------- .../api-snapshots/ReactCommonDebugCxx.api | 20 ------------------- .../api-snapshots/ReactCommonNewarchCxx.api | 20 ------------------- .../api-snapshots/ReactCommonReleaseCxx.api | 20 ------------------- 11 files changed, 1 insertion(+), 182 deletions(-) diff --git a/packages/react-native/ReactCommon/cxxreact/JSBundleType.h b/packages/react-native/ReactCommon/cxxreact/JSBundleType.h index e31f20a5f9c0..f002744d1dc7 100644 --- a/packages/react-native/ReactCommon/cxxreact/JSBundleType.h +++ b/packages/react-native/ReactCommon/cxxreact/JSBundleType.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include #include diff --git a/packages/react-native/ReactCommon/cxxreact/React/JSBigString.h b/packages/react-native/ReactCommon/cxxreact/React/JSBigString.h index 0b068301c5fa..14e701bc417c 100644 --- a/packages/react-native/ReactCommon/cxxreact/React/JSBigString.h +++ b/packages/react-native/ReactCommon/cxxreact/React/JSBigString.h @@ -31,7 +31,6 @@ #define RN_UMBRELLA_CONTEXT 1 #include -#include #undef RN_UMBRELLA_CONTEXT #pragma pop_macro("RN_UMBRELLA_CONTEXT") diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api index 066c3ffbf245..277b183e8cc7 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api @@ -491,9 +491,7 @@ YGDirection facebook::react::yogaDirectionFromLayoutDirection(facebook::react::L bool facebook::react::areBorderRadiiCircular(const facebook::react::BorderRadii& borderRadii); bool facebook::react::hostPlatformColorIsColorMeaningful(facebook::react::Color color) noexcept; bool facebook::react::isColorMeaningful(const facebook::react::SharedColor& color) noexcept; -bool facebook::react::isHermesBytecodeBundle(const facebook::react::BundleHeader& header); bool facebook::react::isZero(facebook::react::Float n); -const char* facebook::react::stringForScriptTag(const facebook::react::ScriptTag& tag); constexpr auto facebook::react::to_underlying(auto e) noexcept; constexpr char facebook::react::toLower(char c); constexpr uint32_t facebook::react::fnv1aLowercase(std::string_view string); @@ -510,7 +508,6 @@ facebook::react::Float facebook::react::floatFromYogaOptionalFloat(facebook::yog facebook::react::LayoutMetrics facebook::react::layoutMetricsFromYogaNode(facebook::yoga::Node& yogaNode); facebook::react::Rect facebook::react::insetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& insets) noexcept; facebook::react::Rect facebook::react::outsetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& outsets) noexcept; -facebook::react::ScriptTag facebook::react::parseTypeFromHeader(const facebook::react::BundleHeader& header); facebook::react::SharedColor facebook::react::blackColor(); facebook::react::SharedColor facebook::react::clearColor(); facebook::react::SharedColor facebook::react::colorFromComponents(facebook::react::ColorComponents components); @@ -3013,11 +3010,6 @@ enum facebook::react::SchedulerPriority : int { UserBlockingPriority, } -enum facebook::react::ScriptTag { - RAMBundle, - String, -} - enum facebook::react::TransformOperationType : uint8_t { Arbitrary, Identity, @@ -3179,13 +3171,6 @@ struct facebook::react::Bridging { public static void fromJs(facebook::jsi::Runtime&, const facebook::jsi::Value&); } -struct facebook::react::BundleHeader { - public BundleHeader(); - public facebook::react::Magic32 magic32; - public uint32_t version; - public uint64_t magic64; -} - struct facebook::react::Color { public bool isDefined; public constexpr Color() = default; @@ -3414,11 +3399,6 @@ struct facebook::react::LinearGradient { public std::vector colorStops; } -struct facebook::react::Magic32 { - public uint32_t reserved_; - public uint32_t value; -} - struct facebook::react::ModalHostViewSupportedOrientationsMaskWrapped { public facebook::react::ModalHostViewSupportedOrientationsMask value; } diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api index b26ce9c593e9..8ba1156fc7c0 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api @@ -491,9 +491,7 @@ YGDirection facebook::react::yogaDirectionFromLayoutDirection(facebook::react::L bool facebook::react::areBorderRadiiCircular(const facebook::react::BorderRadii& borderRadii); bool facebook::react::hostPlatformColorIsColorMeaningful(facebook::react::Color color) noexcept; bool facebook::react::isColorMeaningful(const facebook::react::SharedColor& color) noexcept; -bool facebook::react::isHermesBytecodeBundle(const facebook::react::BundleHeader& header); bool facebook::react::isZero(facebook::react::Float n); -const char* facebook::react::stringForScriptTag(const facebook::react::ScriptTag& tag); constexpr auto facebook::react::to_underlying(auto e) noexcept; constexpr char facebook::react::toLower(char c); constexpr uint32_t facebook::react::fnv1aLowercase(std::string_view string); @@ -510,7 +508,6 @@ facebook::react::Float facebook::react::floatFromYogaOptionalFloat(facebook::yog facebook::react::LayoutMetrics facebook::react::layoutMetricsFromYogaNode(facebook::yoga::Node& yogaNode); facebook::react::Rect facebook::react::insetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& insets) noexcept; facebook::react::Rect facebook::react::outsetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& outsets) noexcept; -facebook::react::ScriptTag facebook::react::parseTypeFromHeader(const facebook::react::BundleHeader& header); facebook::react::SharedColor facebook::react::blackColor(); facebook::react::SharedColor facebook::react::clearColor(); facebook::react::SharedColor facebook::react::colorFromComponents(facebook::react::ColorComponents components); @@ -3006,11 +3003,6 @@ enum facebook::react::SchedulerPriority : int { UserBlockingPriority, } -enum facebook::react::ScriptTag { - RAMBundle, - String, -} - enum facebook::react::TransformOperationType : uint8_t { Arbitrary, Identity, @@ -3172,13 +3164,6 @@ struct facebook::react::Bridging { public static void fromJs(facebook::jsi::Runtime&, const facebook::jsi::Value&); } -struct facebook::react::BundleHeader { - public BundleHeader(); - public facebook::react::Magic32 magic32; - public uint32_t version; - public uint64_t magic64; -} - struct facebook::react::Color { public bool isDefined; public constexpr Color() = default; @@ -3407,11 +3392,6 @@ struct facebook::react::LinearGradient { public std::vector colorStops; } -struct facebook::react::Magic32 { - public uint32_t reserved_; - public uint32_t value; -} - struct facebook::react::ModalHostViewSupportedOrientationsMaskWrapped { public facebook::react::ModalHostViewSupportedOrientationsMask value; } diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api index b26ce9c593e9..8ba1156fc7c0 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api @@ -491,9 +491,7 @@ YGDirection facebook::react::yogaDirectionFromLayoutDirection(facebook::react::L bool facebook::react::areBorderRadiiCircular(const facebook::react::BorderRadii& borderRadii); bool facebook::react::hostPlatformColorIsColorMeaningful(facebook::react::Color color) noexcept; bool facebook::react::isColorMeaningful(const facebook::react::SharedColor& color) noexcept; -bool facebook::react::isHermesBytecodeBundle(const facebook::react::BundleHeader& header); bool facebook::react::isZero(facebook::react::Float n); -const char* facebook::react::stringForScriptTag(const facebook::react::ScriptTag& tag); constexpr auto facebook::react::to_underlying(auto e) noexcept; constexpr char facebook::react::toLower(char c); constexpr uint32_t facebook::react::fnv1aLowercase(std::string_view string); @@ -510,7 +508,6 @@ facebook::react::Float facebook::react::floatFromYogaOptionalFloat(facebook::yog facebook::react::LayoutMetrics facebook::react::layoutMetricsFromYogaNode(facebook::yoga::Node& yogaNode); facebook::react::Rect facebook::react::insetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& insets) noexcept; facebook::react::Rect facebook::react::outsetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& outsets) noexcept; -facebook::react::ScriptTag facebook::react::parseTypeFromHeader(const facebook::react::BundleHeader& header); facebook::react::SharedColor facebook::react::blackColor(); facebook::react::SharedColor facebook::react::clearColor(); facebook::react::SharedColor facebook::react::colorFromComponents(facebook::react::ColorComponents components); @@ -3006,11 +3003,6 @@ enum facebook::react::SchedulerPriority : int { UserBlockingPriority, } -enum facebook::react::ScriptTag { - RAMBundle, - String, -} - enum facebook::react::TransformOperationType : uint8_t { Arbitrary, Identity, @@ -3172,13 +3164,6 @@ struct facebook::react::Bridging { public static void fromJs(facebook::jsi::Runtime&, const facebook::jsi::Value&); } -struct facebook::react::BundleHeader { - public BundleHeader(); - public facebook::react::Magic32 magic32; - public uint32_t version; - public uint64_t magic64; -} - struct facebook::react::Color { public bool isDefined; public constexpr Color() = default; @@ -3407,11 +3392,6 @@ struct facebook::react::LinearGradient { public std::vector colorStops; } -struct facebook::react::Magic32 { - public uint32_t reserved_; - public uint32_t value; -} - struct facebook::react::ModalHostViewSupportedOrientationsMaskWrapped { public facebook::react::ModalHostViewSupportedOrientationsMask value; } diff --git a/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api index 2bbed06ae69b..e595c5793e7c 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api @@ -3283,9 +3283,7 @@ YGDirection facebook::react::yogaDirectionFromLayoutDirection(facebook::react::L bool facebook::react::areBorderRadiiCircular(const facebook::react::BorderRadii& borderRadii); bool facebook::react::hostPlatformColorIsColorMeaningful(facebook::react::Color color) noexcept; bool facebook::react::isColorMeaningful(const facebook::react::SharedColor& color) noexcept; -bool facebook::react::isHermesBytecodeBundle(const facebook::react::BundleHeader& header); bool facebook::react::isZero(facebook::react::Float n); -const char* facebook::react::stringForScriptTag(const facebook::react::ScriptTag& tag); constexpr auto facebook::react::to_underlying(auto e) noexcept; constexpr char facebook::react::toLower(char c); constexpr uint32_t facebook::react::fnv1aLowercase(std::string_view string); @@ -3301,7 +3299,6 @@ facebook::react::Float facebook::react::floatFromYogaOptionalFloat(facebook::yog facebook::react::LayoutMetrics facebook::react::layoutMetricsFromYogaNode(facebook::yoga::Node& yogaNode); facebook::react::Rect facebook::react::insetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& insets) noexcept; facebook::react::Rect facebook::react::outsetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& outsets) noexcept; -facebook::react::ScriptTag facebook::react::parseTypeFromHeader(const facebook::react::BundleHeader& header); facebook::react::SharedColor facebook::react::blackColor(); facebook::react::SharedColor facebook::react::clearColor(); facebook::react::SharedColor facebook::react::colorFromComponents(facebook::react::ColorComponents components); @@ -5208,11 +5205,6 @@ enum facebook::react::SchedulerPriority : int { UserBlockingPriority, } -enum facebook::react::ScriptTag { - RAMBundle, - String, -} - enum facebook::react::TransformOperationType : uint8_t { Arbitrary, Identity, @@ -5371,13 +5363,6 @@ struct facebook::react::Bridging { public static void fromJs(facebook::jsi::Runtime&, const facebook::jsi::Value&); } -struct facebook::react::BundleHeader { - public BundleHeader(); - public facebook::react::Magic32 magic32; - public uint32_t version; - public uint64_t magic64; -} - struct facebook::react::Color { public Color(); public Color(const facebook::react::ColorComponents& components); @@ -5510,11 +5495,6 @@ struct facebook::react::LinearGradient { public std::vector colorStops; } -struct facebook::react::Magic32 { - public uint32_t reserved_; - public uint32_t value; -} - struct facebook::react::ModalHostViewSupportedOrientationsMaskWrapped { public facebook::react::ModalHostViewSupportedOrientationsMask value; } diff --git a/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api index b3819d8f45b6..2028a6db96ae 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api @@ -3275,9 +3275,7 @@ YGDirection facebook::react::yogaDirectionFromLayoutDirection(facebook::react::L bool facebook::react::areBorderRadiiCircular(const facebook::react::BorderRadii& borderRadii); bool facebook::react::hostPlatformColorIsColorMeaningful(facebook::react::Color color) noexcept; bool facebook::react::isColorMeaningful(const facebook::react::SharedColor& color) noexcept; -bool facebook::react::isHermesBytecodeBundle(const facebook::react::BundleHeader& header); bool facebook::react::isZero(facebook::react::Float n); -const char* facebook::react::stringForScriptTag(const facebook::react::ScriptTag& tag); constexpr auto facebook::react::to_underlying(auto e) noexcept; constexpr char facebook::react::toLower(char c); constexpr uint32_t facebook::react::fnv1aLowercase(std::string_view string); @@ -3293,7 +3291,6 @@ facebook::react::Float facebook::react::floatFromYogaOptionalFloat(facebook::yog facebook::react::LayoutMetrics facebook::react::layoutMetricsFromYogaNode(facebook::yoga::Node& yogaNode); facebook::react::Rect facebook::react::insetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& insets) noexcept; facebook::react::Rect facebook::react::outsetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& outsets) noexcept; -facebook::react::ScriptTag facebook::react::parseTypeFromHeader(const facebook::react::BundleHeader& header); facebook::react::SharedColor facebook::react::blackColor(); facebook::react::SharedColor facebook::react::clearColor(); facebook::react::SharedColor facebook::react::colorFromComponents(facebook::react::ColorComponents components); @@ -5193,11 +5190,6 @@ enum facebook::react::SchedulerPriority : int { UserBlockingPriority, } -enum facebook::react::ScriptTag { - RAMBundle, - String, -} - enum facebook::react::TransformOperationType : uint8_t { Arbitrary, Identity, @@ -5356,13 +5348,6 @@ struct facebook::react::Bridging { public static void fromJs(facebook::jsi::Runtime&, const facebook::jsi::Value&); } -struct facebook::react::BundleHeader { - public BundleHeader(); - public facebook::react::Magic32 magic32; - public uint32_t version; - public uint64_t magic64; -} - struct facebook::react::Color { public Color(); public Color(const facebook::react::ColorComponents& components); @@ -5495,11 +5480,6 @@ struct facebook::react::LinearGradient { public std::vector colorStops; } -struct facebook::react::Magic32 { - public uint32_t reserved_; - public uint32_t value; -} - struct facebook::react::ModalHostViewSupportedOrientationsMaskWrapped { public facebook::react::ModalHostViewSupportedOrientationsMask value; } diff --git a/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api index 6b8b113c97f4..b91fcb321137 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api @@ -3283,9 +3283,7 @@ YGDirection facebook::react::yogaDirectionFromLayoutDirection(facebook::react::L bool facebook::react::areBorderRadiiCircular(const facebook::react::BorderRadii& borderRadii); bool facebook::react::hostPlatformColorIsColorMeaningful(facebook::react::Color color) noexcept; bool facebook::react::isColorMeaningful(const facebook::react::SharedColor& color) noexcept; -bool facebook::react::isHermesBytecodeBundle(const facebook::react::BundleHeader& header); bool facebook::react::isZero(facebook::react::Float n); -const char* facebook::react::stringForScriptTag(const facebook::react::ScriptTag& tag); constexpr auto facebook::react::to_underlying(auto e) noexcept; constexpr char facebook::react::toLower(char c); constexpr uint32_t facebook::react::fnv1aLowercase(std::string_view string); @@ -3301,7 +3299,6 @@ facebook::react::Float facebook::react::floatFromYogaOptionalFloat(facebook::yog facebook::react::LayoutMetrics facebook::react::layoutMetricsFromYogaNode(facebook::yoga::Node& yogaNode); facebook::react::Rect facebook::react::insetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& insets) noexcept; facebook::react::Rect facebook::react::outsetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& outsets) noexcept; -facebook::react::ScriptTag facebook::react::parseTypeFromHeader(const facebook::react::BundleHeader& header); facebook::react::SharedColor facebook::react::blackColor(); facebook::react::SharedColor facebook::react::clearColor(); facebook::react::SharedColor facebook::react::colorFromComponents(facebook::react::ColorComponents components); @@ -5201,11 +5198,6 @@ enum facebook::react::SchedulerPriority : int { UserBlockingPriority, } -enum facebook::react::ScriptTag { - RAMBundle, - String, -} - enum facebook::react::TransformOperationType : uint8_t { Arbitrary, Identity, @@ -5364,13 +5356,6 @@ struct facebook::react::Bridging { public static void fromJs(facebook::jsi::Runtime&, const facebook::jsi::Value&); } -struct facebook::react::BundleHeader { - public BundleHeader(); - public facebook::react::Magic32 magic32; - public uint32_t version; - public uint64_t magic64; -} - struct facebook::react::Color { public Color(); public Color(const facebook::react::ColorComponents& components); @@ -5503,11 +5488,6 @@ struct facebook::react::LinearGradient { public std::vector colorStops; } -struct facebook::react::Magic32 { - public uint32_t reserved_; - public uint32_t value; -} - struct facebook::react::ModalHostViewSupportedOrientationsMaskWrapped { public facebook::react::ModalHostViewSupportedOrientationsMask value; } diff --git a/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api index f9fb1449c29e..9ed6b3c64433 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api @@ -158,9 +158,7 @@ Float facebook::react::floatFromYogaOptionalFloat(facebook::yoga::FloatOptional YGDirection facebook::react::yogaDirectionFromLayoutDirection(facebook::react::LayoutDirection direction); bool facebook::react::areBorderRadiiCircular(const facebook::react::BorderRadii& borderRadii); bool facebook::react::isColorMeaningful(const facebook::react::SharedColor& color) noexcept; -bool facebook::react::isHermesBytecodeBundle(const facebook::react::BundleHeader& header); bool facebook::react::isZero(Float n); -const char* facebook::react::stringForScriptTag(const facebook::react::ScriptTag& tag); constexpr auto facebook::react::to_underlying(auto e) noexcept; constexpr char facebook::react::toLower(char c); constexpr uint32_t facebook::react::fnv1aLowercase(std::string_view string); @@ -171,7 +169,6 @@ facebook::react::DisplayType facebook::react::displayTypeFromYGDisplay(YGDisplay facebook::react::LayoutMetrics facebook::react::layoutMetricsFromYogaNode(facebook::yoga::Node& yogaNode); facebook::react::Rect facebook::react::insetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& insets) noexcept; facebook::react::Rect facebook::react::outsetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& outsets) noexcept; -facebook::react::ScriptTag facebook::react::parseTypeFromHeader(const facebook::react::BundleHeader& header); facebook::react::SharedColor facebook::react::blackColor(); facebook::react::SharedColor facebook::react::clearColor(); facebook::react::SharedColor facebook::react::colorFromComponents(facebook::react::ColorComponents components); @@ -1625,11 +1622,6 @@ enum facebook::react::SchedulerPriority : int { UserBlockingPriority, } -enum facebook::react::ScriptTag { - RAMBundle, - String, -} - enum facebook::react::TransformOperationType : uint8_t { Arbitrary, Identity, @@ -1784,13 +1776,6 @@ struct facebook::react::Bridging { public static void fromJs(facebook::jsi::Runtime&, const facebook::jsi::Value&); } -struct facebook::react::BundleHeader { - public BundleHeader(); - public facebook::react::Magic32 magic32; - public uint32_t version; - public uint64_t magic64; -} - struct facebook::react::ColorComponents { public facebook::react::ColorSpace colorSpace; public float alpha; @@ -1893,11 +1878,6 @@ struct facebook::react::LinearGradient { public std::vector colorStops; } -struct facebook::react::Magic32 { - public uint32_t reserved_; - public uint32_t value; -} - struct facebook::react::Point { public Float x; public Float y; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api index 31d4890a27fc..fb4f91d6fcf4 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api @@ -158,9 +158,7 @@ Float facebook::react::floatFromYogaOptionalFloat(facebook::yoga::FloatOptional YGDirection facebook::react::yogaDirectionFromLayoutDirection(facebook::react::LayoutDirection direction); bool facebook::react::areBorderRadiiCircular(const facebook::react::BorderRadii& borderRadii); bool facebook::react::isColorMeaningful(const facebook::react::SharedColor& color) noexcept; -bool facebook::react::isHermesBytecodeBundle(const facebook::react::BundleHeader& header); bool facebook::react::isZero(Float n); -const char* facebook::react::stringForScriptTag(const facebook::react::ScriptTag& tag); constexpr auto facebook::react::to_underlying(auto e) noexcept; constexpr char facebook::react::toLower(char c); constexpr uint32_t facebook::react::fnv1aLowercase(std::string_view string); @@ -171,7 +169,6 @@ facebook::react::DisplayType facebook::react::displayTypeFromYGDisplay(YGDisplay facebook::react::LayoutMetrics facebook::react::layoutMetricsFromYogaNode(facebook::yoga::Node& yogaNode); facebook::react::Rect facebook::react::insetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& insets) noexcept; facebook::react::Rect facebook::react::outsetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& outsets) noexcept; -facebook::react::ScriptTag facebook::react::parseTypeFromHeader(const facebook::react::BundleHeader& header); facebook::react::SharedColor facebook::react::blackColor(); facebook::react::SharedColor facebook::react::clearColor(); facebook::react::SharedColor facebook::react::colorFromComponents(facebook::react::ColorComponents components); @@ -1618,11 +1615,6 @@ enum facebook::react::SchedulerPriority : int { UserBlockingPriority, } -enum facebook::react::ScriptTag { - RAMBundle, - String, -} - enum facebook::react::TransformOperationType : uint8_t { Arbitrary, Identity, @@ -1777,13 +1769,6 @@ struct facebook::react::Bridging { public static void fromJs(facebook::jsi::Runtime&, const facebook::jsi::Value&); } -struct facebook::react::BundleHeader { - public BundleHeader(); - public facebook::react::Magic32 magic32; - public uint32_t version; - public uint64_t magic64; -} - struct facebook::react::ColorComponents { public facebook::react::ColorSpace colorSpace; public float alpha; @@ -1886,11 +1871,6 @@ struct facebook::react::LinearGradient { public std::vector colorStops; } -struct facebook::react::Magic32 { - public uint32_t reserved_; - public uint32_t value; -} - struct facebook::react::Point { public Float x; public Float y; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api index 31d4890a27fc..fb4f91d6fcf4 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api @@ -158,9 +158,7 @@ Float facebook::react::floatFromYogaOptionalFloat(facebook::yoga::FloatOptional YGDirection facebook::react::yogaDirectionFromLayoutDirection(facebook::react::LayoutDirection direction); bool facebook::react::areBorderRadiiCircular(const facebook::react::BorderRadii& borderRadii); bool facebook::react::isColorMeaningful(const facebook::react::SharedColor& color) noexcept; -bool facebook::react::isHermesBytecodeBundle(const facebook::react::BundleHeader& header); bool facebook::react::isZero(Float n); -const char* facebook::react::stringForScriptTag(const facebook::react::ScriptTag& tag); constexpr auto facebook::react::to_underlying(auto e) noexcept; constexpr char facebook::react::toLower(char c); constexpr uint32_t facebook::react::fnv1aLowercase(std::string_view string); @@ -171,7 +169,6 @@ facebook::react::DisplayType facebook::react::displayTypeFromYGDisplay(YGDisplay facebook::react::LayoutMetrics facebook::react::layoutMetricsFromYogaNode(facebook::yoga::Node& yogaNode); facebook::react::Rect facebook::react::insetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& insets) noexcept; facebook::react::Rect facebook::react::outsetBy(const facebook::react::Rect& rect, const facebook::react::EdgeInsets& outsets) noexcept; -facebook::react::ScriptTag facebook::react::parseTypeFromHeader(const facebook::react::BundleHeader& header); facebook::react::SharedColor facebook::react::blackColor(); facebook::react::SharedColor facebook::react::clearColor(); facebook::react::SharedColor facebook::react::colorFromComponents(facebook::react::ColorComponents components); @@ -1618,11 +1615,6 @@ enum facebook::react::SchedulerPriority : int { UserBlockingPriority, } -enum facebook::react::ScriptTag { - RAMBundle, - String, -} - enum facebook::react::TransformOperationType : uint8_t { Arbitrary, Identity, @@ -1777,13 +1769,6 @@ struct facebook::react::Bridging { public static void fromJs(facebook::jsi::Runtime&, const facebook::jsi::Value&); } -struct facebook::react::BundleHeader { - public BundleHeader(); - public facebook::react::Magic32 magic32; - public uint32_t version; - public uint64_t magic64; -} - struct facebook::react::ColorComponents { public facebook::react::ColorSpace colorSpace; public float alpha; @@ -1886,11 +1871,6 @@ struct facebook::react::LinearGradient { public std::vector colorStops; } -struct facebook::react::Magic32 { - public uint32_t reserved_; - public uint32_t value; -} - struct facebook::react::Point { public Float x; public Float y; From 3d24206966b53d019572f4baa942fafd83a2f1d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 8 Oct 2026 08:04:06 -0700 Subject: [PATCH 10/10] Make ModalHostViewUtils header private Summary: `react/renderer/components/modal/ModalHostViewUtils.h` declares `ModalHostViewScreenSize()`, a per-platform helper that is only used to compute the default screen size of `ModalHostViewState`. Lower it from "for frameworks" to private. It was reachable from the "for frameworks" API only because `ModalHostViewState.h` called it from an inline default constructor. Move that constructor out of line into `ModalHostViewState.cpp`, so `ModalHostViewState.h` no longer includes the utils header. While here, `ModalHostViewState.h` now gets `Float`/`Size` from the `` umbrella instead of including the public `react/renderer/graphics/Float.h` directly (`Size` previously only arrived transitively through the utils header). The C++ API snapshots are regenerated: `ModalHostViewScreenSize()` is removed from the Frameworks snapshots. Changelog: [Internal] Differential Revision: D124105062 --- .../react/renderer/components/modal/ModalHostViewState.cpp | 4 ++++ .../react/renderer/components/modal/ModalHostViewState.h | 5 ++--- .../react/renderer/components/modal/ModalHostViewUtils.h | 2 +- scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api | 1 - scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api | 1 - scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api | 1 - 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.cpp b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.cpp index e27e93774550..9f5bff0bfac8 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.cpp @@ -6,9 +6,13 @@ */ #include "ModalHostViewState.h" +#include "ModalHostViewUtils.h" namespace facebook::react { +ModalHostViewState::ModalHostViewState() + : screenSize(ModalHostViewScreenSize()) {} + #ifdef RN_SERIALIZABLE_STATE folly::dynamic ModalHostViewState::getDynamic() const { return folly::dynamic::object("screenWidth", screenSize.width)( diff --git a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.h b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.h index f85268778d7e..8631094fd8d0 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.h +++ b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.h @@ -9,9 +9,8 @@ #include +#include #include -#include -#include "ModalHostViewUtils.h" #ifdef RN_SERIALIZABLE_STATE #include @@ -26,7 +25,7 @@ class ModalHostViewState final { public: using Shared = std::shared_ptr; - ModalHostViewState() : screenSize(ModalHostViewScreenSize()) {} + ModalHostViewState(); ModalHostViewState(Size screenSize_) : screenSize(screenSize_) {}; #ifdef RN_SERIALIZABLE_STATE diff --git a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.h b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.h index 0174a4154cf6..2f27b4c64d43 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.h +++ b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.h @@ -7,7 +7,7 @@ #pragma once -#include +#include #include diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api index d68c3c84186c..dfc40b73bdc8 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api @@ -741,7 +741,6 @@ facebook::react::SharedColor facebook::react::colorFromComponents(facebook::reac facebook::react::SharedColor facebook::react::colorFromRGBA(uint8_t r, uint8_t g, uint8_t b, uint8_t a); facebook::react::SharedColor facebook::react::parsePlatformColor(const facebook::react::ContextContainer& contextContainer, int32_t surfaceId, const facebook::react::RawValue& value); facebook::react::SharedColor facebook::react::whiteColor(); -facebook::react::Size facebook::react::ModalHostViewScreenSize(void); facebook::react::Size facebook::react::yogaMeassureToSize(int64_t value); facebook::react::SurfaceId facebook::react::getNextRootViewTag() noexcept; facebook::react::TurboModuleMethodValueKind facebook::react::getTurboModuleMethodValueKind(facebook::jsi::Runtime& rt, const facebook::jsi::Value* value); diff --git a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api index 7b39f105f76f..4c645bea1cd5 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -3555,7 +3555,6 @@ facebook::react::SharedColor facebook::react::colorFromComponents(facebook::reac facebook::react::SharedColor facebook::react::colorFromRGBA(uint8_t r, uint8_t g, uint8_t b, uint8_t a); facebook::react::SharedColor facebook::react::parsePlatformColor(const facebook::react::ContextContainer& contextContainer, int32_t surfaceId, const facebook::react::RawValue& value); facebook::react::SharedColor facebook::react::whiteColor(); -facebook::react::Size facebook::react::ModalHostViewScreenSize(void); facebook::react::Size facebook::react::yogaMeassureToSize(int64_t value); facebook::react::SurfaceId facebook::react::getNextRootViewTag() noexcept; facebook::react::TurboModuleMethodValueKind facebook::react::getTurboModuleMethodValueKind(facebook::jsi::Runtime& rt, const facebook::jsi::Value* value); diff --git a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api index f75258f4f184..6c50c996a63b 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -337,7 +337,6 @@ facebook::react::SharedColor facebook::react::clearColor(); facebook::react::SharedColor facebook::react::colorFromComponents(facebook::react::ColorComponents components); facebook::react::SharedColor facebook::react::colorFromRGBA(uint8_t r, uint8_t g, uint8_t b, uint8_t a); facebook::react::SharedColor facebook::react::whiteColor(); -facebook::react::Size facebook::react::ModalHostViewScreenSize(void); facebook::react::Size facebook::react::yogaMeassureToSize(int64_t value); facebook::react::SurfaceId facebook::react::getNextRootViewTag() noexcept; facebook::react::TurboModuleMethodValueKind facebook::react::getTurboModuleMethodValueKind(facebook::jsi::Runtime& rt, const facebook::jsi::Value* value);