From d94882e46d9e171991e36bd21072d9e9edcb4b80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 8 Oct 2026 06:22:44 -0700 Subject: [PATCH 1/4] 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 f203598b227..f5b61363a5b 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 538c5f03bfb..5c08a1bf678 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 a204398861c..a828e8bef10 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 51e668b46f2..59150dc471e 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 07a514f8721..4ffa8449463 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 cb120cc274d..dfcc4580f61 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -3570,7 +3570,6 @@ float facebook::react::yogaFloatFromFloat(facebook::react::Float value); folly::dynamic facebook::react::convertIdToFollyDynamic(id json); folly::dynamic facebook::react::diffDynamicProps(const folly::dynamic& oldProps, const folly::dynamic& newProps); folly::dynamic facebook::react::mergeDynamicProps(const folly::dynamic& source, const folly::dynamic& patch, facebook::react::NullValueStrategy nullValueStrategy); -folly::dynamic facebook::react::toDynamic(const facebook::react::SubmitBehavior& value); id facebook::react::convertFollyDynamicToId(const folly::dynamic& dyn); int facebook::react::toInt(const facebook::react::DisplayType& displayType); int facebook::react::toInt(const facebook::react::LayoutDirection& layoutDirection); @@ -3708,7 +3707,6 @@ void facebook::react::fromRawValue(const facebook::react::PropsParserContext& co void facebook::react::fromRawValue(const facebook::react::PropsParserContext& context, const facebook::react::RawValue& value, facebook::react::ScrollViewKeyboardDismissMode& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext& context, const facebook::react::RawValue& value, facebook::react::ScrollViewMaintainVisibleContentPosition& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext& context, const facebook::react::RawValue& value, facebook::react::ScrollViewSnapToAlignment& result); -void facebook::react::fromRawValue(const facebook::react::PropsParserContext& context, const facebook::react::RawValue& value, facebook::react::Selection& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext& context, const facebook::react::RawValue& value, facebook::react::SharedColor& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext& context, const facebook::react::RawValue& value, facebook::react::TextAlignment& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext& context, const facebook::react::RawValue& value, facebook::react::TextBreakStrategy& result); @@ -3740,7 +3738,6 @@ void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, c void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::LineBreakMode& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::Point& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::Size& result); -void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::SubmitBehavior& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::TextAlignmentVertical& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::TextWidthMode& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::ValueUnit& result); @@ -6186,11 +6183,6 @@ class facebook::react::TextAttributes : public facebook::react::DebugStringConve public void apply(facebook::react::TextAttributes textAttributes); } -class facebook::react::TextInputComponentDescriptor : public facebook::react::ConcreteComponentDescriptor { - protected virtual void adopt(facebook::react::ShadowNode& shadowNode) const override; - public TextInputComponentDescriptor(const facebook::react::ComponentDescriptorParameters& parameters); -} - class facebook::react::TextInputEventEmitter : public facebook::react::BaseViewEventEmitter { public void onBlur(const facebook::react::TextInputEventEmitter::Metrics& textInputMetrics) const; public void onChange(const facebook::react::TextInputEventEmitter::Metrics& textInputMetrics) const; diff --git a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api index cd69da28289..4e3c9f68c86 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -347,7 +347,6 @@ facebook::yoga::FloatOptional facebook::react::yogaOptionalFloatFromFloat(Float float facebook::react::yogaFloatFromFloat(Float value); folly::dynamic facebook::react::diffDynamicProps(const folly::dynamic& oldProps, const folly::dynamic& newProps); folly::dynamic facebook::react::mergeDynamicProps(const folly::dynamic& source, const folly::dynamic& patch, facebook::react::NullValueStrategy nullValueStrategy); -folly::dynamic facebook::react::toDynamic(const facebook::react::SubmitBehavior& value); int facebook::react::toInt(const facebook::react::DisplayType& displayType); int facebook::react::toInt(const facebook::react::LayoutDirection& layoutDirection); size_t facebook::react::attributedStringFragmentHashDisplayWise(const facebook::react::AttributedString::Fragment& fragment); @@ -503,7 +502,6 @@ void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, c void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::LineBreakMode& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::Point& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::Size& result); -void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::SubmitBehavior& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::TextAlignmentVertical& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::TextWidthMode& result); void facebook::react::fromRawValue(const facebook::react::PropsParserContext&, const facebook::react::RawValue& value, facebook::react::ValueUnit& result); From 4bc3d9b7de7df245be184caa4e6bebdd860aba4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 8 Oct 2026 06:25:51 -0700 Subject: [PATCH 2/4] 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 85ed29d227f..55773a8e0b4 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 9a0d2f4136d..cc660476b47 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 b5c8b5479a8..72c0f14c50a 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 2b0869364b1..42f2296f469 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 63134a20222..70a051aac91 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 ba5ed9ed4f5..f8b9d0ecddd 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 236debd0b81..39bcdd79de6 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 23e2de82821..eaec5d0cff0 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 b59a8430b91..8160a7c2424 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 016e399a8b0..7fb64e3bea6 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 35a8b904d59..45b43f412fe 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 ff8819d5425..09a2471d745 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 44735ab1a5c..f83e09c8b6a 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 6c9f871d04b..870c367a8c0 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 4ffa8449463..039906a9ba7 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api @@ -8924,12 +8924,7 @@ template facebook::react::jsinspector_modern::ScopedExecutor facebook::react::jsinspector_modern::makeScopedExecutor(std::shared_ptr self, facebook::react::jsinspector_modern::VoidExecutor executor); template facebook::react::jsinspector_modern::VoidExecutor facebook::react::jsinspector_modern::makeVoidExecutor(facebook::react::jsinspector_modern::ScopedExecutor executor); -void facebook::react::jsinspector_modern::emitGlobalStateObserverChange(facebook::jsi::Runtime& runtime, const char* globalName, const char* callbackName, bool value); void facebook::react::jsinspector_modern::emitNotificationsForTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const facebook::react::jsinspector_modern::FrontendChannel& channel, bool isBackgroundTrace); -void facebook::react::jsinspector_modern::emitTracingStateObserverChange(facebook::jsi::Runtime& runtime, bool isTracing); -void facebook::react::jsinspector_modern::installGlobalStateObserver(facebook::jsi::Runtime& runtime, const char* globalName, const char* statusProperty, const char* callbackName); -void facebook::react::jsinspector_modern::installTracingStateObserver(facebook::jsi::Runtime& runtime); -void facebook::react::jsinspector_modern::truncateToValidUTF8(std::vector& buffer); class facebook::react::jsinspector_modern::CallbackLocalConnection : public facebook::react::jsinspector_modern::ILocalConnection { public CallbackLocalConnection(std::function handler); @@ -8943,62 +8938,6 @@ class facebook::react::jsinspector_modern::CallbackRemoteConnection : public fac public virtual void onMessage(std::string message) override; } -class facebook::react::jsinspector_modern::ConsoleTask { - public ConsoleTask(const facebook::react::jsinspector_modern::ConsoleTask&) = default; - public ConsoleTask(facebook::react::jsinspector_modern::ConsoleTask&&) = default; - public ConsoleTask(std::shared_ptr taskContext); - public facebook::react::jsinspector_modern::ConsoleTask& operator=(const facebook::react::jsinspector_modern::ConsoleTask&) = delete; - public facebook::react::jsinspector_modern::ConsoleTask& operator=(facebook::react::jsinspector_modern::ConsoleTask&&) = delete; - public ~ConsoleTask(); -} - -class facebook::react::jsinspector_modern::ConsoleTaskContext : public std::enable_shared_from_this { - public ConsoleTaskContext(const facebook::react::jsinspector_modern::ConsoleTaskContext&) = delete; - public ConsoleTaskContext(facebook::jsi::Runtime& runtime, facebook::react::jsinspector_modern::RuntimeTargetDelegate& runtimeTargetDelegate, std::string name); - public ConsoleTaskContext(facebook::react::jsinspector_modern::ConsoleTaskContext&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskContext& operator=(const facebook::react::jsinspector_modern::ConsoleTaskContext&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskContext& operator=(facebook::react::jsinspector_modern::ConsoleTaskContext&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskId id() const; - public std::optional getSerializedStackTrace() const; - public void schedule(); - public ~ConsoleTaskContext(); -} - -class facebook::react::jsinspector_modern::ConsoleTaskId { - public ConsoleTaskId() = default; - public ConsoleTaskId(const facebook::react::jsinspector_modern::ConsoleTaskId&) = default; - public ConsoleTaskId(facebook::react::jsinspector_modern::ConsoleTaskId&&) = default; - public bool operator==(const facebook::react::jsinspector_modern::ConsoleTaskId&) const = default; - public facebook::react::jsinspector_modern::ConsoleTaskId& operator=(const facebook::react::jsinspector_modern::ConsoleTaskId&) = default; - public facebook::react::jsinspector_modern::ConsoleTaskId& operator=(facebook::react::jsinspector_modern::ConsoleTaskId&&) = default; - public operator bool() const; - public operator void *() const; - public ~ConsoleTaskId() = default; -} - -class facebook::react::jsinspector_modern::ConsoleTaskOrchestrator { - public ConsoleTaskOrchestrator(const facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&) = delete; - public ConsoleTaskOrchestrator(facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& operator=(const facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& operator=(facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&&) = delete; - public static facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& getInstance(); - public std::shared_ptr top() const; - public void cancelTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public void finishTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public void scheduleTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId, std::weak_ptr taskContext); - public void startTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public ~ConsoleTaskOrchestrator() = default; -} - -class facebook::react::jsinspector_modern::EmulationAgent { - public EmulationAgent(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, facebook::react::jsinspector_modern::HostTargetController& hostTargetController); - public bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); -} - -class facebook::react::jsinspector_modern::ExecutionContextManager { - public int32_t allocateExecutionContextId(); -} - class facebook::react::jsinspector_modern::ExecutionContextSelector { public ExecutionContextSelector() = delete; public ExecutionContextSelector(const facebook::react::jsinspector_modern::ExecutionContextSelector& other) = default; @@ -9013,11 +8952,6 @@ class facebook::react::jsinspector_modern::ExecutionContextSelector { public ~ExecutionContextSelector() = default; } -class facebook::react::jsinspector_modern::FallbackRuntimeAgentDelegate : public facebook::react::jsinspector_modern::RuntimeAgentDelegate { - public FallbackRuntimeAgentDelegate(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, const facebook::react::jsinspector_modern::SessionState& sessionState, std::string engineDescription); - public virtual bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req) override; -} - class facebook::react::jsinspector_modern::FallbackRuntimeTargetDelegate : public facebook::react::jsinspector_modern::RuntimeTargetDelegate { public FallbackRuntimeTargetDelegate(std::string engineDescription); public virtual bool supportsConsole() const override; @@ -9202,22 +9136,6 @@ class facebook::react::jsinspector_modern::InspectorPackagerConnection { public void sendEventToAllConnections(std::string event); } -class facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl : public facebook::react::jsinspector_modern::IWebSocketDelegate, public facebook::react::jsinspector_modern::IPageStatusListener, public std::enable_shared_from_this { - public bool isConnected() const; - public static std::shared_ptr create(std::string url, std::string deviceName, std::string appName, std::unique_ptr delegate); - public using SessionId = uint32_t; - public void closeQuietly(); - public void connect(); - public void scheduleSendToPackager(folly::dynamic message, facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::SessionId sourceSessionId, const std::string& sourcePageId, const std::string& sourceProxySessionId); - public void sendEventToAllConnections(const std::string& event); -} - -class facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::RemoteConnection : public facebook::react::jsinspector_modern::IRemoteConnection { - public RemoteConnection(std::weak_ptr owningPackagerConnection, std::string pageId, facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::SessionId sessionId, std::string proxySessionId); - public virtual void onDisconnect() override; - public virtual void onMessage(std::string message) override; -} - class facebook::react::jsinspector_modern::InspectorPackagerConnectionDelegate { public virtual std::unique_ptr connectWebSocket(const std::string& url, std::weak_ptr delegate) = 0; public virtual void scheduleCallback(std::function callback, std::chrono::milliseconds delayMs) = 0; @@ -12078,10 +11996,6 @@ struct std::hash { public size_t operator()(const facebook::react::AttributedString::Fragment& fragment) const; } -struct std::hash { - public size_t operator()(const facebook::react::jsinspector_modern::ConsoleTaskId& id) const; -} - struct std::hash { public size_t operator()(const facebook::react::jsinspector_modern::ExecutionContextSelector& selector) const; } diff --git a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api index dfcc4580f61..4000147b79b 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -10855,12 +10855,7 @@ template facebook::react::jsinspector_modern::ScopedExecutor facebook::react::jsinspector_modern::makeScopedExecutor(std::shared_ptr self, facebook::react::jsinspector_modern::VoidExecutor executor); template facebook::react::jsinspector_modern::VoidExecutor facebook::react::jsinspector_modern::makeVoidExecutor(facebook::react::jsinspector_modern::ScopedExecutor executor); -void facebook::react::jsinspector_modern::emitGlobalStateObserverChange(facebook::jsi::Runtime& runtime, const char* globalName, const char* callbackName, bool value); void facebook::react::jsinspector_modern::emitNotificationsForTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const facebook::react::jsinspector_modern::FrontendChannel& channel, bool isBackgroundTrace); -void facebook::react::jsinspector_modern::emitTracingStateObserverChange(facebook::jsi::Runtime& runtime, bool isTracing); -void facebook::react::jsinspector_modern::installGlobalStateObserver(facebook::jsi::Runtime& runtime, const char* globalName, const char* statusProperty, const char* callbackName); -void facebook::react::jsinspector_modern::installTracingStateObserver(facebook::jsi::Runtime& runtime); -void facebook::react::jsinspector_modern::truncateToValidUTF8(std::vector& buffer); class facebook::react::jsinspector_modern::CallbackLocalConnection : public facebook::react::jsinspector_modern::ILocalConnection { public CallbackLocalConnection(std::function handler); @@ -10874,62 +10869,6 @@ class facebook::react::jsinspector_modern::CallbackRemoteConnection : public fac public virtual void onMessage(std::string message) override; } -class facebook::react::jsinspector_modern::ConsoleTask { - public ConsoleTask(const facebook::react::jsinspector_modern::ConsoleTask&) = default; - public ConsoleTask(facebook::react::jsinspector_modern::ConsoleTask&&) = default; - public ConsoleTask(std::shared_ptr taskContext); - public facebook::react::jsinspector_modern::ConsoleTask& operator=(const facebook::react::jsinspector_modern::ConsoleTask&) = delete; - public facebook::react::jsinspector_modern::ConsoleTask& operator=(facebook::react::jsinspector_modern::ConsoleTask&&) = delete; - public ~ConsoleTask(); -} - -class facebook::react::jsinspector_modern::ConsoleTaskContext : public std::enable_shared_from_this { - public ConsoleTaskContext(const facebook::react::jsinspector_modern::ConsoleTaskContext&) = delete; - public ConsoleTaskContext(facebook::jsi::Runtime& runtime, facebook::react::jsinspector_modern::RuntimeTargetDelegate& runtimeTargetDelegate, std::string name); - public ConsoleTaskContext(facebook::react::jsinspector_modern::ConsoleTaskContext&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskContext& operator=(const facebook::react::jsinspector_modern::ConsoleTaskContext&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskContext& operator=(facebook::react::jsinspector_modern::ConsoleTaskContext&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskId id() const; - public std::optional getSerializedStackTrace() const; - public void schedule(); - public ~ConsoleTaskContext(); -} - -class facebook::react::jsinspector_modern::ConsoleTaskId { - public ConsoleTaskId() = default; - public ConsoleTaskId(const facebook::react::jsinspector_modern::ConsoleTaskId&) = default; - public ConsoleTaskId(facebook::react::jsinspector_modern::ConsoleTaskId&&) = default; - public bool operator==(const facebook::react::jsinspector_modern::ConsoleTaskId&) const = default; - public facebook::react::jsinspector_modern::ConsoleTaskId& operator=(const facebook::react::jsinspector_modern::ConsoleTaskId&) = default; - public facebook::react::jsinspector_modern::ConsoleTaskId& operator=(facebook::react::jsinspector_modern::ConsoleTaskId&&) = default; - public operator bool() const; - public operator void *() const; - public ~ConsoleTaskId() = default; -} - -class facebook::react::jsinspector_modern::ConsoleTaskOrchestrator { - public ConsoleTaskOrchestrator(const facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&) = delete; - public ConsoleTaskOrchestrator(facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& operator=(const facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& operator=(facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&&) = delete; - public static facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& getInstance(); - public std::shared_ptr top() const; - public void cancelTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public void finishTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public void scheduleTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId, std::weak_ptr taskContext); - public void startTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public ~ConsoleTaskOrchestrator() = default; -} - -class facebook::react::jsinspector_modern::EmulationAgent { - public EmulationAgent(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, facebook::react::jsinspector_modern::HostTargetController& hostTargetController); - public bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); -} - -class facebook::react::jsinspector_modern::ExecutionContextManager { - public int32_t allocateExecutionContextId(); -} - class facebook::react::jsinspector_modern::ExecutionContextSelector { public ExecutionContextSelector() = delete; public ExecutionContextSelector(const facebook::react::jsinspector_modern::ExecutionContextSelector& other) = default; @@ -10944,11 +10883,6 @@ class facebook::react::jsinspector_modern::ExecutionContextSelector { public ~ExecutionContextSelector() = default; } -class facebook::react::jsinspector_modern::FallbackRuntimeAgentDelegate : public facebook::react::jsinspector_modern::RuntimeAgentDelegate { - public FallbackRuntimeAgentDelegate(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, const facebook::react::jsinspector_modern::SessionState& sessionState, std::string engineDescription); - public virtual bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req) override; -} - class facebook::react::jsinspector_modern::FallbackRuntimeTargetDelegate : public facebook::react::jsinspector_modern::RuntimeTargetDelegate { public FallbackRuntimeTargetDelegate(std::string engineDescription); public virtual bool supportsConsole() const override; @@ -11133,22 +11067,6 @@ class facebook::react::jsinspector_modern::InspectorPackagerConnection { public void sendEventToAllConnections(std::string event); } -class facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl : public facebook::react::jsinspector_modern::IWebSocketDelegate, public facebook::react::jsinspector_modern::IPageStatusListener, public std::enable_shared_from_this { - public bool isConnected() const; - public static std::shared_ptr create(std::string url, std::string deviceName, std::string appName, std::unique_ptr delegate); - public using SessionId = uint32_t; - public void closeQuietly(); - public void connect(); - public void scheduleSendToPackager(folly::dynamic message, facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::SessionId sourceSessionId, const std::string& sourcePageId, const std::string& sourceProxySessionId); - public void sendEventToAllConnections(const std::string& event); -} - -class facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::RemoteConnection : public facebook::react::jsinspector_modern::IRemoteConnection { - public RemoteConnection(std::weak_ptr owningPackagerConnection, std::string pageId, facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::SessionId sessionId, std::string proxySessionId); - public virtual void onDisconnect() override; - public virtual void onMessage(std::string message) override; -} - class facebook::react::jsinspector_modern::InspectorPackagerConnectionDelegate { public virtual std::unique_ptr connectWebSocket(const std::string& url, std::weak_ptr delegate) = 0; public virtual void scheduleCallback(std::function callback, std::chrono::milliseconds delayMs) = 0; @@ -14248,10 +14166,6 @@ struct std::hash { public size_t operator()(const facebook::react::AttributedString::Fragment& fragment) const; } -struct std::hash { - public size_t operator()(const facebook::react::jsinspector_modern::ConsoleTaskId& id) const; -} - struct std::hash { public size_t operator()(const facebook::react::jsinspector_modern::ExecutionContextSelector& selector) const; } diff --git a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api index 4e3c9f68c86..c79f7b5a045 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -6159,12 +6159,7 @@ template facebook::react::jsinspector_modern::ScopedExecutor facebook::react::jsinspector_modern::makeScopedExecutor(std::shared_ptr self, facebook::react::jsinspector_modern::VoidExecutor executor); template facebook::react::jsinspector_modern::VoidExecutor facebook::react::jsinspector_modern::makeVoidExecutor(facebook::react::jsinspector_modern::ScopedExecutor executor); -void facebook::react::jsinspector_modern::emitGlobalStateObserverChange(facebook::jsi::Runtime& runtime, const char* globalName, const char* callbackName, bool value); void facebook::react::jsinspector_modern::emitNotificationsForTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const facebook::react::jsinspector_modern::FrontendChannel& channel, bool isBackgroundTrace); -void facebook::react::jsinspector_modern::emitTracingStateObserverChange(facebook::jsi::Runtime& runtime, bool isTracing); -void facebook::react::jsinspector_modern::installGlobalStateObserver(facebook::jsi::Runtime& runtime, const char* globalName, const char* statusProperty, const char* callbackName); -void facebook::react::jsinspector_modern::installTracingStateObserver(facebook::jsi::Runtime& runtime); -void facebook::react::jsinspector_modern::truncateToValidUTF8(std::vector& buffer); class facebook::react::jsinspector_modern::CallbackLocalConnection : public facebook::react::jsinspector_modern::ILocalConnection { public CallbackLocalConnection(std::function handler); @@ -6178,62 +6173,6 @@ class facebook::react::jsinspector_modern::CallbackRemoteConnection : public fac public virtual void onMessage(std::string message) override; } -class facebook::react::jsinspector_modern::ConsoleTask { - public ConsoleTask(const facebook::react::jsinspector_modern::ConsoleTask&) = default; - public ConsoleTask(facebook::react::jsinspector_modern::ConsoleTask&&) = default; - public ConsoleTask(std::shared_ptr taskContext); - public facebook::react::jsinspector_modern::ConsoleTask& operator=(const facebook::react::jsinspector_modern::ConsoleTask&) = delete; - public facebook::react::jsinspector_modern::ConsoleTask& operator=(facebook::react::jsinspector_modern::ConsoleTask&&) = delete; - public ~ConsoleTask(); -} - -class facebook::react::jsinspector_modern::ConsoleTaskContext : public std::enable_shared_from_this { - public ConsoleTaskContext(const facebook::react::jsinspector_modern::ConsoleTaskContext&) = delete; - public ConsoleTaskContext(facebook::jsi::Runtime& runtime, facebook::react::jsinspector_modern::RuntimeTargetDelegate& runtimeTargetDelegate, std::string name); - public ConsoleTaskContext(facebook::react::jsinspector_modern::ConsoleTaskContext&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskContext& operator=(const facebook::react::jsinspector_modern::ConsoleTaskContext&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskContext& operator=(facebook::react::jsinspector_modern::ConsoleTaskContext&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskId id() const; - public std::optional getSerializedStackTrace() const; - public void schedule(); - public ~ConsoleTaskContext(); -} - -class facebook::react::jsinspector_modern::ConsoleTaskId { - public ConsoleTaskId() = default; - public ConsoleTaskId(const facebook::react::jsinspector_modern::ConsoleTaskId&) = default; - public ConsoleTaskId(facebook::react::jsinspector_modern::ConsoleTaskId&&) = default; - public bool operator==(const facebook::react::jsinspector_modern::ConsoleTaskId&) const = default; - public facebook::react::jsinspector_modern::ConsoleTaskId& operator=(const facebook::react::jsinspector_modern::ConsoleTaskId&) = default; - public facebook::react::jsinspector_modern::ConsoleTaskId& operator=(facebook::react::jsinspector_modern::ConsoleTaskId&&) = default; - public operator bool() const; - public operator void *() const; - public ~ConsoleTaskId() = default; -} - -class facebook::react::jsinspector_modern::ConsoleTaskOrchestrator { - public ConsoleTaskOrchestrator(const facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&) = delete; - public ConsoleTaskOrchestrator(facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& operator=(const facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&) = delete; - public facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& operator=(facebook::react::jsinspector_modern::ConsoleTaskOrchestrator&&) = delete; - public static facebook::react::jsinspector_modern::ConsoleTaskOrchestrator& getInstance(); - public std::shared_ptr top() const; - public void cancelTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public void finishTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public void scheduleTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId, std::weak_ptr taskContext); - public void startTask(facebook::react::jsinspector_modern::ConsoleTaskId taskId); - public ~ConsoleTaskOrchestrator() = default; -} - -class facebook::react::jsinspector_modern::EmulationAgent { - public EmulationAgent(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, facebook::react::jsinspector_modern::HostTargetController& hostTargetController); - public bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req); -} - -class facebook::react::jsinspector_modern::ExecutionContextManager { - public int32_t allocateExecutionContextId(); -} - class facebook::react::jsinspector_modern::ExecutionContextSelector { public ExecutionContextSelector() = delete; public ExecutionContextSelector(const facebook::react::jsinspector_modern::ExecutionContextSelector& other) = default; @@ -6248,11 +6187,6 @@ class facebook::react::jsinspector_modern::ExecutionContextSelector { public ~ExecutionContextSelector() = default; } -class facebook::react::jsinspector_modern::FallbackRuntimeAgentDelegate : public facebook::react::jsinspector_modern::RuntimeAgentDelegate { - public FallbackRuntimeAgentDelegate(facebook::react::jsinspector_modern::FrontendChannel frontendChannel, const facebook::react::jsinspector_modern::SessionState& sessionState, std::string engineDescription); - public virtual bool handleRequest(const facebook::react::jsinspector_modern::cdp::PreparsedRequest& req) override; -} - class facebook::react::jsinspector_modern::FallbackRuntimeTargetDelegate : public facebook::react::jsinspector_modern::RuntimeTargetDelegate { public FallbackRuntimeTargetDelegate(std::string engineDescription); public virtual bool supportsConsole() const override; @@ -6437,22 +6371,6 @@ class facebook::react::jsinspector_modern::InspectorPackagerConnection { public void sendEventToAllConnections(std::string event); } -class facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl : public facebook::react::jsinspector_modern::IWebSocketDelegate, public facebook::react::jsinspector_modern::IPageStatusListener, public std::enable_shared_from_this { - public bool isConnected() const; - public static std::shared_ptr create(std::string url, std::string deviceName, std::string appName, std::unique_ptr delegate); - public using SessionId = uint32_t; - public void closeQuietly(); - public void connect(); - public void scheduleSendToPackager(folly::dynamic message, facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::SessionId sourceSessionId, const std::string& sourcePageId, const std::string& sourceProxySessionId); - public void sendEventToAllConnections(const std::string& event); -} - -class facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::RemoteConnection : public facebook::react::jsinspector_modern::IRemoteConnection { - public RemoteConnection(std::weak_ptr owningPackagerConnection, std::string pageId, facebook::react::jsinspector_modern::InspectorPackagerConnection::Impl::SessionId sessionId, std::string proxySessionId); - public virtual void onDisconnect() override; - public virtual void onMessage(std::string message) override; -} - class facebook::react::jsinspector_modern::InspectorPackagerConnectionDelegate { public virtual std::unique_ptr connectWebSocket(const std::string& url, std::weak_ptr delegate) = 0; public virtual void scheduleCallback(std::function callback, std::chrono::milliseconds delayMs) = 0; @@ -9146,10 +9064,6 @@ struct std::hash { public size_t operator()(const facebook::react::AttributedString::Fragment& fragment) const; } -struct std::hash { - public size_t operator()(const facebook::react::jsinspector_modern::ConsoleTaskId& id) const; -} - struct std::hash { public size_t operator()(const facebook::react::jsinspector_modern::ExecutionContextSelector& selector) const; } From e9fd982ba2ee5f8ce0e26cb28f45b9f9fc5878e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 8 Oct 2026 06:30:03 -0700 Subject: [PATCH 3/4] 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 c58c6cf48e5..ba3631d742d 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 4531200f4f0..bb8ebdb97c5 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 5efd0d02278..9439e0e83fb 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 a1b0b6198e5..e4019bb2943 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 5406602bdfc..1fef1c0d291 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 a46e7c2ba7f..c5580bcbb60 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 8b83f24be2f..b1f99195443 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 039906a9ba7..a4524c2db52 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api @@ -9569,7 +9569,6 @@ class facebook::react::jsinspector_modern::WeakList { } -constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::TRACING_TIME_ORIGIN; constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::kCurrentBufferStartTimeUninitialized; using facebook::react::jsinspector_modern::tracing::Categories = folly::small_vector; using facebook::react::jsinspector_modern::tracing::ConsoleTimeStampEntry = std::variant; @@ -9578,7 +9577,6 @@ using facebook::react::jsinspector_modern::tracing::Headers = std::map facebook::react::jsinspector_modern::tracing::getTracingCategoryFromString(const std::string& str); std::optional facebook::react::jsinspector_modern::tracing::getConsoleTimeStampColorFromString(const std::string& str); std::optional facebook::react::jsinspector_modern::tracing::getConsoleTimeStampDetailFromObject(facebook::jsi::Runtime& runtime, const facebook::jsi::Value& detailValue); @@ -9587,7 +9585,6 @@ std::string facebook::react::jsinspector_modern::tracing::consoleTimeStampColorT std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const facebook::react::jsinspector_modern::tracing::Categories& categories); std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const std::set& categories); std::string facebook::react::jsinspector_modern::tracing::tracingCategoryToString(const facebook::react::jsinspector_modern::tracing::Category& category); -uint64_t facebook::react::jsinspector_modern::tracing::highResTimeStampToTracingClockTimeStamp(facebook::react::HighResTimeStamp timestamp); class facebook::react::jsinspector_modern::tracing::HostTracingProfileSerializer { public static void emitAsDataCollectedChunks(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const std::function& chunkCallback, size_t maxChunkBytes, uint16_t profileTraceEventsChunkSize); @@ -9618,56 +9615,16 @@ class facebook::react::jsinspector_modern::tracing::PerformanceTracer { public void unsubscribeFromTracingStateChanges(uint32_t subscriptionId); } -class facebook::react::jsinspector_modern::tracing::ProfileTreeNode { - public ProfileTreeNode(uint32_t id, facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType codeType, facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame callFrame, uint32_t parentId = facebook::react::jsinspector_modern::tracing::ProfileTreeNode::NO_PARENT); - public bool hasParent() const; - public const facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame& getCallFrame() const; - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode* addChild(uint32_t childId, facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType childCodeType, facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame childCallFrame); - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode* getIfAlreadyExists(facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType childCodeType, const facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame& childCallFrame); - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType getCodeType() const; - public static constexpr uint32_t NO_PARENT; - public uint32_t getId() const; - public uint32_t getParentId() const; -} - -enum facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType { - JavaScript, - Other, -} - class facebook::react::jsinspector_modern::tracing::RawRuntimeProfile { public virtual ~RawRuntimeProfile() = default; } -class facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfileTraceEventSerializer { - public static void serializeAndDispatch(facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile&& profile, facebook::react::jsinspector_modern::tracing::IdGenerator& profileIdGenerator, facebook::react::HighResTimeStamp tracingStartTime, const std::function& dispatchCallback, uint16_t traceEventChunkSize, uint16_t profileChunkSize = PROFILE_CHUNK_SIZE, uint16_t maxUniqueNodesPerChunk = MAX_UNIQUE_NODES_PER_CHUNK); - public static void serializeAndDispatch(std::vector&& profiles, facebook::react::jsinspector_modern::tracing::IdGenerator& profileIdGenerator, facebook::react::HighResTimeStamp tracingStartTime, const std::function& dispatchCallback, uint16_t traceEventChunkSize, uint16_t profileChunkSize = PROFILE_CHUNK_SIZE, uint16_t maxUniqueNodesPerChunk = MAX_UNIQUE_NODES_PER_CHUNK); -} - class facebook::react::jsinspector_modern::tracing::TargetTracingAgent { protected facebook::react::jsinspector_modern::tracing::TraceRecordingState& state_; public TargetTracingAgent(facebook::react::jsinspector_modern::tracing::TraceRecordingState& state); public bool isRunningInBackgroundMode(); } -class facebook::react::jsinspector_modern::tracing::TraceEventGenerator { - public static facebook::react::jsinspector_modern::tracing::TraceEvent createIdleBeginFrameEvent(facebook::react::jsinspector_modern::tracing::FrameSequenceId sequenceId, int layerTreeId, facebook::react::HighResTimeStamp timestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createNeedsBeginFrameChangedEvent(int layerTreeId, facebook::react::HighResTimeStamp timestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createScreenshotEvent(facebook::react::jsinspector_modern::tracing::FrameSequenceId frameSequenceId, int sourceId, std::vector&& snapshot, facebook::react::HighResTimeStamp expectedDisplayTime, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createSetLayerTreeIdEvent(std::string frame, int layerTreeId, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId, facebook::react::HighResTimeStamp timestamp); - public static std::pair createFrameTimingsEvents(facebook::react::jsinspector_modern::tracing::FrameSequenceId sequenceId, int layerTreeId, facebook::react::HighResTimeStamp beginTimestamp, facebook::react::HighResTimeStamp endTimestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); -} - -class facebook::react::jsinspector_modern::tracing::TraceEventSerializer { - public static folly::dynamic serialize(facebook::react::jsinspector_modern::tracing::TraceEvent&& event); - public static folly::dynamic serializeProfileChunk(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk&& profileChunk); - public static folly::dynamic serializeProfileChunkCPUProfile(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile&& cpuProfile); - public static folly::dynamic serializeProfileChunkCPUProfileNode(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile::Node&& node); - public static folly::dynamic serializeProfileChunkCPUProfileNodeCallFrame(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile::Node::CallFrame&& callFrame); - public static folly::dynamic serializeProfileChunkTimeDeltas(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::TimeDeltas&& deltas); - public static size_t estimateJsonSize(const folly::dynamic& value); -} - enum facebook::react::jsinspector_modern::tracing::Category { Frame, HiddenTimeline, @@ -9692,25 +9649,11 @@ enum facebook::react::jsinspector_modern::tracing::ConsoleTimeStampColor { Warning, } -enum facebook::react::jsinspector_modern::tracing::EventLoopPhase { - Microtasks, - Task, -} - enum facebook::react::jsinspector_modern::tracing::Mode { Background, CDP, } -struct facebook::react::jsinspector_modern::tracing::EventLoopReporter { - public EventLoopReporter(const facebook::react::jsinspector_modern::tracing::EventLoopReporter&) = delete; - public EventLoopReporter(facebook::react::jsinspector_modern::tracing::EventLoopPhase phase); - public EventLoopReporter(facebook::react::jsinspector_modern::tracing::EventLoopReporter&&) = delete; - public facebook::react::jsinspector_modern::tracing::EventLoopReporter& operator=(const facebook::react::jsinspector_modern::tracing::EventLoopReporter&) = delete; - public facebook::react::jsinspector_modern::tracing::EventLoopReporter& operator=(facebook::react::jsinspector_modern::tracing::EventLoopReporter&&) = delete; - public ~EventLoopReporter(); -} - struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence { public FrameTimingSequence() = delete; public FrameTimingSequence(facebook::react::jsinspector_modern::tracing::FrameSequenceId id, facebook::react::jsinspector_modern::tracing::ThreadId threadId, facebook::react::HighResTimeStamp beginTimestamp, facebook::react::HighResTimeStamp endTimestamp, std::optional> screenshot = std::nullopt, facebook::react::HighResDuration vsyncInterval = facebook::react::HighResDuration::zero()); @@ -9736,10 +9679,6 @@ struct facebook::react::jsinspector_modern::tracing::HostTracingProfile { public ~HostTracingProfile() = default; } -struct facebook::react::jsinspector_modern::tracing::IdGenerator { - public uint32_t getNext(); -} - struct facebook::react::jsinspector_modern::tracing::InstanceTracingProfile { public std::vector performanceTraceEvents; } diff --git a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api index 4000147b79b..ea2e0f6cdb0 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -11428,7 +11428,6 @@ class facebook::react::jsinspector_modern::WeakList { } -constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::TRACING_TIME_ORIGIN; constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::kCurrentBufferStartTimeUninitialized; using facebook::react::jsinspector_modern::tracing::Categories = folly::small_vector; using facebook::react::jsinspector_modern::tracing::ConsoleTimeStampEntry = std::variant; @@ -11437,7 +11436,6 @@ using facebook::react::jsinspector_modern::tracing::Headers = std::map facebook::react::jsinspector_modern::tracing::getTracingCategoryFromString(const std::string& str); std::optional facebook::react::jsinspector_modern::tracing::getConsoleTimeStampColorFromString(const std::string& str); std::optional facebook::react::jsinspector_modern::tracing::getConsoleTimeStampDetailFromObject(facebook::jsi::Runtime& runtime, const facebook::jsi::Value& detailValue); @@ -11446,7 +11444,6 @@ std::string facebook::react::jsinspector_modern::tracing::consoleTimeStampColorT std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const facebook::react::jsinspector_modern::tracing::Categories& categories); std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const std::set& categories); std::string facebook::react::jsinspector_modern::tracing::tracingCategoryToString(const facebook::react::jsinspector_modern::tracing::Category& category); -uint64_t facebook::react::jsinspector_modern::tracing::highResTimeStampToTracingClockTimeStamp(facebook::react::HighResTimeStamp timestamp); class facebook::react::jsinspector_modern::tracing::HostTracingProfileSerializer { public static void emitAsDataCollectedChunks(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const std::function& chunkCallback, size_t maxChunkBytes, uint16_t profileTraceEventsChunkSize); @@ -11477,56 +11474,16 @@ class facebook::react::jsinspector_modern::tracing::PerformanceTracer { public void unsubscribeFromTracingStateChanges(uint32_t subscriptionId); } -class facebook::react::jsinspector_modern::tracing::ProfileTreeNode { - public ProfileTreeNode(uint32_t id, facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType codeType, facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame callFrame, uint32_t parentId = facebook::react::jsinspector_modern::tracing::ProfileTreeNode::NO_PARENT); - public bool hasParent() const; - public const facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame& getCallFrame() const; - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode* addChild(uint32_t childId, facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType childCodeType, facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame childCallFrame); - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode* getIfAlreadyExists(facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType childCodeType, const facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame& childCallFrame); - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType getCodeType() const; - public static constexpr uint32_t NO_PARENT; - public uint32_t getId() const; - public uint32_t getParentId() const; -} - -enum facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType { - JavaScript, - Other, -} - class facebook::react::jsinspector_modern::tracing::RawRuntimeProfile { public virtual ~RawRuntimeProfile() = default; } -class facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfileTraceEventSerializer { - public static void serializeAndDispatch(facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile&& profile, facebook::react::jsinspector_modern::tracing::IdGenerator& profileIdGenerator, facebook::react::HighResTimeStamp tracingStartTime, const std::function& dispatchCallback, uint16_t traceEventChunkSize, uint16_t profileChunkSize = PROFILE_CHUNK_SIZE, uint16_t maxUniqueNodesPerChunk = MAX_UNIQUE_NODES_PER_CHUNK); - public static void serializeAndDispatch(std::vector&& profiles, facebook::react::jsinspector_modern::tracing::IdGenerator& profileIdGenerator, facebook::react::HighResTimeStamp tracingStartTime, const std::function& dispatchCallback, uint16_t traceEventChunkSize, uint16_t profileChunkSize = PROFILE_CHUNK_SIZE, uint16_t maxUniqueNodesPerChunk = MAX_UNIQUE_NODES_PER_CHUNK); -} - class facebook::react::jsinspector_modern::tracing::TargetTracingAgent { protected facebook::react::jsinspector_modern::tracing::TraceRecordingState& state_; public TargetTracingAgent(facebook::react::jsinspector_modern::tracing::TraceRecordingState& state); public bool isRunningInBackgroundMode(); } -class facebook::react::jsinspector_modern::tracing::TraceEventGenerator { - public static facebook::react::jsinspector_modern::tracing::TraceEvent createIdleBeginFrameEvent(facebook::react::jsinspector_modern::tracing::FrameSequenceId sequenceId, int layerTreeId, facebook::react::HighResTimeStamp timestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createNeedsBeginFrameChangedEvent(int layerTreeId, facebook::react::HighResTimeStamp timestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createScreenshotEvent(facebook::react::jsinspector_modern::tracing::FrameSequenceId frameSequenceId, int sourceId, std::vector&& snapshot, facebook::react::HighResTimeStamp expectedDisplayTime, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createSetLayerTreeIdEvent(std::string frame, int layerTreeId, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId, facebook::react::HighResTimeStamp timestamp); - public static std::pair createFrameTimingsEvents(facebook::react::jsinspector_modern::tracing::FrameSequenceId sequenceId, int layerTreeId, facebook::react::HighResTimeStamp beginTimestamp, facebook::react::HighResTimeStamp endTimestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); -} - -class facebook::react::jsinspector_modern::tracing::TraceEventSerializer { - public static folly::dynamic serialize(facebook::react::jsinspector_modern::tracing::TraceEvent&& event); - public static folly::dynamic serializeProfileChunk(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk&& profileChunk); - public static folly::dynamic serializeProfileChunkCPUProfile(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile&& cpuProfile); - public static folly::dynamic serializeProfileChunkCPUProfileNode(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile::Node&& node); - public static folly::dynamic serializeProfileChunkCPUProfileNodeCallFrame(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile::Node::CallFrame&& callFrame); - public static folly::dynamic serializeProfileChunkTimeDeltas(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::TimeDeltas&& deltas); - public static size_t estimateJsonSize(const folly::dynamic& value); -} - enum facebook::react::jsinspector_modern::tracing::Category { Frame, HiddenTimeline, @@ -11551,25 +11508,11 @@ enum facebook::react::jsinspector_modern::tracing::ConsoleTimeStampColor { Warning, } -enum facebook::react::jsinspector_modern::tracing::EventLoopPhase { - Microtasks, - Task, -} - enum facebook::react::jsinspector_modern::tracing::Mode { Background, CDP, } -struct facebook::react::jsinspector_modern::tracing::EventLoopReporter { - public EventLoopReporter(const facebook::react::jsinspector_modern::tracing::EventLoopReporter&) = delete; - public EventLoopReporter(facebook::react::jsinspector_modern::tracing::EventLoopPhase phase); - public EventLoopReporter(facebook::react::jsinspector_modern::tracing::EventLoopReporter&&) = delete; - public facebook::react::jsinspector_modern::tracing::EventLoopReporter& operator=(const facebook::react::jsinspector_modern::tracing::EventLoopReporter&) = delete; - public facebook::react::jsinspector_modern::tracing::EventLoopReporter& operator=(facebook::react::jsinspector_modern::tracing::EventLoopReporter&&) = delete; - public ~EventLoopReporter(); -} - struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence { public FrameTimingSequence() = delete; public FrameTimingSequence(facebook::react::jsinspector_modern::tracing::FrameSequenceId id, facebook::react::jsinspector_modern::tracing::ThreadId threadId, facebook::react::HighResTimeStamp beginTimestamp, facebook::react::HighResTimeStamp endTimestamp, std::optional> screenshot = std::nullopt, facebook::react::HighResDuration vsyncInterval = facebook::react::HighResDuration::zero()); @@ -11595,10 +11538,6 @@ struct facebook::react::jsinspector_modern::tracing::HostTracingProfile { public ~HostTracingProfile() = default; } -struct facebook::react::jsinspector_modern::tracing::IdGenerator { - public uint32_t getNext(); -} - struct facebook::react::jsinspector_modern::tracing::InstanceTracingProfile { public std::vector performanceTraceEvents; } diff --git a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api index c79f7b5a045..95cfd9c3eab 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -6732,7 +6732,6 @@ class facebook::react::jsinspector_modern::WeakList { } -constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::TRACING_TIME_ORIGIN; constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::kCurrentBufferStartTimeUninitialized; using facebook::react::jsinspector_modern::tracing::Categories = folly::small_vector; using facebook::react::jsinspector_modern::tracing::ConsoleTimeStampEntry = std::variant; @@ -6741,7 +6740,6 @@ using facebook::react::jsinspector_modern::tracing::Headers = std::map facebook::react::jsinspector_modern::tracing::getTracingCategoryFromString(const std::string& str); std::optional facebook::react::jsinspector_modern::tracing::getConsoleTimeStampColorFromString(const std::string& str); std::optional facebook::react::jsinspector_modern::tracing::getConsoleTimeStampDetailFromObject(facebook::jsi::Runtime& runtime, const facebook::jsi::Value& detailValue); @@ -6750,7 +6748,6 @@ std::string facebook::react::jsinspector_modern::tracing::consoleTimeStampColorT std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const facebook::react::jsinspector_modern::tracing::Categories& categories); std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const std::set& categories); std::string facebook::react::jsinspector_modern::tracing::tracingCategoryToString(const facebook::react::jsinspector_modern::tracing::Category& category); -uint64_t facebook::react::jsinspector_modern::tracing::highResTimeStampToTracingClockTimeStamp(facebook::react::HighResTimeStamp timestamp); class facebook::react::jsinspector_modern::tracing::HostTracingProfileSerializer { public static void emitAsDataCollectedChunks(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const std::function& chunkCallback, size_t maxChunkBytes, uint16_t profileTraceEventsChunkSize); @@ -6781,56 +6778,16 @@ class facebook::react::jsinspector_modern::tracing::PerformanceTracer { public void unsubscribeFromTracingStateChanges(uint32_t subscriptionId); } -class facebook::react::jsinspector_modern::tracing::ProfileTreeNode { - public ProfileTreeNode(uint32_t id, facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType codeType, facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame callFrame, uint32_t parentId = facebook::react::jsinspector_modern::tracing::ProfileTreeNode::NO_PARENT); - public bool hasParent() const; - public const facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame& getCallFrame() const; - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode* addChild(uint32_t childId, facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType childCodeType, facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame childCallFrame); - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode* getIfAlreadyExists(facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType childCodeType, const facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame& childCallFrame); - public facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType getCodeType() const; - public static constexpr uint32_t NO_PARENT; - public uint32_t getId() const; - public uint32_t getParentId() const; -} - -enum facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType { - JavaScript, - Other, -} - class facebook::react::jsinspector_modern::tracing::RawRuntimeProfile { public virtual ~RawRuntimeProfile() = default; } -class facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfileTraceEventSerializer { - public static void serializeAndDispatch(facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile&& profile, facebook::react::jsinspector_modern::tracing::IdGenerator& profileIdGenerator, facebook::react::HighResTimeStamp tracingStartTime, const std::function& dispatchCallback, uint16_t traceEventChunkSize, uint16_t profileChunkSize = PROFILE_CHUNK_SIZE, uint16_t maxUniqueNodesPerChunk = MAX_UNIQUE_NODES_PER_CHUNK); - public static void serializeAndDispatch(std::vector&& profiles, facebook::react::jsinspector_modern::tracing::IdGenerator& profileIdGenerator, facebook::react::HighResTimeStamp tracingStartTime, const std::function& dispatchCallback, uint16_t traceEventChunkSize, uint16_t profileChunkSize = PROFILE_CHUNK_SIZE, uint16_t maxUniqueNodesPerChunk = MAX_UNIQUE_NODES_PER_CHUNK); -} - class facebook::react::jsinspector_modern::tracing::TargetTracingAgent { protected facebook::react::jsinspector_modern::tracing::TraceRecordingState& state_; public TargetTracingAgent(facebook::react::jsinspector_modern::tracing::TraceRecordingState& state); public bool isRunningInBackgroundMode(); } -class facebook::react::jsinspector_modern::tracing::TraceEventGenerator { - public static facebook::react::jsinspector_modern::tracing::TraceEvent createIdleBeginFrameEvent(facebook::react::jsinspector_modern::tracing::FrameSequenceId sequenceId, int layerTreeId, facebook::react::HighResTimeStamp timestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createNeedsBeginFrameChangedEvent(int layerTreeId, facebook::react::HighResTimeStamp timestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createScreenshotEvent(facebook::react::jsinspector_modern::tracing::FrameSequenceId frameSequenceId, int sourceId, std::vector&& snapshot, facebook::react::HighResTimeStamp expectedDisplayTime, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); - public static facebook::react::jsinspector_modern::tracing::TraceEvent createSetLayerTreeIdEvent(std::string frame, int layerTreeId, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId, facebook::react::HighResTimeStamp timestamp); - public static std::pair createFrameTimingsEvents(facebook::react::jsinspector_modern::tracing::FrameSequenceId sequenceId, int layerTreeId, facebook::react::HighResTimeStamp beginTimestamp, facebook::react::HighResTimeStamp endTimestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId); -} - -class facebook::react::jsinspector_modern::tracing::TraceEventSerializer { - public static folly::dynamic serialize(facebook::react::jsinspector_modern::tracing::TraceEvent&& event); - public static folly::dynamic serializeProfileChunk(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk&& profileChunk); - public static folly::dynamic serializeProfileChunkCPUProfile(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile&& cpuProfile); - public static folly::dynamic serializeProfileChunkCPUProfileNode(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile::Node&& node); - public static folly::dynamic serializeProfileChunkCPUProfileNodeCallFrame(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile::Node::CallFrame&& callFrame); - public static folly::dynamic serializeProfileChunkTimeDeltas(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::TimeDeltas&& deltas); - public static size_t estimateJsonSize(const folly::dynamic& value); -} - enum facebook::react::jsinspector_modern::tracing::Category { Frame, HiddenTimeline, @@ -6855,25 +6812,11 @@ enum facebook::react::jsinspector_modern::tracing::ConsoleTimeStampColor { Warning, } -enum facebook::react::jsinspector_modern::tracing::EventLoopPhase { - Microtasks, - Task, -} - enum facebook::react::jsinspector_modern::tracing::Mode { Background, CDP, } -struct facebook::react::jsinspector_modern::tracing::EventLoopReporter { - public EventLoopReporter(const facebook::react::jsinspector_modern::tracing::EventLoopReporter&) = delete; - public EventLoopReporter(facebook::react::jsinspector_modern::tracing::EventLoopPhase phase); - public EventLoopReporter(facebook::react::jsinspector_modern::tracing::EventLoopReporter&&) = delete; - public facebook::react::jsinspector_modern::tracing::EventLoopReporter& operator=(const facebook::react::jsinspector_modern::tracing::EventLoopReporter&) = delete; - public facebook::react::jsinspector_modern::tracing::EventLoopReporter& operator=(facebook::react::jsinspector_modern::tracing::EventLoopReporter&&) = delete; - public ~EventLoopReporter(); -} - struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence { public FrameTimingSequence() = delete; public FrameTimingSequence(facebook::react::jsinspector_modern::tracing::FrameSequenceId id, facebook::react::jsinspector_modern::tracing::ThreadId threadId, facebook::react::HighResTimeStamp beginTimestamp, facebook::react::HighResTimeStamp endTimestamp, std::optional> screenshot = std::nullopt, facebook::react::HighResDuration vsyncInterval = facebook::react::HighResDuration::zero()); @@ -6899,10 +6842,6 @@ struct facebook::react::jsinspector_modern::tracing::HostTracingProfile { public ~HostTracingProfile() = default; } -struct facebook::react::jsinspector_modern::tracing::IdGenerator { - public uint32_t getNext(); -} - struct facebook::react::jsinspector_modern::tracing::InstanceTracingProfile { public std::vector performanceTraceEvents; } From 4a4186b85d257894da54c924b5e3723bb7426581 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 8 Oct 2026 08:07:11 -0700 Subject: [PATCH 4/4] Make `StackTraceParser.h` private in jserrorhandler (#58793) Summary: Pull Request resolved: https://github.com/react/react-native/pull/58793 `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 c0fb2e9c0d6..c29d4df2c23 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 d5ecce8fa03..ea213dfc1f3 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 a4524c2db52..630136bda3b 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api @@ -3788,10 +3788,6 @@ class facebook::react::SharedColor { public std::string toString() const noexcept; } -class facebook::react::StackTraceParser { - public static std::vector parse(bool isHermes, const std::string& stackString); -} - class facebook::react::State { protected State(facebook::react::StateData::Shared data, const facebook::react::State& previousState); protected State(facebook::react::StateData::Shared data, facebook::react::ShadowNodeFamily::Weak family); diff --git a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api index ea2e0f6cdb0..2b27669a076 100644 --- a/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAppleFrameworksCxx.api @@ -6020,10 +6020,6 @@ class facebook::react::SharedColor { public std::string toString() const noexcept; } -class facebook::react::StackTraceParser { - public static std::vector parse(bool isHermes, const std::string& stackString); -} - class facebook::react::State { protected State(facebook::react::StateData::Shared data, const facebook::react::State& previousState); protected State(facebook::react::StateData::Shared data, facebook::react::ShadowNodeFamily::Weak family); diff --git a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api index 95cfd9c3eab..a6de74642c7 100644 --- a/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactCommonFrameworksCxx.api @@ -2383,10 +2383,6 @@ class facebook::react::SharedColor { public std::string toString() const noexcept; } -class facebook::react::StackTraceParser { - public static std::vector parse(bool isHermes, const std::string& stackString); -} - class facebook::react::State { protected State(facebook::react::StateData::Shared data, const facebook::react::State& previousState); protected State(facebook::react::StateData::Shared data, facebook::react::ShadowNodeFamily::Weak family);