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.
Files changed (576) hide show
  1. package/Libraries/Animated/AnimatedEvent.js +2 -2
  2. package/Libraries/Animated/animations/Animation.js +1 -3
  3. package/Libraries/Animated/createAnimatedComponent.js +8 -5
  4. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  5. package/Libraries/Animated/nodes/AnimatedInterpolation.js +40 -4
  6. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  7. package/Libraries/Animated/nodes/AnimatedObject.js +16 -11
  8. package/Libraries/Animated/nodes/AnimatedProps.js +43 -12
  9. package/Libraries/Animated/nodes/AnimatedStyle.js +12 -12
  10. package/Libraries/Animated/nodes/AnimatedValue.js +6 -3
  11. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  12. package/Libraries/AppDelegate/RCTReactNativeFactory.h +3 -0
  13. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +33 -31
  14. package/Libraries/AppDelegate/RCTRootViewFactory.h +10 -4
  15. package/Libraries/AppDelegate/RCTRootViewFactory.mm +21 -5
  16. package/Libraries/BatchedBridge/MessageQueue.js +24 -22
  17. package/Libraries/Blob/RCTBlobPlugins.mm +14 -14
  18. package/Libraries/Blob/URL.js +34 -3
  19. package/Libraries/Blob/URLSearchParams.js +1 -0
  20. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +9 -1
  21. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +6 -1
  22. package/Libraries/Components/Button.js +2 -5
  23. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -1
  24. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +4 -4
  25. package/Libraries/Components/Keyboard/Keyboard.js +2 -2
  26. package/Libraries/Components/Pressable/Pressable.js +8 -8
  27. package/Libraries/Components/TextInput/TextInput.flow.js +13 -13
  28. package/Libraries/Components/TextInput/TextInput.js +33 -34
  29. package/Libraries/Components/Touchable/PooledClass.js +2 -2
  30. package/Libraries/Components/Touchable/TouchableBounce.js +6 -6
  31. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  32. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +9 -9
  33. package/Libraries/Components/View/ViewPropTypes.js +16 -6
  34. package/Libraries/Core/Devtools/loadBundleFromServer.js +6 -3
  35. package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
  36. package/Libraries/Core/ExceptionsManager.js +3 -3
  37. package/Libraries/Core/RawEventEmitter.js +1 -1
  38. package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
  39. package/Libraries/Core/ReactNativeVersion.js +2 -2
  40. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  41. package/Libraries/Core/setUpErrorHandling.js +1 -1
  42. package/Libraries/EventEmitter/NativeEventEmitter.js +2 -2
  43. package/Libraries/Image/Image.android.js +2 -2
  44. package/Libraries/Image/Image.ios.js +2 -2
  45. package/Libraries/Image/ImageProps.js +1 -1
  46. package/Libraries/Image/ImageTypes.flow.js +2 -2
  47. package/Libraries/Image/RCTImagePlugins.h +1 -0
  48. package/Libraries/Image/RCTImagePlugins.mm +30 -17
  49. package/Libraries/Interaction/InteractionManager.js +3 -3
  50. package/Libraries/Interaction/PanResponder.js +1 -1
  51. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
  52. package/Libraries/Linking/Linking.js +1 -1
  53. package/Libraries/LinkingIOS/RCTLinkingPlugins.mm +10 -13
  54. package/Libraries/Lists/FlatList.js +2 -2
  55. package/Libraries/LogBox/Data/LogBoxData.js +31 -4
  56. package/Libraries/LogBox/Data/LogBoxLog.js +2 -2
  57. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  58. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -5
  59. package/Libraries/LogBox/LogBox.js +7 -7
  60. package/Libraries/NativeAnimation/RCTAnimationPlugins.mm +14 -14
  61. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +7 -0
  62. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -0
  63. package/Libraries/NativeComponent/BaseViewConfig.android.js +12 -0
  64. package/Libraries/NativeComponent/StaticViewConfigValidator.js +4 -4
  65. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -1
  66. package/Libraries/Network/RCTInspectorNetworkReporter.mm +26 -3
  67. package/Libraries/Network/RCTNetworkPlugins.mm +22 -16
  68. package/Libraries/Network/RCTNetworking.android.js +3 -3
  69. package/Libraries/Network/RCTNetworking.ios.js +2 -2
  70. package/Libraries/Network/RCTNetworking.js.flow +2 -2
  71. package/Libraries/Pressability/Pressability.js +9 -9
  72. package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.mm +10 -13
  73. package/Libraries/ReactNative/AppRegistry.flow.js +1 -1
  74. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  75. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  76. package/Libraries/ReactNative/PaperUIManager.js +1 -1
  77. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
  78. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +2 -2
  79. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +1 -1
  80. package/Libraries/ReactNative/RendererImplementation.js +1 -1
  81. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  82. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
  83. package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -3
  84. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
  85. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
  86. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +11 -4
  87. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +11 -4
  88. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +11 -4
  89. package/Libraries/Renderer/shims/ReactFabric.js +3 -1
  90. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
  91. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  92. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
  93. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  94. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
  95. package/Libraries/Settings/RCTSettingsManager.mm +1 -1
  96. package/Libraries/Settings/RCTSettingsPlugins.mm +10 -13
  97. package/Libraries/Settings/Settings.ios.js +1 -1
  98. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
  99. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  100. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +4 -2
  101. package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
  102. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +99 -4
  103. package/Libraries/StyleSheet/StyleSheetTypes.js +6 -8
  104. package/Libraries/StyleSheet/processFilter.js +1 -1
  105. package/Libraries/Text/Text.js +46 -6
  106. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +3 -2
  107. package/Libraries/Text/TextNativeComponent.js +1 -1
  108. package/Libraries/Text/TextProps.js +7 -7
  109. package/Libraries/TypeSafety/RCTTypedModuleConstants.h +36 -1
  110. package/Libraries/Types/CodegenTypes.js +1 -1
  111. package/Libraries/Types/CoreEventTypes.js +31 -0
  112. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  113. package/Libraries/Utilities/Appearance.js +2 -2
  114. package/Libraries/Utilities/DevLoadingView.js +8 -1
  115. package/Libraries/Utilities/DevSettings.js +3 -3
  116. package/Libraries/Utilities/HMRClient.js +4 -3
  117. package/Libraries/Utilities/RCTLog.js +3 -3
  118. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  119. package/Libraries/Utilities/SceneTracker.js +1 -1
  120. package/Libraries/Utilities/codegenNativeCommands.js +1 -1
  121. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +3 -3
  122. package/Libraries/Utilities/logError.js +1 -1
  123. package/Libraries/Utilities/stringifySafe.js +7 -7
  124. package/Libraries/Utilities/useRefEffect.js +1 -1
  125. package/Libraries/Vibration/RCTVibrationPlugins.mm +10 -13
  126. package/Libraries/WebSocket/WebSocketInterceptor.js +3 -3
  127. package/Libraries/promiseRejectionTrackingOptions.js +8 -8
  128. package/Libraries/vendor/core/ErrorUtils.js +10 -10
  129. package/Libraries/vendor/emitter/EventEmitter.js +6 -6
  130. package/README.md +56 -18
  131. package/React/Base/RCTAssert.m +2 -2
  132. package/React/Base/RCTBridge.h +0 -4
  133. package/React/Base/RCTBridge.mm +1 -12
  134. package/React/Base/RCTBundleManager.h +59 -7
  135. package/React/Base/RCTBundleManager.m +112 -1
  136. package/React/Base/RCTBundleURLProvider.h +24 -0
  137. package/React/Base/RCTBundleURLProvider.mm +49 -4
  138. package/React/Base/RCTConvert.mm +2 -0
  139. package/React/Base/RCTModuleData.mm +2 -2
  140. package/React/Base/RCTUtils.h +4 -0
  141. package/React/Base/RCTUtils.mm +60 -3
  142. package/React/Base/RCTVersion.m +2 -2
  143. package/React/CoreModules/CoreModulesPlugins.mm +97 -35
  144. package/React/CoreModules/PlatformStubs/RCTStatusBarManager.mm +1 -1
  145. package/React/CoreModules/RCTAccessibilityManager.mm +18 -1
  146. package/React/CoreModules/RCTAppState.mm +1 -1
  147. package/React/CoreModules/RCTDevLoadingView.mm +116 -36
  148. package/React/CoreModules/RCTDevSettings.h +36 -1
  149. package/React/CoreModules/RCTDevSettings.mm +44 -8
  150. package/React/CoreModules/RCTExceptionsManager.mm +5 -2
  151. package/React/CoreModules/RCTPlatform.mm +3 -2
  152. package/React/CoreModules/RCTStatusBarManager.mm +1 -1
  153. package/React/CxxBridge/RCTCxxBridge.mm +1 -2
  154. package/React/CxxModule/RCTCxxMethod.mm +1 -1
  155. package/React/CxxModule/RCTCxxUtils.mm +2 -12
  156. package/React/DevSupport/RCTDevLoadingViewProtocol.h +4 -1
  157. package/React/DevSupport/RCTPackagerConnection.h +4 -2
  158. package/React/DevSupport/RCTPackagerConnection.mm +30 -33
  159. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +9 -2
  160. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +62 -17
  161. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +529 -494
  162. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.h +1 -0
  163. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +14 -0
  164. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +11 -0
  165. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +6 -0
  166. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +2 -0
  167. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +39 -2
  168. package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +5 -7
  169. package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.mm +5 -7
  170. package/React/Fabric/RCTSurfaceTouchHandler.mm +1 -1
  171. package/React/Fabric/Surface/RCTFabricSurface.mm +1 -1
  172. package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +6 -2
  173. package/React/Modules/RCTEventEmitter.m +1 -0
  174. package/React/Views/RCTModalHostView.h +2 -0
  175. package/React/Views/RCTTVView.m +2 -0
  176. package/ReactAndroid/api/ReactAndroid.api +14 -73
  177. package/ReactAndroid/build.gradle.kts +2 -0
  178. package/ReactAndroid/gradle.properties +1 -1
  179. package/ReactAndroid/hermes-engine/build.gradle.kts +97 -29
  180. package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.kt +1 -4
  181. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +3 -0
  182. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +10 -13
  183. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +1 -119
  184. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.kt +0 -10
  185. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.kt +1 -1
  186. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.kt +4 -29
  187. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +43 -2
  188. package/ReactAndroid/src/main/java/com/facebook/react/ViewManagerOnDemandReactPackage.kt +53 -4
  189. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +0 -18
  190. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +6 -96
  191. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +17 -2
  192. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.kt +2 -2
  193. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.kt +1 -33
  194. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Promise.kt +6 -6
  195. package/ReactAndroid/src/main/java/com/facebook/react/bridge/PromiseImpl.kt +6 -6
  196. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.kt +1 -12
  197. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.kt +4 -5
  198. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ChangeBundleLocationDialog.kt +11 -10
  199. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +99 -9
  200. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +58 -13
  201. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +10 -60
  202. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +7 -7
  203. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.kt +1 -4
  204. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +17 -0
  205. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +144 -0
  206. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -1
  207. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingState.kt +17 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingStateListener.kt +15 -0
  209. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/{interfaces → inspector}/TracingStateProvider.kt +1 -1
  210. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevLoadingViewManager.kt +6 -1
  211. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.kt +2 -2
  212. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/RedBoxHandler.kt +2 -2
  213. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorInspectorTargetBinding.kt +1 -1
  214. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +31 -6
  215. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +7 -6
  216. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorUpdateListener.kt +1 -1
  217. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +1 -1
  218. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +2 -1
  219. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +63 -45
  220. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +106 -76
  221. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +22 -16
  222. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +23 -17
  223. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +117 -84
  224. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -1
  225. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +0 -2
  226. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +22 -16
  227. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +5 -43
  228. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.kt +0 -3
  229. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +36 -1
  230. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/FpsDebugFrameCallback.kt +3 -27
  231. package/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.kt +7 -2
  232. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +23 -0
  233. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +1 -1
  234. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
  235. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt +15 -8
  236. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +0 -9
  237. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +46 -12
  238. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +3 -3
  239. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +11 -17
  240. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +52 -0
  241. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +92 -3
  242. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +62 -8
  243. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSKeyDispatcher.kt +65 -0
  244. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +19 -2
  245. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +1 -2
  246. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +5 -36
  247. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +9 -91
  248. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.kt +1 -1
  249. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAxOrderHelper.kt +47 -0
  250. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +0 -2
  251. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +4 -23
  252. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +1 -7
  253. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +1 -11
  254. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -47
  255. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +0 -16
  256. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutlineDrawable.kt +1 -1
  257. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +3 -36
  258. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyDownEvent.kt +23 -0
  259. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyEvent.kt +156 -0
  260. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyUpEvent.kt +24 -0
  261. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +29 -4
  262. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +12 -9
  263. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +1 -1
  264. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +36 -3
  265. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +21 -11
  266. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +7 -0
  267. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewAccessibilityDelegate.kt +31 -15
  268. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +127 -32
  269. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +11 -1
  270. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +3 -11
  271. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +3 -12
  272. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +29 -2
  273. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +98 -3
  274. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +62 -26
  275. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +145 -103
  276. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +31 -22
  277. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/CMakeLists.txt +0 -4
  278. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +1 -3
  279. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +5 -23
  280. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +2 -7
  281. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapperBase.h +0 -24
  282. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  283. package/ReactAndroid/src/main/jni/react/jni/JSLoader.h +2 -1
  284. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +0 -1
  285. package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.cpp +1 -29
  286. package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.h +1 -2
  287. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +0 -4
  288. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/CMakeLists.txt +0 -4
  289. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +0 -4
  290. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +145 -17
  291. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +193 -19
  292. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +2 -1
  293. package/ReactAndroid/src/main/jni/react/tracing/PerformanceTracerCxxInterop.cpp +1 -1
  294. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +62 -63
  295. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +5 -7
  296. package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +1 -0
  297. package/ReactAndroid/src/main/res/devsupport/drawable/ic_perf_issue.xml +10 -0
  298. package/ReactAndroid/src/main/res/devsupport/layout/dev_loading_view.xml +41 -15
  299. package/ReactAndroid/src/main/res/devsupport/layout/fps_view.xml +1 -1
  300. package/ReactAndroid/src/main/res/devsupport/values/strings.xml +1 -0
  301. package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +16 -0
  302. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.h +2 -0
  303. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm +38 -5
  304. package/ReactCommon/cmake-utils/react-native-flags.cmake +3 -0
  305. package/ReactCommon/cxxreact/JSBigString.h +14 -5
  306. package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +4 -5
  307. package/ReactCommon/cxxreact/ReactMarker.cpp +0 -1
  308. package/ReactCommon/cxxreact/ReactNativeVersion.h +4 -4
  309. package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.cpp +1 -1
  310. package/ReactCommon/hermes/React-hermes.podspec +1 -0
  311. package/ReactCommon/hermes/executor/CMakeLists.txt +0 -4
  312. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +2 -0
  313. package/ReactCommon/hermes/inspector-modern/CMakeLists.txt +0 -4
  314. package/ReactCommon/jsi/jsi/jsi.cpp +6 -1
  315. package/ReactCommon/jsi/jsi/jsi.h +73 -0
  316. package/ReactCommon/jsi/jsi/test/testlib.cpp +2 -2
  317. package/ReactCommon/jsiexecutor/CMakeLists.txt +3 -1
  318. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +3 -0
  319. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +2 -43
  320. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +3 -8
  321. package/ReactCommon/jsinspector-modern/ConsoleTask.cpp +27 -0
  322. package/ReactCommon/jsinspector-modern/ConsoleTask.h +38 -0
  323. package/ReactCommon/jsinspector-modern/ConsoleTaskContext.cpp +46 -0
  324. package/ReactCommon/jsinspector-modern/ConsoleTaskContext.h +102 -0
  325. package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.cpp +55 -0
  326. package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.h +48 -0
  327. package/ReactCommon/jsinspector-modern/HostAgent.cpp +9 -10
  328. package/ReactCommon/jsinspector-modern/HostAgent.h +2 -2
  329. package/ReactCommon/jsinspector-modern/HostTarget.cpp +7 -6
  330. package/ReactCommon/jsinspector-modern/HostTarget.h +73 -16
  331. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +40 -8
  332. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h +42 -5
  333. package/ReactCommon/jsinspector-modern/HostTargetTracing.cpp +54 -21
  334. package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +2 -11
  335. package/ReactCommon/jsinspector-modern/InstanceTarget.h +2 -2
  336. package/ReactCommon/jsinspector-modern/PerfMonitorV2.cpp +9 -1
  337. package/ReactCommon/jsinspector-modern/PerfMonitorV2.h +4 -1
  338. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +3 -2
  339. package/ReactCommon/jsinspector-modern/RuntimeAgent.h +1 -1
  340. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +12 -0
  341. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +16 -13
  342. package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +106 -1
  343. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +30 -18
  344. package/ReactCommon/jsinspector-modern/TracingAgent.h +5 -4
  345. package/ReactCommon/jsinspector-modern/tests/ConsoleCreateTaskTest.cpp +131 -0
  346. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +53 -0
  347. package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +20 -0
  348. package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +25 -55
  349. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +1 -0
  350. package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +116 -0
  351. package/ReactCommon/jsinspector-modern/tests/TracingTest.h +95 -0
  352. package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +60 -0
  353. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +43 -0
  354. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +144 -0
  355. package/ReactCommon/jsinspector-modern/tracing/{TraceRecordingStateSerializer.h → HostTracingProfileSerializer.h} +16 -8
  356. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +67 -16
  357. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +21 -2
  358. package/ReactCommon/jsinspector-modern/tracing/TargetTracingAgent.h +5 -0
  359. package/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h +158 -0
  360. package/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +2 -1
  361. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +104 -0
  362. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +59 -0
  363. package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +2 -1
  364. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +18 -7
  365. package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +139 -0
  366. package/ReactCommon/jsinspector-modern/tracing/tests/TimeWindowedBufferTest.cpp +352 -0
  367. package/ReactCommon/jsitooling/React-jsitooling.podspec +4 -0
  368. package/ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.cpp +54 -0
  369. package/{ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h → ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.h} +4 -6
  370. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +43 -31
  371. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +55 -40
  372. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +234 -180
  373. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +24 -18
  374. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +43 -31
  375. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +91 -64
  376. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +5 -1
  377. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h +0 -4
  378. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +12 -9
  379. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +7 -2
  380. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +30 -10
  381. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +17 -6
  382. package/ReactCommon/react/nativemodule/core/iostests/RCTTurboModuleTests.mm +0 -1
  383. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +1 -4
  384. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +0 -4
  385. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +43 -60
  386. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +11 -36
  387. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +53 -38
  388. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +22 -16
  389. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -0
  390. package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +24 -3
  391. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +76 -13
  392. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.mm +74 -64
  393. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +17 -13
  394. package/ReactCommon/react/networking/NetworkReporter.cpp +26 -22
  395. package/ReactCommon/react/networking/React-networking.podspec +0 -1
  396. package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.cpp +4 -2
  397. package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
  398. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +10 -2
  399. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
  400. package/ReactCommon/react/renderer/animated/AnimatedModule.cpp +104 -78
  401. package/ReactCommon/react/renderer/animated/AnimatedModule.h +10 -2
  402. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +174 -75
  403. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +19 -1
  404. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +68 -46
  405. package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.cpp +1 -0
  406. package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.cpp +1 -1
  407. package/ReactCommon/react/renderer/animated/nodes/ColorAnimatedNode.cpp +0 -1
  408. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.cpp +103 -4
  409. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h +9 -0
  410. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +5 -1
  411. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +9 -0
  412. package/ReactCommon/react/renderer/animated/nodes/RoundAnimatedNode.cpp +1 -1
  413. package/ReactCommon/react/renderer/animated/nodes/ValueAnimatedNode.cpp +1 -1
  414. package/ReactCommon/react/renderer/animated/tests/AnimatedNodeTests.cpp +67 -0
  415. package/ReactCommon/react/renderer/animated/tests/AnimationDriverTests.cpp +59 -0
  416. package/ReactCommon/react/renderer/animated/tests/AnimationTestsBase.h +2 -1
  417. package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +715 -0
  418. package/ReactCommon/react/renderer/animationbackend/AnimatedProps.h +388 -1
  419. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsBuilder.h +191 -2
  420. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +100 -0
  421. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +298 -0
  422. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsSerializer.h +17 -0
  423. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +90 -94
  424. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +23 -5
  425. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.cpp +75 -0
  426. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +32 -0
  427. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +2 -2
  428. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +3 -0
  429. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +2 -2
  430. package/ReactCommon/react/renderer/components/image/ImageProps.h +2 -2
  431. package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +9 -2
  432. package/ReactCommon/react/renderer/components/image/conversions.h +5 -0
  433. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +2 -1
  434. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +5 -1
  435. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +21 -1
  436. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +14 -0
  437. package/ReactCommon/react/renderer/core/DynamicEventPayload.cpp +10 -0
  438. package/ReactCommon/react/renderer/core/DynamicEventPayload.h +6 -1
  439. package/ReactCommon/react/renderer/core/DynamicPointerEvent.cpp +30 -0
  440. package/ReactCommon/react/renderer/core/DynamicPointerEvent.h +29 -0
  441. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +1 -1
  442. package/ReactCommon/react/renderer/core/EventEmitter.cpp +11 -14
  443. package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +3 -3
  444. package/ReactCommon/react/renderer/core/Props.cpp +23 -8
  445. package/ReactCommon/react/renderer/core/Props.h +6 -4
  446. package/ReactCommon/react/renderer/core/ShadowNode.cpp +4 -10
  447. package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +32 -0
  448. package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +7 -0
  449. package/ReactCommon/react/renderer/debug/CMakeLists.txt +7 -0
  450. package/ReactCommon/react/renderer/debug/flags.h +3 -2
  451. package/ReactCommon/react/renderer/graphics/BlendMode.h +2 -0
  452. package/ReactCommon/react/renderer/graphics/Filter.h +2 -0
  453. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +3 -0
  454. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +23 -12
  455. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +8 -3
  456. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +16 -4
  457. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +9 -4
  458. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +8 -4
  459. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
  460. package/ReactCommon/react/renderer/imagemanager/primitives.h +15 -6
  461. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +0 -11
  462. package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +0 -4
  463. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +0 -20
  464. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +3 -3
  465. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +2 -3
  466. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +6 -0
  467. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +1 -0
  468. package/ReactCommon/react/runtime/CMakeLists.txt +0 -4
  469. package/ReactCommon/react/runtime/PlatformTimerRegistry.h +2 -0
  470. package/ReactCommon/react/runtime/ReactInstance.cpp +21 -14
  471. package/ReactCommon/react/runtime/ReactInstance.h +5 -1
  472. package/ReactCommon/react/runtime/TimerManager.cpp +11 -53
  473. package/ReactCommon/react/runtime/TimerManager.h +7 -12
  474. package/ReactCommon/react/runtime/hermes/CMakeLists.txt +0 -4
  475. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +3 -2
  476. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +10 -6
  477. package/ReactCommon/yoga/yoga/algorithm/FlexDirection.h +6 -6
  478. package/ReactCommon/yoga/yoga/algorithm/SizingMode.h +4 -4
  479. package/ReactCommon/yoga/yoga/style/Style.h +8 -8
  480. package/ReactCommon/yoga/yoga/style/StyleLength.h +7 -0
  481. package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +7 -0
  482. package/flow/HermesInternalType.js +6 -6
  483. package/flow/bom.js.flow +35 -28
  484. package/flow/cssom.js.flow +3 -3
  485. package/flow/dom.js.flow +34 -33
  486. package/index.js +3 -0
  487. package/index.js.flow +8 -0
  488. package/jest/mock.js +2 -2
  489. package/jest/mockComponent.js +1 -1
  490. package/jest/setup.js +1 -1
  491. package/package.json +11 -11
  492. package/react-native.config.js +0 -17
  493. package/scripts/cocoapods/new_architecture.rb +7 -1
  494. package/scripts/cocoapods/spm.rb +28 -10
  495. package/scripts/cocoapods/utils.rb +4 -4
  496. package/scripts/codegen/generate-artifacts-executor/generateRCTThirdPartyComponents.js +5 -5
  497. package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +7 -6
  498. package/scripts/ios-configure-glog.sh +24 -1
  499. package/scripts/react_native_pods.rb +13 -0
  500. package/sdks/.hermesv1version +1 -1
  501. package/sdks/.hermesversion +1 -1
  502. package/sdks/hermes-engine/hermes-engine.podspec +53 -36
  503. package/sdks/hermes-engine/hermes-utils.rb +8 -15
  504. package/sdks/hermes-engine/version.properties +1 -1
  505. package/src/private/animated/NativeAnimatedHelper.js +130 -125
  506. package/src/private/animated/NativeAnimatedValidation.js +7 -4
  507. package/src/private/animated/createAnimatedPropsHook.js +13 -5
  508. package/src/private/animated/createAnimatedPropsMemoHook.js +10 -10
  509. package/src/private/components/virtualview/VirtualView.js +16 -9
  510. package/src/private/components/virtualview/logger/VirtualViewLogger.js +21 -0
  511. package/src/private/components/virtualview/logger/VirtualViewLoggerTypes.js +24 -0
  512. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  513. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +6 -25
  514. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -27
  515. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +3 -2
  516. package/src/private/featureflags/ReactNativeFeatureFlags.js +63 -42
  517. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
  518. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +12 -9
  519. package/src/private/renderer/errorhandling/ErrorHandlers.js +7 -4
  520. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
  521. package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +4 -0
  522. package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -0
  523. package/src/private/webapis/dom/events/CustomEvent.js +3 -3
  524. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  525. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  526. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +29 -29
  527. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +1 -1
  528. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +2 -0
  529. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  530. package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +4 -1
  531. package/src/private/webapis/geometry/DOMRectReadOnly.js +1 -1
  532. package/src/private/webapis/html/events/MessageEvent.js +3 -3
  533. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +3 -3
  534. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +53 -5
  535. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +2 -2
  536. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +4 -4
  537. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
  538. package/src/private/webapis/mutationobserver/MutationObserver.js +1 -1
  539. package/src/private/webapis/mutationobserver/MutationRecord.js +1 -1
  540. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -4
  541. package/src/private/webapis/performance/Performance.js +1 -1
  542. package/src/private/webapis/performance/UserTiming.js +1 -1
  543. package/src/private/webapis/performance/specs/NativePerformance.js +3 -3
  544. package/src/private/webapis/structuredClone/structuredClone.js +3 -3
  545. package/src/types/globals.d.ts +30 -1
  546. package/third-party-podspecs/RCT-Folly.podspec +1 -0
  547. package/third-party-podspecs/glog.podspec +1 -0
  548. package/React/CxxModule/RCTCxxModule.h +0 -29
  549. package/React/CxxModule/RCTCxxModule.mm +0 -87
  550. package/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.kt +0 -146
  551. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CallbackImpl.kt +0 -45
  552. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapper.kt +0 -25
  553. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt +0 -61
  554. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener.kt +0 -36
  555. package/ReactAndroid/src/main/java/com/facebook/react/bridge/OnBatchCompleteListener.kt +0 -21
  556. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.kt +0 -54
  557. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.kt +0 -78
  558. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.kt +0 -105
  559. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/TracingState.kt +0 -19
  560. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.kt +0 -157
  561. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeKind.kt +0 -32
  562. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.kt +0 -30
  563. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.kt +0 -87
  564. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationListener.kt +0 -23
  565. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.h +0 -37
  566. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +0 -20
  567. package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.cpp +0 -175
  568. package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.h +0 -75
  569. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.cpp +0 -68
  570. package/ReactCommon/jsinspector-modern/tracing/TracingState.h +0 -24
  571. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.cpp +0 -212
  572. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.h +0 -40
  573. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +0 -628
  574. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +0 -66
  575. package/tvosCommands.js +0 -51
  576. /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 JTracingState : public jni::JavaClass<JTracingState> {
23
- static constexpr auto kJavaDescriptor = "Lcom/facebook/react/devsupport/TracingState;";
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 &params,
109
279
  jsinspector_modern::ScopedExecutor<jsinspector_modern::NetworkRequestListener> executor) override;
