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
|
@@ -57,6 +57,7 @@ import com.facebook.react.modules.appregistry.AppRegistry;
|
|
|
57
57
|
import com.facebook.react.modules.deviceinfo.DeviceInfoModule;
|
|
58
58
|
import com.facebook.react.uimanager.DisplayMetricsHolder;
|
|
59
59
|
import com.facebook.react.uimanager.IllegalViewOperationException;
|
|
60
|
+
import com.facebook.react.uimanager.JSKeyDispatcher;
|
|
60
61
|
import com.facebook.react.uimanager.JSPointerDispatcher;
|
|
61
62
|
import com.facebook.react.uimanager.JSTouchDispatcher;
|
|
62
63
|
import com.facebook.react.uimanager.PixelUtil;
|
|
@@ -106,6 +107,7 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
|
|
106
107
|
private boolean mShouldLogContentAppeared;
|
|
107
108
|
private @Nullable JSTouchDispatcher mJSTouchDispatcher;
|
|
108
109
|
private @Nullable JSPointerDispatcher mJSPointerDispatcher;
|
|
110
|
+
private @Nullable JSKeyDispatcher mJSKeyDispatcher;
|
|
109
111
|
private final ReactAndroidHWInputDeviceHelper mAndroidHWInputDeviceHelper =
|
|
110
112
|
new ReactAndroidHWInputDeviceHelper();
|
|
111
113
|
private boolean mWasMeasured = false;
|
|
@@ -334,10 +336,17 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
|
|
334
336
|
FLog.w(TAG, "Unable to handle key event as the catalyst instance has not been attached");
|
|
335
337
|
return super.dispatchKeyEvent(ev);
|
|
336
338
|
}
|
|
339
|
+
|
|
337
340
|
ReactContext context = getCurrentReactContext();
|
|
338
|
-
if (context
|
|
339
|
-
|
|
341
|
+
if (context == null) {
|
|
342
|
+
return super.dispatchKeyEvent(ev);
|
|
340
343
|
}
|
|
344
|
+
|
|
345
|
+
mAndroidHWInputDeviceHelper.handleKeyEvent(ev, context);
|
|
346
|
+
|
|
347
|
+
// Dispatch during the capture phase before children handle the event as the focus could shift
|
|
348
|
+
dispatchJSKeyEvent(ev);
|
|
349
|
+
|
|
341
350
|
return super.dispatchKeyEvent(ev);
|
|
342
351
|
}
|
|
343
352
|
|
|
@@ -378,6 +387,31 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
|
|
378
387
|
}
|
|
379
388
|
}
|
|
380
389
|
|
|
390
|
+
protected void dispatchJSKeyEvent(KeyEvent ev) {
|
|
391
|
+
if (!ReactNativeFeatureFlags.enableKeyEvents()) {
|
|
392
|
+
// Silently return early if key events are disabled
|
|
393
|
+
return;
|
|
394
|
+
}
|
|
395
|
+
if (!hasActiveReactContext() || !isViewAttachedToReactInstance()) {
|
|
396
|
+
FLog.w(
|
|
397
|
+
TAG, "Unable to dispatch key event to JS as the catalyst instance has not been attached");
|
|
398
|
+
return;
|
|
399
|
+
}
|
|
400
|
+
if (mJSKeyDispatcher == null) {
|
|
401
|
+
FLog.w(TAG, "Unable to dispatch key event to JS before the dispatcher is available");
|
|
402
|
+
return;
|
|
403
|
+
}
|
|
404
|
+
ReactContext context = getCurrentReactContext();
|
|
405
|
+
if (context != null) {
|
|
406
|
+
EventDispatcher eventDispatcher =
|
|
407
|
+
UIManagerHelper.getEventDispatcher(context, getUIManagerType());
|
|
408
|
+
int surfaceId = UIManagerHelper.getSurfaceId(context);
|
|
409
|
+
if (eventDispatcher != null) {
|
|
410
|
+
mJSKeyDispatcher.handleKeyEvent(ev, eventDispatcher, surfaceId);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
|
|
381
415
|
@Override
|
|
382
416
|
public void requestDisallowInterceptTouchEvent(boolean disallowIntercept) {
|
|
383
417
|
// Override in order to still receive events to onInterceptTouchEvent even when some other
|
|
@@ -634,6 +668,10 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
|
|
634
668
|
mJSPointerDispatcher = new JSPointerDispatcher(this);
|
|
635
669
|
}
|
|
636
670
|
|
|
671
|
+
if (ReactNativeFeatureFlags.enableKeyEvents()) {
|
|
672
|
+
mJSKeyDispatcher = new JSKeyDispatcher();
|
|
673
|
+
}
|
|
674
|
+
|
|
637
675
|
if (mRootViewEventListener != null) {
|
|
638
676
|
mRootViewEventListener.onAttachedToReactInstance(this);
|
|
639
677
|
}
|
|
@@ -712,6 +750,9 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
|
|
712
750
|
if (ReactFeatureFlags.dispatchPointerEvents) {
|
|
713
751
|
mJSPointerDispatcher = new JSPointerDispatcher(this);
|
|
714
752
|
}
|
|
753
|
+
if (ReactNativeFeatureFlags.enableKeyEvents()) {
|
|
754
|
+
mJSKeyDispatcher = new JSKeyDispatcher();
|
|
755
|
+
}
|
|
715
756
|
}
|
|
716
757
|
|
|
717
758
|
@VisibleForTesting
|
|
@@ -10,16 +10,65 @@ package com.facebook.react
|
|
|
10
10
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
11
11
|
import com.facebook.react.uimanager.ViewManager
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Interface for React Native packages that provide ViewManagers on-demand rather than eagerly.
|
|
15
|
+
*
|
|
16
|
+
* This interface enables lazy initialization of ViewManagers, improving startup performance by
|
|
17
|
+
* deferring the creation of ViewManager instances until they are actually needed by the JavaScript
|
|
18
|
+
* code. Instead of instantiating all ViewManagers during package initialization, implementing
|
|
19
|
+
* classes can defer creation until a specific ViewManager is requested by name.
|
|
20
|
+
*
|
|
21
|
+
* This pattern is particularly beneficial for applications with many ViewManagers, as it reduces
|
|
22
|
+
* memory footprint and initialization time by only creating the ViewManagers that are actively
|
|
23
|
+
* used.
|
|
24
|
+
*
|
|
25
|
+
* Implementing classes should maintain a registry or factory mechanism to create ViewManagers based
|
|
26
|
+
* on their names when requested.
|
|
27
|
+
*
|
|
28
|
+
* @see com.facebook.react.uimanager.ViewManager
|
|
29
|
+
* @see com.facebook.react.ReactPackage
|
|
30
|
+
*/
|
|
13
31
|
public interface ViewManagerOnDemandReactPackage {
|
|
14
32
|
/**
|
|
15
|
-
* Provides
|
|
16
|
-
*
|
|
33
|
+
* Provides the names of all ViewManagers available in this package.
|
|
34
|
+
*
|
|
35
|
+
* This method returns a collection of ViewManager names that can be accessed from JavaScript. The
|
|
36
|
+
* names returned should match the values returned by [ViewManager.getName] for each ViewManager
|
|
37
|
+
* that this package can create. The React Native framework uses these names to determine which
|
|
38
|
+
* ViewManagers are available and to request their creation on-demand.
|
|
39
|
+
*
|
|
40
|
+
* This method is called during the initialization phase to register available ViewManagers
|
|
41
|
+
* without actually instantiating them, enabling lazy loading.
|
|
42
|
+
*
|
|
43
|
+
* @param reactContext The React application context, which provides access to the Android
|
|
44
|
+
* application context and React Native lifecycle information
|
|
45
|
+
* @return A collection of ViewManager names. Returns an empty collection if no ViewManagers are
|
|
46
|
+
* available. The returned names should be unique within this package
|
|
17
47
|
*/
|
|
18
48
|
public fun getViewManagerNames(reactContext: ReactApplicationContext): Collection<String>
|
|
19
49
|
|
|
20
50
|
/**
|
|
21
|
-
* Creates and returns a ViewManager
|
|
22
|
-
*
|
|
51
|
+
* Creates and returns a ViewManager instance for the specified name.
|
|
52
|
+
*
|
|
53
|
+
* This method is called lazily when a ViewManager is actually needed by the JavaScript code,
|
|
54
|
+
* rather than during package initialization. The implementation should create and configure the
|
|
55
|
+
* appropriate ViewManager based on the provided name. The name parameter corresponds to one of
|
|
56
|
+
* the names returned by [getViewManagerNames].
|
|
57
|
+
*
|
|
58
|
+
* Implementations have flexibility in how they interpret the name and create ViewManagers. For
|
|
59
|
+
* example, they might use a factory pattern, reflection, or a simple name-to-class mapping.
|
|
60
|
+
*
|
|
61
|
+
* This method may be called on any thread, so implementations should ensure thread safety if
|
|
62
|
+
* necessary.
|
|
63
|
+
*
|
|
64
|
+
* @param reactContext The React application context, which provides access to the Android
|
|
65
|
+
* application context and React Native lifecycle information needed to initialize the
|
|
66
|
+
* ViewManager
|
|
67
|
+
* @param viewManagerName The name of the ViewManager to create, matching one of the names
|
|
68
|
+
* returned by [getViewManagerNames]
|
|
69
|
+
* @return A ViewManager instance for the specified name, or null if the name is not recognized or
|
|
70
|
+
* the ViewManager cannot be created. Returning null will result in a JavaScript error when the
|
|
71
|
+
* native component is used
|
|
23
72
|
*/
|
|
24
73
|
public fun createViewManager(
|
|
25
74
|
reactContext: ReactApplicationContext,
|
|
@@ -75,24 +75,6 @@ public interface CatalystInstance : MemoryPressureListener, JSInstance, JSBundle
|
|
|
75
75
|
*/
|
|
76
76
|
public fun extendNativeModules(modules: NativeModuleRegistry)
|
|
77
77
|
|
|
78
|
-
/**
|
|
79
|
-
* Adds a idle listener for this Catalyst instance. The listener will receive notifications
|
|
80
|
-
* whenever the bridge transitions from idle to busy and vice-versa, where the busy state is
|
|
81
|
-
* defined as there being some non-zero number of calls to JS that haven't resolved via a
|
|
82
|
-
* onBatchCompleted call. The listener should be purely passive and not affect application logic.
|
|
83
|
-
*/
|
|
84
|
-
public fun addBridgeIdleDebugListener(
|
|
85
|
-
@Suppress("DEPRECATION") listener: NotThreadSafeBridgeIdleDebugListener
|
|
86
|
-
)
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Removes a NotThreadSafeBridgeIdleDebugListener previously added with
|
|
90
|
-
* [addBridgeIdleDebugListener]
|
|
91
|
-
*/
|
|
92
|
-
public fun removeBridgeIdleDebugListener(
|
|
93
|
-
@Suppress("DEPRECATION") listener: NotThreadSafeBridgeIdleDebugListener
|
|
94
|
-
)
|
|
95
|
-
|
|
96
78
|
/** This method registers the file path of an additional JS segment by its ID. */
|
|
97
79
|
public fun registerSegment(segmentId: Int, path: String)
|
|
98
80
|
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
|
|
8
8
|
package com.facebook.react.bridge;
|
|
9
9
|
|
|
10
|
-
import static com.facebook.infer.annotation.Assertions.assertCondition;
|
|
11
10
|
import static com.facebook.infer.annotation.ThreadConfined.UI;
|
|
12
11
|
import static com.facebook.systrace.Systrace.TRACE_TAG_REACT;
|
|
13
12
|
|
|
@@ -39,7 +38,6 @@ import com.facebook.systrace.TraceListener;
|
|
|
39
38
|
import java.lang.ref.WeakReference;
|
|
40
39
|
import java.util.ArrayList;
|
|
41
40
|
import java.util.Collection;
|
|
42
|
-
import java.util.concurrent.CopyOnWriteArrayList;
|
|
43
41
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
44
42
|
|
|
45
43
|
/**
|
|
@@ -88,7 +86,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
88
86
|
|
|
89
87
|
// Access from any thread
|
|
90
88
|
private final ReactQueueConfigurationImpl mReactQueueConfiguration;
|
|
91
|
-
private final CopyOnWriteArrayList<NotThreadSafeBridgeIdleDebugListener> mBridgeIdleListeners;
|
|
92
89
|
private final AtomicInteger mPendingJSCalls = new AtomicInteger(0);
|
|
93
90
|
private final String mJsPendingCallsTitleForTrace =
|
|
94
91
|
"pending_js_calls_instance" + sNextInstanceIdForTrace.getAndIncrement();
|
|
@@ -121,15 +118,12 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
121
118
|
|
|
122
119
|
public native NativeMethodCallInvokerHolderImpl getNativeMethodCallInvokerHolder();
|
|
123
120
|
|
|
124
|
-
private @Nullable ReactInstanceManagerInspectorTarget mInspectorTarget;
|
|
125
|
-
|
|
126
121
|
private CatalystInstanceImpl(
|
|
127
122
|
final ReactQueueConfigurationSpec reactQueueConfigurationSpec,
|
|
128
123
|
final JavaScriptExecutor jsExecutor,
|
|
129
124
|
final NativeModuleRegistry nativeModuleRegistry,
|
|
130
125
|
final JSBundleLoader jsBundleLoader,
|
|
131
|
-
JSExceptionHandler jSExceptionHandler
|
|
132
|
-
@Nullable ReactInstanceManagerInspectorTarget inspectorTarget) {
|
|
126
|
+
JSExceptionHandler jSExceptionHandler) {
|
|
133
127
|
FLog.d(ReactConstants.TAG, "Initializing React Xplat Bridge.");
|
|
134
128
|
Systrace.beginSection(TRACE_TAG_REACT, "createCatalystInstanceImpl");
|
|
135
129
|
|
|
@@ -138,14 +132,12 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
138
132
|
mReactQueueConfiguration =
|
|
139
133
|
ReactQueueConfigurationImpl.create(
|
|
140
134
|
reactQueueConfigurationSpec, new NativeExceptionHandler());
|
|
141
|
-
mBridgeIdleListeners = new CopyOnWriteArrayList<>();
|
|
142
135
|
mNativeModuleRegistry = nativeModuleRegistry;
|
|
143
136
|
mJSModuleRegistry = new JavaScriptModuleRegistry();
|
|
144
137
|
mJSBundleLoader = jsBundleLoader;
|
|
145
138
|
mJSExceptionHandler = jSExceptionHandler;
|
|
146
139
|
mNativeModulesQueueThread = mReactQueueConfiguration.getNativeModulesQueueThread();
|
|
147
140
|
mTraceListener = new JSProfilerTraceListener(this);
|
|
148
|
-
mInspectorTarget = inspectorTarget;
|
|
149
141
|
Systrace.endSection(TRACE_TAG_REACT);
|
|
150
142
|
|
|
151
143
|
FLog.d(ReactConstants.TAG, "Initializing React Xplat Bridge before initializeBridge");
|
|
@@ -156,9 +148,7 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
156
148
|
jsExecutor,
|
|
157
149
|
mReactQueueConfiguration.getJSQueueThread(),
|
|
158
150
|
mNativeModulesQueueThread,
|
|
159
|
-
mNativeModuleRegistry.getJavaModules(this)
|
|
160
|
-
mNativeModuleRegistry.getCxxModules(),
|
|
161
|
-
mInspectorTarget);
|
|
151
|
+
mNativeModuleRegistry.getJavaModules(this));
|
|
162
152
|
FLog.d(ReactConstants.TAG, "Initializing React Xplat Bridge after initializeBridge");
|
|
163
153
|
Systrace.endSection(TRACE_TAG_REACT);
|
|
164
154
|
|
|
@@ -176,16 +166,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
176
166
|
mOuter = new WeakReference<>(outer);
|
|
177
167
|
}
|
|
178
168
|
|
|
179
|
-
public void onBatchComplete() {
|
|
180
|
-
CatalystInstanceImpl impl = mOuter.get();
|
|
181
|
-
if (impl != null) {
|
|
182
|
-
impl.mNativeModulesQueueThread.runOnQueue(
|
|
183
|
-
() -> {
|
|
184
|
-
impl.mNativeModuleRegistry.onBatchComplete();
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
169
|
public void incrementPendingJSCalls() {
|
|
190
170
|
CatalystInstanceImpl impl = mOuter.get();
|
|
191
171
|
if (impl != null) {
|
|
@@ -212,22 +192,18 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
212
192
|
// Extend the Java-visible registry of modules
|
|
213
193
|
mNativeModuleRegistry.registerModules(modules);
|
|
214
194
|
Collection<JavaModuleWrapper> javaModules = modules.getJavaModules(this);
|
|
215
|
-
Collection<ModuleHolder> cxxModules = modules.getCxxModules();
|
|
216
195
|
// Extend the Cxx-visible registry of modules wrapped in appropriate interfaces
|
|
217
|
-
jniExtendNativeModules(javaModules
|
|
196
|
+
jniExtendNativeModules(javaModules);
|
|
218
197
|
}
|
|
219
198
|
|
|
220
|
-
private native void jniExtendNativeModules(
|
|
221
|
-
Collection<JavaModuleWrapper> javaModules, Collection<ModuleHolder> cxxModules);
|
|
199
|
+
private native void jniExtendNativeModules(Collection<JavaModuleWrapper> javaModules);
|
|
222
200
|
|
|
223
201
|
private native void initializeBridge(
|
|
224
202
|
InstanceCallback callback,
|
|
225
203
|
JavaScriptExecutor jsExecutor,
|
|
226
204
|
MessageQueueThread jsQueue,
|
|
227
205
|
MessageQueueThread moduleQueue,
|
|
228
|
-
Collection<JavaModuleWrapper> javaModules
|
|
229
|
-
Collection<ModuleHolder> cxxModules,
|
|
230
|
-
@Nullable ReactInstanceManagerInspectorTarget inspectorTarget);
|
|
206
|
+
Collection<JavaModuleWrapper> javaModules);
|
|
231
207
|
|
|
232
208
|
@Override
|
|
233
209
|
public void setSourceURLs(String deviceURL, String remoteURL) {
|
|
@@ -358,13 +334,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
358
334
|
return;
|
|
359
335
|
}
|
|
360
336
|
|
|
361
|
-
if (mInspectorTarget != null) {
|
|
362
|
-
assertCondition(
|
|
363
|
-
mInspectorTarget.isValid(),
|
|
364
|
-
"ReactInstanceManager inspector target destroyed before instance was unregistered");
|
|
365
|
-
}
|
|
366
|
-
unregisterFromInspector();
|
|
367
|
-
|
|
368
337
|
// TODO: tell all APIs to shut down
|
|
369
338
|
ReactMarker.logMarker(ReactMarkerConstants.DESTROY_CATALYST_INSTANCE_START);
|
|
370
339
|
mDestroyed = true;
|
|
@@ -376,14 +345,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
376
345
|
mFabricUIManager.invalidate();
|
|
377
346
|
}
|
|
378
347
|
boolean wasIdle = (mPendingJSCalls.getAndSet(0) == 0);
|
|
379
|
-
if (!mBridgeIdleListeners.isEmpty()) {
|
|
380
|
-
for (NotThreadSafeBridgeIdleDebugListener listener : mBridgeIdleListeners) {
|
|
381
|
-
if (!wasIdle) {
|
|
382
|
-
listener.onTransitionToBridgeIdle();
|
|
383
|
-
}
|
|
384
|
-
listener.onBridgeDestroyed();
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
348
|
|
|
388
349
|
getReactQueueConfiguration()
|
|
389
350
|
.getJSQueueThread()
|
|
@@ -525,30 +486,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
525
486
|
jniHandleMemoryPressure(level);
|
|
526
487
|
}
|
|
527
488
|
|
|
528
|
-
/**
|
|
529
|
-
* Adds a idle listener for this Catalyst instance. The listener will receive notifications
|
|
530
|
-
* whenever the bridge transitions from idle to busy and vice-versa, where the busy state is
|
|
531
|
-
* defined as there being some non-zero number of calls to JS that haven't resolved via a
|
|
532
|
-
* onBatchComplete call. The listener should be purely passive and not affect application logic.
|
|
533
|
-
*
|
|
534
|
-
* @noinspection deprecation
|
|
535
|
-
*/
|
|
536
|
-
@Override
|
|
537
|
-
public void addBridgeIdleDebugListener(NotThreadSafeBridgeIdleDebugListener listener) {
|
|
538
|
-
mBridgeIdleListeners.add(listener);
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
/**
|
|
542
|
-
* Removes a NotThreadSafeBridgeIdleDebugListener previously added with {@link
|
|
543
|
-
* #addBridgeIdleDebugListener}
|
|
544
|
-
*
|
|
545
|
-
* @noinspection deprecation
|
|
546
|
-
*/
|
|
547
|
-
@Override
|
|
548
|
-
public void removeBridgeIdleDebugListener(NotThreadSafeBridgeIdleDebugListener listener) {
|
|
549
|
-
mBridgeIdleListeners.remove(listener);
|
|
550
|
-
}
|
|
551
|
-
|
|
552
489
|
@Override
|
|
553
490
|
public native void setGlobalVariable(String propName, String jsonValue);
|
|
554
491
|
|
|
@@ -565,16 +502,7 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
565
502
|
|
|
566
503
|
private void incrementPendingJSCalls() {
|
|
567
504
|
int oldPendingCalls = mPendingJSCalls.getAndIncrement();
|
|
568
|
-
boolean wasIdle = oldPendingCalls == 0;
|
|
569
505
|
Systrace.traceCounter(TRACE_TAG_REACT, mJsPendingCallsTitleForTrace, oldPendingCalls + 1);
|
|
570
|
-
if (wasIdle && !mBridgeIdleListeners.isEmpty()) {
|
|
571
|
-
mNativeModulesQueueThread.runOnQueue(
|
|
572
|
-
() -> {
|
|
573
|
-
for (NotThreadSafeBridgeIdleDebugListener listener : mBridgeIdleListeners) {
|
|
574
|
-
listener.onTransitionToBridgeBusy();
|
|
575
|
-
}
|
|
576
|
-
});
|
|
577
|
-
}
|
|
578
506
|
}
|
|
579
507
|
|
|
580
508
|
@Override
|
|
@@ -596,17 +524,7 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
596
524
|
int newPendingCalls = mPendingJSCalls.decrementAndGet();
|
|
597
525
|
// TODO(9604406): handle case of web workers injecting messages to main thread
|
|
598
526
|
// Assertions.assertCondition(newPendingCalls >= 0);
|
|
599
|
-
boolean isNowIdle = newPendingCalls == 0;
|
|
600
527
|
Systrace.traceCounter(TRACE_TAG_REACT, mJsPendingCallsTitleForTrace, newPendingCalls);
|
|
601
|
-
|
|
602
|
-
if (isNowIdle && !mBridgeIdleListeners.isEmpty()) {
|
|
603
|
-
mNativeModulesQueueThread.runOnQueue(
|
|
604
|
-
() -> {
|
|
605
|
-
for (NotThreadSafeBridgeIdleDebugListener listener : mBridgeIdleListeners) {
|
|
606
|
-
listener.onTransitionToBridgeIdle();
|
|
607
|
-
}
|
|
608
|
-
});
|
|
609
|
-
}
|
|
610
528
|
}
|
|
611
529
|
|
|
612
530
|
private void onNativeException(Exception e) {
|
|
@@ -663,7 +581,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
663
581
|
private @Nullable NativeModuleRegistry mRegistry;
|
|
664
582
|
private @Nullable JavaScriptExecutor mJSExecutor;
|
|
665
583
|
private @Nullable JSExceptionHandler mJSExceptionHandler;
|
|
666
|
-
private @Nullable ReactInstanceManagerInspectorTarget mInspectorTarget;
|
|
667
584
|
|
|
668
585
|
public Builder setReactQueueConfigurationSpec(
|
|
669
586
|
ReactQueueConfigurationSpec ReactQueueConfigurationSpec) {
|
|
@@ -691,20 +608,13 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
691
608
|
return this;
|
|
692
609
|
}
|
|
693
610
|
|
|
694
|
-
public Builder setInspectorTarget(
|
|
695
|
-
@Nullable ReactInstanceManagerInspectorTarget inspectorTarget) {
|
|
696
|
-
mInspectorTarget = inspectorTarget;
|
|
697
|
-
return this;
|
|
698
|
-
}
|
|
699
|
-
|
|
700
611
|
public CatalystInstanceImpl build() {
|
|
701
612
|
return new CatalystInstanceImpl(
|
|
702
613
|
Assertions.assertNotNull(mReactQueueConfigurationSpec),
|
|
703
614
|
Assertions.assertNotNull(mJSExecutor),
|
|
704
615
|
Assertions.assertNotNull(mRegistry),
|
|
705
616
|
Assertions.assertNotNull(mJSBundleLoader),
|
|
706
|
-
Assertions.assertNotNull(mJSExceptionHandler)
|
|
707
|
-
mInspectorTarget);
|
|
617
|
+
Assertions.assertNotNull(mJSExceptionHandler));
|
|
708
618
|
}
|
|
709
619
|
}
|
|
710
620
|
}
|
|
@@ -347,8 +347,23 @@ internal class JavaMethodWrapper(
|
|
|
347
347
|
if (jsArguments.isNull(atIndex)) {
|
|
348
348
|
null
|
|
349
349
|
} else {
|
|
350
|
-
|
|
351
|
-
|
|
350
|
+
object : Callback {
|
|
351
|
+
private var invoked = false
|
|
352
|
+
|
|
353
|
+
override fun invoke(vararg args: Any?) {
|
|
354
|
+
if (invoked) {
|
|
355
|
+
error(
|
|
356
|
+
"Illegal callback invocation from native module. This callback type only permits a single invocation from native code."
|
|
357
|
+
)
|
|
358
|
+
}
|
|
359
|
+
@Suppress("UNCHECKED_CAST")
|
|
360
|
+
jsInstance.invokeCallback(
|
|
361
|
+
callbackID = jsArguments.getDouble(atIndex).toInt(),
|
|
362
|
+
arguments = Arguments.fromJavaArgs(args as Array<Any?>),
|
|
363
|
+
)
|
|
364
|
+
invoked = true
|
|
365
|
+
}
|
|
366
|
+
}
|
|
352
367
|
}
|
|
353
368
|
}
|
|
354
369
|
|
|
@@ -60,7 +60,7 @@ public class ModuleHolder {
|
|
|
60
60
|
nativeModule.javaClass.simpleName,
|
|
61
61
|
nativeModule.canOverrideExistingModule(),
|
|
62
62
|
true,
|
|
63
|
-
|
|
63
|
+
false,
|
|
64
64
|
ReactModuleInfo.classIsTurboModule(nativeModule.javaClass),
|
|
65
65
|
)
|
|
66
66
|
|
|
@@ -108,7 +108,7 @@ public class ModuleHolder {
|
|
|
108
108
|
get() = reactModuleInfo.isTurboModule
|
|
109
109
|
|
|
110
110
|
public val isCxxModule: Boolean
|
|
111
|
-
get() =
|
|
111
|
+
get() = false
|
|
112
112
|
|
|
113
113
|
public val className: String
|
|
114
114
|
get() = reactModuleInfo.className
|
|
@@ -36,25 +36,10 @@ public class NativeModuleRegistry(
|
|
|
36
36
|
@JvmName("getJavaModules") // This is needed because this method is accessed by JNI
|
|
37
37
|
internal fun getJavaModules(jsInstance: JSInstance): List<JavaModuleWrapper> = buildList {
|
|
38
38
|
for ((_, value) in modules) {
|
|
39
|
-
|
|
40
|
-
add(JavaModuleWrapper(jsInstance, value))
|
|
41
|
-
}
|
|
39
|
+
add(JavaModuleWrapper(jsInstance, value))
|
|
42
40
|
}
|
|
43
41
|
}
|
|
44
42
|
|
|
45
|
-
@get:JvmName(
|
|
46
|
-
"getCxxModules"
|
|
47
|
-
) // This is needed till there are Java Consumer of this API inside React
|
|
48
|
-
// Native
|
|
49
|
-
internal val cxxModules: List<ModuleHolder>
|
|
50
|
-
get() = buildList {
|
|
51
|
-
for ((_, value) in modules) {
|
|
52
|
-
if (value.isCxxModule) {
|
|
53
|
-
add(value)
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
43
|
/** Adds any new modules to the current module registry */
|
|
59
44
|
@JvmName(
|
|
60
45
|
"registerModules"
|
|
@@ -109,23 +94,6 @@ public class NativeModuleRegistry(
|
|
|
109
94
|
}
|
|
110
95
|
}
|
|
111
96
|
|
|
112
|
-
public fun onBatchComplete() {
|
|
113
|
-
// The only native module that uses the onBatchComplete is the UI Manager. Hence, instead of
|
|
114
|
-
// iterating over all the modules for find this one instance, and then calling it, we
|
|
115
|
-
// short-circuit
|
|
116
|
-
// the search, and simply call OnBatchComplete on the UI Manager.
|
|
117
|
-
// With Fabric, UIManager would no longer be a NativeModule, so this call would simply go away
|
|
118
|
-
assertLegacyArchitecture(
|
|
119
|
-
"NativeModuleRegistry.onBatchComplete()",
|
|
120
|
-
LegacyArchitectureLogLevel.WARNING,
|
|
121
|
-
)
|
|
122
|
-
modules["UIManager"]?.let {
|
|
123
|
-
if (it.hasInstance()) {
|
|
124
|
-
(it.module as OnBatchCompleteListener).onBatchComplete()
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
97
|
public fun <T : NativeModule> hasModule(moduleInterface: Class<T>): Boolean {
|
|
130
98
|
val annotation = moduleInterface.getAnnotation(ReactModule::class.java)
|
|
131
99
|
requireNotNull(annotation) {
|
|
@@ -28,7 +28,7 @@ public interface Promise {
|
|
|
28
28
|
* @param code String
|
|
29
29
|
* @param message String
|
|
30
30
|
*/
|
|
31
|
-
public fun reject(code: String
|
|
31
|
+
public fun reject(code: String?, message: String?)
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* Report an exception with a custom code.
|
|
@@ -36,7 +36,7 @@ public interface Promise {
|
|
|
36
36
|
* @param code String
|
|
37
37
|
* @param throwable Throwable
|
|
38
38
|
*/
|
|
39
|
-
public fun reject(code: String
|
|
39
|
+
public fun reject(code: String?, throwable: Throwable?)
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
42
|
* Report an exception with a custom code and error message.
|
|
@@ -45,7 +45,7 @@ public interface Promise {
|
|
|
45
45
|
* @param message String
|
|
46
46
|
* @param throwable Throwable
|
|
47
47
|
*/
|
|
48
|
-
public fun reject(code: String
|
|
48
|
+
public fun reject(code: String?, message: String?, throwable: Throwable?)
|
|
49
49
|
|
|
50
50
|
/**
|
|
51
51
|
* Report an exception, with default error code. Useful in catch-all scenarios where it's unclear
|
|
@@ -73,7 +73,7 @@ public interface Promise {
|
|
|
73
73
|
* @param code String
|
|
74
74
|
* @param userInfo WritableMap
|
|
75
75
|
*/
|
|
76
|
-
public fun reject(code: String
|
|
76
|
+
public fun reject(code: String?, userInfo: WritableMap)
|
|
77
77
|
|
|
78
78
|
/**
|
|
79
79
|
* Report an exception with a custom code and userInfo.
|
|
@@ -82,7 +82,7 @@ public interface Promise {
|
|
|
82
82
|
* @param throwable Throwable
|
|
83
83
|
* @param userInfo WritableMap
|
|
84
84
|
*/
|
|
85
|
-
public fun reject(code: String
|
|
85
|
+
public fun reject(code: String?, throwable: Throwable?, userInfo: WritableMap)
|
|
86
86
|
|
|
87
87
|
/**
|
|
88
88
|
* Report an error with a custom code, error message and userInfo, an error not caused by an
|
|
@@ -92,7 +92,7 @@ public interface Promise {
|
|
|
92
92
|
* @param message String
|
|
93
93
|
* @param userInfo WritableMap
|
|
94
94
|
*/
|
|
95
|
-
public fun reject(code: String
|
|
95
|
+
public fun reject(code: String?, message: String?, userInfo: WritableMap)
|
|
96
96
|
|
|
97
97
|
/**
|
|
98
98
|
* Report an exception with a custom code, error message and userInfo.
|
|
@@ -38,7 +38,7 @@ constructor(private var resolve: Callback?, private var reject: Callback?) : Pro
|
|
|
38
38
|
* @param code String
|
|
39
39
|
* @param message String
|
|
40
40
|
*/
|
|
41
|
-
override fun reject(code: String
|
|
41
|
+
override fun reject(code: String?, message: String?) {
|
|
42
42
|
reject(code, message, null, null)
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -48,7 +48,7 @@ constructor(private var resolve: Callback?, private var reject: Callback?) : Pro
|
|
|
48
48
|
* @param code String
|
|
49
49
|
* @param throwable Throwable
|
|
50
50
|
*/
|
|
51
|
-
override fun reject(code: String
|
|
51
|
+
override fun reject(code: String?, throwable: Throwable?) {
|
|
52
52
|
reject(code, null, throwable, null)
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -59,7 +59,7 @@ constructor(private var resolve: Callback?, private var reject: Callback?) : Pro
|
|
|
59
59
|
* @param message String
|
|
60
60
|
* @param throwable Throwable
|
|
61
61
|
*/
|
|
62
|
-
override fun reject(code: String
|
|
62
|
+
override fun reject(code: String?, message: String?, throwable: Throwable?) {
|
|
63
63
|
reject(code, message, throwable, null)
|
|
64
64
|
}
|
|
65
65
|
|
|
@@ -94,7 +94,7 @@ constructor(private var resolve: Callback?, private var reject: Callback?) : Pro
|
|
|
94
94
|
* @param code String
|
|
95
95
|
* @param userInfo WritableMap
|
|
96
96
|
*/
|
|
97
|
-
override fun reject(code: String
|
|
97
|
+
override fun reject(code: String?, userInfo: WritableMap) {
|
|
98
98
|
reject(code, null, null, userInfo)
|
|
99
99
|
}
|
|
100
100
|
|
|
@@ -105,7 +105,7 @@ constructor(private var resolve: Callback?, private var reject: Callback?) : Pro
|
|
|
105
105
|
* @param throwable Throwable
|
|
106
106
|
* @param userInfo WritableMap
|
|
107
107
|
*/
|
|
108
|
-
override fun reject(code: String
|
|
108
|
+
override fun reject(code: String?, throwable: Throwable?, userInfo: WritableMap) {
|
|
109
109
|
reject(code, null, throwable, userInfo)
|
|
110
110
|
}
|
|
111
111
|
|
|
@@ -117,7 +117,7 @@ constructor(private var resolve: Callback?, private var reject: Callback?) : Pro
|
|
|
117
117
|
* @param message String
|
|
118
118
|
* @param userInfo WritableMap
|
|
119
119
|
*/
|
|
120
|
-
override fun reject(code: String
|
|
120
|
+
override fun reject(code: String?, message: String?, userInfo: WritableMap) {
|
|
121
121
|
reject(code, message, null, userInfo)
|
|
122
122
|
}
|
|
123
123
|
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
package com.facebook.react.bridge
|
|
9
9
|
|
|
10
10
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
11
|
-
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
|
|
12
11
|
import java.util.ArrayList
|
|
13
12
|
import java.util.Arrays
|
|
14
13
|
import kotlin.jvm.JvmStatic
|
|
@@ -90,17 +89,7 @@ public open class ReadableNativeArray protected constructor() : NativeArray(), R
|
|
|
90
89
|
|
|
91
90
|
override fun hashCode(): Int = localArray.hashCode()
|
|
92
91
|
|
|
93
|
-
override fun equals(other: Any?): Boolean
|
|
94
|
-
if (other !is ReadableNativeArray) {
|
|
95
|
-
return false
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
return if (ReactNativeFeatureFlags.useNativeEqualsInNativeReadableArrayAndroid()) {
|
|
99
|
-
nativeEquals(other)
|
|
100
|
-
} else {
|
|
101
|
-
localArray.contentDeepEquals(other.localArray)
|
|
102
|
-
}
|
|
103
|
-
}
|
|
92
|
+
override fun equals(other: Any?): Boolean = (other is ReadableNativeArray) && nativeEquals(other)
|
|
104
93
|
|
|
105
94
|
private external fun nativeEquals(other: ReadableNativeArray): Boolean
|
|
106
95
|
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.kt
CHANGED
|
@@ -10,12 +10,12 @@ package com.facebook.react.devsupport
|
|
|
10
10
|
import android.content.Context
|
|
11
11
|
import com.facebook.react.bridge.UiThreadUtil
|
|
12
12
|
import com.facebook.react.common.SurfaceDelegateFactory
|
|
13
|
+
import com.facebook.react.devsupport.inspector.TracingState
|
|
13
14
|
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener
|
|
14
15
|
import com.facebook.react.devsupport.interfaces.DevLoadingViewManager
|
|
15
16
|
import com.facebook.react.devsupport.interfaces.DevSupportManager
|
|
16
17
|
import com.facebook.react.devsupport.interfaces.PausedInDebuggerOverlayManager
|
|
17
18
|
import com.facebook.react.devsupport.interfaces.RedBoxHandler
|
|
18
|
-
import com.facebook.react.devsupport.interfaces.TracingState
|
|
19
19
|
import com.facebook.react.packagerconnection.RequestHandler
|
|
20
20
|
|
|
21
21
|
/**
|
|
@@ -23,9 +23,8 @@ import com.facebook.react.packagerconnection.RequestHandler
|
|
|
23
23
|
* [DevSupportManagerBase] with some additional, more flexible APIs for asynchronously loading the
|
|
24
24
|
* JS bundle.
|
|
25
25
|
*
|
|
26
|
-
* @constructor The primary constructor mirrors the same constructor we
|
|
27
|
-
*
|
|
28
|
-
* * is kept for backward compatibility.
|
|
26
|
+
* @constructor The primary constructor mirrors the same constructor we had for
|
|
27
|
+
* `BridgeDevSupportManager` and is kept for backward compatibility.
|
|
29
28
|
*/
|
|
30
29
|
internal class BridgelessDevSupportManager(
|
|
31
30
|
applicationContext: Context,
|
|
@@ -83,6 +82,6 @@ internal class BridgelessDevSupportManager(
|
|
|
83
82
|
}
|
|
84
83
|
|
|
85
84
|
fun tracingState(): TracingState {
|
|
86
|
-
return TracingState.
|
|
85
|
+
return TracingState.ENABLED_IN_CDP_MODE
|
|
87
86
|
}
|
|
88
87
|
}
|