react-native-tvos 0.83.2-0 → 0.84.0-0
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/Animated/AnimatedEvent.js +2 -2
- package/Libraries/Animated/animations/Animation.js +1 -3
- package/Libraries/Animated/createAnimatedComponent.js +8 -5
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +40 -4
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
- package/Libraries/Animated/nodes/AnimatedObject.js +16 -11
- package/Libraries/Animated/nodes/AnimatedProps.js +43 -12
- package/Libraries/Animated/nodes/AnimatedStyle.js +12 -12
- package/Libraries/Animated/nodes/AnimatedValue.js +6 -3
- package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
- package/Libraries/AppDelegate/RCTReactNativeFactory.h +3 -0
- package/Libraries/AppDelegate/RCTReactNativeFactory.mm +33 -31
- package/Libraries/AppDelegate/RCTRootViewFactory.h +10 -4
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +21 -5
- package/Libraries/BatchedBridge/MessageQueue.js +24 -22
- package/Libraries/Blob/RCTBlobPlugins.mm +14 -14
- package/Libraries/Blob/URL.js +34 -3
- package/Libraries/Blob/URLSearchParams.js +1 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +9 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +6 -1
- package/Libraries/Components/Button.js +2 -5
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +4 -4
- package/Libraries/Components/Keyboard/Keyboard.js +2 -2
- package/Libraries/Components/Pressable/Pressable.js +8 -8
- package/Libraries/Components/TextInput/TextInput.flow.js +13 -13
- package/Libraries/Components/TextInput/TextInput.js +33 -34
- package/Libraries/Components/Touchable/PooledClass.js +2 -2
- package/Libraries/Components/Touchable/TouchableBounce.js +6 -6
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +9 -9
- package/Libraries/Components/View/ViewPropTypes.js +16 -6
- package/Libraries/Core/Devtools/loadBundleFromServer.js +6 -3
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +3 -3
- package/Libraries/Core/RawEventEmitter.js +1 -1
- package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpErrorHandling.js +1 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +2 -2
- package/Libraries/Image/Image.android.js +2 -2
- package/Libraries/Image/Image.ios.js +2 -2
- package/Libraries/Image/ImageProps.js +1 -1
- package/Libraries/Image/ImageTypes.flow.js +2 -2
- package/Libraries/Image/RCTImagePlugins.h +1 -0
- package/Libraries/Image/RCTImagePlugins.mm +30 -17
- package/Libraries/Interaction/InteractionManager.js +3 -3
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/LinkingIOS/RCTLinkingPlugins.mm +10 -13
- package/Libraries/Lists/FlatList.js +2 -2
- package/Libraries/LogBox/Data/LogBoxData.js +31 -4
- package/Libraries/LogBox/Data/LogBoxLog.js +2 -2
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -5
- package/Libraries/LogBox/LogBox.js +7 -7
- package/Libraries/NativeAnimation/RCTAnimationPlugins.mm +14 -14
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +7 -0
- package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +12 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +4 -4
- package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -1
- package/Libraries/Network/RCTInspectorNetworkReporter.mm +26 -3
- package/Libraries/Network/RCTNetworkPlugins.mm +22 -16
- package/Libraries/Network/RCTNetworking.android.js +3 -3
- package/Libraries/Network/RCTNetworking.ios.js +2 -2
- package/Libraries/Network/RCTNetworking.js.flow +2 -2
- package/Libraries/Pressability/Pressability.js +9 -9
- package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.mm +10 -13
- package/Libraries/ReactNative/AppRegistry.flow.js +1 -1
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
- package/Libraries/ReactNative/FabricUIManager.js +1 -1
- package/Libraries/ReactNative/PaperUIManager.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +2 -2
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +1 -1
- package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +11 -4
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +11 -4
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +11 -4
- package/Libraries/Renderer/shims/ReactFabric.js +3 -1
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
- package/Libraries/Renderer/shims/ReactNative.js +2 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
- package/Libraries/Settings/RCTSettingsManager.mm +1 -1
- package/Libraries/Settings/RCTSettingsPlugins.mm +10 -13
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +4 -2
- package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +99 -4
- package/Libraries/StyleSheet/StyleSheetTypes.js +6 -8
- package/Libraries/StyleSheet/processFilter.js +1 -1
- package/Libraries/Text/Text.js +46 -6
- package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +3 -2
- package/Libraries/Text/TextNativeComponent.js +1 -1
- package/Libraries/Text/TextProps.js +7 -7
- package/Libraries/TypeSafety/RCTTypedModuleConstants.h +36 -1
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.js +31 -0
- package/Libraries/Types/ReactDevToolsTypes.js +2 -2
- package/Libraries/Utilities/Appearance.js +2 -2
- package/Libraries/Utilities/DevLoadingView.js +8 -1
- package/Libraries/Utilities/DevSettings.js +3 -3
- package/Libraries/Utilities/HMRClient.js +4 -3
- package/Libraries/Utilities/RCTLog.js +3 -3
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +1 -1
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +3 -3
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +7 -7
- package/Libraries/Utilities/useRefEffect.js +1 -1
- package/Libraries/Vibration/RCTVibrationPlugins.mm +10 -13
- package/Libraries/WebSocket/WebSocketInterceptor.js +3 -3
- package/Libraries/promiseRejectionTrackingOptions.js +8 -8
- package/Libraries/vendor/core/ErrorUtils.js +10 -10
- package/Libraries/vendor/emitter/EventEmitter.js +6 -6
- package/README.md +56 -18
- package/React/Base/RCTAssert.m +2 -2
- package/React/Base/RCTBridge.h +0 -4
- package/React/Base/RCTBridge.mm +1 -12
- package/React/Base/RCTBundleManager.h +59 -7
- package/React/Base/RCTBundleManager.m +112 -1
- package/React/Base/RCTBundleURLProvider.h +24 -0
- package/React/Base/RCTBundleURLProvider.mm +49 -4
- package/React/Base/RCTConvert.mm +2 -0
- package/React/Base/RCTModuleData.mm +2 -2
- package/React/Base/RCTUtils.h +4 -0
- package/React/Base/RCTUtils.mm +60 -3
- package/React/Base/RCTVersion.m +2 -2
- package/React/CoreModules/CoreModulesPlugins.mm +97 -35
- package/React/CoreModules/PlatformStubs/RCTStatusBarManager.mm +1 -1
- package/React/CoreModules/RCTAccessibilityManager.mm +18 -1
- package/React/CoreModules/RCTAppState.mm +1 -1
- package/React/CoreModules/RCTDevLoadingView.mm +116 -36
- package/React/CoreModules/RCTDevSettings.h +36 -1
- package/React/CoreModules/RCTDevSettings.mm +44 -8
- package/React/CoreModules/RCTExceptionsManager.mm +5 -2
- package/React/CoreModules/RCTPlatform.mm +3 -2
- package/React/CoreModules/RCTStatusBarManager.mm +1 -1
- package/React/CxxBridge/RCTCxxBridge.mm +1 -2
- package/React/CxxModule/RCTCxxMethod.mm +1 -1
- package/React/CxxModule/RCTCxxUtils.mm +2 -12
- package/React/DevSupport/RCTDevLoadingViewProtocol.h +4 -1
- package/React/DevSupport/RCTPackagerConnection.h +4 -2
- package/React/DevSupport/RCTPackagerConnection.mm +30 -33
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +9 -2
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +62 -17
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +529 -494
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.h +1 -0
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +14 -0
- package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +11 -0
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +6 -0
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +2 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +39 -2
- package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +5 -7
- package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.mm +5 -7
- package/React/Fabric/RCTSurfaceTouchHandler.mm +1 -1
- package/React/Fabric/Surface/RCTFabricSurface.mm +1 -1
- package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +6 -2
- package/React/Modules/RCTEventEmitter.m +1 -0
- package/React/Views/RCTModalHostView.h +2 -0
- package/React/Views/RCTTVView.m +2 -0
- package/ReactAndroid/api/ReactAndroid.api +14 -73
- package/ReactAndroid/build.gradle.kts +2 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/hermes-engine/build.gradle.kts +97 -29
- package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +10 -13
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +1 -119
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.kt +0 -10
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.kt +4 -29
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +43 -2
- package/ReactAndroid/src/main/java/com/facebook/react/ViewManagerOnDemandReactPackage.kt +53 -4
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +0 -18
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +6 -96
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +17 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.kt +1 -33
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/Promise.kt +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/PromiseImpl.kt +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.kt +1 -12
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.kt +4 -5
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ChangeBundleLocationDialog.kt +11 -10
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +99 -9
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +58 -13
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +10 -60
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +144 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingState.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingStateListener.kt +15 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/{interfaces → inspector}/TracingStateProvider.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevLoadingViewManager.kt +6 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/RedBoxHandler.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorInspectorTargetBinding.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +31 -6
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +7 -6
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorUpdateListener.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +63 -45
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +106 -76
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +22 -16
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +23 -17
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +117 -84
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +22 -16
- package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +5 -43
- package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.kt +0 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +36 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/FpsDebugFrameCallback.kt +3 -27
- package/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.kt +7 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +23 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt +15 -8
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +0 -9
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +46 -12
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +11 -17
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +52 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +92 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +62 -8
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSKeyDispatcher.kt +65 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +19 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +5 -36
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +9 -91
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAxOrderHelper.kt +47 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +4 -23
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +1 -7
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +1 -11
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -47
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +0 -16
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutlineDrawable.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +3 -36
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyDownEvent.kt +23 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyEvent.kt +156 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyUpEvent.kt +24 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +29 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +12 -9
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +36 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +21 -11
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewAccessibilityDelegate.kt +31 -15
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +127 -32
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +11 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +3 -11
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +3 -12
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +29 -2
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +98 -3
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +62 -26
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +145 -103
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +31 -22
- package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/CMakeLists.txt +0 -4
- package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +1 -3
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +5 -23
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +2 -7
- package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapperBase.h +0 -24
- 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/jni/react/jni/JavaModuleWrapper.cpp +0 -1
- package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.cpp +1 -29
- package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.h +1 -2
- package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +0 -4
- package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/CMakeLists.txt +0 -4
- package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +0 -4
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +145 -17
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +193 -19
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +2 -1
- package/ReactAndroid/src/main/jni/react/tracing/PerformanceTracerCxxInterop.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +62 -63
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +5 -7
- package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +1 -0
- package/ReactAndroid/src/main/res/devsupport/drawable/ic_perf_issue.xml +10 -0
- package/ReactAndroid/src/main/res/devsupport/layout/dev_loading_view.xml +41 -15
- package/ReactAndroid/src/main/res/devsupport/layout/fps_view.xml +1 -1
- package/ReactAndroid/src/main/res/devsupport/values/strings.xml +1 -0
- package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +16 -0
- package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.h +2 -0
- package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm +38 -5
- package/ReactCommon/cmake-utils/react-native-flags.cmake +3 -0
- package/ReactCommon/cxxreact/JSBigString.h +14 -5
- package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +4 -5
- package/ReactCommon/cxxreact/ReactMarker.cpp +0 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +4 -4
- package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.cpp +1 -1
- package/ReactCommon/hermes/React-hermes.podspec +1 -0
- package/ReactCommon/hermes/executor/CMakeLists.txt +0 -4
- package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +2 -0
- package/ReactCommon/hermes/inspector-modern/CMakeLists.txt +0 -4
- package/ReactCommon/jsi/jsi/jsi.cpp +6 -1
- package/ReactCommon/jsi/jsi/jsi.h +73 -0
- package/ReactCommon/jsi/jsi/test/testlib.cpp +2 -2
- package/ReactCommon/jsiexecutor/CMakeLists.txt +3 -1
- package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +3 -0
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +2 -43
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +3 -8
- package/ReactCommon/jsinspector-modern/ConsoleTask.cpp +27 -0
- package/ReactCommon/jsinspector-modern/ConsoleTask.h +38 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskContext.cpp +46 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskContext.h +102 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.cpp +55 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.h +48 -0
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +9 -10
- package/ReactCommon/jsinspector-modern/HostAgent.h +2 -2
- package/ReactCommon/jsinspector-modern/HostTarget.cpp +7 -6
- package/ReactCommon/jsinspector-modern/HostTarget.h +73 -16
- package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +40 -8
- package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h +42 -5
- package/ReactCommon/jsinspector-modern/HostTargetTracing.cpp +54 -21
- package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +2 -11
- package/ReactCommon/jsinspector-modern/InstanceTarget.h +2 -2
- package/ReactCommon/jsinspector-modern/PerfMonitorV2.cpp +9 -1
- package/ReactCommon/jsinspector-modern/PerfMonitorV2.h +4 -1
- package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +3 -2
- package/ReactCommon/jsinspector-modern/RuntimeAgent.h +1 -1
- package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +12 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.h +16 -13
- package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +106 -1
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +30 -18
- package/ReactCommon/jsinspector-modern/TracingAgent.h +5 -4
- package/ReactCommon/jsinspector-modern/tests/ConsoleCreateTaskTest.cpp +131 -0
- package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +53 -0
- package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +20 -0
- package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +25 -55
- package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +1 -0
- package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +116 -0
- package/ReactCommon/jsinspector-modern/tests/TracingTest.h +95 -0
- package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +60 -0
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +43 -0
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +144 -0
- package/ReactCommon/jsinspector-modern/tracing/{TraceRecordingStateSerializer.h → HostTracingProfileSerializer.h} +16 -8
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +67 -16
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +21 -2
- package/ReactCommon/jsinspector-modern/tracing/TargetTracingAgent.h +5 -0
- package/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h +158 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +2 -1
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +104 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +59 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +2 -1
- package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +18 -7
- package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +139 -0
- package/ReactCommon/jsinspector-modern/tracing/tests/TimeWindowedBufferTest.cpp +352 -0
- package/ReactCommon/jsitooling/React-jsitooling.podspec +4 -0
- package/ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.cpp +54 -0
- package/{ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h → ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.h} +4 -6
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +43 -31
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +55 -40
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +234 -180
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +24 -18
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +43 -31
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +91 -64
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +5 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h +0 -4
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +12 -9
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +7 -2
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +30 -10
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +17 -6
- package/ReactCommon/react/nativemodule/core/iostests/RCTTurboModuleTests.mm +0 -1
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +1 -4
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +0 -4
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +43 -60
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +11 -36
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +53 -38
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +22 -16
- package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -0
- package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +24 -3
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +76 -13
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.mm +74 -64
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +17 -13
- package/ReactCommon/react/networking/NetworkReporter.cpp +26 -22
- package/ReactCommon/react/networking/React-networking.podspec +0 -1
- package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.cpp +4 -2
- package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +10 -2
- package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
- package/ReactCommon/react/renderer/animated/AnimatedModule.cpp +104 -78
- package/ReactCommon/react/renderer/animated/AnimatedModule.h +10 -2
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +174 -75
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +19 -1
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +68 -46
- package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.cpp +1 -0
- package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.cpp +1 -1
- package/ReactCommon/react/renderer/animated/nodes/ColorAnimatedNode.cpp +0 -1
- package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.cpp +103 -4
- package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h +9 -0
- package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +5 -1
- package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +9 -0
- package/ReactCommon/react/renderer/animated/nodes/RoundAnimatedNode.cpp +1 -1
- package/ReactCommon/react/renderer/animated/nodes/ValueAnimatedNode.cpp +1 -1
- package/ReactCommon/react/renderer/animated/tests/AnimatedNodeTests.cpp +67 -0
- package/ReactCommon/react/renderer/animated/tests/AnimationDriverTests.cpp +59 -0
- package/ReactCommon/react/renderer/animated/tests/AnimationTestsBase.h +2 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +715 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedProps.h +388 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsBuilder.h +191 -2
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +100 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +298 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsSerializer.h +17 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +90 -94
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +23 -5
- package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.cpp +75 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +32 -0
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +2 -2
- package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +3 -0
- package/ReactCommon/react/renderer/components/image/ImageProps.cpp +2 -2
- package/ReactCommon/react/renderer/components/image/ImageProps.h +2 -2
- package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +9 -2
- package/ReactCommon/react/renderer/components/image/conversions.h +5 -0
- package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +2 -1
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +5 -1
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +21 -1
- package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +14 -0
- package/ReactCommon/react/renderer/core/DynamicEventPayload.cpp +10 -0
- package/ReactCommon/react/renderer/core/DynamicEventPayload.h +6 -1
- package/ReactCommon/react/renderer/core/DynamicPointerEvent.cpp +30 -0
- package/ReactCommon/react/renderer/core/DynamicPointerEvent.h +29 -0
- package/ReactCommon/react/renderer/core/EventDispatcher.cpp +1 -1
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +11 -14
- package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +3 -3
- package/ReactCommon/react/renderer/core/Props.cpp +23 -8
- package/ReactCommon/react/renderer/core/Props.h +6 -4
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +4 -10
- package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +32 -0
- package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +7 -0
- package/ReactCommon/react/renderer/debug/CMakeLists.txt +7 -0
- package/ReactCommon/react/renderer/debug/flags.h +3 -2
- package/ReactCommon/react/renderer/graphics/BlendMode.h +2 -0
- package/ReactCommon/react/renderer/graphics/Filter.h +2 -0
- package/ReactCommon/react/renderer/imagemanager/ImageManager.h +3 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +23 -12
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +8 -3
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +16 -4
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +9 -4
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +8 -4
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
- package/ReactCommon/react/renderer/imagemanager/primitives.h +15 -6
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +0 -11
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +0 -4
- 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/renderer/uimanager/UIManager.cpp +6 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +1 -0
- package/ReactCommon/react/runtime/CMakeLists.txt +0 -4
- package/ReactCommon/react/runtime/PlatformTimerRegistry.h +2 -0
- package/ReactCommon/react/runtime/ReactInstance.cpp +21 -14
- package/ReactCommon/react/runtime/ReactInstance.h +5 -1
- package/ReactCommon/react/runtime/TimerManager.cpp +11 -53
- package/ReactCommon/react/runtime/TimerManager.h +7 -12
- package/ReactCommon/react/runtime/hermes/CMakeLists.txt +0 -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/yoga/yoga/algorithm/FlexDirection.h +6 -6
- package/ReactCommon/yoga/yoga/algorithm/SizingMode.h +4 -4
- package/ReactCommon/yoga/yoga/style/Style.h +8 -8
- package/ReactCommon/yoga/yoga/style/StyleLength.h +7 -0
- package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +7 -0
- package/flow/HermesInternalType.js +6 -6
- package/flow/bom.js.flow +35 -28
- package/flow/cssom.js.flow +3 -3
- package/flow/dom.js.flow +34 -33
- package/index.js +3 -0
- package/index.js.flow +8 -0
- package/jest/mock.js +2 -2
- package/jest/mockComponent.js +1 -1
- package/jest/setup.js +1 -1
- package/package.json +11 -11
- package/react-native.config.js +0 -17
- package/scripts/cocoapods/new_architecture.rb +7 -1
- package/scripts/cocoapods/spm.rb +28 -10
- package/scripts/cocoapods/utils.rb +4 -4
- package/scripts/codegen/generate-artifacts-executor/generateRCTThirdPartyComponents.js +5 -5
- package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +7 -6
- package/scripts/ios-configure-glog.sh +24 -1
- package/scripts/react_native_pods.rb +13 -0
- package/sdks/.hermesv1version +1 -1
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/hermes-engine.podspec +53 -36
- package/sdks/hermes-engine/hermes-utils.rb +8 -15
- package/sdks/hermes-engine/version.properties +1 -1
- package/src/private/animated/NativeAnimatedHelper.js +130 -125
- package/src/private/animated/NativeAnimatedValidation.js +7 -4
- package/src/private/animated/createAnimatedPropsHook.js +13 -5
- package/src/private/animated/createAnimatedPropsMemoHook.js +10 -10
- 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/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +6 -25
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -27
- package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +3 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +63 -42
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +12 -9
- package/src/private/renderer/errorhandling/ErrorHandlers.js +7 -4
- package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +4 -0
- package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -0
- package/src/private/webapis/dom/events/CustomEvent.js +3 -3
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +29 -29
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +1 -1
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +2 -0
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
- package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +4 -1
- package/src/private/webapis/geometry/DOMRectReadOnly.js +1 -1
- package/src/private/webapis/html/events/MessageEvent.js +3 -3
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +3 -3
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +53 -5
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +2 -2
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +4 -4
- package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
- package/src/private/webapis/mutationobserver/MutationObserver.js +1 -1
- package/src/private/webapis/mutationobserver/MutationRecord.js +1 -1
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -4
- package/src/private/webapis/performance/Performance.js +1 -1
- package/src/private/webapis/performance/UserTiming.js +1 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +3 -3
- package/src/private/webapis/structuredClone/structuredClone.js +3 -3
- package/src/types/globals.d.ts +30 -1
- package/third-party-podspecs/RCT-Folly.podspec +1 -0
- package/third-party-podspecs/glog.podspec +1 -0
- package/React/CxxModule/RCTCxxModule.h +0 -29
- package/React/CxxModule/RCTCxxModule.mm +0 -87
- package/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.kt +0 -146
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CallbackImpl.kt +0 -45
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapper.kt +0 -25
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt +0 -61
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener.kt +0 -36
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/OnBatchCompleteListener.kt +0 -21
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.kt +0 -54
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.kt +0 -78
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.kt +0 -105
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/TracingState.kt +0 -19
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.kt +0 -157
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeKind.kt +0 -32
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.kt +0 -30
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.kt +0 -87
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationListener.kt +0 -23
- package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.h +0 -37
- package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +0 -20
- package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.cpp +0 -175
- package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.h +0 -75
- package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.cpp +0 -68
- package/ReactCommon/jsinspector-modern/tracing/TracingState.h +0 -24
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.cpp +0 -212
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.h +0 -40
- package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +0 -628
- package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +0 -66
- package/tvosCommands.js +0 -51
- /package/ReactCommon/jsi/jsi/{hermes.h → hermes-interfaces.h} +0 -0
|
@@ -0,0 +1,102 @@
|
|
|
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 "StackTrace.h"
|
|
11
|
+
|
|
12
|
+
#include <folly/dynamic.h>
|
|
13
|
+
#include <jsi/jsi.h>
|
|
14
|
+
|
|
15
|
+
#include <cassert>
|
|
16
|
+
#include <functional>
|
|
17
|
+
#include <memory>
|
|
18
|
+
#include <string>
|
|
19
|
+
|
|
20
|
+
namespace facebook::react::jsinspector_modern {
|
|
21
|
+
|
|
22
|
+
class ConsoleTaskOrchestrator;
|
|
23
|
+
class RuntimeTargetDelegate;
|
|
24
|
+
|
|
25
|
+
class ConsoleTaskId {
|
|
26
|
+
public:
|
|
27
|
+
ConsoleTaskId() = default;
|
|
28
|
+
~ConsoleTaskId() = default;
|
|
29
|
+
|
|
30
|
+
ConsoleTaskId(const ConsoleTaskId &) = default;
|
|
31
|
+
ConsoleTaskId &operator=(const ConsoleTaskId &) = default;
|
|
32
|
+
|
|
33
|
+
ConsoleTaskId(ConsoleTaskId &&) = default;
|
|
34
|
+
ConsoleTaskId &operator=(ConsoleTaskId &&) = default;
|
|
35
|
+
|
|
36
|
+
bool operator==(const ConsoleTaskId &) const = default;
|
|
37
|
+
inline operator bool() const
|
|
38
|
+
{
|
|
39
|
+
return (bool)id_;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
explicit inline operator void *() const
|
|
43
|
+
{
|
|
44
|
+
return id_;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
private:
|
|
48
|
+
explicit inline ConsoleTaskId(void *id) : id_(id)
|
|
49
|
+
{
|
|
50
|
+
assert(id_ != nullptr);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
void *id_{nullptr};
|
|
54
|
+
|
|
55
|
+
friend class ConsoleTaskContext;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
class ConsoleTaskContext : public std::enable_shared_from_this<ConsoleTaskContext> {
|
|
59
|
+
public:
|
|
60
|
+
ConsoleTaskContext(jsi::Runtime &runtime, RuntimeTargetDelegate &runtimeTargetDelegate, std::string name);
|
|
61
|
+
~ConsoleTaskContext();
|
|
62
|
+
|
|
63
|
+
// Can't be moved or copied: the address of `ConsoleTaskContext` is used to
|
|
64
|
+
// identify this task and all corresponding invocations.
|
|
65
|
+
ConsoleTaskContext(const ConsoleTaskContext &) = delete;
|
|
66
|
+
ConsoleTaskContext &operator=(const ConsoleTaskContext &) = delete;
|
|
67
|
+
|
|
68
|
+
ConsoleTaskContext(ConsoleTaskContext &&) = delete;
|
|
69
|
+
ConsoleTaskContext &operator=(ConsoleTaskContext &&) = delete;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Unique identifier that is calculated based on the address of
|
|
73
|
+
* ConsoleTaskContext.
|
|
74
|
+
*/
|
|
75
|
+
ConsoleTaskId id() const;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Returns the serialized stack trace that was captured during the allocation
|
|
79
|
+
* of ConsoleTaskContext.
|
|
80
|
+
*/
|
|
81
|
+
std::optional<folly::dynamic> getSerializedStackTrace() const;
|
|
82
|
+
|
|
83
|
+
void schedule();
|
|
84
|
+
|
|
85
|
+
private:
|
|
86
|
+
RuntimeTargetDelegate &runtimeTargetDelegate_;
|
|
87
|
+
std::string name_;
|
|
88
|
+
ConsoleTaskOrchestrator &orchestrator_;
|
|
89
|
+
std::unique_ptr<StackTrace> stackTrace_;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
} // namespace facebook::react::jsinspector_modern
|
|
93
|
+
|
|
94
|
+
namespace std {
|
|
95
|
+
template <>
|
|
96
|
+
struct hash<facebook::react::jsinspector_modern::ConsoleTaskId> {
|
|
97
|
+
size_t operator()(const facebook::react::jsinspector_modern::ConsoleTaskId &id) const
|
|
98
|
+
{
|
|
99
|
+
return std::hash<void *>{}(static_cast<void *>(id));
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
} // namespace std
|
|
@@ -0,0 +1,55 @@
|
|
|
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
|
+
#include "ConsoleTaskOrchestrator.h"
|
|
9
|
+
|
|
10
|
+
namespace facebook::react::jsinspector_modern {
|
|
11
|
+
|
|
12
|
+
/* static */ ConsoleTaskOrchestrator& ConsoleTaskOrchestrator::getInstance() {
|
|
13
|
+
static ConsoleTaskOrchestrator instance;
|
|
14
|
+
return instance;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
void ConsoleTaskOrchestrator::scheduleTask(
|
|
18
|
+
ConsoleTaskId taskId,
|
|
19
|
+
std::weak_ptr<ConsoleTaskContext> taskContext) {
|
|
20
|
+
std::lock_guard<std::mutex> lock(mutex_);
|
|
21
|
+
tasks_.emplace(taskId, taskContext);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
void ConsoleTaskOrchestrator::cancelTask(ConsoleTaskId id) {
|
|
25
|
+
std::lock_guard<std::mutex> lock(mutex_);
|
|
26
|
+
tasks_.erase(id);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
void ConsoleTaskOrchestrator::startTask(ConsoleTaskId id) {
|
|
30
|
+
std::lock_guard<std::mutex> lock(mutex_);
|
|
31
|
+
stack_.push(id);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
void ConsoleTaskOrchestrator::finishTask(ConsoleTaskId id) {
|
|
35
|
+
std::lock_guard<std::mutex> lock(mutex_);
|
|
36
|
+
assert(stack_.top() == id);
|
|
37
|
+
|
|
38
|
+
stack_.pop();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
std::shared_ptr<ConsoleTaskContext> ConsoleTaskOrchestrator::top() const {
|
|
42
|
+
std::lock_guard<std::mutex> lock(mutex_);
|
|
43
|
+
if (stack_.empty()) {
|
|
44
|
+
return nullptr;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
auto it = tasks_.find(stack_.top());
|
|
48
|
+
if (it == tasks_.end()) {
|
|
49
|
+
return nullptr;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return it->second.lock();
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
} // namespace facebook::react::jsinspector_modern
|
|
@@ -0,0 +1,48 @@
|
|
|
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 <memory>
|
|
11
|
+
#include <mutex>
|
|
12
|
+
#include <stack>
|
|
13
|
+
|
|
14
|
+
#include "ConsoleTaskContext.h"
|
|
15
|
+
|
|
16
|
+
namespace facebook::react::jsinspector_modern {
|
|
17
|
+
|
|
18
|
+
class ConsoleTaskOrchestrator {
|
|
19
|
+
public:
|
|
20
|
+
static ConsoleTaskOrchestrator &getInstance();
|
|
21
|
+
|
|
22
|
+
~ConsoleTaskOrchestrator() = default;
|
|
23
|
+
|
|
24
|
+
ConsoleTaskOrchestrator(const ConsoleTaskOrchestrator &) = delete;
|
|
25
|
+
ConsoleTaskOrchestrator &operator=(const ConsoleTaskOrchestrator &) = delete;
|
|
26
|
+
|
|
27
|
+
ConsoleTaskOrchestrator(ConsoleTaskOrchestrator &&) = delete;
|
|
28
|
+
ConsoleTaskOrchestrator &operator=(ConsoleTaskOrchestrator &&) = delete;
|
|
29
|
+
|
|
30
|
+
void scheduleTask(ConsoleTaskId taskId, std::weak_ptr<ConsoleTaskContext> taskContext);
|
|
31
|
+
void cancelTask(ConsoleTaskId taskId);
|
|
32
|
+
|
|
33
|
+
void startTask(ConsoleTaskId taskId);
|
|
34
|
+
void finishTask(ConsoleTaskId taskId);
|
|
35
|
+
std::shared_ptr<ConsoleTaskContext> top() const;
|
|
36
|
+
|
|
37
|
+
private:
|
|
38
|
+
ConsoleTaskOrchestrator() = default;
|
|
39
|
+
|
|
40
|
+
std::stack<ConsoleTaskId> stack_;
|
|
41
|
+
std::unordered_map<ConsoleTaskId, std::weak_ptr<ConsoleTaskContext>> tasks_;
|
|
42
|
+
/**
|
|
43
|
+
* Protects the stack_ and tasks_ members.
|
|
44
|
+
*/
|
|
45
|
+
mutable std::mutex mutex_;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
} // namespace facebook::react::jsinspector_modern
|
|
@@ -238,9 +238,9 @@ class HostAgent::Impl final {
|
|
|
238
238
|
|
|
239
239
|
auto stashedTraceRecording =
|
|
240
240
|
targetController_.getDelegate()
|
|
241
|
-
.
|
|
241
|
+
.unstable_getHostTracingProfileThatWillBeEmittedOnInitialization();
|
|
242
242
|
if (stashedTraceRecording.has_value()) {
|
|
243
|
-
tracingAgent_.
|
|
243
|
+
tracingAgent_.emitExternalHostTracingProfile(
|
|
244
244
|
std::move(stashedTraceRecording.value()));
|
|
245
245
|
}
|
|
246
246
|
|
|
@@ -385,12 +385,12 @@ class HostAgent::Impl final {
|
|
|
385
385
|
return fuseboxClientType_ == FuseboxClientType::Fusebox;
|
|
386
386
|
}
|
|
387
387
|
|
|
388
|
-
void
|
|
389
|
-
tracing::
|
|
388
|
+
void emitExternalTracingProfile(
|
|
389
|
+
tracing::HostTracingProfile tracingProfile) const {
|
|
390
390
|
assert(
|
|
391
391
|
hasFuseboxClientConnected() &&
|
|
392
392
|
"Attempted to emit a trace recording to a non-Fusebox client");
|
|
393
|
-
tracingAgent_.
|
|
393
|
+
tracingAgent_.emitExternalHostTracingProfile(std::move(tracingProfile));
|
|
394
394
|
}
|
|
395
395
|
|
|
396
396
|
void emitSystemStateChanged(bool isSingleHost) {
|
|
@@ -506,8 +506,7 @@ class HostAgent::Impl final {
|
|
|
506
506
|
bool hasFuseboxClientConnected() const {
|
|
507
507
|
return false;
|
|
508
508
|
}
|
|
509
|
-
void
|
|
510
|
-
}
|
|
509
|
+
void emitExternalTracingProfile(tracing::HostTracingProfile tracingProfile) {}
|
|
511
510
|
void emitSystemStateChanged(bool isSingleHost) {}
|
|
512
511
|
};
|
|
513
512
|
|
|
@@ -543,9 +542,9 @@ bool HostAgent::hasFuseboxClientConnected() const {
|
|
|
543
542
|
return impl_->hasFuseboxClientConnected();
|
|
544
543
|
}
|
|
545
544
|
|
|
546
|
-
void HostAgent::
|
|
547
|
-
tracing::
|
|
548
|
-
impl_->
|
|
545
|
+
void HostAgent::emitExternalTracingProfile(
|
|
546
|
+
tracing::HostTracingProfile tracingProfile) const {
|
|
547
|
+
impl_->emitExternalTracingProfile(std::move(tracingProfile));
|
|
549
548
|
}
|
|
550
549
|
|
|
551
550
|
void HostAgent::emitSystemStateChanged(bool isSingleHost) const {
|
|
@@ -74,10 +74,10 @@ class HostAgent final {
|
|
|
74
74
|
bool hasFuseboxClientConnected() const;
|
|
75
75
|
|
|
76
76
|
/**
|
|
77
|
-
* Emits the
|
|
77
|
+
* Emits the HostTracingProfile that was captured externally, not via the
|
|
78
78
|
* CDP-initiated request.
|
|
79
79
|
*/
|
|
80
|
-
void
|
|
80
|
+
void emitExternalTracingProfile(tracing::HostTracingProfile tracingProfile) const;
|
|
81
81
|
|
|
82
82
|
/**
|
|
83
83
|
* Emits a system state changed event when the number of ReactHost instances
|
|
@@ -111,8 +111,9 @@ class HostTargetSession {
|
|
|
111
111
|
return hostAgent_.hasFuseboxClientConnected();
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
void
|
|
115
|
-
|
|
114
|
+
void emitHostTracingProfile(
|
|
115
|
+
tracing::HostTracingProfile tracingProfile) const {
|
|
116
|
+
hostAgent_.emitExternalTracingProfile(std::move(tracingProfile));
|
|
116
117
|
}
|
|
117
118
|
|
|
118
119
|
private:
|
|
@@ -382,13 +383,13 @@ bool HostTarget::hasActiveSessionWithFuseboxClient() const {
|
|
|
382
383
|
return hasActiveFuseboxSession;
|
|
383
384
|
}
|
|
384
385
|
|
|
385
|
-
void HostTarget::
|
|
386
|
-
tracing::
|
|
386
|
+
void HostTarget::emitTracingProfileForFirstFuseboxClient(
|
|
387
|
+
tracing::HostTracingProfile tracingProfile) const {
|
|
387
388
|
bool emitted = false;
|
|
388
389
|
sessions_.forEach([&](HostTargetSession& session) {
|
|
389
390
|
if (emitted) {
|
|
390
391
|
/**
|
|
391
|
-
*
|
|
392
|
+
* HostTracingProfile object is not copiable for performance reasons,
|
|
392
393
|
* because it could contain large Runtime sampling profile object.
|
|
393
394
|
*
|
|
394
395
|
* This approach would not work with multi-client debugger setup.
|
|
@@ -396,7 +397,7 @@ void HostTarget::emitTraceRecordingForFirstFuseboxClient(
|
|
|
396
397
|
return;
|
|
397
398
|
}
|
|
398
399
|
if (session.hasFuseboxClient()) {
|
|
399
|
-
session.
|
|
400
|
+
session.emitHostTracingProfile(std::move(tracingProfile));
|
|
400
401
|
emitted = true;
|
|
401
402
|
}
|
|
402
403
|
});
|
|
@@ -17,10 +17,14 @@
|
|
|
17
17
|
#include "WeakList.h"
|
|
18
18
|
|
|
19
19
|
#include <optional>
|
|
20
|
+
#include <set>
|
|
20
21
|
#include <string>
|
|
21
22
|
|
|
23
|
+
#include <jsinspector-modern/tracing/FrameTimingSequence.h>
|
|
24
|
+
#include <jsinspector-modern/tracing/HostTracingProfile.h>
|
|
25
|
+
#include <jsinspector-modern/tracing/TraceRecordingState.h>
|
|
26
|
+
#include <jsinspector-modern/tracing/TracingCategory.h>
|
|
22
27
|
#include <jsinspector-modern/tracing/TracingMode.h>
|
|
23
|
-
#include <jsinspector-modern/tracing/TracingState.h>
|
|
24
28
|
|
|
25
29
|
#ifndef JSINSPECTOR_EXPORT
|
|
26
30
|
#ifdef _MSC_VER
|
|
@@ -53,6 +57,36 @@ struct HostTargetMetadata {
|
|
|
53
57
|
std::optional<std::string> reactNativeVersion{};
|
|
54
58
|
};
|
|
55
59
|
|
|
60
|
+
/**
|
|
61
|
+
* Receives any performance-related events from a HostTarget: could be Tracing, Performance Monitor, etc.
|
|
62
|
+
*/
|
|
63
|
+
class HostTargetTracingDelegate {
|
|
64
|
+
public:
|
|
65
|
+
HostTargetTracingDelegate() = default;
|
|
66
|
+
virtual ~HostTargetTracingDelegate() = default;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Fired when the corresponding HostTarget started recording a tracing session.
|
|
70
|
+
* The tracing state is expected to be initialized at this point and the delegate should be able to record events
|
|
71
|
+
* through HostTarget.
|
|
72
|
+
*/
|
|
73
|
+
virtual void onTracingStarted(tracing::Mode /* tracingMode */, bool /* screenshotsCategoryEnabled */) {}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Fired when the corresponding HostTarget is about to end recording a tracing session.
|
|
77
|
+
* The tracing state is expected to be still initialized during the call and the delegate should be able to record
|
|
78
|
+
* events through HostTarget.
|
|
79
|
+
*
|
|
80
|
+
* Any attempts to record events after this callback is finished will fail.
|
|
81
|
+
*/
|
|
82
|
+
virtual void onTracingStopped() {}
|
|
83
|
+
|
|
84
|
+
HostTargetTracingDelegate(const HostTargetTracingDelegate &) = delete;
|
|
85
|
+
HostTargetTracingDelegate(HostTargetTracingDelegate &&) = delete;
|
|
86
|
+
HostTargetTracingDelegate &operator=(const HostTargetTracingDelegate &) = delete;
|
|
87
|
+
HostTargetTracingDelegate &operator=(HostTargetTracingDelegate &&) = delete;
|
|
88
|
+
};
|
|
89
|
+
|
|
56
90
|
/**
|
|
57
91
|
* Receives events from a HostTarget. This is a shared interface that each
|
|
58
92
|
* React Native platform needs to implement in order to integrate with the
|
|
@@ -152,13 +186,21 @@ class HostTargetDelegate : public LoadNetworkResourceDelegate {
|
|
|
152
186
|
* trace recording that may have been stashed by the Host from the previous
|
|
153
187
|
* background session.
|
|
154
188
|
*
|
|
155
|
-
* \return the
|
|
189
|
+
* \return the HostTracingProfile if there is one that needs to be
|
|
156
190
|
* displayed, otherwise std::nullopt.
|
|
157
191
|
*/
|
|
158
|
-
virtual std::optional<tracing::
|
|
192
|
+
virtual std::optional<tracing::HostTracingProfile> unstable_getHostTracingProfileThatWillBeEmittedOnInitialization()
|
|
159
193
|
{
|
|
160
194
|
return std::nullopt;
|
|
161
195
|
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* An optional delegate that will be used by HostTarget to notify about tracing-related events.
|
|
199
|
+
*/
|
|
200
|
+
virtual HostTargetTracingDelegate *getTracingDelegate()
|
|
201
|
+
{
|
|
202
|
+
return nullptr;
|
|
203
|
+
}
|
|
162
204
|
};
|
|
163
205
|
|
|
164
206
|
/**
|
|
@@ -203,14 +245,16 @@ class HostTargetController final {
|
|
|
203
245
|
* Starts trace recording for this HostTarget.
|
|
204
246
|
*
|
|
205
247
|
* \param mode In which mode to start the trace recording.
|
|
248
|
+
* \param enabledCategories The set of categories to enable.
|
|
249
|
+
*
|
|
206
250
|
* \return false if already tracing, true otherwise.
|
|
207
251
|
*/
|
|
208
|
-
bool startTracing(tracing::Mode mode);
|
|
252
|
+
bool startTracing(tracing::Mode mode, std::set<tracing::Category> enabledCategories);
|
|
209
253
|
|
|
210
254
|
/**
|
|
211
255
|
* Stops previously started trace recording.
|
|
212
256
|
*/
|
|
213
|
-
tracing::
|
|
257
|
+
tracing::HostTracingProfile stopTracing();
|
|
214
258
|
|
|
215
259
|
private:
|
|
216
260
|
HostTarget &target_;
|
|
@@ -226,12 +270,15 @@ class JSINSPECTOR_EXPORT HostTarget : public EnableExecutorFromThis<HostTarget>
|
|
|
226
270
|
public:
|
|
227
271
|
/**
|
|
228
272
|
* Constructs a new HostTarget.
|
|
273
|
+
*
|
|
229
274
|
* \param delegate The HostTargetDelegate that will
|
|
230
275
|
* receive events from this HostTarget. The caller is responsible for ensuring
|
|
231
276
|
* that the HostTargetDelegate outlives this object.
|
|
277
|
+
*
|
|
232
278
|
* \param executor An executor that may be used to call methods on this
|
|
233
279
|
* HostTarget while it exists. \c create additionally guarantees that the
|
|
234
280
|
* executor will not be called after the HostTarget is destroyed.
|
|
281
|
+
*
|
|
235
282
|
* \note Copies of the provided executor may be destroyed on arbitrary
|
|
236
283
|
* threads, including after the HostTarget is destroyed. Callers must ensure
|
|
237
284
|
* that such destructor calls are safe - e.g. if using a lambda as the
|
|
@@ -279,6 +326,7 @@ class JSINSPECTOR_EXPORT HostTarget : public EnableExecutorFromThis<HostTarget>
|
|
|
279
326
|
*/
|
|
280
327
|
void sendCommand(HostCommand command);
|
|
281
328
|
|
|
329
|
+
#pragma region Tracing
|
|
282
330
|
/**
|
|
283
331
|
* Creates a new HostTracingAgent.
|
|
284
332
|
* This Agent is not owned by the HostTarget. The Agent will be destroyed at
|
|
@@ -292,19 +340,16 @@ class JSINSPECTOR_EXPORT HostTarget : public EnableExecutorFromThis<HostTarget>
|
|
|
292
340
|
* Starts trace recording for this HostTarget.
|
|
293
341
|
*
|
|
294
342
|
* \param mode In which mode to start the trace recording.
|
|
343
|
+
* \param enabledCategories The set of categories to enable.
|
|
344
|
+
*
|
|
295
345
|
* \return false if already tracing, true otherwise.
|
|
296
346
|
*/
|
|
297
|
-
bool startTracing(tracing::Mode mode);
|
|
347
|
+
bool startTracing(tracing::Mode mode, std::set<tracing::Category> enabledCategories);
|
|
298
348
|
|
|
299
349
|
/**
|
|
300
350
|
* Stops previously started trace recording.
|
|
301
351
|
*/
|
|
302
|
-
tracing::
|
|
303
|
-
|
|
304
|
-
/**
|
|
305
|
-
* Returns the state of the background trace, running, stopped, or disabled
|
|
306
|
-
*/
|
|
307
|
-
tracing::TracingState tracingState() const;
|
|
352
|
+
tracing::HostTracingProfile stopTracing();
|
|
308
353
|
|
|
309
354
|
/**
|
|
310
355
|
* Returns whether there is an active session with the Fusebox client, i.e.
|
|
@@ -313,22 +358,25 @@ class JSINSPECTOR_EXPORT HostTarget : public EnableExecutorFromThis<HostTarget>
|
|
|
313
358
|
bool hasActiveSessionWithFuseboxClient() const;
|
|
314
359
|
|
|
315
360
|
/**
|
|
316
|
-
* Emits the
|
|
361
|
+
* Emits the HostTracingProfile for the first active session with the Fusebox
|
|
317
362
|
* client.
|
|
318
363
|
*
|
|
319
364
|
* @see \c hasActiveFrontendSession
|
|
320
365
|
*/
|
|
321
|
-
void
|
|
366
|
+
void emitTracingProfileForFirstFuseboxClient(tracing::HostTracingProfile tracingProfile) const;
|
|
322
367
|
|
|
323
368
|
/**
|
|
324
|
-
*
|
|
369
|
+
* An endpoint for the Host to report frame timings that will be recorded if and only if there is currently an active
|
|
370
|
+
* tracing session.
|
|
325
371
|
*/
|
|
326
|
-
void
|
|
372
|
+
void recordFrameTimings(tracing::FrameTimingSequence frameTimingSequence);
|
|
373
|
+
#pragma endregion
|
|
327
374
|
|
|
328
375
|
private:
|
|
329
376
|
/**
|
|
330
377
|
* Constructs a new HostTarget.
|
|
331
378
|
* The caller must call setExecutor immediately afterwards.
|
|
379
|
+
*
|
|
332
380
|
* \param delegate The HostTargetDelegate that will
|
|
333
381
|
* receive events from this HostTarget. The caller is responsible for ensuring
|
|
334
382
|
* that the HostTargetDelegate outlives this object.
|
|
@@ -347,6 +395,7 @@ class JSINSPECTOR_EXPORT HostTarget : public EnableExecutorFromThis<HostTarget>
|
|
|
347
395
|
std::unique_ptr<PerfMonitorUpdateHandler> perfMonitorUpdateHandler_;
|
|
348
396
|
std::unique_ptr<HostRuntimeBinding> perfMetricsBinding_;
|
|
349
397
|
|
|
398
|
+
#pragma region Tracing
|
|
350
399
|
/**
|
|
351
400
|
* Current pending trace recording, which encapsulates the configuration of
|
|
352
401
|
* the tracing session and the state.
|
|
@@ -354,6 +403,14 @@ class JSINSPECTOR_EXPORT HostTarget : public EnableExecutorFromThis<HostTarget>
|
|
|
354
403
|
* Should only be allocated when there is an active tracing session.
|
|
355
404
|
*/
|
|
356
405
|
std::unique_ptr<HostTargetTraceRecording> traceRecording_{nullptr};
|
|
406
|
+
/**
|
|
407
|
+
* Protects the state inside traceRecording_.
|
|
408
|
+
*
|
|
409
|
+
* Calls to tracing subsystem could happen from different threads, depending on the mode (Background or CDP) and
|
|
410
|
+
* the method: the Host could report frame timings from any arbitrary thread.
|
|
411
|
+
*/
|
|
412
|
+
std::mutex tracingMutex_;
|
|
413
|
+
#pragma endregion
|
|
357
414
|
|
|
358
415
|
inline HostTargetDelegate &getDelegate()
|
|
359
416
|
{
|
|
@@ -8,12 +8,27 @@
|
|
|
8
8
|
#include "HostTargetTraceRecording.h"
|
|
9
9
|
#include "HostTarget.h"
|
|
10
10
|
|
|
11
|
+
#include <oscompat/OSCompat.h>
|
|
12
|
+
|
|
11
13
|
namespace facebook::react::jsinspector_modern {
|
|
12
14
|
|
|
13
15
|
HostTargetTraceRecording::HostTargetTraceRecording(
|
|
16
|
+
HostTarget& hostTarget,
|
|
14
17
|
tracing::Mode tracingMode,
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
std::set<tracing::Category> enabledCategories,
|
|
19
|
+
std::optional<HighResDuration> windowSize)
|
|
20
|
+
: hostTarget_(hostTarget),
|
|
21
|
+
tracingMode_(tracingMode),
|
|
22
|
+
enabledCategories_(std::move(enabledCategories)),
|
|
23
|
+
windowSize_(windowSize) {
|
|
24
|
+
if (windowSize) {
|
|
25
|
+
frameTimings_ = tracing::TimeWindowedBuffer<tracing::FrameTimingSequence>(
|
|
26
|
+
[](auto& sequence) { return sequence.beginDrawingTimestamp; },
|
|
27
|
+
*windowSize);
|
|
28
|
+
} else {
|
|
29
|
+
frameTimings_ = tracing::TimeWindowedBuffer<tracing::FrameTimingSequence>();
|
|
30
|
+
};
|
|
31
|
+
}
|
|
17
32
|
|
|
18
33
|
void HostTargetTraceRecording::setTracedInstance(
|
|
19
34
|
InstanceTarget* instanceTarget) {
|
|
@@ -29,14 +44,13 @@ void HostTargetTraceRecording::start() {
|
|
|
29
44
|
hostTracingAgent_ == nullptr &&
|
|
30
45
|
"Tracing Agent for the HostTarget was already initialized.");
|
|
31
46
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
};
|
|
47
|
+
startTime_ = HighResTimeStamp::now();
|
|
48
|
+
state_ = tracing::TraceRecordingState(
|
|
49
|
+
tracingMode_, enabledCategories_, windowSize_);
|
|
36
50
|
hostTracingAgent_ = hostTarget_.createTracingAgent(*state_);
|
|
37
51
|
}
|
|
38
52
|
|
|
39
|
-
tracing::
|
|
53
|
+
tracing::HostTracingProfile HostTargetTraceRecording::stop() {
|
|
40
54
|
assert(
|
|
41
55
|
hostTracingAgent_ != nullptr &&
|
|
42
56
|
"TracingAgent for the HostTarget has not been initialized.");
|
|
@@ -48,7 +62,25 @@ tracing::TraceRecordingState HostTargetTraceRecording::stop() {
|
|
|
48
62
|
auto state = std::move(*state_);
|
|
49
63
|
state_.reset();
|
|
50
64
|
|
|
51
|
-
|
|
65
|
+
auto startTime = *startTime_;
|
|
66
|
+
startTime_.reset();
|
|
67
|
+
|
|
68
|
+
return tracing::HostTracingProfile{
|
|
69
|
+
.processId = oscompat::getCurrentProcessId(),
|
|
70
|
+
.startTime = startTime,
|
|
71
|
+
.frameTimings = frameTimings_.pruneExpiredAndExtract(),
|
|
72
|
+
.instanceTracingProfiles = std::move(state.instanceTracingProfiles),
|
|
73
|
+
.runtimeSamplingProfiles = std::move(state.runtimeSamplingProfiles),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
void HostTargetTraceRecording::recordFrameTimings(
|
|
78
|
+
tracing::FrameTimingSequence frameTimingSequence) {
|
|
79
|
+
assert(
|
|
80
|
+
state_.has_value() &&
|
|
81
|
+
"The state for this tracing session has not been initialized.");
|
|
82
|
+
|
|
83
|
+
frameTimings_.push(frameTimingSequence);
|
|
52
84
|
}
|
|
53
85
|
|
|
54
86
|
} // namespace facebook::react::jsinspector_modern
|
|
@@ -11,9 +11,15 @@
|
|
|
11
11
|
#include "HostTarget.h"
|
|
12
12
|
#include "InstanceTarget.h"
|
|
13
13
|
|
|
14
|
+
#include <jsinspector-modern/tracing/FrameTimingSequence.h>
|
|
15
|
+
#include <jsinspector-modern/tracing/HostTracingProfile.h>
|
|
16
|
+
#include <jsinspector-modern/tracing/TimeWindowedBuffer.h>
|
|
14
17
|
#include <jsinspector-modern/tracing/TraceRecordingState.h>
|
|
18
|
+
#include <jsinspector-modern/tracing/TracingCategory.h>
|
|
19
|
+
#include <react/timing/primitives.h>
|
|
15
20
|
|
|
16
21
|
#include <optional>
|
|
22
|
+
#include <set>
|
|
17
23
|
|
|
18
24
|
namespace facebook::react::jsinspector_modern {
|
|
19
25
|
|
|
@@ -28,7 +34,11 @@ namespace facebook::react::jsinspector_modern {
|
|
|
28
34
|
*/
|
|
29
35
|
class HostTargetTraceRecording {
|
|
30
36
|
public:
|
|
31
|
-
|
|
37
|
+
HostTargetTraceRecording(
|
|
38
|
+
HostTarget &hostTarget,
|
|
39
|
+
tracing::Mode tracingMode,
|
|
40
|
+
std::set<tracing::Category> enabledCategories,
|
|
41
|
+
std::optional<HighResDuration> windowSize = std::nullopt);
|
|
32
42
|
|
|
33
43
|
inline bool isBackgroundInitiated() const
|
|
34
44
|
{
|
|
@@ -53,22 +63,34 @@ class HostTargetTraceRecording {
|
|
|
53
63
|
void start();
|
|
54
64
|
|
|
55
65
|
/**
|
|
56
|
-
* Stops the recording and
|
|
66
|
+
* Stops the recording and returns the recorded HostTracingProfile.
|
|
57
67
|
*
|
|
58
68
|
* Will deallocate all Tracing Agents.
|
|
59
69
|
*/
|
|
60
|
-
tracing::
|
|
70
|
+
tracing::HostTracingProfile stop();
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Adds the frame timing sequence to the current state of this trace recording.
|
|
74
|
+
*
|
|
75
|
+
* The caller guarantees the protection from data races. This is protected by the tracing mutex in HostTarget.
|
|
76
|
+
*/
|
|
77
|
+
void recordFrameTimings(tracing::FrameTimingSequence frameTimingSequence);
|
|
61
78
|
|
|
62
79
|
private:
|
|
80
|
+
/**
|
|
81
|
+
* The Host for which this Trace Recording is going to happen.
|
|
82
|
+
*/
|
|
83
|
+
HostTarget &hostTarget_;
|
|
84
|
+
|
|
63
85
|
/**
|
|
64
86
|
* The mode in which this trace recording was initialized.
|
|
65
87
|
*/
|
|
66
88
|
tracing::Mode tracingMode_;
|
|
67
89
|
|
|
68
90
|
/**
|
|
69
|
-
* The
|
|
91
|
+
* The timestamp at which this Trace Recording started.
|
|
70
92
|
*/
|
|
71
|
-
|
|
93
|
+
std::optional<HighResTimeStamp> startTime_;
|
|
72
94
|
|
|
73
95
|
/**
|
|
74
96
|
* The state of the current Trace Recording.
|
|
@@ -81,6 +103,21 @@ class HostTargetTraceRecording {
|
|
|
81
103
|
* Only allocated if the recording is enabled.
|
|
82
104
|
*/
|
|
83
105
|
std::shared_ptr<HostTracingAgent> hostTracingAgent_;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* The list of categories that are enabled for this recording.
|
|
109
|
+
*/
|
|
110
|
+
std::set<tracing::Category> enabledCategories_;
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* The size of the time window for this recording.
|
|
114
|
+
*/
|
|
115
|
+
std::optional<HighResDuration> windowSize_;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Frame timings captured on the Host side.
|
|
119
|
+
*/
|
|
120
|
+
tracing::TimeWindowedBuffer<tracing::FrameTimingSequence> frameTimings_;
|
|
84
121
|
};
|
|
85
122
|
|
|
86
123
|
} // namespace facebook::react::jsinspector_modern
|