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
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ChangeBundleLocationDialog.kt
CHANGED
|
@@ -33,9 +33,6 @@ internal object ChangeBundleLocationDialog {
|
|
|
33
33
|
) {
|
|
34
34
|
val settings = devSettings.packagerConnectionSettings
|
|
35
35
|
val currentHost = settings.debugServerHost
|
|
36
|
-
settings.debugServerHost = ""
|
|
37
|
-
val defaultHost = settings.debugServerHost
|
|
38
|
-
settings.debugServerHost = currentHost
|
|
39
36
|
|
|
40
37
|
val layout = LinearLayout(context)
|
|
41
38
|
layout.orientation = LinearLayout.VERTICAL
|
|
@@ -60,11 +57,11 @@ internal object ChangeBundleLocationDialog {
|
|
|
60
57
|
input.setTextColor(-0x1000000)
|
|
61
58
|
input.setText(currentHost)
|
|
62
59
|
|
|
63
|
-
val
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
60
|
+
val currentHostSuggestion = Button(context)
|
|
61
|
+
currentHostSuggestion.text = currentHost
|
|
62
|
+
currentHostSuggestion.textSize = 12f
|
|
63
|
+
currentHostSuggestion.isAllCaps = false
|
|
64
|
+
currentHostSuggestion.setOnClickListener { input.setText(currentHost) }
|
|
68
65
|
|
|
69
66
|
val networkHost = getDevServerNetworkIpAndPort(context)
|
|
70
67
|
val networkHostSuggestion = Button(context)
|
|
@@ -80,8 +77,12 @@ internal object ChangeBundleLocationDialog {
|
|
|
80
77
|
LinearLayout.LayoutParams.MATCH_PARENT,
|
|
81
78
|
LinearLayout.LayoutParams.WRAP_CONTENT,
|
|
82
79
|
)
|
|
83
|
-
suggestionRow.addView(
|
|
84
|
-
|
|
80
|
+
suggestionRow.addView(currentHostSuggestion)
|
|
81
|
+
|
|
82
|
+
if (currentHost != networkHost) {
|
|
83
|
+
// We don't want to display two buttons with the same host suggestion.
|
|
84
|
+
suggestionRow.addView(networkHostSuggestion)
|
|
85
|
+
}
|
|
85
86
|
|
|
86
87
|
val instructions = TextView(context)
|
|
87
88
|
instructions.text =
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt
CHANGED
|
@@ -9,11 +9,17 @@ package com.facebook.react.devsupport
|
|
|
9
9
|
|
|
10
10
|
import android.os.Handler
|
|
11
11
|
import android.os.Looper
|
|
12
|
+
import com.facebook.common.logging.FLog
|
|
12
13
|
import com.facebook.jni.HybridData
|
|
13
14
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
14
15
|
import com.facebook.proguard.annotations.DoNotStripAny
|
|
16
|
+
import com.facebook.react.common.annotations.VisibleForTesting
|
|
15
17
|
import com.facebook.soloader.SoLoader
|
|
16
18
|
import java.io.Closeable
|
|
19
|
+
import java.nio.ByteBuffer
|
|
20
|
+
import java.nio.charset.StandardCharsets
|
|
21
|
+
import java.util.ArrayDeque
|
|
22
|
+
import java.util.Queue
|
|
17
23
|
import java.util.concurrent.TimeUnit
|
|
18
24
|
import okhttp3.OkHttpClient
|
|
19
25
|
import okhttp3.Request
|
|
@@ -67,7 +73,7 @@ internal class CxxInspectorPackagerConnection(
|
|
|
67
73
|
*/
|
|
68
74
|
@DoNotStripAny
|
|
69
75
|
private interface IWebSocket : Closeable {
|
|
70
|
-
fun send(
|
|
76
|
+
fun send(chunk: ByteBuffer)
|
|
71
77
|
|
|
72
78
|
/**
|
|
73
79
|
* Close the WebSocket connection. NOTE: There is no close() method in the C++ interface.
|
|
@@ -76,6 +82,95 @@ internal class CxxInspectorPackagerConnection(
|
|
|
76
82
|
override fun close()
|
|
77
83
|
}
|
|
78
84
|
|
|
85
|
+
/**
|
|
86
|
+
* A simple WebSocket wrapper that prevents having more than 16MiB of messages queued
|
|
87
|
+
* simultaneously. This is done to stop OkHttp from closing the WebSocket connection.
|
|
88
|
+
*
|
|
89
|
+
* https://github.com/facebook/react-native/issues/39651.
|
|
90
|
+
* https://github.com/square/okhttp/blob/4e7dbec1ea6c9cf8d80422ac9d44b9b185c749a3/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/RealWebSocket.kt#L684.
|
|
91
|
+
*/
|
|
92
|
+
private class InspectorPackagerWebSocketImpl(
|
|
93
|
+
private val nativeWebSocket: WebSocket,
|
|
94
|
+
private val handler: Handler,
|
|
95
|
+
) : IWebSocket {
|
|
96
|
+
private val messageQueue: Queue<Pair<String, Int>> = ArrayDeque()
|
|
97
|
+
private val queueLock = Any()
|
|
98
|
+
private val drainRunnable =
|
|
99
|
+
object : Runnable {
|
|
100
|
+
override fun run() {
|
|
101
|
+
FLog.d(TAG, "Attempting to drain the message queue after ${drainDelayMs}ms")
|
|
102
|
+
tryDrainQueue()
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* We are providing a String to OkHttp's WebSocket, because there is no guarantee that all CDP
|
|
108
|
+
* clients will support binary data format.
|
|
109
|
+
*/
|
|
110
|
+
override fun send(chunk: ByteBuffer) {
|
|
111
|
+
synchronized(queueLock) {
|
|
112
|
+
val messageSize = chunk.capacity()
|
|
113
|
+
val message = StandardCharsets.UTF_8.decode(chunk).toString()
|
|
114
|
+
val currentQueueSize = nativeWebSocket.queueSize()
|
|
115
|
+
|
|
116
|
+
if (currentQueueSize + messageSize > MAX_QUEUE_SIZE) {
|
|
117
|
+
FLog.d(TAG, "Reached queue size limit. Queueing the message.")
|
|
118
|
+
messageQueue.offer(Pair(message, messageSize))
|
|
119
|
+
scheduleDrain()
|
|
120
|
+
} else {
|
|
121
|
+
if (messageQueue.isEmpty()) {
|
|
122
|
+
nativeWebSocket.send(message)
|
|
123
|
+
} else {
|
|
124
|
+
messageQueue.offer(Pair(message, messageSize))
|
|
125
|
+
tryDrainQueue()
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
override fun close() {
|
|
132
|
+
synchronized(queueLock) {
|
|
133
|
+
handler.removeCallbacks(drainRunnable)
|
|
134
|
+
messageQueue.clear()
|
|
135
|
+
nativeWebSocket.close(1000, "End of session")
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
private fun tryDrainQueue() {
|
|
140
|
+
synchronized(queueLock) {
|
|
141
|
+
while (messageQueue.isNotEmpty()) {
|
|
142
|
+
val (nextMessage, nextMessageSize) = messageQueue.peek() ?: break
|
|
143
|
+
val currentQueueSize = nativeWebSocket.queueSize()
|
|
144
|
+
|
|
145
|
+
if (currentQueueSize + nextMessageSize <= MAX_QUEUE_SIZE) {
|
|
146
|
+
messageQueue.poll()
|
|
147
|
+
if (!nativeWebSocket.send(nextMessage)) {
|
|
148
|
+
// The WebSocket is closing, closed, or cancelled.
|
|
149
|
+
handler.removeCallbacks(drainRunnable)
|
|
150
|
+
messageQueue.clear()
|
|
151
|
+
|
|
152
|
+
break
|
|
153
|
+
}
|
|
154
|
+
} else {
|
|
155
|
+
scheduleDrain()
|
|
156
|
+
break
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
private fun scheduleDrain() {
|
|
163
|
+
FLog.d(TAG, "Scheduled a task to drain messages queue.")
|
|
164
|
+
handler.removeCallbacks(drainRunnable)
|
|
165
|
+
handler.postDelayed(drainRunnable, drainDelayMs)
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
companion object {
|
|
169
|
+
private val TAG: String = InspectorPackagerWebSocketImpl::class.java.simpleName
|
|
170
|
+
private const val drainDelayMs: Long = 100
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
79
174
|
/** Java implementation of the C++ InspectorPackagerConnectionDelegate interface. */
|
|
80
175
|
private class DelegateImpl {
|
|
81
176
|
private val httpClient =
|
|
@@ -130,15 +225,8 @@ internal class CxxInspectorPackagerConnection(
|
|
|
130
225
|
}
|
|
131
226
|
},
|
|
132
227
|
)
|
|
133
|
-
return object : IWebSocket {
|
|
134
|
-
override fun send(message: String) {
|
|
135
|
-
webSocket.send(message)
|
|
136
|
-
}
|
|
137
228
|
|
|
138
|
-
|
|
139
|
-
webSocket.close(1000, "End of session")
|
|
140
|
-
}
|
|
141
|
-
}
|
|
229
|
+
return InspectorPackagerWebSocketImpl(webSocket, handler)
|
|
142
230
|
}
|
|
143
231
|
|
|
144
232
|
@DoNotStrip
|
|
@@ -152,6 +240,8 @@ internal class CxxInspectorPackagerConnection(
|
|
|
152
240
|
SoLoader.loadLibrary("react_devsupportjni")
|
|
153
241
|
}
|
|
154
242
|
|
|
243
|
+
@VisibleForTesting internal const val MAX_QUEUE_SIZE = 16L * 1024 * 1024 // 16MiB
|
|
244
|
+
|
|
155
245
|
@JvmStatic
|
|
156
246
|
private external fun initHybrid(
|
|
157
247
|
url: String,
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
package com.facebook.react.devsupport
|
|
9
9
|
|
|
10
10
|
import android.content.Context
|
|
11
|
+
import android.graphics.Color
|
|
11
12
|
import android.graphics.Rect
|
|
12
13
|
import android.view.Gravity
|
|
13
14
|
import android.view.LayoutInflater
|
|
@@ -33,14 +34,21 @@ public class DefaultDevLoadingViewImplementation(
|
|
|
33
34
|
private var devLoadingPopup: PopupWindow? = null
|
|
34
35
|
|
|
35
36
|
override fun showMessage(message: String) {
|
|
36
|
-
showMessage(message, color = null, backgroundColor = null)
|
|
37
|
+
showMessage(message, color = null, backgroundColor = null, dismissButton = false)
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
override fun showMessage(
|
|
40
|
+
override fun showMessage(
|
|
41
|
+
message: String,
|
|
42
|
+
color: Double?,
|
|
43
|
+
backgroundColor: Double?,
|
|
44
|
+
dismissButton: Boolean?,
|
|
45
|
+
) {
|
|
40
46
|
if (!isEnabled) {
|
|
41
47
|
return
|
|
42
48
|
}
|
|
43
|
-
UiThreadUtil.runOnUiThread {
|
|
49
|
+
UiThreadUtil.runOnUiThread {
|
|
50
|
+
showInternal(message, color, backgroundColor, dismissButton ?: false)
|
|
51
|
+
}
|
|
44
52
|
}
|
|
45
53
|
|
|
46
54
|
override fun updateProgress(status: String?, done: Int?, total: Int?) {
|
|
@@ -63,7 +71,12 @@ public class DefaultDevLoadingViewImplementation(
|
|
|
63
71
|
}
|
|
64
72
|
}
|
|
65
73
|
|
|
66
|
-
private fun showInternal(
|
|
74
|
+
private fun showInternal(
|
|
75
|
+
message: String,
|
|
76
|
+
color: Double?,
|
|
77
|
+
backgroundColor: Double?,
|
|
78
|
+
dismissButton: Boolean,
|
|
79
|
+
) {
|
|
67
80
|
if (devLoadingPopup?.isShowing == true) {
|
|
68
81
|
// already showing
|
|
69
82
|
return
|
|
@@ -86,24 +99,56 @@ public class DefaultDevLoadingViewImplementation(
|
|
|
86
99
|
val topOffset = rectangle.top
|
|
87
100
|
val inflater =
|
|
88
101
|
currentActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
|
|
89
|
-
val
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
102
|
+
val rootView = inflater.inflate(R.layout.dev_loading_view, null) as ViewGroup
|
|
103
|
+
val textView = rootView.findViewById<TextView>(R.id.loading_text)
|
|
104
|
+
textView.text = message
|
|
105
|
+
|
|
106
|
+
val dismissButtonView = rootView.findViewById<android.widget.Button>(R.id.dismiss_button)
|
|
107
|
+
|
|
108
|
+
if (dismissButton) {
|
|
109
|
+
dismissButtonView.visibility = android.view.View.VISIBLE
|
|
110
|
+
} else {
|
|
111
|
+
dismissButtonView.visibility = android.view.View.GONE
|
|
93
112
|
}
|
|
94
|
-
|
|
95
|
-
|
|
113
|
+
|
|
114
|
+
// Use provided colors or defaults (matching iOS behavior)
|
|
115
|
+
val textColor = color?.toInt() ?: Color.WHITE
|
|
116
|
+
val bgColor = backgroundColor?.toInt() ?: Color.rgb(64, 64, 64) // Default grey
|
|
117
|
+
|
|
118
|
+
textView.setTextColor(textColor)
|
|
119
|
+
rootView.setBackgroundColor(bgColor)
|
|
120
|
+
|
|
121
|
+
if (dismissButton) {
|
|
122
|
+
dismissButtonView.setTextColor(textColor)
|
|
123
|
+
|
|
124
|
+
// Darken the background color for the button
|
|
125
|
+
val red = (Color.red(bgColor) * 0.7).toInt()
|
|
126
|
+
val green = (Color.green(bgColor) * 0.7).toInt()
|
|
127
|
+
val blue = (Color.blue(bgColor) * 0.7).toInt()
|
|
128
|
+
val darkerColor = Color.rgb(red, green, blue)
|
|
129
|
+
|
|
130
|
+
// Create rounded drawable for button
|
|
131
|
+
val drawable = android.graphics.drawable.GradientDrawable()
|
|
132
|
+
drawable.setColor(darkerColor)
|
|
133
|
+
drawable.cornerRadius = 15 * rootView.resources.displayMetrics.density
|
|
134
|
+
dismissButtonView.background = drawable
|
|
135
|
+
|
|
136
|
+
dismissButtonView.setOnClickListener { hideInternal() }
|
|
96
137
|
}
|
|
97
|
-
|
|
138
|
+
|
|
139
|
+
// Allow tapping anywhere on the banner to dismiss
|
|
140
|
+
rootView.setOnClickListener { hideInternal() }
|
|
141
|
+
|
|
98
142
|
val popup =
|
|
99
143
|
PopupWindow(
|
|
100
|
-
|
|
144
|
+
rootView,
|
|
101
145
|
ViewGroup.LayoutParams.MATCH_PARENT,
|
|
102
146
|
ViewGroup.LayoutParams.WRAP_CONTENT,
|
|
103
147
|
)
|
|
104
148
|
popup.showAtLocation(currentActivity.window.decorView, Gravity.NO_GRAVITY, 0, topOffset)
|
|
105
|
-
devLoadingView =
|
|
149
|
+
devLoadingView = textView // Store the TextView for updateProgress()
|
|
106
150
|
devLoadingPopup = popup
|
|
151
|
+
|
|
107
152
|
// TODO T164786028: Find out the root cause of the BadTokenException exception here
|
|
108
153
|
} catch (e: WindowManager.BadTokenException) {
|
|
109
154
|
FLog.e(
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt
CHANGED
|
@@ -18,10 +18,10 @@ import com.facebook.react.devsupport.interfaces.RedBoxHandler
|
|
|
18
18
|
import com.facebook.react.packagerconnection.RequestHandler
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
* A simple factory that creates instances of [DevSupportManager] implementations.
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
21
|
+
* A simple factory that creates instances of [DevSupportManager] implementations.
|
|
22
|
+
*
|
|
23
|
+
* The first create() method is for the Old Architecture flow and is deprecated and should not be
|
|
24
|
+
* used anymore. The second create() method is for the New Architecture/Bridgeless flow.
|
|
25
25
|
*/
|
|
26
26
|
internal class DefaultDevSupportManagerFactory : DevSupportManagerFactory {
|
|
27
27
|
|
|
@@ -44,57 +44,12 @@ internal class DefaultDevSupportManagerFactory : DevSupportManagerFactory {
|
|
|
44
44
|
surfaceDelegateFactory: SurfaceDelegateFactory?,
|
|
45
45
|
devLoadingViewManager: DevLoadingViewManager?,
|
|
46
46
|
pausedInDebuggerOverlayManager: PausedInDebuggerOverlayManager?,
|
|
47
|
-
): DevSupportManager
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
// or a more lean profiling-only PerftestDevSupportManager. We make the choice by first
|
|
54
|
-
// trying to return the full support DevSupportManager and if it fails, then just
|
|
55
|
-
// return PerftestDevSupportManager.
|
|
56
|
-
|
|
57
|
-
// ProGuard is surprisingly smart in this case and will keep a class if it detects a call
|
|
58
|
-
// to
|
|
59
|
-
// Class.forName() with a static string. So instead we generate a quasi-dynamic string to
|
|
60
|
-
// confuse it.
|
|
61
|
-
val className =
|
|
62
|
-
StringBuilder(DEVSUPPORT_IMPL_PACKAGE)
|
|
63
|
-
.append(".")
|
|
64
|
-
.append(DEVSUPPORT_IMPL_CLASS)
|
|
65
|
-
.toString()
|
|
66
|
-
val devSupportManagerClass = Class.forName(className)
|
|
67
|
-
val constructor =
|
|
68
|
-
devSupportManagerClass.getConstructor(
|
|
69
|
-
Context::class.java,
|
|
70
|
-
ReactInstanceDevHelper::class.java,
|
|
71
|
-
String::class.java,
|
|
72
|
-
Boolean::class.javaPrimitiveType,
|
|
73
|
-
RedBoxHandler::class.java,
|
|
74
|
-
DevBundleDownloadListener::class.java,
|
|
75
|
-
Int::class.javaPrimitiveType,
|
|
76
|
-
MutableMap::class.java,
|
|
77
|
-
SurfaceDelegateFactory::class.java,
|
|
78
|
-
DevLoadingViewManager::class.java,
|
|
79
|
-
PausedInDebuggerOverlayManager::class.java,
|
|
80
|
-
)
|
|
81
|
-
constructor.newInstance(
|
|
82
|
-
applicationContext,
|
|
83
|
-
reactInstanceManagerHelper,
|
|
84
|
-
packagerPathForJSBundleName,
|
|
85
|
-
true,
|
|
86
|
-
redBoxHandler,
|
|
87
|
-
devBundleDownloadListener,
|
|
88
|
-
minNumShakes,
|
|
89
|
-
customPackagerCommandHandlers,
|
|
90
|
-
surfaceDelegateFactory,
|
|
91
|
-
devLoadingViewManager,
|
|
92
|
-
pausedInDebuggerOverlayManager,
|
|
93
|
-
) as DevSupportManager
|
|
94
|
-
} catch (e: Exception) {
|
|
95
|
-
PerftestDevSupportManager(applicationContext)
|
|
96
|
-
}
|
|
97
|
-
}
|
|
47
|
+
): DevSupportManager =
|
|
48
|
+
if (!enableOnCreate) {
|
|
49
|
+
ReleaseDevSupportManager()
|
|
50
|
+
} else {
|
|
51
|
+
PerftestDevSupportManager(applicationContext)
|
|
52
|
+
}
|
|
98
53
|
|
|
99
54
|
override fun create(
|
|
100
55
|
applicationContext: Context,
|
|
@@ -129,9 +84,4 @@ internal class DefaultDevSupportManagerFactory : DevSupportManagerFactory {
|
|
|
129
84
|
} else {
|
|
130
85
|
ReleaseDevSupportManager()
|
|
131
86
|
}
|
|
132
|
-
|
|
133
|
-
private companion object {
|
|
134
|
-
private const val DEVSUPPORT_IMPL_PACKAGE = "com.facebook.react.devsupport"
|
|
135
|
-
private const val DEVSUPPORT_IMPL_CLASS = "BridgeDevSupportManager"
|
|
136
|
-
}
|
|
137
87
|
}
|
|
@@ -52,6 +52,8 @@ import com.facebook.react.devsupport.DevServerHelper.PackagerCommandListener
|
|
|
52
52
|
import com.facebook.react.devsupport.InspectorFlags.getFuseboxEnabled
|
|
53
53
|
import com.facebook.react.devsupport.StackTraceHelper.convertJavaStackTrace
|
|
54
54
|
import com.facebook.react.devsupport.StackTraceHelper.convertJsStackTrace
|
|
55
|
+
import com.facebook.react.devsupport.inspector.TracingState
|
|
56
|
+
import com.facebook.react.devsupport.inspector.TracingStateProvider
|
|
55
57
|
import com.facebook.react.devsupport.interfaces.BundleLoadCallback
|
|
56
58
|
import com.facebook.react.devsupport.interfaces.DebuggerFrontendPanelName
|
|
57
59
|
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener
|
|
@@ -66,8 +68,6 @@ import com.facebook.react.devsupport.interfaces.PackagerStatusCallback
|
|
|
66
68
|
import com.facebook.react.devsupport.interfaces.PausedInDebuggerOverlayManager
|
|
67
69
|
import com.facebook.react.devsupport.interfaces.RedBoxHandler
|
|
68
70
|
import com.facebook.react.devsupport.interfaces.StackFrame
|
|
69
|
-
import com.facebook.react.devsupport.interfaces.TracingState
|
|
70
|
-
import com.facebook.react.devsupport.interfaces.TracingStateProvider
|
|
71
71
|
import com.facebook.react.devsupport.perfmonitor.PerfMonitorDevHelper
|
|
72
72
|
import com.facebook.react.devsupport.perfmonitor.PerfMonitorOverlayManager
|
|
73
73
|
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
|
|
@@ -396,21 +396,21 @@ public abstract class DevSupportManagerBase(
|
|
|
396
396
|
|
|
397
397
|
val analyzePerformanceItemString =
|
|
398
398
|
when (tracingState) {
|
|
399
|
-
TracingState.
|
|
399
|
+
TracingState.ENABLED_IN_BACKGROUND_MODE ->
|
|
400
400
|
applicationContext.getString(R.string.catalyst_performance_background)
|
|
401
|
-
TracingState.
|
|
401
|
+
TracingState.ENABLED_IN_CDP_MODE ->
|
|
402
402
|
applicationContext.getString(R.string.catalyst_performance_cdp)
|
|
403
403
|
TracingState.DISABLED ->
|
|
404
404
|
applicationContext.getString(R.string.catalyst_performance_disabled)
|
|
405
405
|
}
|
|
406
406
|
|
|
407
|
-
if (!isConnected || tracingState == TracingState.
|
|
407
|
+
if (!isConnected || tracingState == TracingState.ENABLED_IN_CDP_MODE) {
|
|
408
408
|
disabledItemKeys.add(analyzePerformanceItemString)
|
|
409
409
|
}
|
|
410
410
|
|
|
411
411
|
options[analyzePerformanceItemString] =
|
|
412
412
|
when (tracingState) {
|
|
413
|
-
TracingState.
|
|
413
|
+
TracingState.ENABLED_IN_BACKGROUND_MODE ->
|
|
414
414
|
DevOptionHandler {
|
|
415
415
|
UiThreadUtil.runOnUiThread {
|
|
416
416
|
if (reactInstanceDevHelper is PerfMonitorDevHelper) {
|
|
@@ -427,7 +427,7 @@ public abstract class DevSupportManagerBase(
|
|
|
427
427
|
if (reactInstanceDevHelper is PerfMonitorDevHelper)
|
|
428
428
|
reactInstanceDevHelper.inspectorTarget?.resumeBackgroundTrace()
|
|
429
429
|
}
|
|
430
|
-
TracingState.
|
|
430
|
+
TracingState.ENABLED_IN_CDP_MODE -> DevOptionHandler {}
|
|
431
431
|
}
|
|
432
432
|
}
|
|
433
433
|
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.kt
CHANGED
|
@@ -18,10 +18,7 @@ import com.facebook.react.packagerconnection.RequestHandler
|
|
|
18
18
|
|
|
19
19
|
public interface DevSupportManagerFactory {
|
|
20
20
|
|
|
21
|
-
/**
|
|
22
|
-
* Factory used by the Old Architecture flow to create a [DevSupportManager] and a
|
|
23
|
-
* [BridgeDevSupportManager]
|
|
24
|
-
*/
|
|
21
|
+
/** Factory used by the Old Architecture flow to create a [DevSupportManager]. */
|
|
25
22
|
@Deprecated(
|
|
26
23
|
message =
|
|
27
24
|
"Use the other create() method with useDevSupport parameter for New Architecture. This method will be removed in a future release.",
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
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
|
+
package com.facebook.react.devsupport.inspector
|
|
9
|
+
|
|
10
|
+
internal data class FrameTimingSequence(
|
|
11
|
+
val id: Int,
|
|
12
|
+
val threadId: Int,
|
|
13
|
+
val beginDrawingTimestamp: Long,
|
|
14
|
+
val commitTimestamp: Long,
|
|
15
|
+
val endDrawingTimestamp: Long,
|
|
16
|
+
val screenshot: String? = null,
|
|
17
|
+
)
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
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
|
+
package com.facebook.react.devsupport.inspector
|
|
9
|
+
|
|
10
|
+
import android.graphics.Bitmap
|
|
11
|
+
import android.os.Build
|
|
12
|
+
import android.os.Handler
|
|
13
|
+
import android.os.Looper
|
|
14
|
+
import android.os.Process
|
|
15
|
+
import android.util.Base64
|
|
16
|
+
import android.view.FrameMetrics
|
|
17
|
+
import android.view.PixelCopy
|
|
18
|
+
import android.view.Window
|
|
19
|
+
import com.facebook.proguard.annotations.DoNotStripAny
|
|
20
|
+
import java.io.ByteArrayOutputStream
|
|
21
|
+
import kotlin.coroutines.resume
|
|
22
|
+
import kotlin.coroutines.suspendCoroutine
|
|
23
|
+
import kotlinx.coroutines.CoroutineScope
|
|
24
|
+
import kotlinx.coroutines.Dispatchers
|
|
25
|
+
import kotlinx.coroutines.launch
|
|
26
|
+
|
|
27
|
+
@DoNotStripAny
|
|
28
|
+
internal class FrameTimingsObserver(
|
|
29
|
+
private val window: Window,
|
|
30
|
+
private val screenshotsEnabled: Boolean,
|
|
31
|
+
private val onFrameTimingSequence: (sequence: FrameTimingSequence) -> Unit,
|
|
32
|
+
) {
|
|
33
|
+
private val handler = Handler(Looper.getMainLooper())
|
|
34
|
+
private var frameCounter: Int = 0
|
|
35
|
+
private var bitmapBuffer: Bitmap? = null
|
|
36
|
+
|
|
37
|
+
private val frameMetricsListener =
|
|
38
|
+
Window.OnFrameMetricsAvailableListener { _, frameMetrics, _dropCount ->
|
|
39
|
+
val beginDrawingTimestamp = frameMetrics.getMetric(FrameMetrics.VSYNC_TIMESTAMP)
|
|
40
|
+
val commitTimestamp =
|
|
41
|
+
beginDrawingTimestamp + frameMetrics.getMetric(FrameMetrics.INPUT_HANDLING_DURATION)
|
|
42
|
+
+frameMetrics.getMetric(FrameMetrics.ANIMATION_DURATION)
|
|
43
|
+
+frameMetrics.getMetric(FrameMetrics.LAYOUT_MEASURE_DURATION)
|
|
44
|
+
+frameMetrics.getMetric(FrameMetrics.DRAW_DURATION)
|
|
45
|
+
+frameMetrics.getMetric(FrameMetrics.SYNC_DURATION)
|
|
46
|
+
val endDrawingTimestamp =
|
|
47
|
+
beginDrawingTimestamp + frameMetrics.getMetric(FrameMetrics.TOTAL_DURATION)
|
|
48
|
+
|
|
49
|
+
val frameId = frameCounter++
|
|
50
|
+
val threadId = Process.myTid()
|
|
51
|
+
|
|
52
|
+
CoroutineScope(Dispatchers.Default).launch {
|
|
53
|
+
val screenshot = if (screenshotsEnabled) captureScreenshot() else null
|
|
54
|
+
|
|
55
|
+
onFrameTimingSequence(
|
|
56
|
+
FrameTimingSequence(
|
|
57
|
+
frameId,
|
|
58
|
+
threadId,
|
|
59
|
+
beginDrawingTimestamp,
|
|
60
|
+
commitTimestamp,
|
|
61
|
+
endDrawingTimestamp,
|
|
62
|
+
screenshot,
|
|
63
|
+
)
|
|
64
|
+
)
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
private suspend fun captureScreenshot(): String? = suspendCoroutine { continuation ->
|
|
69
|
+
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
|
|
70
|
+
continuation.resume(null)
|
|
71
|
+
return@suspendCoroutine
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
val decorView = window.decorView
|
|
75
|
+
val width = decorView.width
|
|
76
|
+
val height = decorView.height
|
|
77
|
+
|
|
78
|
+
// Reuse bitmap if dimensions haven't changed
|
|
79
|
+
val bitmap =
|
|
80
|
+
bitmapBuffer?.let {
|
|
81
|
+
if (it.width == width && it.height == height) {
|
|
82
|
+
it
|
|
83
|
+
} else {
|
|
84
|
+
null
|
|
85
|
+
}
|
|
86
|
+
} ?: Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888).also { bitmapBuffer = it }
|
|
87
|
+
|
|
88
|
+
PixelCopy.request(
|
|
89
|
+
window,
|
|
90
|
+
bitmap,
|
|
91
|
+
{ copyResult ->
|
|
92
|
+
if (copyResult == PixelCopy.SUCCESS) {
|
|
93
|
+
CoroutineScope(Dispatchers.Default).launch {
|
|
94
|
+
try {
|
|
95
|
+
val scaleFactor = 0.25f
|
|
96
|
+
val scaledWidth = (width * scaleFactor).toInt()
|
|
97
|
+
val scaledHeight = (height * scaleFactor).toInt()
|
|
98
|
+
val scaledBitmap =
|
|
99
|
+
Bitmap.createScaledBitmap(bitmap, scaledWidth, scaledHeight, true)
|
|
100
|
+
|
|
101
|
+
val outputStream = ByteArrayOutputStream()
|
|
102
|
+
val compressFormat =
|
|
103
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R)
|
|
104
|
+
Bitmap.CompressFormat.WEBP_LOSSY
|
|
105
|
+
else Bitmap.CompressFormat.WEBP
|
|
106
|
+
scaledBitmap.compress(compressFormat, 0, outputStream)
|
|
107
|
+
val bytes = outputStream.toByteArray()
|
|
108
|
+
val base64 = Base64.encodeToString(bytes, Base64.NO_WRAP)
|
|
109
|
+
continuation.resume(base64)
|
|
110
|
+
|
|
111
|
+
scaledBitmap.recycle()
|
|
112
|
+
} catch (e: Exception) {
|
|
113
|
+
continuation.resume(null)
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
} else {
|
|
117
|
+
continuation.resume(null)
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
handler,
|
|
121
|
+
)
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
fun start() {
|
|
125
|
+
frameCounter = 0
|
|
126
|
+
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
|
|
127
|
+
return
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
window.addOnFrameMetricsAvailableListener(frameMetricsListener, handler)
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
fun stop() {
|
|
134
|
+
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
|
|
135
|
+
return
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
window.removeOnFrameMetricsAvailableListener(frameMetricsListener)
|
|
139
|
+
handler.removeCallbacksAndMessages(null)
|
|
140
|
+
|
|
141
|
+
bitmapBuffer?.recycle()
|
|
142
|
+
bitmapBuffer = null
|
|
143
|
+
}
|
|
144
|
+
}
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt
CHANGED
|
@@ -66,7 +66,7 @@ internal object InspectorNetworkHelper {
|
|
|
66
66
|
response.body().use { responseBody ->
|
|
67
67
|
if (responseBody != null) {
|
|
68
68
|
val inputStream = responseBody.byteStream()
|
|
69
|
-
val chunkSize = 1024
|
|
69
|
+
val chunkSize = 8 * 1024 // 8Kb
|
|
70
70
|
val buffer = ByteArray(chunkSize)
|
|
71
71
|
var bytesRead: Int
|
|
72
72
|
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
+
package com.facebook.react.devsupport.inspector
|
|
9
|
+
|
|
10
|
+
import com.facebook.proguard.annotations.DoNotStripAny
|
|
11
|
+
|
|
12
|
+
@DoNotStripAny
|
|
13
|
+
internal enum class TracingState {
|
|
14
|
+
DISABLED, // There is no active trace
|
|
15
|
+
ENABLED_IN_BACKGROUND_MODE, // Trace is currently running in background mode
|
|
16
|
+
ENABLED_IN_CDP_MODE, // Trace is currently running in CDP mode
|
|
17
|
+
}
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingStateListener.kt
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
package com.facebook.react.devsupport.inspector
|
|
9
|
+
|
|
10
|
+
import com.facebook.proguard.annotations.DoNotStripAny
|
|
11
|
+
|
|
12
|
+
@DoNotStripAny
|
|
13
|
+
internal fun interface TracingStateListener {
|
|
14
|
+
public fun onStateChanged(state: TracingState, screenshotsEnabled: Boolean)
|
|
15
|
+
}
|