From a68d4344fbe659778fbf16f2b6e94d24386130ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Fri, 9 Oct 2026 01:40:27 -0700 Subject: [PATCH 1/8] 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 c43062b40357..19dc16b3f84d 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 078488235774..a24289a8c7a7 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -3556,7 +3556,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); @@ -3694,7 +3693,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); @@ -3726,7 +3724,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); @@ -6174,11 +6171,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 cb763baece52..566b26d18cbe 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 ffecbd840ad0fdd2ab51f8a06f5ff638d5e7b3f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Fri, 9 Oct 2026 01:40:27 -0700 Subject: [PATCH 2/8] 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 19dc16b3f84d..33722dd3cce4 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api @@ -8926,12 +8926,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); @@ -8945,62 +8940,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; @@ -9015,11 +8954,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; @@ -9204,22 +9138,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; @@ -12080,10 +11998,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 a24289a8c7a7..67df2f949594 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -10843,12 +10843,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); @@ -10862,62 +10857,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; @@ -10932,11 +10871,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; @@ -11121,22 +11055,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; @@ -14236,10 +14154,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 566b26d18cbe..5dad51b9c5c0 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -6161,12 +6161,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); @@ -6180,62 +6175,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; @@ -6250,11 +6189,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; @@ -6439,22 +6373,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; @@ -9148,10 +9066,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 e368e14b73692270b7e4a455b220af27bba11159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Fri, 9 Oct 2026 01:40:27 -0700 Subject: [PATCH 3/8] 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 33722dd3cce4..2b0f25d4933b 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api @@ -9571,7 +9571,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; @@ -9580,7 +9579,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); @@ -9589,7 +9587,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); @@ -9620,56 +9617,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, @@ -9694,25 +9651,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()); @@ -9738,10 +9681,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 67df2f949594..ba7981079313 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -11416,7 +11416,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; @@ -11425,7 +11424,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); @@ -11434,7 +11432,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); @@ -11465,56 +11462,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, @@ -11539,25 +11496,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()); @@ -11583,10 +11526,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 5dad51b9c5c0..a120e826d617 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -6734,7 +6734,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; @@ -6743,7 +6742,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); @@ -6752,7 +6750,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); @@ -6783,56 +6780,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, @@ -6857,25 +6814,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()); @@ -6901,10 +6844,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 e8797b8194066f5d7fcdc7c5cdb50838df4065c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Fri, 9 Oct 2026 01:40:27 -0700 Subject: [PATCH 4/8] 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 2b0f25d4933b..3c6fb471d7bf 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api @@ -3790,10 +3790,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 ba7981079313..5bf65302bd0d 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -6008,10 +6008,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 a120e826d617..4ed516be69b2 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -2385,10 +2385,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 0b1c2d571b9633aab001b9e228e686cea8d4faca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Fri, 9 Oct 2026 01:40:27 -0700 Subject: [PATCH 5/8] 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 3c6fb471d7bf..397186fa31d4 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api @@ -8914,27 +8914,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; @@ -8962,19 +8947,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; @@ -9041,16 +9013,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; @@ -9062,11 +9024,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; } @@ -9140,13 +9097,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; @@ -9169,12 +9119,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(); @@ -9273,20 +9217,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); @@ -9367,12 +9302,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, @@ -9567,7 +9496,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; @@ -9584,12 +9538,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(); @@ -9776,17 +9724,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; @@ -9798,32 +9735,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 5bf65302bd0d..ea0f65f0f48b 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -10831,27 +10831,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; @@ -10879,19 +10864,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; @@ -10958,16 +10930,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; @@ -10979,11 +10941,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; } @@ -11057,13 +11014,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; @@ -11086,12 +11036,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; @@ -11131,20 +11075,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); @@ -11225,12 +11160,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, @@ -11412,7 +11341,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; @@ -11429,12 +11383,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(); @@ -11621,17 +11569,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; @@ -11643,32 +11580,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 4ed516be69b2..c570e7fd4420 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -6149,27 +6149,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; @@ -6197,19 +6182,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; @@ -6276,16 +6248,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; @@ -6297,11 +6259,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; } @@ -6375,13 +6332,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; @@ -6404,12 +6354,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; @@ -6449,20 +6393,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); @@ -6543,12 +6478,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, @@ -6730,7 +6659,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; @@ -6747,12 +6701,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(); @@ -6939,17 +6887,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; @@ -6961,32 +6898,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 209f1b595bcbeae12d2906ca35667591e5bb7019 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Fri, 9 Oct 2026 01:40:27 -0700 Subject: [PATCH 6/8] 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 b377a2702784baa03e141d772c395534a0229ed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Fri, 9 Oct 2026 01:40:27 -0700 Subject: [PATCH 7/8] 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 bf2f13fb4f71..ba45d03dbdfd 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)>; @@ -1730,9 +1728,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); @@ -3400,12 +3395,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 cd0d11b73b71..7848dce97de1 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)>; @@ -1729,9 +1727,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); @@ -3393,12 +3388,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 cd0d11b73b71..7848dce97de1 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)>; @@ -1729,9 +1727,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); @@ -3393,12 +3388,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 fcf43bca99d2..e843dc4f8011 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api @@ -3163,7 +3163,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; @@ -3210,7 +3209,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)>; @@ -4026,9 +4024,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); @@ -5486,12 +5481,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 718ec96f5dfb..8e38ec012db0 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api @@ -3155,7 +3155,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; @@ -3202,7 +3201,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)>; @@ -4017,9 +4015,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); @@ -5471,12 +5466,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 78c6a23aded8..2d7f144a59b6 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api @@ -3163,7 +3163,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; @@ -3210,7 +3209,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)>; @@ -4025,9 +4023,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); @@ -5479,12 +5474,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 92996ee6ce58..54180dc8e04f 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; @@ -839,9 +837,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); @@ -1867,12 +1862,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 d607cda4103f..650e76fee89c 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; @@ -838,9 +836,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); @@ -1860,12 +1855,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 d607cda4103f..650e76fee89c 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; @@ -838,9 +836,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); @@ -1860,12 +1855,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 9cabe7294c1be7b1dd2035ffc0fc9d67010a61ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Fri, 9 Oct 2026 02:37:30 -0700 Subject: [PATCH 8/8] Make TurboModule host integration headers for-frameworks (#58955) Summary: Pull Request resolved: https://github.com/react/react-native/pull/58955 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] Reviewed By: cipolleschi 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 ba45d03dbdfd..d0520d035a18 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api @@ -1689,19 +1689,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; } @@ -2490,12 +2477,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 7848dce97de1..76e92242dab4 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api @@ -1688,19 +1688,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; } @@ -2483,12 +2470,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 7848dce97de1..76e92242dab4 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api @@ -1688,19 +1688,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; } @@ -2483,12 +2470,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 e843dc4f8011..2d652c43a9ad 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api @@ -4367,22 +4367,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); @@ -4726,12 +4710,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 8e38ec012db0..de34aa6e65f1 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api @@ -4358,22 +4358,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); @@ -4711,12 +4695,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 2d7f144a59b6..af10204ad775 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api @@ -4366,22 +4366,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); @@ -4719,12 +4703,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 54180dc8e04f..e7da61a24bf9 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api @@ -1208,12 +1208,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 650e76fee89c..559de7a2f4a4 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api @@ -1201,12 +1201,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 650e76fee89c..559de7a2f4a4 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api @@ -1201,12 +1201,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;