react-native-tvos 0.83.1-0 → 0.84.0-0rc0
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 +3 -3
- 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 +3 -3
- 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 +40 -4
- 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 +1 -12
- 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/systeminfo/ReactNativeVersion.kt +3 -3
- 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 +19 -21
- 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/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/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/cxxreact/JSBigString.h +14 -5
- package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +4 -5
- package/ReactCommon/cxxreact/ReactMarker.cpp +0 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +5 -5
- package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.cpp +1 -1
- package/ReactCommon/hermes/React-hermes.podspec +1 -0
- 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 +307 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedProps.h +323 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsBuilder.h +133 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +100 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +246 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsSerializer.h +17 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +93 -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/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/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 +12 -12
- 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/generateSchemaInfos.js +7 -6
- package/scripts/ios-configure-glog.sh +6 -1
- package/scripts/react_native_pods.rb +8 -0
- package/sdks/.hermesv1version +1 -1
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/hermes-engine.podspec +39 -31
- package/sdks/hermes-engine/hermes-utils.rb +7 -14
- package/sdks/hermes-engine/version.properties +2 -2
- 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/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/ReactCommon/jsi/jsi/{hermes.h → hermes-interfaces.h} +0 -0
|
@@ -11,7 +11,6 @@ import de.undercouch.gradle.tasks.download.Download
|
|
|
11
11
|
import org.apache.tools.ant.taskdefs.condition.Os
|
|
12
12
|
|
|
13
13
|
plugins {
|
|
14
|
-
id("maven-publish")
|
|
15
14
|
id("signing")
|
|
16
15
|
alias(libs.plugins.android.library)
|
|
17
16
|
alias(libs.plugins.download)
|
|
@@ -350,10 +349,7 @@ android {
|
|
|
350
349
|
java.srcDirs("$hermesDir/lib/Platform/Intl/java", "$hermesDir/lib/Platform/Unicode/java")
|
|
351
350
|
}
|
|
352
351
|
|
|
353
|
-
buildFeatures {
|
|
354
|
-
prefab = true
|
|
355
|
-
prefabPublishing = true
|
|
356
|
-
}
|
|
352
|
+
buildFeatures { prefab = true }
|
|
357
353
|
|
|
358
354
|
dependencies {
|
|
359
355
|
implementation(libs.fbjni)
|
|
@@ -367,13 +363,6 @@ android {
|
|
|
367
363
|
jniLibs.excludes.add("**/libfbjni.so")
|
|
368
364
|
}
|
|
369
365
|
|
|
370
|
-
publishing {
|
|
371
|
-
multipleVariants {
|
|
372
|
-
withSourcesJar()
|
|
373
|
-
allVariants()
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
|
|
377
366
|
prefab { create("hermesvm") { headers = prefabHeadersDir.absolutePath } }
|
|
378
367
|
}
|
|
379
368
|
|
|
@@ -41,10 +41,7 @@ public class NativeModuleRegistryBuilder(
|
|
|
41
41
|
// We use an iterable instead of an iterator here to ensure thread safety, and that this list
|
|
42
42
|
// cannot be modified
|
|
43
43
|
val moduleHolders =
|
|
44
|
-
|
|
45
|
-
if (reactPackage is LazyReactPackage) {
|
|
46
|
-
reactPackage.getNativeModuleIterator(reactApplicationContext)
|
|
47
|
-
} else if (reactPackage is BaseReactPackage) {
|
|
44
|
+
if (reactPackage is BaseReactPackage) {
|
|
48
45
|
reactPackage.getNativeModuleIterator(reactApplicationContext)
|
|
49
46
|
} else {
|
|
50
47
|
ReactPackageHelper.getNativeModuleIterator(reactPackage, reactApplicationContext)
|
|
@@ -124,6 +124,9 @@ public abstract class ReactActivity extends AppCompatActivity
|
|
|
124
124
|
// as super.onBackPressed() will call all enabled callbacks in the dispatcher.
|
|
125
125
|
mBackPressedCallback.setEnabled(false);
|
|
126
126
|
super.onBackPressed();
|
|
127
|
+
// Re-enable callback to ensure custom back handling works after activity resume
|
|
128
|
+
// Without this, the callback remains disabled when the app returns from background
|
|
129
|
+
mBackPressedCallback.setEnabled(true);
|
|
127
130
|
}
|
|
128
131
|
|
|
129
132
|
@Override
|
|
@@ -68,9 +68,9 @@ public open class ReactDelegate {
|
|
|
68
68
|
launchOptions: Bundle?,
|
|
69
69
|
) {
|
|
70
70
|
this.activity = activity
|
|
71
|
-
mainComponentName = appKey
|
|
71
|
+
this.mainComponentName = appKey
|
|
72
72
|
this.launchOptions = launchOptions
|
|
73
|
-
doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
|
|
73
|
+
this.doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
|
|
74
74
|
this.reactNativeHost = reactNativeHost
|
|
75
75
|
}
|
|
76
76
|
|
|
@@ -81,9 +81,9 @@ public open class ReactDelegate {
|
|
|
81
81
|
launchOptions: Bundle?,
|
|
82
82
|
) {
|
|
83
83
|
this.activity = activity
|
|
84
|
-
mainComponentName = appKey
|
|
84
|
+
this.mainComponentName = appKey
|
|
85
85
|
this.launchOptions = launchOptions
|
|
86
|
-
doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
|
|
86
|
+
this.doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
|
|
87
87
|
this.reactHost = reactHost
|
|
88
88
|
}
|
|
89
89
|
|
|
@@ -95,11 +95,11 @@ public open class ReactDelegate {
|
|
|
95
95
|
launchOptions: Bundle?,
|
|
96
96
|
fabricEnabled: Boolean,
|
|
97
97
|
) {
|
|
98
|
-
isFabricEnabled = fabricEnabled
|
|
98
|
+
this.isFabricEnabled = fabricEnabled
|
|
99
99
|
this.activity = activity
|
|
100
|
-
mainComponentName = appKey
|
|
100
|
+
this.mainComponentName = appKey
|
|
101
101
|
this.launchOptions = launchOptions
|
|
102
|
-
doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
|
|
102
|
+
this.doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
|
|
103
103
|
this.reactNativeHost = reactNativeHost
|
|
104
104
|
}
|
|
105
105
|
|
|
@@ -178,13 +178,10 @@ public open class ReactDelegate {
|
|
|
178
178
|
if (
|
|
179
179
|
ReactNativeNewArchitectureFeatureFlags.enableBridgelessArchitecture() && reactHost != null
|
|
180
180
|
) {
|
|
181
|
-
reactHost?.onBackPressed()
|
|
181
|
+
return reactHost?.onBackPressed() == true
|
|
182
|
+
} else if (reactNativeHost?.hasInstance() == true) {
|
|
183
|
+
reactNativeHost?.reactInstanceManager?.onBackPressed()
|
|
182
184
|
return true
|
|
183
|
-
} else {
|
|
184
|
-
if (reactNativeHost?.hasInstance() == true) {
|
|
185
|
-
reactNativeHost?.reactInstanceManager?.onBackPressed()
|
|
186
|
-
return true
|
|
187
|
-
}
|
|
188
185
|
}
|
|
189
186
|
return false
|
|
190
187
|
}
|
|
@@ -57,11 +57,8 @@ import com.facebook.react.bridge.JSExceptionHandler;
|
|
|
57
57
|
import com.facebook.react.bridge.JavaScriptExecutor;
|
|
58
58
|
import com.facebook.react.bridge.JavaScriptExecutorFactory;
|
|
59
59
|
import com.facebook.react.bridge.NativeModuleRegistry;
|
|
60
|
-
import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener;
|
|
61
60
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
62
61
|
import com.facebook.react.bridge.ReactContext;
|
|
63
|
-
import com.facebook.react.bridge.ReactCxxErrorHandler;
|
|
64
|
-
import com.facebook.react.bridge.ReactInstanceManagerInspectorTarget;
|
|
65
62
|
import com.facebook.react.bridge.ReactMarker;
|
|
66
63
|
import com.facebook.react.bridge.ReactMarkerConstants;
|
|
67
64
|
import com.facebook.react.bridge.ReactNoCrashSoftException;
|
|
@@ -77,16 +74,11 @@ import com.facebook.react.common.SurfaceDelegateFactory;
|
|
|
77
74
|
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
|
|
78
75
|
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
|
|
79
76
|
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
|
|
80
|
-
import com.facebook.react.common.build.ReactBuildConfig;
|
|
81
77
|
import com.facebook.react.devsupport.DevSupportManagerFactory;
|
|
82
|
-
import com.facebook.react.devsupport.InspectorFlags;
|
|
83
78
|
import com.facebook.react.devsupport.ReactInstanceDevHelper;
|
|
84
|
-
import com.facebook.react.devsupport.inspector.InspectorNetworkHelper;
|
|
85
|
-
import com.facebook.react.devsupport.inspector.InspectorNetworkRequestListener;
|
|
86
79
|
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
|
|
87
80
|
import com.facebook.react.devsupport.interfaces.DevLoadingViewManager;
|
|
88
81
|
import com.facebook.react.devsupport.interfaces.DevSupportManager;
|
|
89
|
-
import com.facebook.react.devsupport.interfaces.DevSupportManager.PausedInDebuggerOverlayCommandListener;
|
|
90
82
|
import com.facebook.react.devsupport.interfaces.PackagerStatusCallback;
|
|
91
83
|
import com.facebook.react.devsupport.interfaces.PausedInDebuggerOverlayManager;
|
|
92
84
|
import com.facebook.react.devsupport.interfaces.RedBoxHandler;
|
|
@@ -102,7 +94,6 @@ import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
|
|
|
102
94
|
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|
103
95
|
import com.facebook.react.modules.core.ReactChoreographer;
|
|
104
96
|
import com.facebook.react.modules.debug.interfaces.DeveloperSettings;
|
|
105
|
-
import com.facebook.react.modules.systeminfo.AndroidInfoHelpers;
|
|
106
97
|
import com.facebook.react.packagerconnection.RequestHandler;
|
|
107
98
|
import com.facebook.react.uimanager.DisplayMetricsHolder;
|
|
108
99
|
import com.facebook.react.uimanager.ReactRoot;
|
|
@@ -114,8 +105,6 @@ import com.facebook.react.views.imagehelper.ResourceDrawableIdHelper;
|
|
|
114
105
|
import com.facebook.soloader.SoLoader;
|
|
115
106
|
import com.facebook.systrace.Systrace;
|
|
116
107
|
import com.facebook.systrace.SystraceMessage;
|
|
117
|
-
import java.lang.ref.WeakReference;
|
|
118
|
-
import java.lang.reflect.Method;
|
|
119
108
|
import java.util.ArrayList;
|
|
120
109
|
import java.util.Collection;
|
|
121
110
|
import java.util.Collections;
|
|
@@ -183,13 +172,11 @@ public class ReactInstanceManager {
|
|
|
183
172
|
private final boolean mUseDeveloperSupport;
|
|
184
173
|
private final boolean mRequireActivity;
|
|
185
174
|
private final boolean mKeepActivity;
|
|
186
|
-
private final @Nullable NotThreadSafeBridgeIdleDebugListener mBridgeIdleDebugListener;
|
|
187
175
|
private final Object mReactContextLock = new Object();
|
|
188
176
|
private @Nullable volatile ReactContext mCurrentReactContext;
|
|
189
177
|
private final Context mApplicationContext;
|
|
190
178
|
private @Nullable @ThreadConfined(UI) DefaultHardwareBackBtnHandler mDefaultBackButtonImpl;
|
|
191
179
|
private @Nullable Activity mCurrentActivity;
|
|
192
|
-
private @Nullable ReactInstanceManagerInspectorTarget mInspectorTarget;
|
|
193
180
|
private final Collection<com.facebook.react.ReactInstanceEventListener>
|
|
194
181
|
mReactInstanceEventListeners =
|
|
195
182
|
Collections.synchronizedList(
|
|
@@ -246,7 +233,6 @@ public class ReactInstanceManager {
|
|
|
246
233
|
DevSupportManagerFactory devSupportManagerFactory,
|
|
247
234
|
boolean requireActivity,
|
|
248
235
|
boolean keepActivity,
|
|
249
|
-
@Nullable NotThreadSafeBridgeIdleDebugListener bridgeIdleDebugListener,
|
|
250
236
|
LifecycleState initialLifecycleState,
|
|
251
237
|
JSExceptionHandler jSExceptionHandler,
|
|
252
238
|
@Nullable RedBoxHandler redBoxHandler,
|
|
@@ -292,7 +278,6 @@ public class ReactInstanceManager {
|
|
|
292
278
|
devLoadingViewManager,
|
|
293
279
|
pausedInDebuggerOverlayManager);
|
|
294
280
|
Systrace.endSection(TRACE_TAG_REACT);
|
|
295
|
-
mBridgeIdleDebugListener = bridgeIdleDebugListener;
|
|
296
281
|
mLifecycleState = initialLifecycleState;
|
|
297
282
|
mMemoryPressureRouter = new MemoryPressureRouter(applicationContext);
|
|
298
283
|
mJSExceptionHandler = jSExceptionHandler;
|
|
@@ -316,8 +301,6 @@ public class ReactInstanceManager {
|
|
|
316
301
|
mDevSupportManager.startInspector();
|
|
317
302
|
}
|
|
318
303
|
|
|
319
|
-
registerCxxErrorHandlerFunc();
|
|
320
|
-
|
|
321
304
|
// Using `if (true)` just to prevent tests / lint errors.
|
|
322
305
|
if (true) {
|
|
323
306
|
// Legacy architecture of React Native is deprecated and can't be initialized anymore.
|
|
@@ -414,24 +397,6 @@ public class ReactInstanceManager {
|
|
|
414
397
|
mDevSupportManager.handleException(e);
|
|
415
398
|
}
|
|
416
399
|
|
|
417
|
-
private void registerCxxErrorHandlerFunc() {
|
|
418
|
-
if (!ReactBuildConfig.UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE) {
|
|
419
|
-
Class[] parameterTypes = new Class[1];
|
|
420
|
-
parameterTypes[0] = Exception.class;
|
|
421
|
-
Method handleCxxErrorFunc = null;
|
|
422
|
-
try {
|
|
423
|
-
handleCxxErrorFunc = ReactInstanceManager.class.getMethod("handleCxxError", parameterTypes);
|
|
424
|
-
} catch (NoSuchMethodException e) {
|
|
425
|
-
FLog.e("ReactInstanceHolder", "Failed to set cxx error handler function", e);
|
|
426
|
-
}
|
|
427
|
-
ReactCxxErrorHandler.setHandleErrorFunc(this, handleCxxErrorFunc);
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
private void unregisterCxxErrorHandlerFunc() {
|
|
432
|
-
ReactCxxErrorHandler.setHandleErrorFunc(null, null);
|
|
433
|
-
}
|
|
434
|
-
|
|
435
400
|
static void initializeSoLoaderIfNecessary(Context applicationContext) {
|
|
436
401
|
// Call SoLoader.initialize here, this is required for apps that does not use exopackage and
|
|
437
402
|
// does not use SoLoader for loading other native code except from the one used by React Native
|
|
@@ -811,7 +776,6 @@ public class ReactInstanceManager {
|
|
|
811
776
|
|
|
812
777
|
moveToBeforeCreateLifecycleState();
|
|
813
778
|
mMemoryPressureRouter.destroy(mApplicationContext);
|
|
814
|
-
unregisterCxxErrorHandlerFunc();
|
|
815
779
|
|
|
816
780
|
mCreateReactContextThread = null;
|
|
817
781
|
synchronized (mAttachedReactRoots) {
|
|
@@ -830,15 +794,6 @@ public class ReactInstanceManager {
|
|
|
830
794
|
}
|
|
831
795
|
}
|
|
832
796
|
|
|
833
|
-
// If the host has been invalidated, now that the current context/instance
|
|
834
|
-
// has been destroyed, we can safely destroy the host's inspector target.
|
|
835
|
-
if (mInstanceManagerInvalidated) {
|
|
836
|
-
if (mInspectorTarget != null) {
|
|
837
|
-
mInspectorTarget.close();
|
|
838
|
-
mInspectorTarget = null;
|
|
839
|
-
}
|
|
840
|
-
}
|
|
841
|
-
|
|
842
797
|
mHasStartedCreatingInitialContext = false;
|
|
843
798
|
if (!mKeepActivity) {
|
|
844
799
|
mCurrentActivity = null;
|
|
@@ -1462,8 +1417,7 @@ public class ReactInstanceManager {
|
|
|
1462
1417
|
.setJSExecutor(jsExecutor)
|
|
1463
1418
|
.setRegistry(nativeModuleRegistry)
|
|
1464
1419
|
.setJSBundleLoader(jsBundleLoader)
|
|
1465
|
-
.setJSExceptionHandler(exceptionHandler)
|
|
1466
|
-
.setInspectorTarget(getOrCreateInspectorTarget());
|
|
1420
|
+
.setJSExceptionHandler(exceptionHandler);
|
|
1467
1421
|
|
|
1468
1422
|
ReactMarker.logMarker(CREATE_CATALYST_INSTANCE_START);
|
|
1469
1423
|
// CREATE_CATALYST_INSTANCE_END is in JSCExecutor.cpp
|
|
@@ -1517,9 +1471,6 @@ public class ReactInstanceManager {
|
|
|
1517
1471
|
catalystInstance.setFabricUIManager(uiManager);
|
|
1518
1472
|
}
|
|
1519
1473
|
}
|
|
1520
|
-
if (mBridgeIdleDebugListener != null) {
|
|
1521
|
-
catalystInstance.addBridgeIdleDebugListener(mBridgeIdleDebugListener);
|
|
1522
|
-
}
|
|
1523
1474
|
if (BuildConfig.ENABLE_PERFETTO || Systrace.isTracing(TRACE_TAG_REACT)) {
|
|
1524
1475
|
catalystInstance.setGlobalVariable("__RCTProfileIsProfiling", "true");
|
|
1525
1476
|
}
|
|
@@ -1572,73 +1523,4 @@ public class ReactInstanceManager {
|
|
|
1572
1523
|
nativeModuleRegistryBuilder.processPackage(reactPackage);
|
|
1573
1524
|
SystraceMessage.endSection(TRACE_TAG_REACT).flush();
|
|
1574
1525
|
}
|
|
1575
|
-
|
|
1576
|
-
private static class InspectorTargetDelegateImpl
|
|
1577
|
-
implements ReactInstanceManagerInspectorTarget.TargetDelegate {
|
|
1578
|
-
// This weak reference breaks the cycle between the C++ HostTarget and the
|
|
1579
|
-
// Java ReactInstanceManager, preventing memory leaks in apps that create
|
|
1580
|
-
// multiple ReactInstanceManagers over time.
|
|
1581
|
-
private WeakReference<ReactInstanceManager> mReactInstanceManagerWeak;
|
|
1582
|
-
|
|
1583
|
-
public InspectorTargetDelegateImpl(ReactInstanceManager inspectorTarget) {
|
|
1584
|
-
mReactInstanceManagerWeak = new WeakReference<ReactInstanceManager>(inspectorTarget);
|
|
1585
|
-
}
|
|
1586
|
-
|
|
1587
|
-
@Override
|
|
1588
|
-
public Map<String, String> getMetadata() {
|
|
1589
|
-
ReactInstanceManager reactInstanceManager = mReactInstanceManagerWeak.get();
|
|
1590
|
-
|
|
1591
|
-
return AndroidInfoHelpers.getInspectorHostMetadata(
|
|
1592
|
-
reactInstanceManager != null ? reactInstanceManager.mApplicationContext : null);
|
|
1593
|
-
}
|
|
1594
|
-
|
|
1595
|
-
@Override
|
|
1596
|
-
public void onReload() {
|
|
1597
|
-
UiThreadUtil.runOnUiThread(
|
|
1598
|
-
() -> {
|
|
1599
|
-
ReactInstanceManager reactInstanceManager = mReactInstanceManagerWeak.get();
|
|
1600
|
-
if (reactInstanceManager != null) {
|
|
1601
|
-
reactInstanceManager.mDevSupportManager.handleReloadJS();
|
|
1602
|
-
}
|
|
1603
|
-
});
|
|
1604
|
-
}
|
|
1605
|
-
|
|
1606
|
-
@Override
|
|
1607
|
-
public void onSetPausedInDebuggerMessage(@Nullable String message) {
|
|
1608
|
-
ReactInstanceManager reactInstanceManager = mReactInstanceManagerWeak.get();
|
|
1609
|
-
if (reactInstanceManager == null) {
|
|
1610
|
-
return;
|
|
1611
|
-
}
|
|
1612
|
-
if (message == null) {
|
|
1613
|
-
reactInstanceManager.mDevSupportManager.hidePausedInDebuggerOverlay();
|
|
1614
|
-
} else {
|
|
1615
|
-
reactInstanceManager.mDevSupportManager.showPausedInDebuggerOverlay(
|
|
1616
|
-
message,
|
|
1617
|
-
new PausedInDebuggerOverlayCommandListener() {
|
|
1618
|
-
@Override
|
|
1619
|
-
public void onResume() {
|
|
1620
|
-
UiThreadUtil.assertOnUiThread();
|
|
1621
|
-
if (reactInstanceManager.mInspectorTarget != null) {
|
|
1622
|
-
reactInstanceManager.mInspectorTarget.sendDebuggerResumeCommand();
|
|
1623
|
-
}
|
|
1624
|
-
}
|
|
1625
|
-
});
|
|
1626
|
-
}
|
|
1627
|
-
}
|
|
1628
|
-
|
|
1629
|
-
@Override
|
|
1630
|
-
public void loadNetworkResource(String url, InspectorNetworkRequestListener listener) {
|
|
1631
|
-
InspectorNetworkHelper.loadNetworkResource(url, listener);
|
|
1632
|
-
}
|
|
1633
|
-
}
|
|
1634
|
-
|
|
1635
|
-
private @Nullable ReactInstanceManagerInspectorTarget getOrCreateInspectorTarget() {
|
|
1636
|
-
if (mInspectorTarget == null && InspectorFlags.getFuseboxEnabled()) {
|
|
1637
|
-
|
|
1638
|
-
mInspectorTarget =
|
|
1639
|
-
new ReactInstanceManagerInspectorTarget(new InspectorTargetDelegateImpl(this));
|
|
1640
|
-
}
|
|
1641
|
-
|
|
1642
|
-
return mInspectorTarget;
|
|
1643
|
-
}
|
|
1644
1526
|
}
|
|
@@ -19,7 +19,6 @@ import com.facebook.react.ReactInstanceManager.initializeSoLoaderIfNecessary
|
|
|
19
19
|
import com.facebook.react.bridge.JSBundleLoader
|
|
20
20
|
import com.facebook.react.bridge.JSExceptionHandler
|
|
21
21
|
import com.facebook.react.bridge.JavaScriptExecutorFactory
|
|
22
|
-
import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener
|
|
23
22
|
import com.facebook.react.bridge.UIManagerProvider
|
|
24
23
|
import com.facebook.react.common.LifecycleState
|
|
25
24
|
import com.facebook.react.common.SurfaceDelegateFactory
|
|
@@ -49,7 +48,6 @@ public class ReactInstanceManagerBuilder {
|
|
|
49
48
|
private var jsBundleAssetUrl: String? = null
|
|
50
49
|
private var jsBundleLoader: JSBundleLoader? = null
|
|
51
50
|
private var jsMainModulePath: String? = null
|
|
52
|
-
private var bridgeIdleDebugListener: NotThreadSafeBridgeIdleDebugListener? = null
|
|
53
51
|
private var application: Application? = null
|
|
54
52
|
private var useDeveloperSupport = false
|
|
55
53
|
private var devSupportManagerFactory: DevSupportManagerFactory? = null
|
|
@@ -145,13 +143,6 @@ public class ReactInstanceManagerBuilder {
|
|
|
145
143
|
return this
|
|
146
144
|
}
|
|
147
145
|
|
|
148
|
-
public fun setBridgeIdleDebugListener(
|
|
149
|
-
bridgeIdleDebugListener: NotThreadSafeBridgeIdleDebugListener
|
|
150
|
-
): ReactInstanceManagerBuilder {
|
|
151
|
-
this.bridgeIdleDebugListener = bridgeIdleDebugListener
|
|
152
|
-
return this
|
|
153
|
-
}
|
|
154
|
-
|
|
155
146
|
/** Required. This must be your `Application` instance. */
|
|
156
147
|
public fun setApplication(application: Application): ReactInstanceManagerBuilder {
|
|
157
148
|
this.application = application
|
|
@@ -359,7 +350,6 @@ public class ReactInstanceManagerBuilder {
|
|
|
359
350
|
devSupportManagerFactory ?: DefaultDevSupportManagerFactory(),
|
|
360
351
|
requireActivity,
|
|
361
352
|
keepActivity,
|
|
362
|
-
bridgeIdleDebugListener,
|
|
363
353
|
checkNotNull(initialLifecycleState) { "Initial lifecycle state was not set" },
|
|
364
354
|
jsExceptionHandler,
|
|
365
355
|
redBoxHandler,
|
|
@@ -27,7 +27,7 @@ internal object ReactPackageHelper {
|
|
|
27
27
|
): Iterable<ModuleHolder> {
|
|
28
28
|
FLog.d(
|
|
29
29
|
ReactConstants.TAG,
|
|
30
|
-
"${reactPackage.javaClass.simpleName} is not a
|
|
30
|
+
"${reactPackage.javaClass.simpleName} is not a BaseReactPackage, falling back to old version.",
|
|
31
31
|
)
|
|
32
32
|
@Suppress("DEPRECATION")
|
|
33
33
|
val nativeModules = reactPackage.createNativeModules(reactApplicationContext)
|
package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.kt
CHANGED
|
@@ -8,8 +8,6 @@
|
|
|
8
8
|
package com.facebook.react
|
|
9
9
|
|
|
10
10
|
import com.facebook.jni.HybridData
|
|
11
|
-
import com.facebook.react.bridge.CxxModuleWrapper
|
|
12
|
-
import com.facebook.react.bridge.ModuleSpec
|
|
13
11
|
import com.facebook.react.bridge.NativeModule
|
|
14
12
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
15
13
|
import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlags
|
|
@@ -17,7 +15,6 @@ import com.facebook.react.internal.turbomodule.core.TurboModuleManagerDelegate
|
|
|
17
15
|
import com.facebook.react.module.annotations.ReactModule
|
|
18
16
|
import com.facebook.react.module.model.ReactModuleInfo
|
|
19
17
|
import com.facebook.react.turbomodule.core.interfaces.TurboModule
|
|
20
|
-
import javax.inject.Provider
|
|
21
18
|
|
|
22
19
|
public abstract class ReactPackageTurboModuleManagerDelegate : TurboModuleManagerDelegate {
|
|
23
20
|
internal fun interface ModuleProvider {
|
|
@@ -61,26 +58,6 @@ public abstract class ReactPackageTurboModuleManagerDelegate : TurboModuleManage
|
|
|
61
58
|
continue
|
|
62
59
|
}
|
|
63
60
|
|
|
64
|
-
@Suppress("DEPRECATION")
|
|
65
|
-
if (shouldSupportLegacyPackages() && reactPackage is LazyReactPackage) {
|
|
66
|
-
// TODO(T145105887): Output warnings that LazyReactPackage was used
|
|
67
|
-
val lazyPkg = reactPackage
|
|
68
|
-
val moduleSpecs: List<ModuleSpec> =
|
|
69
|
-
lazyPkg.internal_getNativeModules(reactApplicationContext)
|
|
70
|
-
val moduleSpecProviderMap: MutableMap<String?, Provider<out NativeModule>> = mutableMapOf()
|
|
71
|
-
for (moduleSpec in moduleSpecs) {
|
|
72
|
-
moduleSpecProviderMap[moduleSpec.getName()] = moduleSpec.getProvider()
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
val moduleProvider = ModuleProvider { moduleName: String ->
|
|
76
|
-
moduleSpecProviderMap[moduleName]?.get()
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
moduleProviders.add(moduleProvider)
|
|
80
|
-
packageModuleInfos[moduleProvider] = lazyPkg.reactModuleInfoProvider.getReactModuleInfos()
|
|
81
|
-
continue
|
|
82
|
-
}
|
|
83
|
-
|
|
84
61
|
if (shouldSupportLegacyPackages()) {
|
|
85
62
|
// TODO(T145105887): Output warnings that ReactPackage was used
|
|
86
63
|
@Suppress("DEPRECATION")
|
|
@@ -103,7 +80,7 @@ public abstract class ReactPackageTurboModuleManagerDelegate : TurboModuleManage
|
|
|
103
80
|
moduleClass.name,
|
|
104
81
|
reactModule.canOverrideExistingModule,
|
|
105
82
|
true,
|
|
106
|
-
|
|
83
|
+
false,
|
|
107
84
|
ReactModuleInfo.classIsTurboModule(moduleClass),
|
|
108
85
|
)
|
|
109
86
|
else
|
|
@@ -112,7 +89,7 @@ public abstract class ReactPackageTurboModuleManagerDelegate : TurboModuleManage
|
|
|
112
89
|
moduleClass.name,
|
|
113
90
|
module.canOverrideExistingModule(),
|
|
114
91
|
true,
|
|
115
|
-
|
|
92
|
+
false,
|
|
116
93
|
ReactModuleInfo.classIsTurboModule(moduleClass),
|
|
117
94
|
)
|
|
118
95
|
|
|
@@ -128,8 +105,6 @@ public abstract class ReactPackageTurboModuleManagerDelegate : TurboModuleManage
|
|
|
128
105
|
}
|
|
129
106
|
}
|
|
130
107
|
|
|
131
|
-
override fun unstable_shouldEnableLegacyModuleInterop(): Boolean = shouldEnableLegacyModuleInterop
|
|
132
|
-
|
|
133
108
|
override fun getModule(moduleName: String): TurboModule? {
|
|
134
109
|
var resolvedModule: NativeModule? = null
|
|
135
110
|
|
|
@@ -176,7 +151,7 @@ public abstract class ReactPackageTurboModuleManagerDelegate : TurboModuleManage
|
|
|
176
151
|
}
|
|
177
152
|
|
|
178
153
|
override fun getLegacyModule(moduleName: String): NativeModule? {
|
|
179
|
-
if (!
|
|
154
|
+
if (!shouldEnableLegacyModuleInterop) {
|
|
180
155
|
return null
|
|
181
156
|
}
|
|
182
157
|
|
|
@@ -214,7 +189,7 @@ public abstract class ReactPackageTurboModuleManagerDelegate : TurboModuleManage
|
|
|
214
189
|
}
|
|
215
190
|
}
|
|
216
191
|
|
|
217
|
-
private fun shouldSupportLegacyPackages(): Boolean =
|
|
192
|
+
private fun shouldSupportLegacyPackages(): Boolean = shouldEnableLegacyModuleInterop
|
|
218
193
|
|
|
219
194
|
public abstract class Builder {
|
|
220
195
|
private var packages: List<ReactPackage>? = null
|
|
@@ -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
|
|