react-native 0.83.0-rc.0 → 0.84.0-nightly-20251106-de5141a3d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Libraries/AppDelegate/RCTReactNativeFactory.h +3 -0
- package/Libraries/AppDelegate/RCTReactNativeFactory.mm +12 -0
- package/Libraries/AppDelegate/RCTRootViewFactory.h +10 -4
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +21 -5
- package/Libraries/Blob/RCTBlobManager.mm +4 -1
- package/Libraries/Blob/RCTFileReaderModule.mm +4 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Image/RCTBundleAssetImageLoader.mm +4 -1
- package/Libraries/Image/RCTGIFImageDecoder.mm +4 -1
- package/Libraries/Image/RCTImageEditingManager.mm +4 -1
- package/Libraries/Image/RCTImageLoader.mm +4 -1
- package/Libraries/Image/RCTImageStoreManager.mm +4 -1
- package/Libraries/Image/RCTImageViewManager.mm +4 -1
- package/Libraries/Image/RCTLocalAssetImageLoader.mm +4 -1
- package/Libraries/LinkingIOS/RCTLinkingManager.mm +4 -1
- package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +4 -1
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +4 -1
- package/Libraries/Network/RCTDataRequestHandler.mm +4 -1
- package/Libraries/Network/RCTFileRequestHandler.mm +4 -1
- package/Libraries/Network/RCTHTTPRequestHandler.mm +4 -1
- package/Libraries/Network/RCTNetworking.mm +4 -1
- package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +4 -1
- package/Libraries/Settings/RCTSettingsManager.mm +4 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +2 -2
- package/Libraries/Text/BaseText/RCTBaseTextViewManager.mm +4 -1
- package/Libraries/Text/RawText/RCTRawTextViewManager.mm +4 -1
- package/Libraries/Text/Text/RCTTextViewManager.mm +4 -1
- package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.mm +4 -1
- package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +3 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +4 -1
- package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.mm +4 -1
- package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.mm +4 -1
- package/Libraries/Text/VirtualText/RCTVirtualTextViewManager.mm +4 -1
- package/Libraries/Vibration/RCTVibration.mm +4 -1
- package/React/Base/RCTBundleManager.h +59 -7
- package/React/Base/RCTBundleManager.m +98 -0
- package/React/Base/RCTBundleURLProvider.h +24 -0
- package/React/Base/RCTBundleURLProvider.mm +49 -4
- package/React/Base/RCTVersion.m +2 -2
- package/React/CoreModules/RCTAccessibilityManager.mm +4 -1
- package/React/CoreModules/RCTActionSheetManager.mm +4 -1
- package/React/CoreModules/RCTAlertManager.mm +4 -1
- package/React/CoreModules/RCTAppState.mm +4 -1
- package/React/CoreModules/RCTAppearance.mm +4 -1
- package/React/CoreModules/RCTClipboard.mm +4 -1
- package/React/CoreModules/RCTDevLoadingView.mm +4 -1
- package/React/CoreModules/RCTDevMenu.mm +4 -1
- package/React/CoreModules/RCTDevSettings.mm +4 -1
- package/React/CoreModules/RCTDevToolsRuntimeSettingsModule.mm +5 -1
- package/React/CoreModules/RCTDeviceInfo.mm +4 -1
- package/React/CoreModules/RCTEventDispatcher.mm +4 -1
- package/React/CoreModules/RCTExceptionsManager.mm +4 -1
- package/React/CoreModules/RCTI18nManager.mm +4 -1
- package/React/CoreModules/RCTKeyboardObserver.mm +4 -1
- package/React/CoreModules/RCTLogBox.mm +4 -1
- package/React/CoreModules/RCTPerfMonitor.mm +4 -1
- package/React/CoreModules/RCTPlatform.mm +7 -3
- package/React/CoreModules/RCTRedBox.mm +4 -1
- package/React/CoreModules/RCTSourceCode.mm +4 -1
- package/React/CoreModules/RCTStatusBarManager.mm +4 -1
- package/React/CoreModules/RCTTiming.mm +4 -1
- package/React/CoreModules/RCTWebSocketModule.mm +4 -1
- package/React/CoreModules/React-CoreModules.podspec +1 -0
- package/React/CxxBridge/RCTCxxBridge.mm +1 -2
- package/React/CxxModule/RCTCxxUtils.mm +1 -11
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +135 -143
- package/React/Fabric/Surface/RCTFabricSurface.mm +1 -1
- package/React/Modules/RCTUIManager.mm +4 -1
- package/React/Runtime/React-RCTRuntime.podspec +1 -0
- package/React/Views/RCTActivityIndicatorViewManager.m +4 -1
- package/React/Views/RCTDebuggingOverlayManager.m +4 -1
- package/React/Views/RCTModalHostViewManager.m +4 -1
- package/React/Views/RCTModalManager.m +4 -1
- package/React/Views/RCTSwitchManager.m +4 -1
- package/React/Views/RCTViewManager.m +4 -1
- package/React/Views/RefreshControl/RCTRefreshControlManager.m +4 -1
- package/React/Views/SafeAreaView/RCTSafeAreaViewManager.m +4 -1
- package/React/Views/ScrollView/RCTScrollContentViewManager.m +4 -1
- package/React/Views/ScrollView/RCTScrollViewManager.m +4 -1
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/ViewManagerOnDemandReactPackage.kt +53 -4
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +99 -9
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +22 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +4 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +8 -14
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +11 -21
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +3 -5
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +3 -5
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +12 -23
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +3 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAxOrderHelper.kt +47 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +3 -36
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +5 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +27 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +11 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +11 -1
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +29 -2
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +36 -26
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +15 -29
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +4 -7
- package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/jni/JSLoader.h +2 -1
- package/ReactAndroid/src/main/res/devsupport/drawable/ic_perf_issue.xml +10 -0
- package/ReactCommon/cxxreact/JSBigString.h +14 -5
- package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +4 -5
- package/ReactCommon/cxxreact/React-cxxreact.podspec +1 -0
- package/ReactCommon/cxxreact/ReactNativeVersion.h +3 -3
- package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -0
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +2 -3
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +2 -2
- package/ReactCommon/jsinspector-modern/PerfMonitorV2.cpp +9 -1
- package/ReactCommon/jsinspector-modern/PerfMonitorV2.h +4 -1
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +1 -7
- package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +3 -55
- package/ReactCommon/jsinspector-modern/tests/TracingTest.h +82 -0
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +99 -0
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +47 -1
- package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +4 -0
- package/ReactCommon/jsitooling/React-jsitooling.podspec +1 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +5 -9
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +7 -12
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +85 -103
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +4 -6
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +5 -9
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +10 -19
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +2 -3
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +4 -27
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +6 -11
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +3 -5
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +4 -1
- package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.cpp +4 -2
- package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +7 -0
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +0 -20
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +3 -3
- package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +2 -3
- package/ReactCommon/react/runtime/ReactInstance.cpp +4 -4
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +3 -2
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +10 -6
- package/ReactCommon/react/utils/React-utils.podspec +3 -1
- package/ReactCommon/yoga/yoga/style/StyleLength.h +7 -0
- package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +7 -0
- package/package.json +10 -9
- package/sdks/hermes-engine/version.properties +1 -1
- package/src/private/components/virtualview/VirtualView.js +16 -9
- package/src/private/components/virtualview/logger/VirtualViewLogger.js +21 -0
- package/src/private/components/virtualview/logger/VirtualViewLoggerTypes.js +24 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +7 -12
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +2 -3
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +48 -0
- package/types_generated/src/private/components/virtualview/VirtualView.d.ts +3 -1
- package/React/CxxModule/RCTCxxModule.h +0 -29
- package/React/CxxModule/RCTCxxModule.mm +0 -87
- package/sdks/.hermesversion +0 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<0527dbb4a838be34b80d76b11d18cea0>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -87,6 +87,12 @@ class ReactNativeFeatureFlagsJavaProvider
|
|
|
87
87
|
return method(javaProvider_);
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
+
bool disableSubviewClippingAndroid() override {
|
|
91
|
+
static const auto method =
|
|
92
|
+
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("disableSubviewClippingAndroid");
|
|
93
|
+
return method(javaProvider_);
|
|
94
|
+
}
|
|
95
|
+
|
|
90
96
|
bool disableTextLayoutManagerCacheAndroid() override {
|
|
91
97
|
static const auto method =
|
|
92
98
|
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("disableTextLayoutManagerCacheAndroid");
|
|
@@ -429,12 +435,6 @@ class ReactNativeFeatureFlagsJavaProvider
|
|
|
429
435
|
return method(javaProvider_);
|
|
430
436
|
}
|
|
431
437
|
|
|
432
|
-
bool sweepActiveTouchOnChildNativeGesturesAndroid() override {
|
|
433
|
-
static const auto method =
|
|
434
|
-
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("sweepActiveTouchOnChildNativeGesturesAndroid");
|
|
435
|
-
return method(javaProvider_);
|
|
436
|
-
}
|
|
437
|
-
|
|
438
438
|
bool traceTurboModulePromiseRejectionsOnAndroid() override {
|
|
439
439
|
static const auto method =
|
|
440
440
|
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("traceTurboModulePromiseRejectionsOnAndroid");
|
|
@@ -477,12 +477,6 @@ class ReactNativeFeatureFlagsJavaProvider
|
|
|
477
477
|
return method(javaProvider_);
|
|
478
478
|
}
|
|
479
479
|
|
|
480
|
-
bool useOptimizedEventBatchingOnAndroid() override {
|
|
481
|
-
static const auto method =
|
|
482
|
-
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("useOptimizedEventBatchingOnAndroid");
|
|
483
|
-
return method(javaProvider_);
|
|
484
|
-
}
|
|
485
|
-
|
|
486
480
|
bool useRawPropsJsiValue() override {
|
|
487
481
|
static const auto method =
|
|
488
482
|
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("useRawPropsJsiValue");
|
|
@@ -581,6 +575,11 @@ bool JReactNativeFeatureFlagsCxxInterop::disableOldAndroidAttachmentMetricsWorka
|
|
|
581
575
|
return ReactNativeFeatureFlags::disableOldAndroidAttachmentMetricsWorkarounds();
|
|
582
576
|
}
|
|
583
577
|
|
|
578
|
+
bool JReactNativeFeatureFlagsCxxInterop::disableSubviewClippingAndroid(
|
|
579
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
580
|
+
return ReactNativeFeatureFlags::disableSubviewClippingAndroid();
|
|
581
|
+
}
|
|
582
|
+
|
|
584
583
|
bool JReactNativeFeatureFlagsCxxInterop::disableTextLayoutManagerCacheAndroid(
|
|
585
584
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
586
585
|
return ReactNativeFeatureFlags::disableTextLayoutManagerCacheAndroid();
|
|
@@ -866,11 +865,6 @@ bool JReactNativeFeatureFlagsCxxInterop::skipActivityIdentityAssertionOnHostPaus
|
|
|
866
865
|
return ReactNativeFeatureFlags::skipActivityIdentityAssertionOnHostPause();
|
|
867
866
|
}
|
|
868
867
|
|
|
869
|
-
bool JReactNativeFeatureFlagsCxxInterop::sweepActiveTouchOnChildNativeGesturesAndroid(
|
|
870
|
-
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
871
|
-
return ReactNativeFeatureFlags::sweepActiveTouchOnChildNativeGesturesAndroid();
|
|
872
|
-
}
|
|
873
|
-
|
|
874
868
|
bool JReactNativeFeatureFlagsCxxInterop::traceTurboModulePromiseRejectionsOnAndroid(
|
|
875
869
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
876
870
|
return ReactNativeFeatureFlags::traceTurboModulePromiseRejectionsOnAndroid();
|
|
@@ -906,11 +900,6 @@ bool JReactNativeFeatureFlagsCxxInterop::useNativeViewConfigsInBridgelessMode(
|
|
|
906
900
|
return ReactNativeFeatureFlags::useNativeViewConfigsInBridgelessMode();
|
|
907
901
|
}
|
|
908
902
|
|
|
909
|
-
bool JReactNativeFeatureFlagsCxxInterop::useOptimizedEventBatchingOnAndroid(
|
|
910
|
-
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
911
|
-
return ReactNativeFeatureFlags::useOptimizedEventBatchingOnAndroid();
|
|
912
|
-
}
|
|
913
|
-
|
|
914
903
|
bool JReactNativeFeatureFlagsCxxInterop::useRawPropsJsiValue(
|
|
915
904
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
916
905
|
return ReactNativeFeatureFlags::useRawPropsJsiValue();
|
|
@@ -1011,6 +1000,9 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
|
|
|
1011
1000
|
makeNativeMethod(
|
|
1012
1001
|
"disableOldAndroidAttachmentMetricsWorkarounds",
|
|
1013
1002
|
JReactNativeFeatureFlagsCxxInterop::disableOldAndroidAttachmentMetricsWorkarounds),
|
|
1003
|
+
makeNativeMethod(
|
|
1004
|
+
"disableSubviewClippingAndroid",
|
|
1005
|
+
JReactNativeFeatureFlagsCxxInterop::disableSubviewClippingAndroid),
|
|
1014
1006
|
makeNativeMethod(
|
|
1015
1007
|
"disableTextLayoutManagerCacheAndroid",
|
|
1016
1008
|
JReactNativeFeatureFlagsCxxInterop::disableTextLayoutManagerCacheAndroid),
|
|
@@ -1182,9 +1174,6 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
|
|
|
1182
1174
|
makeNativeMethod(
|
|
1183
1175
|
"skipActivityIdentityAssertionOnHostPause",
|
|
1184
1176
|
JReactNativeFeatureFlagsCxxInterop::skipActivityIdentityAssertionOnHostPause),
|
|
1185
|
-
makeNativeMethod(
|
|
1186
|
-
"sweepActiveTouchOnChildNativeGesturesAndroid",
|
|
1187
|
-
JReactNativeFeatureFlagsCxxInterop::sweepActiveTouchOnChildNativeGesturesAndroid),
|
|
1188
1177
|
makeNativeMethod(
|
|
1189
1178
|
"traceTurboModulePromiseRejectionsOnAndroid",
|
|
1190
1179
|
JReactNativeFeatureFlagsCxxInterop::traceTurboModulePromiseRejectionsOnAndroid),
|
|
@@ -1206,9 +1195,6 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
|
|
|
1206
1195
|
makeNativeMethod(
|
|
1207
1196
|
"useNativeViewConfigsInBridgelessMode",
|
|
1208
1197
|
JReactNativeFeatureFlagsCxxInterop::useNativeViewConfigsInBridgelessMode),
|
|
1209
|
-
makeNativeMethod(
|
|
1210
|
-
"useOptimizedEventBatchingOnAndroid",
|
|
1211
|
-
JReactNativeFeatureFlagsCxxInterop::useOptimizedEventBatchingOnAndroid),
|
|
1212
1198
|
makeNativeMethod(
|
|
1213
1199
|
"useRawPropsJsiValue",
|
|
1214
1200
|
JReactNativeFeatureFlagsCxxInterop::useRawPropsJsiValue),
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<a1deb0145d8c51d608903e1704e96b8d>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -54,6 +54,9 @@ class JReactNativeFeatureFlagsCxxInterop
|
|
|
54
54
|
static bool disableOldAndroidAttachmentMetricsWorkarounds(
|
|
55
55
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
56
56
|
|
|
57
|
+
static bool disableSubviewClippingAndroid(
|
|
58
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
59
|
+
|
|
57
60
|
static bool disableTextLayoutManagerCacheAndroid(
|
|
58
61
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
59
62
|
|
|
@@ -225,9 +228,6 @@ class JReactNativeFeatureFlagsCxxInterop
|
|
|
225
228
|
static bool skipActivityIdentityAssertionOnHostPause(
|
|
226
229
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
227
230
|
|
|
228
|
-
static bool sweepActiveTouchOnChildNativeGesturesAndroid(
|
|
229
|
-
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
230
|
-
|
|
231
231
|
static bool traceTurboModulePromiseRejectionsOnAndroid(
|
|
232
232
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
233
233
|
|
|
@@ -249,9 +249,6 @@ class JReactNativeFeatureFlagsCxxInterop
|
|
|
249
249
|
static bool useNativeViewConfigsInBridgelessMode(
|
|
250
250
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
251
251
|
|
|
252
|
-
static bool useOptimizedEventBatchingOnAndroid(
|
|
253
|
-
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
254
|
-
|
|
255
252
|
static bool useRawPropsJsiValue(
|
|
256
253
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
257
254
|
|
|
@@ -72,7 +72,7 @@ loadScriptFromAssets(AAssetManager* manager, const std::string& assetName) {
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
auto buf = std::make_unique<JSBigBufferString>(script->size());
|
|
75
|
-
memcpy(buf->
|
|
75
|
+
memcpy(buf->mutableData(), script->c_str(), script->size());
|
|
76
76
|
return buf;
|
|
77
77
|
}
|
|
78
78
|
}
|
|
@@ -10,11 +10,12 @@
|
|
|
10
10
|
#include <string>
|
|
11
11
|
|
|
12
12
|
#include <android/asset_manager.h>
|
|
13
|
-
#include <cxxreact/JSExecutor.h>
|
|
14
13
|
#include <fbjni/fbjni.h>
|
|
15
14
|
|
|
16
15
|
namespace facebook::react {
|
|
17
16
|
|
|
17
|
+
class JSBigString;
|
|
18
|
+
|
|
18
19
|
struct JAssetManager : jni::JavaClass<JAssetManager> {
|
|
19
20
|
static constexpr auto kJavaDescriptor = "Landroid/content/res/AssetManager;";
|
|
20
21
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
3
|
+
android:width="24dp"
|
|
4
|
+
android:height="24dp"
|
|
5
|
+
android:viewportWidth="960"
|
|
6
|
+
android:viewportHeight="960">
|
|
7
|
+
<path
|
|
8
|
+
android:fillColor="@android:color/white"
|
|
9
|
+
android:pathData="M80,880L80,160Q80,127 103.5,103.5Q127,80 160,80L800,80Q833,80 856.5,103.5Q880,127 880,160L880,640Q880,673 856.5,696.5Q833,720 800,720L240,720L80,880ZM480,600Q497,600 508.5,588.5Q520,577 520,560Q520,543 508.5,531.5Q497,520 480,520Q463,520 451.5,531.5Q440,543 440,560Q440,577 451.5,588.5Q463,600 480,600ZM440,440L520,440L520,200L440,200L440,440Z"/>
|
|
10
|
+
</vector>
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
#include <memory>
|
|
11
11
|
#include <string>
|
|
12
12
|
|
|
13
|
+
#include <jsi/jsi.h>
|
|
14
|
+
|
|
13
15
|
#ifndef RN_EXPORT
|
|
14
16
|
#ifdef _MSC_VER
|
|
15
17
|
#define RN_EXPORT
|
|
@@ -27,15 +29,17 @@ namespace facebook::react {
|
|
|
27
29
|
// large string needs to be curried into a std::function<>, which must
|
|
28
30
|
// by CopyConstructible.
|
|
29
31
|
|
|
30
|
-
class JSBigString {
|
|
32
|
+
class JSBigString : public facebook::jsi::Buffer {
|
|
31
33
|
public:
|
|
32
34
|
JSBigString() = default;
|
|
33
35
|
|
|
34
|
-
// Not copyable
|
|
36
|
+
// Not copyable or movable
|
|
35
37
|
JSBigString(const JSBigString &) = delete;
|
|
36
38
|
JSBigString &operator=(const JSBigString &) = delete;
|
|
39
|
+
JSBigString(JSBigString &&) = delete;
|
|
40
|
+
JSBigString &operator=(JSBigString &&) = delete;
|
|
37
41
|
|
|
38
|
-
|
|
42
|
+
~JSBigString() override = default;
|
|
39
43
|
|
|
40
44
|
virtual bool isAscii() const = 0;
|
|
41
45
|
|
|
@@ -43,7 +47,12 @@ class JSBigString {
|
|
|
43
47
|
virtual const char *c_str() const = 0;
|
|
44
48
|
|
|
45
49
|
// Length of the c_str without the NULL byte.
|
|
46
|
-
|
|
50
|
+
size_t size() const override = 0;
|
|
51
|
+
|
|
52
|
+
const uint8_t *data() const final
|
|
53
|
+
{
|
|
54
|
+
return reinterpret_cast<const uint8_t *>(c_str());
|
|
55
|
+
}
|
|
47
56
|
};
|
|
48
57
|
|
|
49
58
|
// Concrete JSBigString implementation which holds a std::string
|
|
@@ -105,7 +114,7 @@ class RN_EXPORT JSBigBufferString : public JSBigString {
|
|
|
105
114
|
return m_size;
|
|
106
115
|
}
|
|
107
116
|
|
|
108
|
-
char *
|
|
117
|
+
char *mutableData()
|
|
109
118
|
{
|
|
110
119
|
return m_data;
|
|
111
120
|
}
|
|
@@ -60,8 +60,8 @@ void JSIndexedRAMBundle::init() {
|
|
|
60
60
|
"header size must exactly match the input file format");
|
|
61
61
|
|
|
62
62
|
readBundle(reinterpret_cast<char*>(header), sizeof(header));
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
size_t numTableEntries = folly::Endian::little(header[1]);
|
|
64
|
+
std::streamsize startupCodeSize = folly::Endian::little(header[2]);
|
|
65
65
|
|
|
66
66
|
// allocate memory for meta data and lookup table.
|
|
67
67
|
m_table = ModuleTable(numTableEntries);
|
|
@@ -73,7 +73,7 @@ void JSIndexedRAMBundle::init() {
|
|
|
73
73
|
// read the startup code
|
|
74
74
|
m_startupCode = std::make_unique<JSBigBufferString>(startupCodeSize - 1);
|
|
75
75
|
|
|
76
|
-
readBundle(m_startupCode->
|
|
76
|
+
readBundle(m_startupCode->mutableData(), startupCodeSize - 1);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
JSIndexedRAMBundle::Module JSIndexedRAMBundle::getModule(
|
|
@@ -109,8 +109,7 @@ std::string JSIndexedRAMBundle::getModuleCode(const uint32_t id) const {
|
|
|
109
109
|
return ret;
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
void JSIndexedRAMBundle::readBundle(char* buffer,
|
|
113
|
-
const {
|
|
112
|
+
void JSIndexedRAMBundle::readBundle(char* buffer, std::streamsize bytes) const {
|
|
114
113
|
if (!m_bundle->read(buffer, bytes)) {
|
|
115
114
|
if ((m_bundle->rdstate() & std::ios::eofbit) != 0) {
|
|
116
115
|
throw std::ios_base::failure("Unexpected end of RAM Bundle file");
|
|
@@ -44,6 +44,7 @@ Pod::Spec.new do |s|
|
|
|
44
44
|
s.dependency "React-logger", version
|
|
45
45
|
s.dependency "React-debug", version
|
|
46
46
|
s.dependency "React-timing", version
|
|
47
|
+
add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"])
|
|
47
48
|
|
|
48
49
|
s.resource_bundles = {'React-cxxreact_privacy' => 'PrivacyInfo.xcprivacy'}
|
|
49
50
|
|
|
@@ -13,16 +13,16 @@
|
|
|
13
13
|
#include <string_view>
|
|
14
14
|
|
|
15
15
|
#define REACT_NATIVE_VERSION_MAJOR 0
|
|
16
|
-
#define REACT_NATIVE_VERSION_MINOR
|
|
16
|
+
#define REACT_NATIVE_VERSION_MINOR 84
|
|
17
17
|
#define REACT_NATIVE_VERSION_PATCH 0
|
|
18
18
|
|
|
19
19
|
namespace facebook::react {
|
|
20
20
|
|
|
21
21
|
constexpr struct {
|
|
22
22
|
int32_t Major = 0;
|
|
23
|
-
int32_t Minor =
|
|
23
|
+
int32_t Minor = 84;
|
|
24
24
|
int32_t Patch = 0;
|
|
25
|
-
std::string_view Prerelease = "
|
|
25
|
+
std::string_view Prerelease = "nightly-20251106-de5141a3d";
|
|
26
26
|
} ReactNativeVersion;
|
|
27
27
|
|
|
28
28
|
} // namespace facebook::react
|
|
@@ -37,6 +37,7 @@ Pod::Spec.new do |s|
|
|
|
37
37
|
add_dependency(s, "React-jsinspector", :framework_name => 'jsinspector_modern')
|
|
38
38
|
add_dependency(s, "React-jsinspectorcdp", :framework_name => 'jsinspector_moderncdp')
|
|
39
39
|
add_dependency(s, "React-jsinspectortracing", :framework_name => 'jsinspector_moderntracing')
|
|
40
|
+
add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"])
|
|
40
41
|
if use_hermes()
|
|
41
42
|
s.dependency 'hermes-engine'
|
|
42
43
|
end
|
|
@@ -168,8 +168,7 @@ void JSIExecutor::loadBundle(
|
|
|
168
168
|
ReactMarker::logTaggedMarker(
|
|
169
169
|
ReactMarker::RUN_JS_BUNDLE_START, scriptName.c_str());
|
|
170
170
|
}
|
|
171
|
-
runtime_->evaluateJavaScript(
|
|
172
|
-
std::make_unique<BigStringBuffer>(std::move(script)), sourceURL);
|
|
171
|
+
runtime_->evaluateJavaScript(std::move(script), sourceURL);
|
|
173
172
|
flush();
|
|
174
173
|
if (hasLogger) {
|
|
175
174
|
ReactMarker::logTaggedMarker(
|
|
@@ -212,7 +211,7 @@ void JSIExecutor::registerBundle(
|
|
|
212
211
|
"Empty bundle registered with ID " + tag + " from " + bundlePath);
|
|
213
212
|
}
|
|
214
213
|
runtime_->evaluateJavaScript(
|
|
215
|
-
std::
|
|
214
|
+
std::move(script),
|
|
216
215
|
JSExecutor::getSyntheticBundlePath(bundleId, bundlePath));
|
|
217
216
|
}
|
|
218
217
|
ReactMarker::logTaggedMarker(
|
|
@@ -49,7 +49,7 @@ namespace facebook::react {
|
|
|
49
49
|
using JSIScopedTimeoutInvoker =
|
|
50
50
|
std::function<void(const std::function<void()> &invokee, std::function<std::string()> errorMessageProducer)>;
|
|
51
51
|
|
|
52
|
-
class BigStringBuffer : public jsi::Buffer {
|
|
52
|
+
class [[deprecated("JSBigString implements jsi::Buffer directly")]] BigStringBuffer : public jsi::Buffer {
|
|
53
53
|
public:
|
|
54
54
|
BigStringBuffer(std::unique_ptr<const JSBigString> script) : script_(std::move(script)) {}
|
|
55
55
|
|
|
@@ -60,7 +60,7 @@ class BigStringBuffer : public jsi::Buffer {
|
|
|
60
60
|
|
|
61
61
|
const uint8_t *data() const override
|
|
62
62
|
{
|
|
63
|
-
return
|
|
63
|
+
return script_->data();
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
private:
|
|
@@ -21,7 +21,15 @@ void PerfMonitorUpdateHandler::handlePerfIssueAdded(
|
|
|
21
21
|
delegate_.unstable_onPerfIssueAdded(
|
|
22
22
|
PerfIssuePayload{
|
|
23
23
|
.name = payload["name"].asString(),
|
|
24
|
-
.severity = payload["severity"].
|
|
24
|
+
.severity = payload["severity"].isNull()
|
|
25
|
+
? std::nullopt
|
|
26
|
+
: std::make_optional(payload["severity"].asString()),
|
|
27
|
+
.description = payload["description"].isNull()
|
|
28
|
+
? std::nullopt
|
|
29
|
+
: std::make_optional(payload["description"].asString()),
|
|
30
|
+
.learnMoreUrl = payload["learnMoreUrl"].isNull()
|
|
31
|
+
? std::nullopt
|
|
32
|
+
: std::make_optional(payload["learnMoreUrl"].asString()),
|
|
25
33
|
});
|
|
26
34
|
}
|
|
27
35
|
}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
9
9
|
|
|
10
|
+
#include <optional>
|
|
10
11
|
#include <string>
|
|
11
12
|
|
|
12
13
|
namespace facebook::react::jsinspector_modern {
|
|
@@ -15,7 +16,9 @@ class HostTargetDelegate;
|
|
|
15
16
|
|
|
16
17
|
struct PerfIssuePayload {
|
|
17
18
|
std::string name;
|
|
18
|
-
std::string severity;
|
|
19
|
+
std::optional<std::string> severity;
|
|
20
|
+
std::optional<std::string> description;
|
|
21
|
+
std::optional<std::string> learnMoreUrl;
|
|
19
22
|
};
|
|
20
23
|
|
|
21
24
|
/**
|
|
@@ -26,12 +26,8 @@ const uint16_t TRACE_EVENT_CHUNK_SIZE = 1000;
|
|
|
26
26
|
/**
|
|
27
27
|
* The maximum number of ProfileChunk trace events
|
|
28
28
|
* that will be sent in a single CDP Tracing.dataCollected message.
|
|
29
|
-
* TODO(T219394401): Increase the size once we manage the queue on OkHTTP
|
|
30
|
-
side
|
|
31
|
-
* properly and avoid WebSocket disconnections when sending a message larger
|
|
32
|
-
* than 16MB.
|
|
33
29
|
*/
|
|
34
|
-
const uint16_t PROFILE_TRACE_EVENT_CHUNK_SIZE =
|
|
30
|
+
const uint16_t PROFILE_TRACE_EVENT_CHUNK_SIZE = 10;
|
|
35
31
|
|
|
36
32
|
} // namespace
|
|
37
33
|
|
|
@@ -53,7 +49,6 @@ TracingAgent::~TracingAgent() {
|
|
|
53
49
|
|
|
54
50
|
bool TracingAgent::handleRequest(const cdp::PreparsedRequest& req) {
|
|
55
51
|
if (req.method == "Tracing.start") {
|
|
56
|
-
// @cdp Tracing.start support is experimental.
|
|
57
52
|
if (sessionState_.isDebuggerDomainEnabled) {
|
|
58
53
|
frontendChannel_(
|
|
59
54
|
cdp::jsonError(
|
|
@@ -81,7 +76,6 @@ bool TracingAgent::handleRequest(const cdp::PreparsedRequest& req) {
|
|
|
81
76
|
|
|
82
77
|
return true;
|
|
83
78
|
} else if (req.method == "Tracing.end") {
|
|
84
|
-
// @cdp Tracing.end support is experimental.
|
|
85
79
|
auto state = hostTargetController_.stopTracing();
|
|
86
80
|
|
|
87
81
|
sessionState_.hasPendingTraceRecording = false;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
#include "
|
|
8
|
+
#include "TracingTest.h"
|
|
9
9
|
#include "engines/JsiIntegrationTestHermesEngineAdapter.h"
|
|
10
10
|
|
|
11
11
|
#include <folly/executors/QueuedImmediateExecutor.h>
|
|
@@ -31,13 +31,13 @@ struct NetworkReporterTestParams {
|
|
|
31
31
|
*/
|
|
32
32
|
template <typename Params>
|
|
33
33
|
requires std::convertible_to<Params, NetworkReporterTestParams>
|
|
34
|
-
class NetworkReporterTestBase : public
|
|
34
|
+
class NetworkReporterTestBase : public TracingTestBase<
|
|
35
35
|
JsiIntegrationTestHermesEngineAdapter,
|
|
36
36
|
folly::QueuedImmediateExecutor>,
|
|
37
37
|
public WithParamInterface<Params> {
|
|
38
38
|
protected:
|
|
39
39
|
NetworkReporterTestBase()
|
|
40
|
-
:
|
|
40
|
+
: TracingTestBase({
|
|
41
41
|
.networkInspectionEnabled = true,
|
|
42
42
|
.enableNetworkEventReporting =
|
|
43
43
|
WithParamInterface<Params>::GetParam()
|
|
@@ -68,58 +68,6 @@ class NetworkReporterTestBase : public JsiIntegrationPortableTestBase<
|
|
|
68
68
|
urlMatcher);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
void startTracing() {
|
|
72
|
-
this->expectMessageFromPage(JsonEq(R"({
|
|
73
|
-
"id": 1,
|
|
74
|
-
"result": {}
|
|
75
|
-
})"));
|
|
76
|
-
|
|
77
|
-
this->toPage_->sendMessage(R"({
|
|
78
|
-
"id": 1,
|
|
79
|
-
"method": "Tracing.start"
|
|
80
|
-
})");
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Helper method to end tracing and collect all trace events from potentially
|
|
85
|
-
* multiple chunked Tracing.dataCollected messages.
|
|
86
|
-
* \returns A vector containing all collected trace events
|
|
87
|
-
*/
|
|
88
|
-
std::vector<folly::dynamic> endTracingAndCollectEvents() {
|
|
89
|
-
InSequence s;
|
|
90
|
-
|
|
91
|
-
this->expectMessageFromPage(JsonEq(R"({
|
|
92
|
-
"id": 1,
|
|
93
|
-
"result": {}
|
|
94
|
-
})"));
|
|
95
|
-
|
|
96
|
-
std::vector<folly::dynamic> allTraceEvents;
|
|
97
|
-
|
|
98
|
-
EXPECT_CALL(
|
|
99
|
-
fromPage(),
|
|
100
|
-
onMessage(JsonParsed(AtJsonPtr("/method", "Tracing.dataCollected"))))
|
|
101
|
-
.Times(AtLeast(1))
|
|
102
|
-
.WillRepeatedly(Invoke([&allTraceEvents](const std::string& message) {
|
|
103
|
-
auto parsedMessage = folly::parseJson(message);
|
|
104
|
-
auto& events = parsedMessage.at("params").at("value");
|
|
105
|
-
allTraceEvents.insert(
|
|
106
|
-
allTraceEvents.end(),
|
|
107
|
-
std::make_move_iterator(events.begin()),
|
|
108
|
-
std::make_move_iterator(events.end()));
|
|
109
|
-
}));
|
|
110
|
-
|
|
111
|
-
this->expectMessageFromPage(JsonParsed(AllOf(
|
|
112
|
-
AtJsonPtr("/method", "Tracing.tracingComplete"),
|
|
113
|
-
AtJsonPtr("/params/dataLossOccurred", false))));
|
|
114
|
-
|
|
115
|
-
this->toPage_->sendMessage(R"({
|
|
116
|
-
"id": 1,
|
|
117
|
-
"method": "Tracing.end"
|
|
118
|
-
})");
|
|
119
|
-
|
|
120
|
-
return allTraceEvents;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
71
|
private:
|
|
124
72
|
std::optional<std::string> getScriptUrlById(const std::string& scriptId) {
|
|
125
73
|
auto it = scriptUrlsById_.find(scriptId);
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "JsiIntegrationTest.h"
|
|
11
|
+
|
|
12
|
+
#include <folly/dynamic.h>
|
|
13
|
+
#include <folly/json.h>
|
|
14
|
+
#include <gmock/gmock.h>
|
|
15
|
+
#include <vector>
|
|
16
|
+
|
|
17
|
+
#include "FollyDynamicMatchers.h"
|
|
18
|
+
|
|
19
|
+
namespace facebook::react::jsinspector_modern {
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Base test class providing tracing-related test utilities for tests.
|
|
23
|
+
*/
|
|
24
|
+
template <typename EngineAdapter, typename Executor>
|
|
25
|
+
class TracingTestBase : public JsiIntegrationPortableTestBase<EngineAdapter, Executor> {
|
|
26
|
+
protected:
|
|
27
|
+
using JsiIntegrationPortableTestBase<EngineAdapter, Executor>::JsiIntegrationPortableTestBase;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Helper method to start tracing via Tracing.start CDP command.
|
|
31
|
+
*/
|
|
32
|
+
void startTracing()
|
|
33
|
+
{
|
|
34
|
+
this->expectMessageFromPage(JsonEq(R"({
|
|
35
|
+
"id": 1,
|
|
36
|
+
"result": {}
|
|
37
|
+
})"));
|
|
38
|
+
|
|
39
|
+
this->toPage_->sendMessage(R"({
|
|
40
|
+
"id": 1,
|
|
41
|
+
"method": "Tracing.start"
|
|
42
|
+
})");
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Helper method to end tracing and collect all trace events from potentially
|
|
47
|
+
* multiple chunked Tracing.dataCollected messages.
|
|
48
|
+
* \returns A vector containing all collected trace events
|
|
49
|
+
*/
|
|
50
|
+
std::vector<folly::dynamic> endTracingAndCollectEvents()
|
|
51
|
+
{
|
|
52
|
+
testing::InSequence s;
|
|
53
|
+
|
|
54
|
+
this->expectMessageFromPage(JsonEq(R"({
|
|
55
|
+
"id": 1,
|
|
56
|
+
"result": {}
|
|
57
|
+
})"));
|
|
58
|
+
|
|
59
|
+
std::vector<folly::dynamic> allTraceEvents;
|
|
60
|
+
|
|
61
|
+
EXPECT_CALL(this->fromPage(), onMessage(JsonParsed(AtJsonPtr("/method", "Tracing.dataCollected"))))
|
|
62
|
+
.Times(testing::AtLeast(1))
|
|
63
|
+
.WillRepeatedly(testing::Invoke([&allTraceEvents](const std::string &message) {
|
|
64
|
+
auto parsedMessage = folly::parseJson(message);
|
|
65
|
+
auto &events = parsedMessage.at("params").at("value");
|
|
66
|
+
allTraceEvents.insert(
|
|
67
|
+
allTraceEvents.end(), std::make_move_iterator(events.begin()), std::make_move_iterator(events.end()));
|
|
68
|
+
}));
|
|
69
|
+
|
|
70
|
+
this->expectMessageFromPage(JsonParsed(
|
|
71
|
+
testing::AllOf(AtJsonPtr("/method", "Tracing.tracingComplete"), AtJsonPtr("/params/dataLossOccurred", false))));
|
|
72
|
+
|
|
73
|
+
this->toPage_->sendMessage(R"({
|
|
74
|
+
"id": 1,
|
|
75
|
+
"method": "Tracing.end"
|
|
76
|
+
})");
|
|
77
|
+
|
|
78
|
+
return allTraceEvents;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
} // namespace facebook::react::jsinspector_modern
|