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/modules/debug/FpsDebugFrameCallback.kt
CHANGED
|
@@ -26,8 +26,6 @@ internal class FpsDebugFrameCallback(private val reactContext: ReactContext) :
|
|
|
26
26
|
Choreographer.FrameCallback {
|
|
27
27
|
|
|
28
28
|
private var choreographer: Choreographer? = null
|
|
29
|
-
private val didJSUpdateUiDuringFrameDetector: DidJSUpdateUiDuringFrameDetector =
|
|
30
|
-
DidJSUpdateUiDuringFrameDetector()
|
|
31
29
|
private var firstFrameTime: Long = -1
|
|
32
30
|
private var lastFrameTime: Long = -1
|
|
33
31
|
private var numFrameCallbacks = 0
|
|
@@ -40,11 +38,7 @@ internal class FpsDebugFrameCallback(private val reactContext: ReactContext) :
|
|
|
40
38
|
if (firstFrameTime == -1L) {
|
|
41
39
|
firstFrameTime = l
|
|
42
40
|
}
|
|
43
|
-
val lastFrameStartTime = lastFrameTime
|
|
44
41
|
lastFrameTime = l
|
|
45
|
-
if (didJSUpdateUiDuringFrameDetector.getDidJSHitFrameAndCleanup(lastFrameStartTime, l)) {
|
|
46
|
-
numFrameCallbacksWithBatchDispatches++
|
|
47
|
-
}
|
|
48
42
|
numFrameCallbacks++
|
|
49
43
|
val expectedNumFrames = expectedNumFrames
|
|
50
44
|
val framesDropped = expectedNumFrames - expectedNumFramesPrev - 1
|
|
@@ -61,17 +55,9 @@ internal class FpsDebugFrameCallback(private val reactContext: ReactContext) :
|
|
|
61
55
|
// removeBridgeIdleDebugListener for Bridgeless
|
|
62
56
|
@Suppress("DEPRECATION")
|
|
63
57
|
if (!ReactBuildConfig.UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
reactContext.catalystInstance.addBridgeIdleDebugListener(didJSUpdateUiDuringFrameDetector)
|
|
68
|
-
isRunningOnFabric = false
|
|
69
|
-
} else {
|
|
70
|
-
// T172641976 Consider either implementing a mechanism similar to addBridgeIdleDebugListener
|
|
71
|
-
// for Fabric or point users to use RNDT.
|
|
72
|
-
isRunningOnFabric = true
|
|
73
|
-
}
|
|
74
|
-
uiManagerModule?.setViewHierarchyUpdateDebugListener(didJSUpdateUiDuringFrameDetector)
|
|
58
|
+
// T172641976 Consider either implementing a mechanism similar to addBridgeIdleDebugListener
|
|
59
|
+
// for Fabric or point users to use RNDT.
|
|
60
|
+
isRunningOnFabric = true
|
|
75
61
|
}
|
|
76
62
|
this.targetFps = targetFps
|
|
77
63
|
UiThreadUtil.runOnUiThread {
|
|
@@ -82,16 +68,6 @@ internal class FpsDebugFrameCallback(private val reactContext: ReactContext) :
|
|
|
82
68
|
|
|
83
69
|
fun stop() {
|
|
84
70
|
@Suppress("DEPRECATION")
|
|
85
|
-
if (!ReactBuildConfig.UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE) {
|
|
86
|
-
val uiManagerModule =
|
|
87
|
-
reactContext.getNativeModule(com.facebook.react.uimanager.UIManagerModule::class.java)
|
|
88
|
-
if (!reactContext.isBridgeless) {
|
|
89
|
-
reactContext.catalystInstance.removeBridgeIdleDebugListener(
|
|
90
|
-
didJSUpdateUiDuringFrameDetector
|
|
91
|
-
)
|
|
92
|
-
}
|
|
93
|
-
uiManagerModule?.setViewHierarchyUpdateDebugListener(null)
|
|
94
|
-
}
|
|
95
71
|
UiThreadUtil.runOnUiThread {
|
|
96
72
|
choreographer = Choreographer.getInstance()
|
|
97
73
|
choreographer?.removeFrameCallback(this)
|
package/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.kt
CHANGED
|
@@ -30,9 +30,14 @@ internal class DevLoadingModule(reactContext: ReactApplicationContext) :
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
override fun showMessage(
|
|
33
|
+
override fun showMessage(
|
|
34
|
+
message: String,
|
|
35
|
+
color: Double?,
|
|
36
|
+
backgroundColor: Double?,
|
|
37
|
+
dismissButton: Boolean?,
|
|
38
|
+
) {
|
|
34
39
|
UiThreadUtil.runOnUiThread {
|
|
35
|
-
devLoadingViewManager?.showMessage(message, color, backgroundColor)
|
|
40
|
+
devLoadingViewManager?.showMessage(message, color, backgroundColor, dismissButton)
|
|
36
41
|
}
|
|
37
42
|
}
|
|
38
43
|
|
|
@@ -52,6 +52,29 @@ internal object NetworkEventUtil {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
@Deprecated("Compatibility overload")
|
|
56
|
+
@JvmStatic
|
|
57
|
+
fun onCreateRequest(
|
|
58
|
+
devToolsRequestId: String,
|
|
59
|
+
requestUrl: String,
|
|
60
|
+
requestMethod: String,
|
|
61
|
+
requestHeaders: Map<String, String>,
|
|
62
|
+
requestBody: String,
|
|
63
|
+
encodedDataLength: Long,
|
|
64
|
+
) {
|
|
65
|
+
if (ReactNativeFeatureFlags.enableNetworkEventReporting()) {
|
|
66
|
+
InspectorNetworkReporter.reportRequestStart(
|
|
67
|
+
devToolsRequestId,
|
|
68
|
+
requestUrl,
|
|
69
|
+
requestMethod,
|
|
70
|
+
requestHeaders,
|
|
71
|
+
requestBody,
|
|
72
|
+
encodedDataLength,
|
|
73
|
+
)
|
|
74
|
+
InspectorNetworkReporter.reportConnectionTiming(devToolsRequestId, requestHeaders)
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
55
78
|
@JvmStatic
|
|
56
79
|
fun onDataSend(
|
|
57
80
|
reactContext: ReactApplicationContext?,
|
|
@@ -19,15 +19,16 @@ public open class PackagerConnectionSettings(private val appContext: Context) {
|
|
|
19
19
|
private val preferences: SharedPreferences =
|
|
20
20
|
PreferenceManager.getDefaultSharedPreferences(appContext)
|
|
21
21
|
public val packageName: String = appContext.packageName
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
|
|
23
|
+
init {
|
|
24
|
+
resetDebugServerHost()
|
|
25
|
+
}
|
|
25
26
|
|
|
26
27
|
public open var debugServerHost: String
|
|
27
28
|
get() {
|
|
28
29
|
// Check cached host first. If empty try to detect emulator type and use default
|
|
29
30
|
// hostname for those
|
|
30
|
-
|
|
31
|
+
_cachedOrOverrideHost?.let {
|
|
31
32
|
return it
|
|
32
33
|
}
|
|
33
34
|
|
|
@@ -44,19 +45,19 @@ public open class PackagerConnectionSettings(private val appContext: Context) {
|
|
|
44
45
|
)
|
|
45
46
|
}
|
|
46
47
|
|
|
47
|
-
|
|
48
|
+
_cachedOrOverrideHost = host
|
|
48
49
|
return host
|
|
49
50
|
}
|
|
50
51
|
set(host) {
|
|
51
52
|
if (host.isEmpty()) {
|
|
52
|
-
|
|
53
|
+
_cachedOrOverrideHost = null
|
|
53
54
|
} else {
|
|
54
|
-
|
|
55
|
+
_cachedOrOverrideHost = host
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
public open fun resetDebugServerHost() {
|
|
59
|
-
|
|
60
|
+
_cachedOrOverrideHost = null
|
|
60
61
|
}
|
|
61
62
|
|
|
62
63
|
public fun setPackagerOptionsUpdater(queryMapper: (Map<String, String>) -> Map<String, String>) {
|
|
@@ -76,5 +77,11 @@ public open class PackagerConnectionSettings(private val appContext: Context) {
|
|
|
76
77
|
private companion object {
|
|
77
78
|
private val TAG = PackagerConnectionSettings::class.java.simpleName
|
|
78
79
|
private const val PREFS_DEBUG_SERVER_HOST_KEY = "debug_http_host"
|
|
80
|
+
|
|
81
|
+
// The state for this class needs to be retained in the companion object.
|
|
82
|
+
// That's necessary in the case when there are multiple instances of PackagerConnectionSettings
|
|
83
|
+
private var _cachedOrOverrideHost: String? = null
|
|
84
|
+
private val _additionalOptionsForPackager: MutableMap<String, String> = mutableMapOf()
|
|
85
|
+
private var _packagerOptionsUpdater: (Map<String, String>) -> Map<String, String> = { it }
|
|
79
86
|
}
|
|
80
87
|
}
|
|
@@ -19,7 +19,6 @@ import com.facebook.react.bridge.NativeArray
|
|
|
19
19
|
import com.facebook.react.bridge.NativeArrayInterface
|
|
20
20
|
import com.facebook.react.bridge.NativeModule
|
|
21
21
|
import com.facebook.react.bridge.NativeModuleRegistry
|
|
22
|
-
import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener
|
|
23
22
|
import com.facebook.react.bridge.RuntimeExecutor
|
|
24
23
|
import com.facebook.react.bridge.RuntimeScheduler
|
|
25
24
|
import com.facebook.react.bridge.UIManager
|
|
@@ -140,14 +139,6 @@ internal class BridgelessCatalystInstance(private val reactHost: ReactHostImpl)
|
|
|
140
139
|
override val sourceURL: String
|
|
141
140
|
get() = throw UnsupportedOperationException("Unimplemented method 'getSourceURL'")
|
|
142
141
|
|
|
143
|
-
override fun addBridgeIdleDebugListener(listener: NotThreadSafeBridgeIdleDebugListener) {
|
|
144
|
-
throw UnsupportedOperationException("Unimplemented method 'addBridgeIdleDebugListener'")
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
override fun removeBridgeIdleDebugListener(listener: NotThreadSafeBridgeIdleDebugListener) {
|
|
148
|
-
throw UnsupportedOperationException("Unimplemented method 'removeBridgeIdleDebugListener'")
|
|
149
|
-
}
|
|
150
|
-
|
|
151
142
|
override fun registerSegment(segmentId: Int, path: String) {
|
|
152
143
|
throw UnsupportedOperationException("Unimplemented method 'registerSegment'")
|
|
153
144
|
}
|
|
@@ -43,8 +43,11 @@ import com.facebook.react.devsupport.DevMenuConfiguration
|
|
|
43
43
|
import com.facebook.react.devsupport.DevSupportManagerBase
|
|
44
44
|
import com.facebook.react.devsupport.DevSupportManagerFactory
|
|
45
45
|
import com.facebook.react.devsupport.InspectorFlags
|
|
46
|
+
import com.facebook.react.devsupport.inspector.FrameTimingsObserver
|
|
46
47
|
import com.facebook.react.devsupport.inspector.InspectorNetworkHelper
|
|
47
48
|
import com.facebook.react.devsupport.inspector.InspectorNetworkRequestListener
|
|
49
|
+
import com.facebook.react.devsupport.inspector.TracingState
|
|
50
|
+
import com.facebook.react.devsupport.inspector.TracingStateListener
|
|
48
51
|
import com.facebook.react.devsupport.interfaces.BundleLoadCallback
|
|
49
52
|
import com.facebook.react.devsupport.interfaces.DevSupportManager
|
|
50
53
|
import com.facebook.react.devsupport.interfaces.DevSupportManager.PausedInDebuggerOverlayCommandListener
|
|
@@ -147,6 +150,7 @@ public class ReactHostImpl(
|
|
|
147
150
|
private val beforeDestroyListeners: MutableList<() -> Unit> = CopyOnWriteArrayList()
|
|
148
151
|
|
|
149
152
|
internal var reactHostInspectorTarget: ReactHostInspectorTarget? = null
|
|
153
|
+
private var frameTimingsObserver: FrameTimingsObserver? = null
|
|
150
154
|
|
|
151
155
|
@Volatile private var hostInvalidated = false
|
|
152
156
|
|
|
@@ -1262,10 +1266,6 @@ public class ReactHostImpl(
|
|
|
1262
1266
|
val method = "getOrCreateReloadTask()"
|
|
1263
1267
|
stateTracker.enterState(method)
|
|
1264
1268
|
|
|
1265
|
-
// Log how React Native is destroyed
|
|
1266
|
-
// TODO(T136397487): Remove after Venice is shipped to 100%
|
|
1267
|
-
raiseSoftException(method, reason)
|
|
1268
|
-
|
|
1269
1269
|
reloadTask?.let {
|
|
1270
1270
|
return it
|
|
1271
1271
|
}
|
|
@@ -1417,10 +1417,6 @@ public class ReactHostImpl(
|
|
|
1417
1417
|
val method = "getOrCreateDestroyTask()"
|
|
1418
1418
|
stateTracker.enterState(method)
|
|
1419
1419
|
|
|
1420
|
-
// Log how React Native is destroyed
|
|
1421
|
-
// TODO(T136397487): Remove after Venice is shipped to 100%
|
|
1422
|
-
raiseSoftException(method, reason, ex)
|
|
1423
|
-
|
|
1424
1420
|
destroyTask?.let {
|
|
1425
1421
|
return it
|
|
1426
1422
|
}
|
|
@@ -1442,8 +1438,7 @@ public class ReactHostImpl(
|
|
|
1442
1438
|
// If the host has been invalidated, now that the current context/instance
|
|
1443
1439
|
// has been unregistered, we can safely destroy the host's inspector
|
|
1444
1440
|
// target.
|
|
1445
|
-
|
|
1446
|
-
reactHostInspectorTarget = null
|
|
1441
|
+
destroyReactHostInspectorTarget()
|
|
1447
1442
|
}
|
|
1448
1443
|
|
|
1449
1444
|
// Step 1: Destroy DevSupportManager
|
|
@@ -1554,13 +1549,52 @@ public class ReactHostImpl(
|
|
|
1554
1549
|
|
|
1555
1550
|
internal fun getOrCreateReactHostInspectorTarget(): ReactHostInspectorTarget? {
|
|
1556
1551
|
if (reactHostInspectorTarget == null && InspectorFlags.getFuseboxEnabled()) {
|
|
1557
|
-
|
|
1558
|
-
reactHostInspectorTarget = ReactHostInspectorTarget(this)
|
|
1552
|
+
reactHostInspectorTarget = createReactHostInspectorTarget()
|
|
1559
1553
|
}
|
|
1560
1554
|
|
|
1561
1555
|
return reactHostInspectorTarget
|
|
1562
1556
|
}
|
|
1563
1557
|
|
|
1558
|
+
private fun createReactHostInspectorTarget(): ReactHostInspectorTarget {
|
|
1559
|
+
// NOTE: ReactHostInspectorTarget only retains a weak reference to `this`.
|
|
1560
|
+
val inspectorTarget = ReactHostInspectorTarget(this)
|
|
1561
|
+
inspectorTarget.registerTracingStateListener(
|
|
1562
|
+
TracingStateListener { state: TracingState, _screenshotsEnabled: Boolean ->
|
|
1563
|
+
when (state) {
|
|
1564
|
+
TracingState.ENABLED_IN_BACKGROUND_MODE,
|
|
1565
|
+
TracingState.ENABLED_IN_CDP_MODE -> {
|
|
1566
|
+
currentActivity?.window?.let { window ->
|
|
1567
|
+
val observer =
|
|
1568
|
+
FrameTimingsObserver(
|
|
1569
|
+
window,
|
|
1570
|
+
_screenshotsEnabled,
|
|
1571
|
+
{ frameTimingsSequence ->
|
|
1572
|
+
inspectorTarget.recordFrameTimings(frameTimingsSequence)
|
|
1573
|
+
},
|
|
1574
|
+
)
|
|
1575
|
+
observer.start()
|
|
1576
|
+
frameTimingsObserver = observer
|
|
1577
|
+
}
|
|
1578
|
+
}
|
|
1579
|
+
TracingState.DISABLED -> {
|
|
1580
|
+
frameTimingsObserver?.stop()
|
|
1581
|
+
frameTimingsObserver = null
|
|
1582
|
+
}
|
|
1583
|
+
}
|
|
1584
|
+
}
|
|
1585
|
+
)
|
|
1586
|
+
|
|
1587
|
+
return inspectorTarget
|
|
1588
|
+
}
|
|
1589
|
+
|
|
1590
|
+
private fun destroyReactHostInspectorTarget() {
|
|
1591
|
+
frameTimingsObserver?.stop()
|
|
1592
|
+
frameTimingsObserver = null
|
|
1593
|
+
|
|
1594
|
+
reactHostInspectorTarget?.close()
|
|
1595
|
+
reactHostInspectorTarget = null
|
|
1596
|
+
}
|
|
1597
|
+
|
|
1564
1598
|
@ThreadConfined(ThreadConfined.UI)
|
|
1565
1599
|
internal fun unregisterInstanceFromInspector(reactInstance: ReactInstance?) {
|
|
1566
1600
|
if (reactInstance != null) {
|
|
@@ -16,8 +16,8 @@ import com.facebook.react.bridge.ReactContext
|
|
|
16
16
|
import com.facebook.react.common.annotations.FrameworkAPI
|
|
17
17
|
import com.facebook.react.common.annotations.UnstableReactNativeAPI
|
|
18
18
|
import com.facebook.react.devsupport.ReactInstanceDevHelper
|
|
19
|
-
import com.facebook.react.devsupport.
|
|
20
|
-
import com.facebook.react.devsupport.
|
|
19
|
+
import com.facebook.react.devsupport.inspector.TracingState
|
|
20
|
+
import com.facebook.react.devsupport.inspector.TracingStateProvider
|
|
21
21
|
import com.facebook.react.devsupport.perfmonitor.PerfMonitorDevHelper
|
|
22
22
|
import com.facebook.react.devsupport.perfmonitor.PerfMonitorInspectorTarget
|
|
23
23
|
import com.facebook.react.interfaces.TaskInterface
|
|
@@ -81,6 +81,6 @@ internal class ReactHostImplDevHelper(private val delegate: ReactHostImpl) :
|
|
|
81
81
|
delegate.loadBundle(bundleLoader)
|
|
82
82
|
|
|
83
83
|
override fun getTracingState(): TracingState {
|
|
84
|
-
return delegate.reactHostInspectorTarget?.getTracingState() ?: TracingState.
|
|
84
|
+
return delegate.reactHostInspectorTarget?.getTracingState() ?: TracingState.ENABLED_IN_CDP_MODE
|
|
85
85
|
}
|
|
86
86
|
}
|
|
@@ -12,7 +12,9 @@ import com.facebook.proguard.annotations.DoNotStripAny
|
|
|
12
12
|
import com.facebook.react.bridge.UiThreadUtil
|
|
13
13
|
import com.facebook.react.common.annotations.FrameworkAPI
|
|
14
14
|
import com.facebook.react.common.annotations.UnstableReactNativeAPI
|
|
15
|
-
import com.facebook.react.devsupport.
|
|
15
|
+
import com.facebook.react.devsupport.inspector.FrameTimingSequence
|
|
16
|
+
import com.facebook.react.devsupport.inspector.TracingState
|
|
17
|
+
import com.facebook.react.devsupport.inspector.TracingStateListener
|
|
16
18
|
import com.facebook.react.devsupport.perfmonitor.PerfMonitorInspectorTarget
|
|
17
19
|
import com.facebook.react.devsupport.perfmonitor.PerfMonitorUpdateListener
|
|
18
20
|
import com.facebook.soloader.SoLoader
|
|
@@ -41,37 +43,29 @@ internal class ReactHostInspectorTarget(reactHostImpl: ReactHostImpl) :
|
|
|
41
43
|
|
|
42
44
|
external fun stopAndDiscardBackgroundTrace()
|
|
43
45
|
|
|
44
|
-
external fun
|
|
46
|
+
external override fun getTracingState(): TracingState
|
|
45
47
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
external fun registerTracingStateListener(listener: TracingStateListener): Long
|
|
49
|
+
|
|
50
|
+
external fun unregisterTracingStateListener(subscriptionId: Long)
|
|
51
|
+
|
|
52
|
+
external fun recordFrameTimings(frameTimingSequence: FrameTimingSequence)
|
|
49
53
|
|
|
50
54
|
override fun addPerfMonitorListener(listener: PerfMonitorUpdateListener) {
|
|
51
55
|
perfMonitorListeners.add(listener)
|
|
56
|
+
registerTracingStateListener { state, _ -> listener.onRecordingStateChanged(state) }
|
|
52
57
|
}
|
|
53
58
|
|
|
54
59
|
override fun pauseAndAnalyzeBackgroundTrace(): Boolean {
|
|
55
|
-
|
|
56
|
-
perfMonitorListeners.forEach { listener ->
|
|
57
|
-
listener.onRecordingStateChanged(TracingState.DISABLED)
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return emitted
|
|
60
|
+
return stopAndMaybeEmitBackgroundTrace()
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
override fun resumeBackgroundTrace() {
|
|
64
64
|
startBackgroundTrace()
|
|
65
|
-
perfMonitorListeners.forEach { listener ->
|
|
66
|
-
listener.onRecordingStateChanged(TracingState.ENABLEDINBACKGROUNDMODE)
|
|
67
|
-
}
|
|
68
65
|
}
|
|
69
66
|
|
|
70
67
|
override fun stopBackgroundTrace() {
|
|
71
68
|
stopAndDiscardBackgroundTrace()
|
|
72
|
-
perfMonitorListeners.forEach { listener ->
|
|
73
|
-
listener.onRecordingStateChanged(TracingState.DISABLED)
|
|
74
|
-
}
|
|
75
69
|
}
|
|
76
70
|
|
|
77
71
|
fun handleNativePerfIssueAdded(
|
|
@@ -12,6 +12,7 @@ package com.facebook.react.runtime
|
|
|
12
12
|
import android.content.Context
|
|
13
13
|
import android.graphics.Point
|
|
14
14
|
import android.graphics.Rect
|
|
15
|
+
import android.view.KeyEvent
|
|
15
16
|
import android.view.MotionEvent
|
|
16
17
|
import android.view.View
|
|
17
18
|
import com.facebook.common.logging.FLog
|
|
@@ -20,7 +21,9 @@ import com.facebook.react.bridge.ReactContext
|
|
|
20
21
|
import com.facebook.react.common.annotations.FrameworkAPI
|
|
21
22
|
import com.facebook.react.common.annotations.UnstableReactNativeAPI
|
|
22
23
|
import com.facebook.react.config.ReactFeatureFlags
|
|
24
|
+
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
|
|
23
25
|
import com.facebook.react.uimanager.IllegalViewOperationException
|
|
26
|
+
import com.facebook.react.uimanager.JSKeyDispatcher
|
|
24
27
|
import com.facebook.react.uimanager.JSPointerDispatcher
|
|
25
28
|
import com.facebook.react.uimanager.JSTouchDispatcher
|
|
26
29
|
import com.facebook.react.uimanager.common.UIManagerType
|
|
@@ -37,6 +40,7 @@ public class ReactSurfaceView(context: Context?, private val surface: ReactSurfa
|
|
|
37
40
|
ReactRootView(context) {
|
|
38
41
|
private val jsTouchDispatcher: JSTouchDispatcher = JSTouchDispatcher(this)
|
|
39
42
|
private var jsPointerDispatcher: JSPointerDispatcher? = null
|
|
43
|
+
private var jsKeyDispatcher: JSKeyDispatcher? = null
|
|
40
44
|
private var wasMeasured = false
|
|
41
45
|
private var widthMeasureSpec = 0
|
|
42
46
|
private var heightMeasureSpec = 0
|
|
@@ -45,6 +49,9 @@ public class ReactSurfaceView(context: Context?, private val surface: ReactSurfa
|
|
|
45
49
|
if (ReactFeatureFlags.dispatchPointerEvents) {
|
|
46
50
|
jsPointerDispatcher = JSPointerDispatcher(this)
|
|
47
51
|
}
|
|
52
|
+
if (ReactNativeFeatureFlags.enableKeyEvents()) {
|
|
53
|
+
jsKeyDispatcher = JSKeyDispatcher()
|
|
54
|
+
}
|
|
48
55
|
}
|
|
49
56
|
|
|
50
57
|
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
|
|
@@ -188,6 +195,51 @@ public class ReactSurfaceView(context: Context?, private val surface: ReactSurfa
|
|
|
188
195
|
}
|
|
189
196
|
}
|
|
190
197
|
|
|
198
|
+
override fun dispatchJSKeyEvent(event: KeyEvent) {
|
|
199
|
+
if (jsKeyDispatcher == null) {
|
|
200
|
+
if (!ReactNativeFeatureFlags.enableKeyEvents()) {
|
|
201
|
+
return
|
|
202
|
+
}
|
|
203
|
+
FLog.w(TAG, "Unable to dispatch key events to JS before the dispatcher is available")
|
|
204
|
+
return
|
|
205
|
+
}
|
|
206
|
+
val eventDispatcher = surface.eventDispatcher
|
|
207
|
+
if (eventDispatcher != null) {
|
|
208
|
+
jsKeyDispatcher?.handleKeyEvent(event, eventDispatcher, surface.surfaceID)
|
|
209
|
+
} else {
|
|
210
|
+
FLog.w(
|
|
211
|
+
TAG,
|
|
212
|
+
"Unable to dispatch key events to JS as the React instance has not been attached",
|
|
213
|
+
)
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
override fun requestChildFocus(child: View?, focused: View?) {
|
|
218
|
+
super.requestChildFocus(child, focused)
|
|
219
|
+
|
|
220
|
+
if (ReactNativeFeatureFlags.enableKeyEvents()) {
|
|
221
|
+
val focusedViewTag = focused?.id
|
|
222
|
+
if (focusedViewTag != null) {
|
|
223
|
+
jsKeyDispatcher?.setFocusedView(focusedViewTag)
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
override fun onFocusChanged(gainFocus: Boolean, direction: Int, previouslyFocusedRect: Rect?) {
|
|
229
|
+
super.onFocusChanged(gainFocus, direction, previouslyFocusedRect)
|
|
230
|
+
|
|
231
|
+
if (ReactNativeFeatureFlags.enableKeyEvents()) {
|
|
232
|
+
if (gainFocus) {
|
|
233
|
+
val focusedViewTag = focusedChild?.id
|
|
234
|
+
if (focusedViewTag != null) {
|
|
235
|
+
jsKeyDispatcher?.setFocusedView(focusedViewTag)
|
|
236
|
+
}
|
|
237
|
+
} else {
|
|
238
|
+
jsKeyDispatcher?.clearFocus()
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
191
243
|
override fun hasActiveReactContext(): Boolean =
|
|
192
244
|
surface.isAttached && surface.reactHost?.currentReactContext != null
|
|
193
245
|
|
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt
CHANGED
|
@@ -9,7 +9,10 @@ package com.facebook.react.uimanager
|
|
|
9
9
|
|
|
10
10
|
import android.graphics.Canvas
|
|
11
11
|
import android.graphics.Color
|
|
12
|
+
import android.graphics.Paint
|
|
12
13
|
import android.graphics.Path
|
|
14
|
+
import android.graphics.PorterDuff
|
|
15
|
+
import android.graphics.PorterDuffXfermode
|
|
13
16
|
import android.graphics.Rect
|
|
14
17
|
import android.graphics.RectF
|
|
15
18
|
import android.graphics.drawable.Drawable
|
|
@@ -19,6 +22,7 @@ import android.widget.ImageView
|
|
|
19
22
|
import androidx.annotation.ColorInt
|
|
20
23
|
import com.facebook.react.bridge.ReadableArray
|
|
21
24
|
import com.facebook.react.common.annotations.UnstableReactNativeAPI
|
|
25
|
+
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
|
|
22
26
|
import com.facebook.react.uimanager.PixelUtil.dpToPx
|
|
23
27
|
import com.facebook.react.uimanager.PixelUtil.pxToDp
|
|
24
28
|
import com.facebook.react.uimanager.common.UIManagerType
|
|
@@ -467,7 +471,7 @@ public object BackgroundStyleApplicator {
|
|
|
467
471
|
*/
|
|
468
472
|
@JvmStatic
|
|
469
473
|
public fun setFeedbackUnderlay(view: View, drawable: Drawable?) {
|
|
470
|
-
ensureCompositeBackgroundDrawable(view).withNewFeedbackUnderlay(drawable)
|
|
474
|
+
view.background = ensureCompositeBackgroundDrawable(view).withNewFeedbackUnderlay(drawable)
|
|
471
475
|
}
|
|
472
476
|
|
|
473
477
|
/**
|
|
@@ -481,12 +485,36 @@ public object BackgroundStyleApplicator {
|
|
|
481
485
|
*/
|
|
482
486
|
@JvmStatic
|
|
483
487
|
public fun clipToPaddingBox(view: View, canvas: Canvas) {
|
|
488
|
+
clipToPaddingBoxWithAntiAliasing(view, canvas, null)
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
/**
|
|
492
|
+
* Clips the canvas to the padding box of the view.
|
|
493
|
+
*
|
|
494
|
+
* The padding box is the area within the borders of the view, accounting for border radius if
|
|
495
|
+
* present.
|
|
496
|
+
*
|
|
497
|
+
* On Android 28 and below, when border radius is present, this uses an antialiased clipping
|
|
498
|
+
* approach with Porter-Duff compositing to avoid jagged edges. The drawContent lambda is invoked
|
|
499
|
+
* to draw the actual content after setting up the layer but before applying the mask.
|
|
500
|
+
*
|
|
501
|
+
* @param view The view whose padding box defines the clipping region
|
|
502
|
+
* @param canvas The canvas to clip
|
|
503
|
+
* @param drawContent Lambda that draws the content after clipping is set up
|
|
504
|
+
*/
|
|
505
|
+
@JvmStatic
|
|
506
|
+
public fun clipToPaddingBoxWithAntiAliasing(
|
|
507
|
+
view: View,
|
|
508
|
+
canvas: Canvas,
|
|
509
|
+
drawContent: (() -> Unit)?,
|
|
510
|
+
) {
|
|
484
511
|
val drawingRect = Rect()
|
|
485
512
|
view.getDrawingRect(drawingRect)
|
|
486
513
|
|
|
487
514
|
val composite = getCompositeBackgroundDrawable(view)
|
|
488
515
|
if (composite == null) {
|
|
489
516
|
canvas.clipRect(drawingRect)
|
|
517
|
+
drawContent?.invoke()
|
|
490
518
|
return
|
|
491
519
|
}
|
|
492
520
|
|
|
@@ -508,15 +536,76 @@ public object BackgroundStyleApplicator {
|
|
|
508
536
|
paddingBoxRect,
|
|
509
537
|
computedBorderInsets,
|
|
510
538
|
)
|
|
511
|
-
|
|
512
539
|
paddingBoxPath.offset(drawingRect.left.toFloat(), drawingRect.top.toFloat())
|
|
513
|
-
|
|
540
|
+
|
|
541
|
+
// On Android 28 and below, use antialiased clipping with Porter-Duff compositing. On newer
|
|
542
|
+
// Android versions, use the standard clipPath.
|
|
543
|
+
if (
|
|
544
|
+
ReactNativeFeatureFlags.enableAndroidAntialiasedBorderRadiusClipping() &&
|
|
545
|
+
Build.VERSION.SDK_INT <= Build.VERSION_CODES.P &&
|
|
546
|
+
view.width > 0 &&
|
|
547
|
+
view.height > 0 &&
|
|
548
|
+
drawContent != null
|
|
549
|
+
) {
|
|
550
|
+
clipWithAntiAliasing(
|
|
551
|
+
view,
|
|
552
|
+
canvas,
|
|
553
|
+
paddingBoxPath,
|
|
554
|
+
drawContent,
|
|
555
|
+
)
|
|
556
|
+
} else {
|
|
557
|
+
canvas.clipPath(paddingBoxPath)
|
|
558
|
+
drawContent?.invoke()
|
|
559
|
+
}
|
|
514
560
|
} else {
|
|
515
561
|
paddingBoxRect.offset(drawingRect.left.toFloat(), drawingRect.top.toFloat())
|
|
516
562
|
canvas.clipRect(paddingBoxRect)
|
|
563
|
+
drawContent?.invoke()
|
|
517
564
|
}
|
|
518
565
|
}
|
|
519
566
|
|
|
567
|
+
/**
|
|
568
|
+
* Applies antialiased clipping using Porter-Duff compositing for Android 28 and below. This draws
|
|
569
|
+
* content to a layer, then applies an antialiased mask to clip it.
|
|
570
|
+
*/
|
|
571
|
+
private fun clipWithAntiAliasing(
|
|
572
|
+
view: View,
|
|
573
|
+
canvas: Canvas,
|
|
574
|
+
paddingBoxPath: Path,
|
|
575
|
+
drawContent: () -> Unit,
|
|
576
|
+
) {
|
|
577
|
+
// Save the layer for Porter-Duff compositing
|
|
578
|
+
val saveCount = canvas.saveLayer(0f, 0f, view.width.toFloat(), view.height.toFloat(), null)
|
|
579
|
+
|
|
580
|
+
// Draw the content first
|
|
581
|
+
drawContent()
|
|
582
|
+
|
|
583
|
+
val maskPaint = Paint(Paint.ANTI_ALIAS_FLAG)
|
|
584
|
+
maskPaint.style = Paint.Style.FILL
|
|
585
|
+
|
|
586
|
+
// Transparent pixels with INVERSE_WINDING only works on API 28
|
|
587
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
|
588
|
+
maskPaint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_IN)
|
|
589
|
+
maskPaint.color = Color.TRANSPARENT
|
|
590
|
+
paddingBoxPath.setFillType(Path.FillType.INVERSE_WINDING)
|
|
591
|
+
canvas.drawPath(paddingBoxPath, maskPaint)
|
|
592
|
+
} else {
|
|
593
|
+
// Create an inverse path: outer rect minus the rounded rect (using even-odd fill rule)
|
|
594
|
+
val inversePath = Path()
|
|
595
|
+
inversePath.addRect(0f, 0f, view.width.toFloat(), view.height.toFloat(), Path.Direction.CW)
|
|
596
|
+
inversePath.addPath(paddingBoxPath)
|
|
597
|
+
inversePath.setFillType(Path.FillType.EVEN_ODD)
|
|
598
|
+
|
|
599
|
+
// Use DST_OUT to remove content where the mask is drawn (outside the rounded rect)
|
|
600
|
+
maskPaint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OUT)
|
|
601
|
+
maskPaint.color = Color.BLACK
|
|
602
|
+
canvas.drawPath(inversePath, maskPaint)
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
// Restore the layer
|
|
606
|
+
canvas.restoreToCount(saveCount)
|
|
607
|
+
}
|
|
608
|
+
|
|
520
609
|
/**
|
|
521
610
|
* Resets the background styling of the view to its original state.
|
|
522
611
|
*
|