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
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
|
|
8
8
|
package com.facebook.react.bridge;
|
|
9
9
|
|
|
10
|
-
import static com.facebook.infer.annotation.Assertions.assertCondition;
|
|
11
10
|
import static com.facebook.infer.annotation.ThreadConfined.UI;
|
|
12
11
|
import static com.facebook.systrace.Systrace.TRACE_TAG_REACT;
|
|
13
12
|
|
|
@@ -39,7 +38,6 @@ import com.facebook.systrace.TraceListener;
|
|
|
39
38
|
import java.lang.ref.WeakReference;
|
|
40
39
|
import java.util.ArrayList;
|
|
41
40
|
import java.util.Collection;
|
|
42
|
-
import java.util.concurrent.CopyOnWriteArrayList;
|
|
43
41
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
44
42
|
|
|
45
43
|
/**
|
|
@@ -88,7 +86,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
88
86
|
|
|
89
87
|
// Access from any thread
|
|
90
88
|
private final ReactQueueConfigurationImpl mReactQueueConfiguration;
|
|
91
|
-
private final CopyOnWriteArrayList<NotThreadSafeBridgeIdleDebugListener> mBridgeIdleListeners;
|
|
92
89
|
private final AtomicInteger mPendingJSCalls = new AtomicInteger(0);
|
|
93
90
|
private final String mJsPendingCallsTitleForTrace =
|
|
94
91
|
"pending_js_calls_instance" + sNextInstanceIdForTrace.getAndIncrement();
|
|
@@ -121,15 +118,12 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
121
118
|
|
|
122
119
|
public native NativeMethodCallInvokerHolderImpl getNativeMethodCallInvokerHolder();
|
|
123
120
|
|
|
124
|
-
private @Nullable ReactInstanceManagerInspectorTarget mInspectorTarget;
|
|
125
|
-
|
|
126
121
|
private CatalystInstanceImpl(
|
|
127
122
|
final ReactQueueConfigurationSpec reactQueueConfigurationSpec,
|
|
128
123
|
final JavaScriptExecutor jsExecutor,
|
|
129
124
|
final NativeModuleRegistry nativeModuleRegistry,
|
|
130
125
|
final JSBundleLoader jsBundleLoader,
|
|
131
|
-
JSExceptionHandler jSExceptionHandler
|
|
132
|
-
@Nullable ReactInstanceManagerInspectorTarget inspectorTarget) {
|
|
126
|
+
JSExceptionHandler jSExceptionHandler) {
|
|
133
127
|
FLog.d(ReactConstants.TAG, "Initializing React Xplat Bridge.");
|
|
134
128
|
Systrace.beginSection(TRACE_TAG_REACT, "createCatalystInstanceImpl");
|
|
135
129
|
|
|
@@ -138,14 +132,12 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
138
132
|
mReactQueueConfiguration =
|
|
139
133
|
ReactQueueConfigurationImpl.create(
|
|
140
134
|
reactQueueConfigurationSpec, new NativeExceptionHandler());
|
|
141
|
-
mBridgeIdleListeners = new CopyOnWriteArrayList<>();
|
|
142
135
|
mNativeModuleRegistry = nativeModuleRegistry;
|
|
143
136
|
mJSModuleRegistry = new JavaScriptModuleRegistry();
|
|
144
137
|
mJSBundleLoader = jsBundleLoader;
|
|
145
138
|
mJSExceptionHandler = jSExceptionHandler;
|
|
146
139
|
mNativeModulesQueueThread = mReactQueueConfiguration.getNativeModulesQueueThread();
|
|
147
140
|
mTraceListener = new JSProfilerTraceListener(this);
|
|
148
|
-
mInspectorTarget = inspectorTarget;
|
|
149
141
|
Systrace.endSection(TRACE_TAG_REACT);
|
|
150
142
|
|
|
151
143
|
FLog.d(ReactConstants.TAG, "Initializing React Xplat Bridge before initializeBridge");
|
|
@@ -156,9 +148,7 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
156
148
|
jsExecutor,
|
|
157
149
|
mReactQueueConfiguration.getJSQueueThread(),
|
|
158
150
|
mNativeModulesQueueThread,
|
|
159
|
-
mNativeModuleRegistry.getJavaModules(this)
|
|
160
|
-
mNativeModuleRegistry.getCxxModules(),
|
|
161
|
-
mInspectorTarget);
|
|
151
|
+
mNativeModuleRegistry.getJavaModules(this));
|
|
162
152
|
FLog.d(ReactConstants.TAG, "Initializing React Xplat Bridge after initializeBridge");
|
|
163
153
|
Systrace.endSection(TRACE_TAG_REACT);
|
|
164
154
|
|
|
@@ -176,16 +166,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
176
166
|
mOuter = new WeakReference<>(outer);
|
|
177
167
|
}
|
|
178
168
|
|
|
179
|
-
public void onBatchComplete() {
|
|
180
|
-
CatalystInstanceImpl impl = mOuter.get();
|
|
181
|
-
if (impl != null) {
|
|
182
|
-
impl.mNativeModulesQueueThread.runOnQueue(
|
|
183
|
-
() -> {
|
|
184
|
-
impl.mNativeModuleRegistry.onBatchComplete();
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
169
|
public void incrementPendingJSCalls() {
|
|
190
170
|
CatalystInstanceImpl impl = mOuter.get();
|
|
191
171
|
if (impl != null) {
|
|
@@ -212,22 +192,18 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
212
192
|
// Extend the Java-visible registry of modules
|
|
213
193
|
mNativeModuleRegistry.registerModules(modules);
|
|
214
194
|
Collection<JavaModuleWrapper> javaModules = modules.getJavaModules(this);
|
|
215
|
-
Collection<ModuleHolder> cxxModules = modules.getCxxModules();
|
|
216
195
|
// Extend the Cxx-visible registry of modules wrapped in appropriate interfaces
|
|
217
|
-
jniExtendNativeModules(javaModules
|
|
196
|
+
jniExtendNativeModules(javaModules);
|
|
218
197
|
}
|
|
219
198
|
|
|
220
|
-
private native void jniExtendNativeModules(
|
|
221
|
-
Collection<JavaModuleWrapper> javaModules, Collection<ModuleHolder> cxxModules);
|
|
199
|
+
private native void jniExtendNativeModules(Collection<JavaModuleWrapper> javaModules);
|
|
222
200
|
|
|
223
201
|
private native void initializeBridge(
|
|
224
202
|
InstanceCallback callback,
|
|
225
203
|
JavaScriptExecutor jsExecutor,
|
|
226
204
|
MessageQueueThread jsQueue,
|
|
227
205
|
MessageQueueThread moduleQueue,
|
|
228
|
-
Collection<JavaModuleWrapper> javaModules
|
|
229
|
-
Collection<ModuleHolder> cxxModules,
|
|
230
|
-
@Nullable ReactInstanceManagerInspectorTarget inspectorTarget);
|
|
206
|
+
Collection<JavaModuleWrapper> javaModules);
|
|
231
207
|
|
|
232
208
|
@Override
|
|
233
209
|
public void setSourceURLs(String deviceURL, String remoteURL) {
|
|
@@ -358,13 +334,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
358
334
|
return;
|
|
359
335
|
}
|
|
360
336
|
|
|
361
|
-
if (mInspectorTarget != null) {
|
|
362
|
-
assertCondition(
|
|
363
|
-
mInspectorTarget.isValid(),
|
|
364
|
-
"ReactInstanceManager inspector target destroyed before instance was unregistered");
|
|
365
|
-
}
|
|
366
|
-
unregisterFromInspector();
|
|
367
|
-
|
|
368
337
|
// TODO: tell all APIs to shut down
|
|
369
338
|
ReactMarker.logMarker(ReactMarkerConstants.DESTROY_CATALYST_INSTANCE_START);
|
|
370
339
|
mDestroyed = true;
|
|
@@ -376,14 +345,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
376
345
|
mFabricUIManager.invalidate();
|
|
377
346
|
}
|
|
378
347
|
boolean wasIdle = (mPendingJSCalls.getAndSet(0) == 0);
|
|
379
|
-
if (!mBridgeIdleListeners.isEmpty()) {
|
|
380
|
-
for (NotThreadSafeBridgeIdleDebugListener listener : mBridgeIdleListeners) {
|
|
381
|
-
if (!wasIdle) {
|
|
382
|
-
listener.onTransitionToBridgeIdle();
|
|
383
|
-
}
|
|
384
|
-
listener.onBridgeDestroyed();
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
348
|
|
|
388
349
|
getReactQueueConfiguration()
|
|
389
350
|
.getJSQueueThread()
|
|
@@ -525,30 +486,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
525
486
|
jniHandleMemoryPressure(level);
|
|
526
487
|
}
|
|
527
488
|
|
|
528
|
-
/**
|
|
529
|
-
* Adds a idle listener for this Catalyst instance. The listener will receive notifications
|
|
530
|
-
* whenever the bridge transitions from idle to busy and vice-versa, where the busy state is
|
|
531
|
-
* defined as there being some non-zero number of calls to JS that haven't resolved via a
|
|
532
|
-
* onBatchComplete call. The listener should be purely passive and not affect application logic.
|
|
533
|
-
*
|
|
534
|
-
* @noinspection deprecation
|
|
535
|
-
*/
|
|
536
|
-
@Override
|
|
537
|
-
public void addBridgeIdleDebugListener(NotThreadSafeBridgeIdleDebugListener listener) {
|
|
538
|
-
mBridgeIdleListeners.add(listener);
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
/**
|
|
542
|
-
* Removes a NotThreadSafeBridgeIdleDebugListener previously added with {@link
|
|
543
|
-
* #addBridgeIdleDebugListener}
|
|
544
|
-
*
|
|
545
|
-
* @noinspection deprecation
|
|
546
|
-
*/
|
|
547
|
-
@Override
|
|
548
|
-
public void removeBridgeIdleDebugListener(NotThreadSafeBridgeIdleDebugListener listener) {
|
|
549
|
-
mBridgeIdleListeners.remove(listener);
|
|
550
|
-
}
|
|
551
|
-
|
|
552
489
|
@Override
|
|
553
490
|
public native void setGlobalVariable(String propName, String jsonValue);
|
|
554
491
|
|
|
@@ -565,16 +502,7 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
565
502
|
|
|
566
503
|
private void incrementPendingJSCalls() {
|
|
567
504
|
int oldPendingCalls = mPendingJSCalls.getAndIncrement();
|
|
568
|
-
boolean wasIdle = oldPendingCalls == 0;
|
|
569
505
|
Systrace.traceCounter(TRACE_TAG_REACT, mJsPendingCallsTitleForTrace, oldPendingCalls + 1);
|
|
570
|
-
if (wasIdle && !mBridgeIdleListeners.isEmpty()) {
|
|
571
|
-
mNativeModulesQueueThread.runOnQueue(
|
|
572
|
-
() -> {
|
|
573
|
-
for (NotThreadSafeBridgeIdleDebugListener listener : mBridgeIdleListeners) {
|
|
574
|
-
listener.onTransitionToBridgeBusy();
|
|
575
|
-
}
|
|
576
|
-
});
|
|
577
|
-
}
|
|
578
506
|
}
|
|
579
507
|
|
|
580
508
|
@Override
|
|
@@ -596,17 +524,7 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
596
524
|
int newPendingCalls = mPendingJSCalls.decrementAndGet();
|
|
597
525
|
// TODO(9604406): handle case of web workers injecting messages to main thread
|
|
598
526
|
// Assertions.assertCondition(newPendingCalls >= 0);
|
|
599
|
-
boolean isNowIdle = newPendingCalls == 0;
|
|
600
527
|
Systrace.traceCounter(TRACE_TAG_REACT, mJsPendingCallsTitleForTrace, newPendingCalls);
|
|
601
|
-
|
|
602
|
-
if (isNowIdle && !mBridgeIdleListeners.isEmpty()) {
|
|
603
|
-
mNativeModulesQueueThread.runOnQueue(
|
|
604
|
-
() -> {
|
|
605
|
-
for (NotThreadSafeBridgeIdleDebugListener listener : mBridgeIdleListeners) {
|
|
606
|
-
listener.onTransitionToBridgeIdle();
|
|
607
|
-
}
|
|
608
|
-
});
|
|
609
|
-
}
|
|
610
528
|
}
|
|
611
529
|
|
|
612
530
|
private void onNativeException(Exception e) {
|
|
@@ -663,7 +581,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
663
581
|
private @Nullable NativeModuleRegistry mRegistry;
|
|
664
582
|
private @Nullable JavaScriptExecutor mJSExecutor;
|
|
665
583
|
private @Nullable JSExceptionHandler mJSExceptionHandler;
|
|
666
|
-
private @Nullable ReactInstanceManagerInspectorTarget mInspectorTarget;
|
|
667
584
|
|
|
668
585
|
public Builder setReactQueueConfigurationSpec(
|
|
669
586
|
ReactQueueConfigurationSpec ReactQueueConfigurationSpec) {
|
|
@@ -691,20 +608,13 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
|
|
691
608
|
return this;
|
|
692
609
|
}
|
|
693
610
|
|
|
694
|
-
public Builder setInspectorTarget(
|
|
695
|
-
@Nullable ReactInstanceManagerInspectorTarget inspectorTarget) {
|
|
696
|
-
mInspectorTarget = inspectorTarget;
|
|
697
|
-
return this;
|
|
698
|
-
}
|
|
699
|
-
|
|
700
611
|
public CatalystInstanceImpl build() {
|
|
701
612
|
return new CatalystInstanceImpl(
|
|
702
613
|
Assertions.assertNotNull(mReactQueueConfigurationSpec),
|
|
703
614
|
Assertions.assertNotNull(mJSExecutor),
|
|
704
615
|
Assertions.assertNotNull(mRegistry),
|
|
705
616
|
Assertions.assertNotNull(mJSBundleLoader),
|
|
706
|
-
Assertions.assertNotNull(mJSExceptionHandler)
|
|
707
|
-
mInspectorTarget);
|
|
617
|
+
Assertions.assertNotNull(mJSExceptionHandler));
|
|
708
618
|
}
|
|
709
619
|
}
|
|
710
620
|
}
|
|
@@ -347,8 +347,23 @@ internal class JavaMethodWrapper(
|
|
|
347
347
|
if (jsArguments.isNull(atIndex)) {
|
|
348
348
|
null
|
|
349
349
|
} else {
|
|
350
|
-
|
|
351
|
-
|
|
350
|
+
object : Callback {
|
|
351
|
+
private var invoked = false
|
|
352
|
+
|
|
353
|
+
override fun invoke(vararg args: Any?) {
|
|
354
|
+
if (invoked) {
|
|
355
|
+
error(
|
|
356
|
+
"Illegal callback invocation from native module. This callback type only permits a single invocation from native code."
|
|
357
|
+
)
|
|
358
|
+
}
|
|
359
|
+
@Suppress("UNCHECKED_CAST")
|
|
360
|
+
jsInstance.invokeCallback(
|
|
361
|
+
callbackID = jsArguments.getDouble(atIndex).toInt(),
|
|
362
|
+
arguments = Arguments.fromJavaArgs(args as Array<Any?>),
|
|
363
|
+
)
|
|
364
|
+
invoked = true
|
|
365
|
+
}
|
|
366
|
+
}
|
|
352
367
|
}
|
|
353
368
|
}
|
|
354
369
|
|
|
@@ -60,7 +60,7 @@ public class ModuleHolder {
|
|
|
60
60
|
nativeModule.javaClass.simpleName,
|
|
61
61
|
nativeModule.canOverrideExistingModule(),
|
|
62
62
|
true,
|
|
63
|
-
|
|
63
|
+
false,
|
|
64
64
|
ReactModuleInfo.classIsTurboModule(nativeModule.javaClass),
|
|
65
65
|
)
|
|
66
66
|
|
|
@@ -108,7 +108,7 @@ public class ModuleHolder {
|
|
|
108
108
|
get() = reactModuleInfo.isTurboModule
|
|
109
109
|
|
|
110
110
|
public val isCxxModule: Boolean
|
|
111
|
-
get() =
|
|
111
|
+
get() = false
|
|
112
112
|
|
|
113
113
|
public val className: String
|
|
114
114
|
get() = reactModuleInfo.className
|
|
@@ -36,25 +36,10 @@ public class NativeModuleRegistry(
|
|
|
36
36
|
@JvmName("getJavaModules") // This is needed because this method is accessed by JNI
|
|
37
37
|
internal fun getJavaModules(jsInstance: JSInstance): List<JavaModuleWrapper> = buildList {
|
|
38
38
|
for ((_, value) in modules) {
|
|
39
|
-
|
|
40
|
-
add(JavaModuleWrapper(jsInstance, value))
|
|
41
|
-
}
|
|
39
|
+
add(JavaModuleWrapper(jsInstance, value))
|
|
42
40
|
}
|
|
43
41
|
}
|
|
44
42
|
|
|
45
|
-
@get:JvmName(
|
|
46
|
-
"getCxxModules"
|
|
47
|
-
) // This is needed till there are Java Consumer of this API inside React
|
|
48
|
-
// Native
|
|
49
|
-
internal val cxxModules: List<ModuleHolder>
|
|
50
|
-
get() = buildList {
|
|
51
|
-
for ((_, value) in modules) {
|
|
52
|
-
if (value.isCxxModule) {
|
|
53
|
-
add(value)
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
43
|
/** Adds any new modules to the current module registry */
|
|
59
44
|
@JvmName(
|
|
60
45
|
"registerModules"
|
|
@@ -109,23 +94,6 @@ public class NativeModuleRegistry(
|
|
|
109
94
|
}
|
|
110
95
|
}
|
|
111
96
|
|
|
112
|
-
public fun onBatchComplete() {
|
|
113
|
-
// The only native module that uses the onBatchComplete is the UI Manager. Hence, instead of
|
|
114
|
-
// iterating over all the modules for find this one instance, and then calling it, we
|
|
115
|
-
// short-circuit
|
|
116
|
-
// the search, and simply call OnBatchComplete on the UI Manager.
|
|
117
|
-
// With Fabric, UIManager would no longer be a NativeModule, so this call would simply go away
|
|
118
|
-
assertLegacyArchitecture(
|
|
119
|
-
"NativeModuleRegistry.onBatchComplete()",
|
|
120
|
-
LegacyArchitectureLogLevel.WARNING,
|
|
121
|
-
)
|
|
122
|
-
modules["UIManager"]?.let {
|
|
123
|
-
if (it.hasInstance()) {
|
|
124
|
-
(it.module as OnBatchCompleteListener).onBatchComplete()
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
97
|
public fun <T : NativeModule> hasModule(moduleInterface: Class<T>): Boolean {
|
|
130
98
|
val annotation = moduleInterface.getAnnotation(ReactModule::class.java)
|
|
131
99
|
requireNotNull(annotation) {
|
|
@@ -28,7 +28,7 @@ public interface Promise {
|
|
|
28
28
|
* @param code String
|
|
29
29
|
* @param message String
|
|
30
30
|
*/
|
|
31
|
-
public fun reject(code: String
|
|
31
|
+
public fun reject(code: String?, message: String?)
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* Report an exception with a custom code.
|
|
@@ -36,7 +36,7 @@ public interface Promise {
|
|
|
36
36
|
* @param code String
|
|
37
37
|
* @param throwable Throwable
|
|
38
38
|
*/
|
|
39
|
-
public fun reject(code: String
|
|
39
|
+
public fun reject(code: String?, throwable: Throwable?)
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
42
|
* Report an exception with a custom code and error message.
|
|
@@ -45,7 +45,7 @@ public interface Promise {
|
|
|
45
45
|
* @param message String
|
|
46
46
|
* @param throwable Throwable
|
|
47
47
|
*/
|
|
48
|
-
public fun reject(code: String
|
|
48
|
+
public fun reject(code: String?, message: String?, throwable: Throwable?)
|
|
49
49
|
|
|
50
50
|
/**
|
|
51
51
|
* Report an exception, with default error code. Useful in catch-all scenarios where it's unclear
|
|
@@ -73,7 +73,7 @@ public interface Promise {
|
|
|
73
73
|
* @param code String
|
|
74
74
|
* @param userInfo WritableMap
|
|
75
75
|
*/
|
|
76
|
-
public fun reject(code: String
|
|
76
|
+
public fun reject(code: String?, userInfo: WritableMap)
|
|
77
77
|
|
|
78
78
|
/**
|
|
79
79
|
* Report an exception with a custom code and userInfo.
|
|
@@ -82,7 +82,7 @@ public interface Promise {
|
|
|
82
82
|
* @param throwable Throwable
|
|
83
83
|
* @param userInfo WritableMap
|
|
84
84
|
*/
|
|
85
|
-
public fun reject(code: String
|
|
85
|
+
public fun reject(code: String?, throwable: Throwable?, userInfo: WritableMap)
|
|
86
86
|
|
|
87
87
|
/**
|
|
88
88
|
* Report an error with a custom code, error message and userInfo, an error not caused by an
|
|
@@ -92,7 +92,7 @@ public interface Promise {
|
|
|
92
92
|
* @param message String
|
|
93
93
|
* @param userInfo WritableMap
|
|
94
94
|
*/
|
|
95
|
-
public fun reject(code: String
|
|
95
|
+
public fun reject(code: String?, message: String?, userInfo: WritableMap)
|
|
96
96
|
|
|
97
97
|
/**
|
|
98
98
|
* Report an exception with a custom code, error message and userInfo.
|
|
@@ -38,7 +38,7 @@ constructor(private var resolve: Callback?, private var reject: Callback?) : Pro
|
|
|
38
38
|
* @param code String
|
|
39
39
|
* @param message String
|
|
40
40
|
*/
|
|
41
|
-
override fun reject(code: String
|
|
41
|
+
override fun reject(code: String?, message: String?) {
|
|
42
42
|
reject(code, message, null, null)
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -48,7 +48,7 @@ constructor(private var resolve: Callback?, private var reject: Callback?) : Pro
|
|
|
48
48
|
* @param code String
|
|
49
49
|
* @param throwable Throwable
|
|
50
50
|
*/
|
|
51
|
-
override fun reject(code: String
|
|
51
|
+
override fun reject(code: String?, throwable: Throwable?) {
|
|
52
52
|
reject(code, null, throwable, null)
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -59,7 +59,7 @@ constructor(private var resolve: Callback?, private var reject: Callback?) : Pro
|
|
|
59
59
|
* @param message String
|
|
60
60
|
* @param throwable Throwable
|
|
61
61
|
*/
|
|
62
|
-
override fun reject(code: String
|
|
62
|
+
override fun reject(code: String?, message: String?, throwable: Throwable?) {
|
|
63
63
|
reject(code, message, throwable, null)
|
|
64
64
|
}
|
|
65
65
|
|
|
@@ -94,7 +94,7 @@ constructor(private var resolve: Callback?, private var reject: Callback?) : Pro
|
|
|
94
94
|
* @param code String
|
|
95
95
|
* @param userInfo WritableMap
|
|
96
96
|
*/
|
|
97
|
-
override fun reject(code: String
|
|
97
|
+
override fun reject(code: String?, userInfo: WritableMap) {
|
|
98
98
|
reject(code, null, null, userInfo)
|
|
99
99
|
}
|
|
100
100
|
|
|
@@ -105,7 +105,7 @@ constructor(private var resolve: Callback?, private var reject: Callback?) : Pro
|
|
|
105
105
|
* @param throwable Throwable
|
|
106
106
|
* @param userInfo WritableMap
|
|
107
107
|
*/
|
|
108
|
-
override fun reject(code: String
|
|
108
|
+
override fun reject(code: String?, throwable: Throwable?, userInfo: WritableMap) {
|
|
109
109
|
reject(code, null, throwable, userInfo)
|
|
110
110
|
}
|
|
111
111
|
|
|
@@ -117,7 +117,7 @@ constructor(private var resolve: Callback?, private var reject: Callback?) : Pro
|
|
|
117
117
|
* @param message String
|
|
118
118
|
* @param userInfo WritableMap
|
|
119
119
|
*/
|
|
120
|
-
override fun reject(code: String
|
|
120
|
+
override fun reject(code: String?, message: String?, userInfo: WritableMap) {
|
|
121
121
|
reject(code, message, null, userInfo)
|
|
122
122
|
}
|
|
123
123
|
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
package com.facebook.react.bridge
|
|
9
9
|
|
|
10
10
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
11
|
-
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
|
|
12
11
|
import java.util.ArrayList
|
|
13
12
|
import java.util.Arrays
|
|
14
13
|
import kotlin.jvm.JvmStatic
|
|
@@ -90,17 +89,7 @@ public open class ReadableNativeArray protected constructor() : NativeArray(), R
|
|
|
90
89
|
|
|
91
90
|
override fun hashCode(): Int = localArray.hashCode()
|
|
92
91
|
|
|
93
|
-
override fun equals(other: Any?): Boolean
|
|
94
|
-
if (other !is ReadableNativeArray) {
|
|
95
|
-
return false
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
return if (ReactNativeFeatureFlags.useNativeEqualsInNativeReadableArrayAndroid()) {
|
|
99
|
-
nativeEquals(other)
|
|
100
|
-
} else {
|
|
101
|
-
localArray.contentDeepEquals(other.localArray)
|
|
102
|
-
}
|
|
103
|
-
}
|
|
92
|
+
override fun equals(other: Any?): Boolean = (other is ReadableNativeArray) && nativeEquals(other)
|
|
104
93
|
|
|
105
94
|
private external fun nativeEquals(other: ReadableNativeArray): Boolean
|
|
106
95
|
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.kt
CHANGED
|
@@ -10,12 +10,12 @@ package com.facebook.react.devsupport
|
|
|
10
10
|
import android.content.Context
|
|
11
11
|
import com.facebook.react.bridge.UiThreadUtil
|
|
12
12
|
import com.facebook.react.common.SurfaceDelegateFactory
|
|
13
|
+
import com.facebook.react.devsupport.inspector.TracingState
|
|
13
14
|
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener
|
|
14
15
|
import com.facebook.react.devsupport.interfaces.DevLoadingViewManager
|
|
15
16
|
import com.facebook.react.devsupport.interfaces.DevSupportManager
|
|
16
17
|
import com.facebook.react.devsupport.interfaces.PausedInDebuggerOverlayManager
|
|
17
18
|
import com.facebook.react.devsupport.interfaces.RedBoxHandler
|
|
18
|
-
import com.facebook.react.devsupport.interfaces.TracingState
|
|
19
19
|
import com.facebook.react.packagerconnection.RequestHandler
|
|
20
20
|
|
|
21
21
|
/**
|
|
@@ -23,9 +23,8 @@ import com.facebook.react.packagerconnection.RequestHandler
|
|
|
23
23
|
* [DevSupportManagerBase] with some additional, more flexible APIs for asynchronously loading the
|
|
24
24
|
* JS bundle.
|
|
25
25
|
*
|
|
26
|
-
* @constructor The primary constructor mirrors the same constructor we
|
|
27
|
-
*
|
|
28
|
-
* * is kept for backward compatibility.
|
|
26
|
+
* @constructor The primary constructor mirrors the same constructor we had for
|
|
27
|
+
* `BridgeDevSupportManager` and is kept for backward compatibility.
|
|
29
28
|
*/
|
|
30
29
|
internal class BridgelessDevSupportManager(
|
|
31
30
|
applicationContext: Context,
|
|
@@ -83,6 +82,6 @@ internal class BridgelessDevSupportManager(
|
|
|
83
82
|
}
|
|
84
83
|
|
|
85
84
|
fun tracingState(): TracingState {
|
|
86
|
-
return TracingState.
|
|
85
|
+
return TracingState.ENABLED_IN_CDP_MODE
|
|
87
86
|
}
|
|
88
87
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ChangeBundleLocationDialog.kt
CHANGED
|
@@ -33,9 +33,6 @@ internal object ChangeBundleLocationDialog {
|
|
|
33
33
|
) {
|
|
34
34
|
val settings = devSettings.packagerConnectionSettings
|
|
35
35
|
val currentHost = settings.debugServerHost
|
|
36
|
-
settings.debugServerHost = ""
|
|
37
|
-
val defaultHost = settings.debugServerHost
|
|
38
|
-
settings.debugServerHost = currentHost
|
|
39
36
|
|
|
40
37
|
val layout = LinearLayout(context)
|
|
41
38
|
layout.orientation = LinearLayout.VERTICAL
|
|
@@ -60,11 +57,11 @@ internal object ChangeBundleLocationDialog {
|
|
|
60
57
|
input.setTextColor(-0x1000000)
|
|
61
58
|
input.setText(currentHost)
|
|
62
59
|
|
|
63
|
-
val
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
60
|
+
val currentHostSuggestion = Button(context)
|
|
61
|
+
currentHostSuggestion.text = currentHost
|
|
62
|
+
currentHostSuggestion.textSize = 12f
|
|
63
|
+
currentHostSuggestion.isAllCaps = false
|
|
64
|
+
currentHostSuggestion.setOnClickListener { input.setText(currentHost) }
|
|
68
65
|
|
|
69
66
|
val networkHost = getDevServerNetworkIpAndPort(context)
|
|
70
67
|
val networkHostSuggestion = Button(context)
|
|
@@ -80,8 +77,12 @@ internal object ChangeBundleLocationDialog {
|
|
|
80
77
|
LinearLayout.LayoutParams.MATCH_PARENT,
|
|
81
78
|
LinearLayout.LayoutParams.WRAP_CONTENT,
|
|
82
79
|
)
|
|
83
|
-
suggestionRow.addView(
|
|
84
|
-
|
|
80
|
+
suggestionRow.addView(currentHostSuggestion)
|
|
81
|
+
|
|
82
|
+
if (currentHost != networkHost) {
|
|
83
|
+
// We don't want to display two buttons with the same host suggestion.
|
|
84
|
+
suggestionRow.addView(networkHostSuggestion)
|
|
85
|
+
}
|
|
85
86
|
|
|
86
87
|
val instructions = TextView(context)
|
|
87
88
|
instructions.text =
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt
CHANGED
|
@@ -9,11 +9,17 @@ package com.facebook.react.devsupport
|
|
|
9
9
|
|
|
10
10
|
import android.os.Handler
|
|
11
11
|
import android.os.Looper
|
|
12
|
+
import com.facebook.common.logging.FLog
|
|
12
13
|
import com.facebook.jni.HybridData
|
|
13
14
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
14
15
|
import com.facebook.proguard.annotations.DoNotStripAny
|
|
16
|
+
import com.facebook.react.common.annotations.VisibleForTesting
|
|
15
17
|
import com.facebook.soloader.SoLoader
|
|
16
18
|
import java.io.Closeable
|
|
19
|
+
import java.nio.ByteBuffer
|
|
20
|
+
import java.nio.charset.StandardCharsets
|
|
21
|
+
import java.util.ArrayDeque
|
|
22
|
+
import java.util.Queue
|
|
17
23
|
import java.util.concurrent.TimeUnit
|
|
18
24
|
import okhttp3.OkHttpClient
|
|
19
25
|
import okhttp3.Request
|
|
@@ -67,7 +73,7 @@ internal class CxxInspectorPackagerConnection(
|
|
|
67
73
|
*/
|
|
68
74
|
@DoNotStripAny
|
|
69
75
|
private interface IWebSocket : Closeable {
|
|
70
|
-
fun send(
|
|
76
|
+
fun send(chunk: ByteBuffer)
|
|
71
77
|
|
|
72
78
|
/**
|
|
73
79
|
* Close the WebSocket connection. NOTE: There is no close() method in the C++ interface.
|
|
@@ -76,6 +82,95 @@ internal class CxxInspectorPackagerConnection(
|
|
|
76
82
|
override fun close()
|
|
77
83
|
}
|
|
78
84
|
|
|
85
|
+
/**
|
|
86
|
+
* A simple WebSocket wrapper that prevents having more than 16MiB of messages queued
|
|
87
|
+
* simultaneously. This is done to stop OkHttp from closing the WebSocket connection.
|
|
88
|
+
*
|
|
89
|
+
* https://github.com/facebook/react-native/issues/39651.
|
|
90
|
+
* https://github.com/square/okhttp/blob/4e7dbec1ea6c9cf8d80422ac9d44b9b185c749a3/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/RealWebSocket.kt#L684.
|
|
91
|
+
*/
|
|
92
|
+
private class InspectorPackagerWebSocketImpl(
|
|
93
|
+
private val nativeWebSocket: WebSocket,
|
|
94
|
+
private val handler: Handler,
|
|
95
|
+
) : IWebSocket {
|
|
96
|
+
private val messageQueue: Queue<Pair<String, Int>> = ArrayDeque()
|
|
97
|
+
private val queueLock = Any()
|
|
98
|
+
private val drainRunnable =
|
|
99
|
+
object : Runnable {
|
|
100
|
+
override fun run() {
|
|
101
|
+
FLog.d(TAG, "Attempting to drain the message queue after ${drainDelayMs}ms")
|
|
102
|
+
tryDrainQueue()
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* We are providing a String to OkHttp's WebSocket, because there is no guarantee that all CDP
|
|
108
|
+
* clients will support binary data format.
|
|
109
|
+
*/
|
|
110
|
+
override fun send(chunk: ByteBuffer) {
|
|
111
|
+
synchronized(queueLock) {
|
|
112
|
+
val messageSize = chunk.capacity()
|
|
113
|
+
val message = StandardCharsets.UTF_8.decode(chunk).toString()
|
|
114
|
+
val currentQueueSize = nativeWebSocket.queueSize()
|
|
115
|
+
|
|
116
|
+
if (currentQueueSize + messageSize > MAX_QUEUE_SIZE) {
|
|
117
|
+
FLog.d(TAG, "Reached queue size limit. Queueing the message.")
|
|
118
|
+
messageQueue.offer(Pair(message, messageSize))
|
|
119
|
+
scheduleDrain()
|
|
120
|
+
} else {
|
|
121
|
+
if (messageQueue.isEmpty()) {
|
|
122
|
+
nativeWebSocket.send(message)
|
|
123
|
+
} else {
|
|
124
|
+
messageQueue.offer(Pair(message, messageSize))
|
|
125
|
+
tryDrainQueue()
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
override fun close() {
|
|
132
|
+
synchronized(queueLock) {
|
|
133
|
+
handler.removeCallbacks(drainRunnable)
|
|
134
|
+
messageQueue.clear()
|
|
135
|
+
nativeWebSocket.close(1000, "End of session")
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
private fun tryDrainQueue() {
|
|
140
|
+
synchronized(queueLock) {
|
|
141
|
+
while (messageQueue.isNotEmpty()) {
|
|
142
|
+
val (nextMessage, nextMessageSize) = messageQueue.peek() ?: break
|
|
143
|
+
val currentQueueSize = nativeWebSocket.queueSize()
|
|
144
|
+
|
|
145
|
+
if (currentQueueSize + nextMessageSize <= MAX_QUEUE_SIZE) {
|
|
146
|
+
messageQueue.poll()
|
|
147
|
+
if (!nativeWebSocket.send(nextMessage)) {
|
|
148
|
+
// The WebSocket is closing, closed, or cancelled.
|
|
149
|
+
handler.removeCallbacks(drainRunnable)
|
|
150
|
+
messageQueue.clear()
|
|
151
|
+
|
|
152
|
+
break
|
|
153
|
+
}
|
|
154
|
+
} else {
|
|
155
|
+
scheduleDrain()
|
|
156
|
+
break
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
private fun scheduleDrain() {
|
|
163
|
+
FLog.d(TAG, "Scheduled a task to drain messages queue.")
|
|
164
|
+
handler.removeCallbacks(drainRunnable)
|
|
165
|
+
handler.postDelayed(drainRunnable, drainDelayMs)
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
companion object {
|
|
169
|
+
private val TAG: String = InspectorPackagerWebSocketImpl::class.java.simpleName
|
|
170
|
+
private const val drainDelayMs: Long = 100
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
79
174
|
/** Java implementation of the C++ InspectorPackagerConnectionDelegate interface. */
|
|
80
175
|
private class DelegateImpl {
|
|
81
176
|
private val httpClient =
|
|
@@ -130,15 +225,8 @@ internal class CxxInspectorPackagerConnection(
|
|
|
130
225
|
}
|
|
131
226
|
},
|
|
132
227
|
)
|
|
133
|
-
return object : IWebSocket {
|
|
134
|
-
override fun send(message: String) {
|
|
135
|
-
webSocket.send(message)
|
|
136
|
-
}
|
|
137
228
|
|
|
138
|
-
|
|
139
|
-
webSocket.close(1000, "End of session")
|
|
140
|
-
}
|
|
141
|
-
}
|
|
229
|
+
return InspectorPackagerWebSocketImpl(webSocket, handler)
|
|
142
230
|
}
|
|
143
231
|
|
|
144
232
|
@DoNotStrip
|
|
@@ -152,6 +240,8 @@ internal class CxxInspectorPackagerConnection(
|
|
|
152
240
|
SoLoader.loadLibrary("react_devsupportjni")
|
|
153
241
|
}
|
|
154
242
|
|
|
243
|
+
@VisibleForTesting internal const val MAX_QUEUE_SIZE = 16L * 1024 * 1024 // 16MiB
|
|
244
|
+
|
|
155
245
|
@JvmStatic
|
|
156
246
|
private external fun initHybrid(
|
|
157
247
|
url: String,
|