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
|
@@ -8,19 +8,113 @@
|
|
|
8
8
|
#pragma once
|
|
9
9
|
|
|
10
10
|
#include <fbjni/fbjni.h>
|
|
11
|
+
|
|
11
12
|
#include <jsinspector-modern/HostTarget.h>
|
|
12
13
|
#include <react/jni/InspectorNetworkRequestListener.h>
|
|
13
14
|
#include <react/jni/JExecutor.h>
|
|
15
|
+
|
|
16
|
+
#include <mutex>
|
|
17
|
+
#include <optional>
|
|
14
18
|
#include <string>
|
|
19
|
+
#include <vector>
|
|
15
20
|
|
|
16
21
|
namespace facebook::react {
|
|
17
22
|
|
|
23
|
+
struct JTracingState : public jni::JavaClass<JTracingState> {
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/facebook/react/devsupport/inspector/TracingState;";
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
namespace {
|
|
28
|
+
|
|
29
|
+
enum class TracingState {
|
|
30
|
+
Disabled,
|
|
31
|
+
EnabledInBackgroundMode,
|
|
32
|
+
EnabledInCDPMode,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
jni::local_ref<JTracingState::javaobject> convertCPPTracingStateToJava(TracingState tracingState)
|
|
36
|
+
{
|
|
37
|
+
auto tracingStateClass = jni::findClassLocal("com/facebook/react/devsupport/inspector/TracingState");
|
|
38
|
+
auto valueOfMethod = tracingStateClass->getStaticMethod<JTracingState(jstring)>("valueOf");
|
|
39
|
+
|
|
40
|
+
switch (tracingState) {
|
|
41
|
+
case TracingState::Disabled:
|
|
42
|
+
return valueOfMethod(tracingStateClass, jni::make_jstring("DISABLED").get());
|
|
43
|
+
|
|
44
|
+
case TracingState::EnabledInBackgroundMode:
|
|
45
|
+
return valueOfMethod(tracingStateClass, jni::make_jstring("ENABLED_IN_BACKGROUND_MODE").get());
|
|
46
|
+
|
|
47
|
+
case TracingState::EnabledInCDPMode:
|
|
48
|
+
return valueOfMethod(tracingStateClass, jni::make_jstring("ENABLED_IN_CDP_MODE").get());
|
|
49
|
+
|
|
50
|
+
default:
|
|
51
|
+
jni::throwNewJavaException("java/lang/IllegalStateException", "Unexpected new TracingState.");
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
} // namespace
|
|
56
|
+
|
|
18
57
|
struct JTaskInterface : public jni::JavaClass<JTaskInterface> {
|
|
19
58
|
static constexpr auto kJavaDescriptor = "Lcom/facebook/react/interfaces/TaskInterface;";
|
|
20
59
|
};
|
|
21
60
|
|
|
22
|
-
struct
|
|
23
|
-
static constexpr auto kJavaDescriptor = "Lcom/facebook/react/devsupport/
|
|
61
|
+
struct JTracingStateListener : public jni::JavaClass<JTracingStateListener> {
|
|
62
|
+
static constexpr auto kJavaDescriptor = "Lcom/facebook/react/devsupport/inspector/TracingStateListener;";
|
|
63
|
+
|
|
64
|
+
void onStateChanged(TracingState tracingState, bool screenshotsEnabled) const
|
|
65
|
+
{
|
|
66
|
+
static auto method =
|
|
67
|
+
javaClassStatic()->getMethod<void(jni::local_ref<JTracingState::javaobject>, jboolean)>("onStateChanged");
|
|
68
|
+
return method(self(), convertCPPTracingStateToJava(tracingState), static_cast<jboolean>(screenshotsEnabled));
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
struct JFrameTimingSequence : public jni::JavaClass<JFrameTimingSequence> {
|
|
73
|
+
static constexpr auto kJavaDescriptor = "Lcom/facebook/react/devsupport/inspector/FrameTimingSequence;";
|
|
74
|
+
|
|
75
|
+
uint64_t getId() const
|
|
76
|
+
{
|
|
77
|
+
auto field = javaClassStatic()->getField<jint>("id");
|
|
78
|
+
return static_cast<uint64_t>(getFieldValue(field));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
uint64_t getThreadId() const
|
|
82
|
+
{
|
|
83
|
+
auto field = javaClassStatic()->getField<jint>("threadId");
|
|
84
|
+
return static_cast<uint64_t>(getFieldValue(field));
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
HighResTimeStamp getBeginDrawingTimestamp() const
|
|
88
|
+
{
|
|
89
|
+
auto field = javaClassStatic()->getField<jlong>("beginDrawingTimestamp");
|
|
90
|
+
return HighResTimeStamp::fromChronoSteadyClockTimePoint(
|
|
91
|
+
std::chrono::steady_clock::time_point(std::chrono::nanoseconds(getFieldValue(field))));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
HighResTimeStamp getCommitTimestamp() const
|
|
95
|
+
{
|
|
96
|
+
auto field = javaClassStatic()->getField<jlong>("commitTimestamp");
|
|
97
|
+
return HighResTimeStamp::fromChronoSteadyClockTimePoint(
|
|
98
|
+
std::chrono::steady_clock::time_point(std::chrono::nanoseconds(getFieldValue(field))));
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
HighResTimeStamp getEndDrawingTimestamp() const
|
|
102
|
+
{
|
|
103
|
+
auto field = javaClassStatic()->getField<jlong>("endDrawingTimestamp");
|
|
104
|
+
return HighResTimeStamp::fromChronoSteadyClockTimePoint(
|
|
105
|
+
std::chrono::steady_clock::time_point(std::chrono::nanoseconds(getFieldValue(field))));
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
std::optional<std::string> getScreenshot() const
|
|
109
|
+
{
|
|
110
|
+
auto field = javaClassStatic()->getField<jstring>("screenshot");
|
|
111
|
+
auto javaScreenshot = getFieldValue(field);
|
|
112
|
+
if (javaScreenshot) {
|
|
113
|
+
auto jstring = jni::static_ref_cast<jni::JString>(javaScreenshot);
|
|
114
|
+
return jstring->toStdString();
|
|
115
|
+
}
|
|
116
|
+
return std::nullopt;
|
|
117
|
+
}
|
|
24
118
|
};
|
|
25
119
|
|
|
26
120
|
struct JReactHostImpl : public jni::JavaClass<JReactHostImpl> {
|
|
@@ -55,6 +149,65 @@ struct JReactHostImpl : public jni::JavaClass<JReactHostImpl> {
|
|
|
55
149
|
}
|
|
56
150
|
};
|
|
57
151
|
|
|
152
|
+
/**
|
|
153
|
+
* A callback that will be invoked when tracing state has changed.
|
|
154
|
+
*/
|
|
155
|
+
using TracingStateListener = std::function<void(TracingState state, bool screenshotsCategoryEnabled)>;
|
|
156
|
+
|
|
157
|
+
class TracingDelegate : public jsinspector_modern::HostTargetTracingDelegate {
|
|
158
|
+
public:
|
|
159
|
+
void onTracingStarted(jsinspector_modern::tracing::Mode tracingMode, bool screenshotsCategoryEnabled) override;
|
|
160
|
+
void onTracingStopped() override;
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* A synchronous way to get the current tracing state.
|
|
164
|
+
* Could be called from any thread.
|
|
165
|
+
*/
|
|
166
|
+
TracingState getTracingState();
|
|
167
|
+
/**
|
|
168
|
+
* Register a listener that will be notified when the tracing state changes.
|
|
169
|
+
* Could be called from any thread.
|
|
170
|
+
*/
|
|
171
|
+
size_t registerTracingStateListener(TracingStateListener listener);
|
|
172
|
+
/**
|
|
173
|
+
* Unregister previously registered listener with the id returned from
|
|
174
|
+
* TracingDelegate::registerTracingStateListener().
|
|
175
|
+
*/
|
|
176
|
+
void unregisterTracingStateListener(size_t subscriptionId);
|
|
177
|
+
|
|
178
|
+
private:
|
|
179
|
+
/**
|
|
180
|
+
* Covers read / write operations on tracingState_ and subscriptions_.
|
|
181
|
+
*/
|
|
182
|
+
std::mutex mutex_;
|
|
183
|
+
/**
|
|
184
|
+
* Since HostInspectorTarget creates HostTarget, the default value is Disabled.
|
|
185
|
+
* However, the TracingDelegate is subscribed at the construction of HostTarget, so it will be notified as early as
|
|
186
|
+
* possible.
|
|
187
|
+
*/
|
|
188
|
+
TracingState tracingState_ = TracingState::Disabled;
|
|
189
|
+
/**
|
|
190
|
+
* Map of subscription ID to listener.
|
|
191
|
+
*/
|
|
192
|
+
std::unordered_map<size_t, TracingStateListener> subscriptions_;
|
|
193
|
+
/**
|
|
194
|
+
* A counter for generating unique subscription IDs.
|
|
195
|
+
*/
|
|
196
|
+
uint64_t nextSubscriptionId_ = 0;
|
|
197
|
+
/**
|
|
198
|
+
* Returns a collection of listeners that are subscribed at the time of the call.
|
|
199
|
+
* Expected to be only called with mutex_ locked.
|
|
200
|
+
*/
|
|
201
|
+
std::vector<TracingStateListener> copySubscribedListeners();
|
|
202
|
+
/**
|
|
203
|
+
* Notifies specified listeners about the state change.
|
|
204
|
+
*/
|
|
205
|
+
void notifyListeners(
|
|
206
|
+
const std::vector<TracingStateListener> &listeners,
|
|
207
|
+
TracingState state,
|
|
208
|
+
bool screenshotsCategoryEnabled);
|
|
209
|
+
};
|
|
210
|
+
|
|
58
211
|
class JReactHostInspectorTarget : public jni::HybridClass<JReactHostInspectorTarget>,
|
|
59
212
|
public jsinspector_modern::HostTargetDelegate {
|
|
60
213
|
public:
|
|
@@ -70,14 +223,6 @@ class JReactHostInspectorTarget : public jni::HybridClass<JReactHostInspectorTar
|
|
|
70
223
|
static void registerNatives();
|
|
71
224
|
void sendDebuggerResumeCommand();
|
|
72
225
|
|
|
73
|
-
/**
|
|
74
|
-
* Get the state of the background trace: running, stopped, or disabled
|
|
75
|
-
* Background tracing will be disabled if there is no metro connection or if
|
|
76
|
-
* there is a CDP initiate trace in progress.
|
|
77
|
-
*
|
|
78
|
-
* \return the background trace state
|
|
79
|
-
*/
|
|
80
|
-
jint tracingState();
|
|
81
226
|
/**
|
|
82
227
|
* Starts a background trace recording for this HostTarget.
|
|
83
228
|
*
|
|
@@ -99,6 +244,31 @@ class JReactHostInspectorTarget : public jni::HybridClass<JReactHostInspectorTar
|
|
|
99
244
|
|
|
100
245
|
jsinspector_modern::HostTarget *getInspectorTarget();
|
|
101
246
|
|
|
247
|
+
/**
|
|
248
|
+
* Get the current tracing state. Could be called from any thread.
|
|
249
|
+
*/
|
|
250
|
+
jni::local_ref<JTracingState::javaobject> getTracingState();
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Register a listener that will be notified when the tracing state changes.
|
|
254
|
+
* Could be called from any thread.
|
|
255
|
+
*
|
|
256
|
+
* \return A unique subscription ID to use for unregistering the listener.
|
|
257
|
+
*/
|
|
258
|
+
jlong registerTracingStateListener(jni::alias_ref<JTracingStateListener::javaobject> listener);
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Unregister a previously registered tracing state listener.
|
|
262
|
+
*
|
|
263
|
+
* \param subscriptionId The subscription ID returned from JReactHostInspectorTarget::registerTracingStateListener.
|
|
264
|
+
*/
|
|
265
|
+
void unregisterTracingStateListener(jlong subscriptionId);
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Propagate frame timings information to the Inspector's Tracing subsystem.
|
|
269
|
+
*/
|
|
270
|
+
void recordFrameTimings(jni::alias_ref<JFrameTimingSequence::javaobject> frameTimingSequence);
|
|
271
|
+
|
|
102
272
|
// HostTargetDelegate methods
|
|
103
273
|
jsinspector_modern::HostTargetMetadata getMetadata() override;
|
|
104
274
|
void onReload(const PageReloadRequest &request) override;
|
|
@@ -107,8 +277,9 @@ class JReactHostInspectorTarget : public jni::HybridClass<JReactHostInspectorTar
|
|
|
107
277
|
void loadNetworkResource(
|
|
108
278
|
const jsinspector_modern::LoadNetworkResourceRequest ¶ms,
|
|
109
279
|
jsinspector_modern::ScopedExecutor<jsinspector_modern::NetworkRequestListener> executor) override;
|
|
110
|
-
std::optional<jsinspector_modern::tracing::
|
|
111
|
-
|
|
280
|
+
std::optional<jsinspector_modern::tracing::HostTracingProfile>
|
|
281
|
+
unstable_getHostTracingProfileThatWillBeEmittedOnInitialization() override;
|
|
282
|
+
jsinspector_modern::HostTargetTracingDelegate *getTracingDelegate() override;
|
|
112
283
|
|
|
113
284
|
private:
|
|
114
285
|
JReactHostInspectorTarget(
|
|
@@ -126,20 +297,23 @@ class JReactHostInspectorTarget : public jni::HybridClass<JReactHostInspectorTar
|
|
|
126
297
|
std::optional<int> inspectorPageId_;
|
|
127
298
|
|
|
128
299
|
/**
|
|
129
|
-
* Stops previously started trace recording and returns the captured
|
|
300
|
+
* Stops previously started trace recording and returns the captured HostTracingProfile.
|
|
130
301
|
*/
|
|
131
|
-
jsinspector_modern::tracing::
|
|
302
|
+
jsinspector_modern::tracing::HostTracingProfile stopTracing();
|
|
132
303
|
/**
|
|
133
|
-
* Stashes previously recorded
|
|
304
|
+
* Stashes previously recorded HostTracingProfile that will be emitted when
|
|
134
305
|
* CDP session is created. Once emitted, the value will be cleared from this
|
|
135
306
|
* instance.
|
|
136
307
|
*/
|
|
137
|
-
void
|
|
308
|
+
void stashTracingProfile(jsinspector_modern::tracing::HostTracingProfile &&hostTracingProfile);
|
|
309
|
+
/**
|
|
310
|
+
* Previously recorded HostTracingProfile that will be emitted when CDP session is created.
|
|
311
|
+
*/
|
|
312
|
+
std::optional<jsinspector_modern::tracing::HostTracingProfile> stashedTracingProfile_;
|
|
138
313
|
/**
|
|
139
|
-
*
|
|
140
|
-
* CDP session is created.
|
|
314
|
+
* Encapsulates the logic around tracing for this HostInspectorTarget.
|
|
141
315
|
*/
|
|
142
|
-
std::
|
|
316
|
+
std::unique_ptr<TracingDelegate> tracingDelegate_;
|
|
143
317
|
|
|
144
318
|
friend HybridBase;
|
|
145
319
|
};
|
|
@@ -13,11 +13,12 @@
|
|
|
13
13
|
#include <glog/logging.h>
|
|
14
14
|
#include <jni.h>
|
|
15
15
|
#include <jsi/jsi.h>
|
|
16
|
-
#include <jsireact/JSIExecutor.h>
|
|
17
16
|
#include <react/jni/JRuntimeExecutor.h>
|
|
18
17
|
#include <react/jni/JSLogging.h>
|
|
19
18
|
#include <react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h>
|
|
20
19
|
#include <react/runtime/BridgelessNativeMethodCallInvoker.h>
|
|
20
|
+
#include <react/runtime/JSRuntimeBindings.h>
|
|
21
|
+
|
|
21
22
|
#include "JavaTimerRegistry.h"
|
|
22
23
|
|
|
23
24
|
namespace facebook::react {
|
|
@@ -200,7 +200,7 @@ jint PerformanceTracerCxxInterop::subscribeToTracingStateChanges(
|
|
|
200
200
|
onTracingStateChangedMethod(
|
|
201
201
|
callback, static_cast<jboolean>(isTracing));
|
|
202
202
|
});
|
|
203
|
-
} catch (const std::exception&
|
|
203
|
+
} catch (const std::exception&) {
|
|
204
204
|
}
|
|
205
205
|
}
|
|
206
206
|
});
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
#include <ReactCommon/BindingsInstallerHolder.h>
|
|
18
18
|
#include <ReactCommon/CxxTurboModuleUtils.h>
|
|
19
19
|
#include <ReactCommon/JavaInteropTurboModule.h>
|
|
20
|
-
#include <ReactCommon/TurboCxxModule.h>
|
|
21
20
|
#include <ReactCommon/TurboModuleBinding.h>
|
|
22
21
|
#include <ReactCommon/TurboModulePerfLogger.h>
|
|
23
|
-
#include <react/
|
|
22
|
+
#include <react/featureflags/ReactNativeFeatureFlags.h>
|
|
23
|
+
#include <react/jni/CxxModuleWrapperBase.h>
|
|
24
24
|
|
|
25
25
|
namespace facebook::react {
|
|
26
26
|
|
|
@@ -95,24 +95,20 @@ class JMethodDescriptor : public jni::JavaClass<JMethodDescriptor> {
|
|
|
95
95
|
} // namespace
|
|
96
96
|
|
|
97
97
|
TurboModuleManager::TurboModuleManager(
|
|
98
|
-
RuntimeExecutor runtimeExecutor,
|
|
99
98
|
std::shared_ptr<CallInvoker> jsCallInvoker,
|
|
100
99
|
std::shared_ptr<NativeMethodCallInvoker> nativeMethodCallInvoker,
|
|
101
100
|
jni::alias_ref<TurboModuleManagerDelegate::javaobject> delegate)
|
|
102
|
-
:
|
|
103
|
-
jsCallInvoker_(std::move(jsCallInvoker)),
|
|
101
|
+
: jsCallInvoker_(std::move(jsCallInvoker)),
|
|
104
102
|
nativeMethodCallInvoker_(std::move(nativeMethodCallInvoker)),
|
|
105
103
|
delegate_(jni::make_global(delegate)) {}
|
|
106
104
|
|
|
107
105
|
jni::local_ref<TurboModuleManager::jhybriddata> TurboModuleManager::initHybrid(
|
|
108
106
|
jni::alias_ref<jhybridobject> /* unused */,
|
|
109
|
-
jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutor,
|
|
110
107
|
jni::alias_ref<CallInvokerHolder::javaobject> jsCallInvokerHolder,
|
|
111
108
|
jni::alias_ref<NativeMethodCallInvokerHolder::javaobject>
|
|
112
109
|
nativeMethodCallInvokerHolder,
|
|
113
110
|
jni::alias_ref<TurboModuleManagerDelegate::javaobject> delegate) {
|
|
114
111
|
return makeCxxInstance(
|
|
115
|
-
runtimeExecutor->cthis()->get(),
|
|
116
112
|
jsCallInvokerHolder->cthis()->getCallInvoker(),
|
|
117
113
|
nativeMethodCallInvokerHolder->cthis()->getNativeMethodCallInvoker(),
|
|
118
114
|
delegate);
|
|
@@ -126,10 +122,11 @@ void TurboModuleManager::registerNatives() {
|
|
|
126
122
|
});
|
|
127
123
|
}
|
|
128
124
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
return [
|
|
125
|
+
TurboModuleProviderFunctionTypeWithRuntime
|
|
126
|
+
TurboModuleManager::createTurboModuleProvider(
|
|
127
|
+
jni::alias_ref<jhybridobject> javaPart) {
|
|
128
|
+
return [weakJavaPart = jni::make_weak(javaPart)](
|
|
129
|
+
jsi::Runtime& runtime,
|
|
133
130
|
const std::string& name) -> std::shared_ptr<TurboModule> {
|
|
134
131
|
auto javaPart = weakJavaPart.lockLocal();
|
|
135
132
|
if (!javaPart) {
|
|
@@ -141,7 +138,7 @@ TurboModuleProviderFunctionType TurboModuleManager::createTurboModuleProvider(
|
|
|
141
138
|
return nullptr;
|
|
142
139
|
}
|
|
143
140
|
|
|
144
|
-
return cxxPart->getTurboModule(javaPart, name,
|
|
141
|
+
return cxxPart->getTurboModule(javaPart, name, runtime);
|
|
145
142
|
};
|
|
146
143
|
}
|
|
147
144
|
|
|
@@ -177,11 +174,24 @@ std::shared_ptr<TurboModule> TurboModuleManager::getTurboModule(
|
|
|
177
174
|
return turboModule;
|
|
178
175
|
}
|
|
179
176
|
|
|
177
|
+
// TODO(T248203434): Remove this workaround once fixed in fbjni
|
|
178
|
+
// NOTE: We use jstring instead of std::string for the method signature to
|
|
179
|
+
// work around a bug in fbjni's exception handling. When a Java method throws
|
|
180
|
+
// an exception, fbjni's JMethod::operator() needs to check for pending
|
|
181
|
+
// exceptions via FACEBOOK_JNI_THROW_PENDING_EXCEPTION(). However, if we pass
|
|
182
|
+
// std::string, fbjni creates a temporary local_ref<JString> for the argument.
|
|
183
|
+
// C++ destroys temporaries at the end of the full-expression, which happens
|
|
184
|
+
// AFTER the JNI call returns but BEFORE the exception check. The destructor
|
|
185
|
+
// calls JNI functions (GetObjectRefType) while there's a pending exception,
|
|
186
|
+
// which violates JNI rules and causes ART's CheckJNI to abort the process.
|
|
187
|
+
//
|
|
188
|
+
// By pre-converting to jstring here, we control the lifetime of the
|
|
189
|
+
// local_ref<JString> so it extends past the exception check.
|
|
180
190
|
static auto getTurboJavaModule =
|
|
181
|
-
javaPart->getClass()
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
auto moduleInstance = getTurboJavaModule(javaPart.get(),
|
|
191
|
+
javaPart->getClass()->getMethod<jni::alias_ref<JTurboModule>(jstring)>(
|
|
192
|
+
"getTurboJavaModule");
|
|
193
|
+
auto jname = jni::make_jstring(name);
|
|
194
|
+
auto moduleInstance = getTurboJavaModule(javaPart.get(), jname.get());
|
|
185
195
|
if (moduleInstance) {
|
|
186
196
|
TurboModulePerfLogger::moduleJSRequireEndingStart(moduleName);
|
|
187
197
|
JavaTurboModule::InitParams params = {
|
|
@@ -208,28 +218,22 @@ std::shared_ptr<TurboModule> TurboModuleManager::getTurboModule(
|
|
|
208
218
|
return turboModule;
|
|
209
219
|
}
|
|
210
220
|
|
|
211
|
-
static auto getTurboLegacyCxxModule =
|
|
212
|
-
javaPart->getClass()
|
|
213
|
-
->getMethod<jni::alias_ref<CxxModuleWrapper::javaobject>(
|
|
214
|
-
const std::string&)>("getTurboLegacyCxxModule");
|
|
215
|
-
auto legacyCxxModule = getTurboLegacyCxxModule(javaPart.get(), name);
|
|
216
|
-
if (legacyCxxModule) {
|
|
217
|
-
TurboModulePerfLogger::moduleJSRequireEndingStart(moduleName);
|
|
218
|
-
|
|
219
|
-
auto turboModule = std::make_shared<react::TurboCxxModule>(
|
|
220
|
-
legacyCxxModule->cthis()->getModule(), jsCallInvoker_);
|
|
221
|
-
turboModuleCache_.insert({name, turboModule});
|
|
222
|
-
|
|
223
|
-
TurboModulePerfLogger::moduleJSRequireEndingEnd(moduleName);
|
|
224
|
-
return turboModule;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
221
|
return nullptr;
|
|
228
222
|
}
|
|
229
223
|
|
|
230
|
-
|
|
224
|
+
TurboModuleProviderFunctionTypeWithRuntime
|
|
225
|
+
TurboModuleManager::createLegacyModuleProvider(
|
|
231
226
|
jni::alias_ref<jhybridobject> javaPart) {
|
|
227
|
+
bool shouldCreateLegacyModules =
|
|
228
|
+
ReactNativeFeatureFlags::enableBridgelessArchitecture() &&
|
|
229
|
+
ReactNativeFeatureFlags::useTurboModuleInterop();
|
|
230
|
+
|
|
231
|
+
if (!shouldCreateLegacyModules) {
|
|
232
|
+
return nullptr;
|
|
233
|
+
}
|
|
234
|
+
|
|
232
235
|
return [weakJavaPart = jni::make_weak(javaPart)](
|
|
236
|
+
jsi::Runtime& /*runtime*/,
|
|
233
237
|
const std::string& name) -> std::shared_ptr<TurboModule> {
|
|
234
238
|
auto javaPart = weakJavaPart.lockLocal();
|
|
235
239
|
if (!javaPart) {
|
|
@@ -260,28 +264,24 @@ std::shared_ptr<TurboModule> TurboModuleManager::getLegacyModule(
|
|
|
260
264
|
|
|
261
265
|
TurboModulePerfLogger::moduleJSRequireBeginningEnd(moduleName);
|
|
262
266
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
TurboModulePerfLogger::moduleJSRequireEndingEnd(moduleName);
|
|
277
|
-
return turboModule;
|
|
278
|
-
}
|
|
279
|
-
|
|
267
|
+
// TODO(T248203434): Remove this workaround once fixed in fbjni
|
|
268
|
+
// NOTE: We use jstring instead of std::string for the method signature to
|
|
269
|
+
// work around a bug in fbjni's exception handling. When a Java method throws
|
|
270
|
+
// an exception, fbjni's JMethod::operator() needs to check for pending
|
|
271
|
+
// exceptions via FACEBOOK_JNI_THROW_PENDING_EXCEPTION(). However, if we pass
|
|
272
|
+
// std::string, fbjni creates a temporary local_ref<JString> for the argument.
|
|
273
|
+
// C++ destroys temporaries at the end of the full-expression, which happens
|
|
274
|
+
// AFTER the JNI call returns but BEFORE the exception check. The destructor
|
|
275
|
+
// calls JNI functions (GetObjectRefType) while there's a pending exception,
|
|
276
|
+
// which violates JNI rules and causes ART's CheckJNI to abort the process.
|
|
277
|
+
//
|
|
278
|
+
// By pre-converting to jstring here, we control the lifetime of the
|
|
279
|
+
// local_ref<JString> so it extends past the exception check.
|
|
280
280
|
static auto getLegacyJavaModule =
|
|
281
|
-
javaPart->getClass()
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
auto moduleInstance = getLegacyJavaModule(javaPart.get(),
|
|
281
|
+
javaPart->getClass()->getMethod<jni::alias_ref<JNativeModule>(jstring)>(
|
|
282
|
+
"getLegacyJavaModule");
|
|
283
|
+
auto jname = jni::make_jstring(name);
|
|
284
|
+
auto moduleInstance = getLegacyJavaModule(javaPart.get(), jname.get());
|
|
285
285
|
|
|
286
286
|
if (moduleInstance) {
|
|
287
287
|
TurboModulePerfLogger::moduleJSRequireEndingStart(moduleName);
|
|
@@ -320,20 +320,19 @@ std::shared_ptr<TurboModule> TurboModuleManager::getLegacyModule(
|
|
|
320
320
|
|
|
321
321
|
void TurboModuleManager::installJSIBindings(
|
|
322
322
|
jni::alias_ref<jhybridobject> javaPart,
|
|
323
|
-
|
|
323
|
+
jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutor) {
|
|
324
324
|
auto cxxPart = javaPart->cthis();
|
|
325
325
|
if (cxxPart == nullptr || !cxxPart->jsCallInvoker_) {
|
|
326
326
|
return; // Runtime doesn't exist when attached to Chrome debugger.
|
|
327
327
|
}
|
|
328
328
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
});
|
|
329
|
+
runtimeExecutor->cthis()->get()(
|
|
330
|
+
[javaPart = jni::make_global(javaPart)](jsi::Runtime& runtime) {
|
|
331
|
+
TurboModuleBinding::install(
|
|
332
|
+
runtime,
|
|
333
|
+
createTurboModuleProvider(javaPart),
|
|
334
|
+
createLegacyModuleProvider(javaPart));
|
|
335
|
+
});
|
|
337
336
|
}
|
|
338
337
|
|
|
339
338
|
} // namespace facebook::react
|
|
@@ -27,7 +27,6 @@ class TurboModuleManager : public jni::HybridClass<TurboModuleManager> {
|
|
|
27
27
|
static auto constexpr kJavaDescriptor = "Lcom/facebook/react/internal/turbomodule/core/TurboModuleManager;";
|
|
28
28
|
static jni::local_ref<jhybriddata> initHybrid(
|
|
29
29
|
jni::alias_ref<jhybridobject> /* unused */,
|
|
30
|
-
jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutor,
|
|
31
30
|
jni::alias_ref<CallInvokerHolder::javaobject> jsCallInvokerHolder,
|
|
32
31
|
jni::alias_ref<NativeMethodCallInvokerHolder::javaobject> nativeMethodCallInvokerHolder,
|
|
33
32
|
jni::alias_ref<TurboModuleManagerDelegate::javaobject> delegate);
|
|
@@ -52,20 +51,19 @@ class TurboModuleManager : public jni::HybridClass<TurboModuleManager> {
|
|
|
52
51
|
ModuleCache legacyModuleCache_;
|
|
53
52
|
|
|
54
53
|
explicit TurboModuleManager(
|
|
55
|
-
RuntimeExecutor runtimeExecutor,
|
|
56
54
|
std::shared_ptr<CallInvoker> jsCallInvoker,
|
|
57
55
|
std::shared_ptr<NativeMethodCallInvoker> nativeMethodCallInvoker,
|
|
58
56
|
jni::alias_ref<TurboModuleManagerDelegate::javaobject> delegate);
|
|
59
57
|
|
|
60
|
-
static void installJSIBindings(
|
|
61
|
-
|
|
62
|
-
static TurboModuleProviderFunctionType createTurboModuleProvider(
|
|
58
|
+
static void installJSIBindings(
|
|
63
59
|
jni::alias_ref<jhybridobject> javaPart,
|
|
64
|
-
|
|
60
|
+
jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutor);
|
|
61
|
+
|
|
62
|
+
static TurboModuleProviderFunctionTypeWithRuntime createTurboModuleProvider(jni::alias_ref<jhybridobject> javaPart);
|
|
65
63
|
std::shared_ptr<TurboModule>
|
|
66
64
|
getTurboModule(jni::alias_ref<jhybridobject> javaPart, const std::string &name, jsi::Runtime &runtime);
|
|
67
65
|
|
|
68
|
-
static
|
|
66
|
+
static TurboModuleProviderFunctionTypeWithRuntime createLegacyModuleProvider(jni::alias_ref<jhybridobject> javaPart);
|
|
69
67
|
std::shared_ptr<TurboModule> getLegacyModule(jni::alias_ref<jhybridobject> javaPart, const std::string &name);
|
|
70
68
|
};
|
|
71
69
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
3
|
+
android:width="24dp"
|
|
4
|
+
android:height="24dp"
|
|
5
|
+
android:viewportWidth="960"
|
|
6
|
+
android:viewportHeight="960">
|
|
7
|
+
<path
|
|
8
|
+
android:fillColor="@android:color/white"
|
|
9
|
+
android:pathData="M80,880L80,160Q80,127 103.5,103.5Q127,80 160,80L800,80Q833,80 856.5,103.5Q880,127 880,160L880,640Q880,673 856.5,696.5Q833,720 800,720L240,720L80,880ZM480,600Q497,600 508.5,588.5Q520,577 520,560Q520,543 508.5,531.5Q497,520 480,520Q463,520 451.5,531.5Q440,543 440,560Q440,577 451.5,588.5Q463,600 480,600ZM440,440L520,440L520,200L440,200L440,440Z"/>
|
|
10
|
+
</vector>
|
|
@@ -1,17 +1,43 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
2
|
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
3
|
+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
4
|
+
android:layout_width="match_parent"
|
|
5
|
+
android:layout_height="wrap_content"
|
|
6
|
+
android:orientation="horizontal"
|
|
7
|
+
android:background="#404040"
|
|
8
|
+
>
|
|
9
|
+
|
|
10
|
+
<TextView
|
|
11
|
+
android:id="@+id/loading_text"
|
|
12
|
+
android:layout_width="0dp"
|
|
13
|
+
android:layout_height="wrap_content"
|
|
14
|
+
android:layout_weight="1"
|
|
15
|
+
android:layout_gravity="center_vertical"
|
|
16
|
+
android:gravity="center"
|
|
17
|
+
android:paddingTop="10dp"
|
|
18
|
+
android:paddingBottom="10dp"
|
|
19
|
+
android:paddingStart="8dp"
|
|
20
|
+
android:paddingEnd="8dp"
|
|
21
|
+
android:textSize="12sp"
|
|
22
|
+
android:fontFamily="sans-serif"
|
|
23
|
+
/>
|
|
24
|
+
|
|
25
|
+
<Button
|
|
26
|
+
android:id="@+id/dismiss_button"
|
|
27
|
+
android:layout_width="wrap_content"
|
|
28
|
+
android:layout_height="wrap_content"
|
|
29
|
+
android:layout_gravity="center_vertical"
|
|
30
|
+
android:layout_marginEnd="10dp"
|
|
31
|
+
android:minWidth="0dp"
|
|
32
|
+
android:minHeight="0dp"
|
|
33
|
+
android:text="@string/catalyst_loading_dismiss"
|
|
34
|
+
android:textAllCaps="false"
|
|
35
|
+
android:textSize="11sp"
|
|
36
|
+
android:fontFamily="sans-serif"
|
|
37
|
+
android:paddingStart="16dp"
|
|
38
|
+
android:paddingEnd="16dp"
|
|
39
|
+
android:paddingTop="3dp"
|
|
40
|
+
android:paddingBottom="3dp"
|
|
41
|
+
/>
|
|
42
|
+
|
|
43
|
+
</LinearLayout>
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
android:layout_width="wrap_content"
|
|
9
9
|
android:layout_height="wrap_content"
|
|
10
10
|
android:layout_margin="3dp"
|
|
11
|
+
android:layout_gravity="top|right"
|
|
11
12
|
android:background="#a4141823"
|
|
12
13
|
android:gravity="right"
|
|
13
|
-
android:layout_gravity="top|right"
|
|
14
14
|
android:padding="3dp"
|
|
15
15
|
android:textColor="@android:color/white"
|
|
16
16
|
android:textSize="11sp"
|
|
@@ -36,4 +36,5 @@
|
|
|
36
36
|
<string name="catalyst_sample_profiler_toggle" project="catalyst" translatable="false">Toggle Sampling Profiler</string>
|
|
37
37
|
<string name="catalyst_dev_menu_header" project="catalyst" translatable="false">React Native Dev Menu</string>
|
|
38
38
|
<string name="catalyst_dev_menu_sub_header" project="catalyst" translatable="false">Running %1$s</string>
|
|
39
|
+
<string name="catalyst_loading_dismiss" project="catalyst" translatable="false">Dismiss ✕</string>
|
|
39
40
|
</resources>
|
|
@@ -6,8 +6,24 @@
|
|
|
6
6
|
<string name="link_description" gender="unknown">लिङ्क</string>
|
|
7
7
|
<string name="image_description" gender="unknown">फोटो</string>
|
|
8
8
|
<string name="imagebutton_description" gender="unknown">बटन, फोटो</string>
|
|
9
|
+
<string name="header_description" gender="unknown">शीर्षक</string>
|
|
9
10
|
<string name="combobox_description" gender="unknown">कम्बो बक्स</string>
|
|
10
11
|
<string name="menu_description" gender="unknown">मेनु</string>
|
|
12
|
+
<string name="menubar_description" gender="unknown">मेनु बार</string>
|
|
13
|
+
<string name="menuitem_description" gender="unknown">मेनु वस्तु</string>
|
|
14
|
+
<string name="progressbar_description" gender="unknown">प्रोगेस बार</string>
|
|
15
|
+
<string name="radiogroup_description" gender="unknown">रेडियो समूह</string>
|
|
16
|
+
<string name="scrollbar_description" gender="unknown">स्क्रोल बार</string>
|
|
17
|
+
<string name="spinbutton_description" gender="unknown">स्पिन बटन</string>
|
|
18
|
+
<string name="rn_tab_description" gender="unknown">टयाब</string>
|
|
19
|
+
<string name="timer_description" gender="unknown">टाइमर</string>
|
|
20
|
+
<string name="toolbar_description" gender="unknown">टुल बार</string>
|
|
21
|
+
<string name="summary_description" gender="unknown">सारांश</string>
|
|
22
|
+
<string name="state_busy_description" gender="unknown">व्यस्त</string>
|
|
23
|
+
<string name="state_expanded_description" gender="unknown">विस्तार गरियो</string>
|
|
24
|
+
<string name="state_collapsed_description" gender="unknown">कोल्याप्स गरिएको</string>
|
|
25
|
+
<string name="state_unselected_description" gender="unknown">चयन हटाइयो</string>
|
|
11
26
|
<string name="state_on_description" gender="unknown">अन</string>
|
|
12
27
|
<string name="state_off_description" gender="unknown">अफ</string>
|
|
28
|
+
<string name="state_mixed_description" gender="unknown">मिक्स गरिएको</string>
|
|
13
29
|
</resources>
|