110
- std::optional<jsinspector_modern::tracing::TraceRecordingState>
111
- unstable_getTraceRecordingThatWillBeEmittedOnInitialization() override;
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 trace.
300
+ * Stops previously started trace recording and returns the captured HostTracingProfile.
130
301
  */
131
- jsinspector_modern::tracing::TraceRecordingState stopTracing();
302
+ jsinspector_modern::tracing::HostTracingProfile stopTracing();
132
303
  /**
133
- * Stashes previously recorded trace recording state that will be emitted when
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 stashTraceRecordingState(jsinspector_modern::tracing::TraceRecordingState &&state);
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
- * Previously recorded trace recording state that will be emitted when
140
- * CDP session is created.
314
+ * Encapsulates the logic around tracing for this HostInspectorTarget.
141
315
  */
142
- std::optional<jsinspector_modern::tracing::TraceRecordingState> stashedTraceRecordingState_;
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& e) {
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/jni/CxxModuleWrapper.h>
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
- : runtimeExecutor_(std::move(runtimeExecutor)),
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
- TurboModuleProviderFunctionType TurboModuleManager::createTurboModuleProvider(
130
- jni::alias_ref<jhybridobject> javaPart,
131
- jsi::Runtime* runtime) {
132
- return [runtime, weakJavaPart = jni::make_weak(javaPart)](
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, *runtime);
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
- ->getMethod<jni::alias_ref<JTurboModule>(const std::string&)>(
183
- "getTurboJavaModule");
184
- auto moduleInstance = getTurboJavaModule(javaPart.get(), name);
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
- TurboModuleProviderFunctionType TurboModuleManager::createLegacyModuleProvider(
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
- static auto getLegacyCxxModule =
264
- javaPart->getClass()
265
- ->getMethod<jni::alias_ref<CxxModuleWrapper::javaobject>(
266
- const std::string&)>("getLegacyCxxModule");
267
- auto legacyCxxModule = getLegacyCxxModule(javaPart.get(), name);
268
-
269
- if (legacyCxxModule) {
270
- TurboModulePerfLogger::moduleJSRequireEndingStart(moduleName);
271
-
272
- auto turboModule = std::make_shared<react::TurboCxxModule>(
273
- legacyCxxModule->cthis()->getModule(), jsCallInvoker_);
274
- legacyModuleCache_.insert({name, turboModule});
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
- ->getMethod<jni::alias_ref<JNativeModule>(const std::string&)>(
283
- "getLegacyJavaModule");
284
- auto moduleInstance = getLegacyJavaModule(javaPart.get(), name);
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
- bool shouldCreateLegacyModules) {
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
- cxxPart->runtimeExecutor_([javaPart = jni::make_global(javaPart),
330
- shouldCreateLegacyModules](jsi::Runtime& runtime) {
331
- TurboModuleBinding::install(
332
- runtime,
333
- createTurboModuleProvider(javaPart, &runtime),
334
- shouldCreateLegacyModules ? createLegacyModuleProvider(javaPart)
335
- : nullptr);
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(jni::alias_ref<jhybridobject> javaPart, bool shouldCreateLegacyModules);
61
-
62
- static TurboModuleProviderFunctionType createTurboModuleProvider(
58
+ static void installJSIBindings(
63
59
  jni::alias_ref<jhybridobject> javaPart,
64
- jsi::Runtime *runtime);
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 TurboModuleProviderFunctionType createLegacyModuleProvider(jni::alias_ref<jhybridobject> javaPart);
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
 
@@ -43,6 +43,7 @@ SET(folly_runtime_SRC
43
43
  folly/json/json_pointer.cpp
44
44
  folly/json/json.cpp
45
45
  folly/lang/CString.cpp
46
+ folly/lang/Exception.cpp
46
47
  folly/lang/SafeAssert.cpp
47
48
  folly/lang/ToAscii.cpp
48
49
  folly/memory/detail/MallocImpl.cpp
@@ -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
- <TextView
4
- xmlns:android="http://schemas.android.com/apk/res/android"
5
- android:layout_width="match_parent"
6
- android:layout_height="wrap_content"
7
- android:background="#404040"
8
- android:ellipsize="end"
9
- android:gravity="center"
10
- android:paddingTop="5dp"
11
- android:paddingBottom="5dp"
12
- android:paddingStart="8dp"
13
- android:paddingEnd="8dp"
14
- android:maxLines="1"
15
- android:textColor="@android:color/white"
16
- android:textSize="12sp"
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>