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
@@ -26,8 +26,6 @@ internal class FpsDebugFrameCallback(private val reactContext: ReactContext) :
26
26
  Choreographer.FrameCallback {
27
27
 
28
28
  private var choreographer: Choreographer? = null
29
- private val didJSUpdateUiDuringFrameDetector: DidJSUpdateUiDuringFrameDetector =
30
- DidJSUpdateUiDuringFrameDetector()
31
29
  private var firstFrameTime: Long = -1
32
30
  private var lastFrameTime: Long = -1
33
31
  private var numFrameCallbacks = 0
@@ -40,11 +38,7 @@ internal class FpsDebugFrameCallback(private val reactContext: ReactContext) :
40
38
  if (firstFrameTime == -1L) {
41
39
  firstFrameTime = l
42
40
  }
43
- val lastFrameStartTime = lastFrameTime
44
41
  lastFrameTime = l
45
- if (didJSUpdateUiDuringFrameDetector.getDidJSHitFrameAndCleanup(lastFrameStartTime, l)) {
46
- numFrameCallbacksWithBatchDispatches++
47
- }
48
42
  numFrameCallbacks++
49
43
  val expectedNumFrames = expectedNumFrames
50
44
  val framesDropped = expectedNumFrames - expectedNumFramesPrev - 1
@@ -61,17 +55,9 @@ internal class FpsDebugFrameCallback(private val reactContext: ReactContext) :
61
55
  // removeBridgeIdleDebugListener for Bridgeless
62
56
  @Suppress("DEPRECATION")
63
57
  if (!ReactBuildConfig.UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE) {
64
- val uiManagerModule =
65
- reactContext.getNativeModule(com.facebook.react.uimanager.UIManagerModule::class.java)
66
- if (!reactContext.isBridgeless) {
67
- reactContext.catalystInstance.addBridgeIdleDebugListener(didJSUpdateUiDuringFrameDetector)
68
- isRunningOnFabric = false
69
- } else {
70
- // T172641976 Consider either implementing a mechanism similar to addBridgeIdleDebugListener
71
- // for Fabric or point users to use RNDT.
72
- isRunningOnFabric = true
73
- }
74
- uiManagerModule?.setViewHierarchyUpdateDebugListener(didJSUpdateUiDuringFrameDetector)
58
+ // T172641976 Consider either implementing a mechanism similar to addBridgeIdleDebugListener
59
+ // for Fabric or point users to use RNDT.
60
+ isRunningOnFabric = true
75
61
  }
76
62
  this.targetFps = targetFps
77
63
  UiThreadUtil.runOnUiThread {
@@ -82,16 +68,6 @@ internal class FpsDebugFrameCallback(private val reactContext: ReactContext) :
82
68
 
83
69
  fun stop() {
84
70
  @Suppress("DEPRECATION")
85
- if (!ReactBuildConfig.UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE) {
86
- val uiManagerModule =
87
- reactContext.getNativeModule(com.facebook.react.uimanager.UIManagerModule::class.java)
88
- if (!reactContext.isBridgeless) {
89
- reactContext.catalystInstance.removeBridgeIdleDebugListener(
90
- didJSUpdateUiDuringFrameDetector
91
- )
92
- }
93
- uiManagerModule?.setViewHierarchyUpdateDebugListener(null)
94
- }
95
71
  UiThreadUtil.runOnUiThread {
96
72
  choreographer = Choreographer.getInstance()
97
73
  choreographer?.removeFrameCallback(this)
@@ -30,9 +30,14 @@ internal class DevLoadingModule(reactContext: ReactApplicationContext) :
30
30
  }
31
31
  }
32
32
 
33
- override fun showMessage(message: String, color: Double?, backgroundColor: Double?) {
33
+ override fun showMessage(
34
+ message: String,
35
+ color: Double?,
36
+ backgroundColor: Double?,
37
+ dismissButton: Boolean?,
38
+ ) {
34
39
  UiThreadUtil.runOnUiThread {
35
- devLoadingViewManager?.showMessage(message, color, backgroundColor)
40
+ devLoadingViewManager?.showMessage(message, color, backgroundColor, dismissButton)
36
41
  }
37
42
  }
38
43
 
@@ -52,6 +52,29 @@ internal object NetworkEventUtil {
52
52
  }
53
53
  }
54
54
 
55
+ @Deprecated("Compatibility overload")
56
+ @JvmStatic
57
+ fun onCreateRequest(
58
+ devToolsRequestId: String,
59
+ requestUrl: String,
60
+ requestMethod: String,
61
+ requestHeaders: Map<String, String>,
62
+ requestBody: String,
63
+ encodedDataLength: Long,
64
+ ) {
65
+ if (ReactNativeFeatureFlags.enableNetworkEventReporting()) {
66
+ InspectorNetworkReporter.reportRequestStart(
67
+ devToolsRequestId,
68
+ requestUrl,
69
+ requestMethod,
70
+ requestHeaders,
71
+ requestBody,
72
+ encodedDataLength,
73
+ )
74
+ InspectorNetworkReporter.reportConnectionTiming(devToolsRequestId, requestHeaders)
75
+ }
76
+ }
77
+
55
78
  @JvmStatic
56
79
  fun onDataSend(
57
80
  reactContext: ReactApplicationContext?,
@@ -644,7 +644,7 @@ public class NetworkingModule(
644
644
  reactApplicationContext,
645
645
  requestId,
646
646
  devToolsRequestId,
647
- url,
647
+ response.request().url().toString(),
648
648
  response,
649
649
  )
650
650
 
@@ -13,8 +13,8 @@ public object ReactNativeVersion {
13
13
  @JvmField
14
14
  public val VERSION: Map<String, Any?> = mapOf(
15
15
  "major" to 0,
16
- "minor" to 83,
17
- "patch" to 2,
16
+ "minor" to 84,
17
+ "patch" to 0,
18
18
  "prerelease" to "0"
19
19
  )
20
20
  }
@@ -19,15 +19,16 @@ public open class PackagerConnectionSettings(private val appContext: Context) {
19
19
  private val preferences: SharedPreferences =
20
20
  PreferenceManager.getDefaultSharedPreferences(appContext)
21
21
  public val packageName: String = appContext.packageName
22
- private val _additionalOptionsForPackager: MutableMap<String, String> = mutableMapOf()
23
- private var _packagerOptionsUpdater: (Map<String, String>) -> Map<String, String> = { it }
24
- private var cachedHost: String? = null
22
+
23
+ init {
24
+ resetDebugServerHost()
25
+ }
25
26
 
26
27
  public open var debugServerHost: String
27
28
  get() {
28
29
  // Check cached host first. If empty try to detect emulator type and use default
29
30
  // hostname for those
30
- cachedHost?.let {
31
+ _cachedOrOverrideHost?.let {
31
32
  return it
32
33
  }
33
34
 
@@ -44,19 +45,19 @@ public open class PackagerConnectionSettings(private val appContext: Context) {
44
45
  )
45
46
  }
46
47
 
47
- cachedHost = host
48
+ _cachedOrOverrideHost = host
48
49
  return host
49
50
  }
50
51
  set(host) {
51
52
  if (host.isEmpty()) {
52
- cachedHost = null
53
+ _cachedOrOverrideHost = null
53
54
  } else {
54
- cachedHost = host
55
+ _cachedOrOverrideHost = host
55
56
  }
56
57
  }
57
58
 
58
59
  public open fun resetDebugServerHost() {
59
- cachedHost = null
60
+ _cachedOrOverrideHost = null
60
61
  }
61
62
 
62
63
  public fun setPackagerOptionsUpdater(queryMapper: (Map<String, String>) -> Map<String, String>) {
@@ -76,5 +77,11 @@ public open class PackagerConnectionSettings(private val appContext: Context) {
76
77
  private companion object {
77
78
  private val TAG = PackagerConnectionSettings::class.java.simpleName
78
79
  private const val PREFS_DEBUG_SERVER_HOST_KEY = "debug_http_host"
80
+
81
+ // The state for this class needs to be retained in the companion object.
82
+ // That's necessary in the case when there are multiple instances of PackagerConnectionSettings
83
+ private var _cachedOrOverrideHost: String? = null
84
+ private val _additionalOptionsForPackager: MutableMap<String, String> = mutableMapOf()
85
+ private var _packagerOptionsUpdater: (Map<String, String>) -> Map<String, String> = { it }
79
86
  }
80
87
  }
@@ -19,7 +19,6 @@ import com.facebook.react.bridge.NativeArray
19
19
  import com.facebook.react.bridge.NativeArrayInterface
20
20
  import com.facebook.react.bridge.NativeModule
21
21
  import com.facebook.react.bridge.NativeModuleRegistry
22
- import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener
23
22
  import com.facebook.react.bridge.RuntimeExecutor
24
23
  import com.facebook.react.bridge.RuntimeScheduler
25
24
  import com.facebook.react.bridge.UIManager
@@ -140,14 +139,6 @@ internal class BridgelessCatalystInstance(private val reactHost: ReactHostImpl)
140
139
  override val sourceURL: String
141
140
  get() = throw UnsupportedOperationException("Unimplemented method 'getSourceURL'")
142
141
 
143
- override fun addBridgeIdleDebugListener(listener: NotThreadSafeBridgeIdleDebugListener) {
144
- throw UnsupportedOperationException("Unimplemented method 'addBridgeIdleDebugListener'")
145
- }
146
-
147
- override fun removeBridgeIdleDebugListener(listener: NotThreadSafeBridgeIdleDebugListener) {
148
- throw UnsupportedOperationException("Unimplemented method 'removeBridgeIdleDebugListener'")
149
- }
150
-
151
142
  override fun registerSegment(segmentId: Int, path: String) {
152
143
  throw UnsupportedOperationException("Unimplemented method 'registerSegment'")
153
144
  }
@@ -43,8 +43,11 @@ import com.facebook.react.devsupport.DevMenuConfiguration
43
43
  import com.facebook.react.devsupport.DevSupportManagerBase
44
44
  import com.facebook.react.devsupport.DevSupportManagerFactory
45
45
  import com.facebook.react.devsupport.InspectorFlags
46
+ import com.facebook.react.devsupport.inspector.FrameTimingsObserver
46
47
  import com.facebook.react.devsupport.inspector.InspectorNetworkHelper
47
48
  import com.facebook.react.devsupport.inspector.InspectorNetworkRequestListener
49
+ import com.facebook.react.devsupport.inspector.TracingState
50
+ import com.facebook.react.devsupport.inspector.TracingStateListener
48
51
  import com.facebook.react.devsupport.interfaces.BundleLoadCallback
49
52
  import com.facebook.react.devsupport.interfaces.DevSupportManager
50
53
  import com.facebook.react.devsupport.interfaces.DevSupportManager.PausedInDebuggerOverlayCommandListener
@@ -147,6 +150,7 @@ public class ReactHostImpl(
147
150
  private val beforeDestroyListeners: MutableList<() -> Unit> = CopyOnWriteArrayList()
148
151
 
149
152
  internal var reactHostInspectorTarget: ReactHostInspectorTarget? = null
153
+ private var frameTimingsObserver: FrameTimingsObserver? = null
150
154
 
151
155
  @Volatile private var hostInvalidated = false
152
156
 
@@ -1262,10 +1266,6 @@ public class ReactHostImpl(
1262
1266
  val method = "getOrCreateReloadTask()"
1263
1267
  stateTracker.enterState(method)
1264
1268
 
1265
- // Log how React Native is destroyed
1266
- // TODO(T136397487): Remove after Venice is shipped to 100%
1267
- raiseSoftException(method, reason)
1268
-
1269
1269
  reloadTask?.let {
1270
1270
  return it
1271
1271
  }
@@ -1417,10 +1417,6 @@ public class ReactHostImpl(
1417
1417
  val method = "getOrCreateDestroyTask()"
1418
1418
  stateTracker.enterState(method)
1419
1419
 
1420
- // Log how React Native is destroyed
1421
- // TODO(T136397487): Remove after Venice is shipped to 100%
1422
- raiseSoftException(method, reason, ex)
1423
-
1424
1420
  destroyTask?.let {
1425
1421
  return it
1426
1422
  }
@@ -1442,8 +1438,7 @@ public class ReactHostImpl(
1442
1438
  // If the host has been invalidated, now that the current context/instance
1443
1439
  // has been unregistered, we can safely destroy the host's inspector
1444
1440
  // target.
1445
- reactHostInspectorTarget?.close()
1446
- reactHostInspectorTarget = null
1441
+ destroyReactHostInspectorTarget()
1447
1442
  }
1448
1443
 
1449
1444
  // Step 1: Destroy DevSupportManager
@@ -1554,13 +1549,52 @@ public class ReactHostImpl(
1554
1549
 
1555
1550
  internal fun getOrCreateReactHostInspectorTarget(): ReactHostInspectorTarget? {
1556
1551
  if (reactHostInspectorTarget == null && InspectorFlags.getFuseboxEnabled()) {
1557
- // NOTE: ReactHostInspectorTarget only retains a weak reference to `this`.
1558
- reactHostInspectorTarget = ReactHostInspectorTarget(this)
1552
+ reactHostInspectorTarget = createReactHostInspectorTarget()
1559
1553
  }
1560
1554
 
1561
1555
  return reactHostInspectorTarget
1562
1556
  }
1563
1557
 
1558
+ private fun createReactHostInspectorTarget(): ReactHostInspectorTarget {
1559
+ // NOTE: ReactHostInspectorTarget only retains a weak reference to `this`.
1560
+ val inspectorTarget = ReactHostInspectorTarget(this)
1561
+ inspectorTarget.registerTracingStateListener(
1562
+ TracingStateListener { state: TracingState, _screenshotsEnabled: Boolean ->
1563
+ when (state) {
1564
+ TracingState.ENABLED_IN_BACKGROUND_MODE,
1565
+ TracingState.ENABLED_IN_CDP_MODE -> {
1566
+ currentActivity?.window?.let { window ->
1567
+ val observer =
1568
+ FrameTimingsObserver(
1569
+ window,
1570
+ _screenshotsEnabled,
1571
+ { frameTimingsSequence ->
1572
+ inspectorTarget.recordFrameTimings(frameTimingsSequence)
1573
+ },
1574
+ )
1575
+ observer.start()
1576
+ frameTimingsObserver = observer
1577
+ }
1578
+ }
1579
+ TracingState.DISABLED -> {
1580
+ frameTimingsObserver?.stop()
1581
+ frameTimingsObserver = null
1582
+ }
1583
+ }
1584
+ }
1585
+ )
1586
+
1587
+ return inspectorTarget
1588
+ }
1589
+
1590
+ private fun destroyReactHostInspectorTarget() {
1591
+ frameTimingsObserver?.stop()
1592
+ frameTimingsObserver = null
1593
+
1594
+ reactHostInspectorTarget?.close()
1595
+ reactHostInspectorTarget = null
1596
+ }
1597
+
1564
1598
  @ThreadConfined(ThreadConfined.UI)
1565
1599
  internal fun unregisterInstanceFromInspector(reactInstance: ReactInstance?) {
1566
1600
  if (reactInstance != null) {
@@ -16,8 +16,8 @@ import com.facebook.react.bridge.ReactContext
16
16
  import com.facebook.react.common.annotations.FrameworkAPI
17
17
  import com.facebook.react.common.annotations.UnstableReactNativeAPI
18
18
  import com.facebook.react.devsupport.ReactInstanceDevHelper
19
- import com.facebook.react.devsupport.interfaces.TracingState
20
- import com.facebook.react.devsupport.interfaces.TracingStateProvider
19
+ import com.facebook.react.devsupport.inspector.TracingState
20
+ import com.facebook.react.devsupport.inspector.TracingStateProvider
21
21
  import com.facebook.react.devsupport.perfmonitor.PerfMonitorDevHelper
22
22
  import com.facebook.react.devsupport.perfmonitor.PerfMonitorInspectorTarget
23
23
  import com.facebook.react.interfaces.TaskInterface
@@ -81,6 +81,6 @@ internal class ReactHostImplDevHelper(private val delegate: ReactHostImpl) :
81
81
  delegate.loadBundle(bundleLoader)
82
82
 
83
83
  override fun getTracingState(): TracingState {
84
- return delegate.reactHostInspectorTarget?.getTracingState() ?: TracingState.ENABLEDINCDPMODE
84
+ return delegate.reactHostInspectorTarget?.getTracingState() ?: TracingState.ENABLED_IN_CDP_MODE
85
85
  }
86
86
  }
@@ -12,7 +12,9 @@ import com.facebook.proguard.annotations.DoNotStripAny
12
12
  import com.facebook.react.bridge.UiThreadUtil
13
13
  import com.facebook.react.common.annotations.FrameworkAPI
14
14
  import com.facebook.react.common.annotations.UnstableReactNativeAPI
15
- import com.facebook.react.devsupport.interfaces.TracingState
15
+ import com.facebook.react.devsupport.inspector.FrameTimingSequence
16
+ import com.facebook.react.devsupport.inspector.TracingState
17
+ import com.facebook.react.devsupport.inspector.TracingStateListener
16
18
  import com.facebook.react.devsupport.perfmonitor.PerfMonitorInspectorTarget
17
19
  import com.facebook.react.devsupport.perfmonitor.PerfMonitorUpdateListener
18
20
  import com.facebook.soloader.SoLoader
@@ -41,37 +43,29 @@ internal class ReactHostInspectorTarget(reactHostImpl: ReactHostImpl) :
41
43
 
42
44
  external fun stopAndDiscardBackgroundTrace()
43
45
 
44
- external fun tracingStateAsInt(): Int
46
+ external override fun getTracingState(): TracingState
45
47
 
46
- override fun getTracingState(): TracingState {
47
- return TracingState.entries[tracingStateAsInt()]
48
- }
48
+ external fun registerTracingStateListener(listener: TracingStateListener): Long
49
+
50
+ external fun unregisterTracingStateListener(subscriptionId: Long)
51
+
52
+ external fun recordFrameTimings(frameTimingSequence: FrameTimingSequence)
49
53
 
50
54
  override fun addPerfMonitorListener(listener: PerfMonitorUpdateListener) {
51
55
  perfMonitorListeners.add(listener)
56
+ registerTracingStateListener { state, _ -> listener.onRecordingStateChanged(state) }
52
57
  }
53
58
 
54
59
  override fun pauseAndAnalyzeBackgroundTrace(): Boolean {
55
- val emitted = stopAndMaybeEmitBackgroundTrace()
56
- perfMonitorListeners.forEach { listener ->
57
- listener.onRecordingStateChanged(TracingState.DISABLED)
58
- }
59
-
60
- return emitted
60
+ return stopAndMaybeEmitBackgroundTrace()
61
61
  }
62
62
 
63
63
  override fun resumeBackgroundTrace() {
64
64
  startBackgroundTrace()
65
- perfMonitorListeners.forEach { listener ->
66
- listener.onRecordingStateChanged(TracingState.ENABLEDINBACKGROUNDMODE)
67
- }
68
65
  }
69
66
 
70
67
  override fun stopBackgroundTrace() {
71
68
  stopAndDiscardBackgroundTrace()
72
- perfMonitorListeners.forEach { listener ->
73
- listener.onRecordingStateChanged(TracingState.DISABLED)
74
- }
75
69
  }
76
70
 
77
71
  fun handleNativePerfIssueAdded(
@@ -12,6 +12,7 @@ package com.facebook.react.runtime
12
12
  import android.content.Context
13
13
  import android.graphics.Point
14
14
  import android.graphics.Rect
15
+ import android.view.KeyEvent
15
16
  import android.view.MotionEvent
16
17
  import android.view.View
17
18
  import com.facebook.common.logging.FLog
@@ -20,7 +21,9 @@ import com.facebook.react.bridge.ReactContext
20
21
  import com.facebook.react.common.annotations.FrameworkAPI
21
22
  import com.facebook.react.common.annotations.UnstableReactNativeAPI
22
23
  import com.facebook.react.config.ReactFeatureFlags
24
+ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
23
25
  import com.facebook.react.uimanager.IllegalViewOperationException
26
+ import com.facebook.react.uimanager.JSKeyDispatcher
24
27
  import com.facebook.react.uimanager.JSPointerDispatcher
25
28
  import com.facebook.react.uimanager.JSTouchDispatcher
26
29
  import com.facebook.react.uimanager.common.UIManagerType
@@ -37,6 +40,7 @@ public class ReactSurfaceView(context: Context?, private val surface: ReactSurfa
37
40
  ReactRootView(context) {
38
41
  private val jsTouchDispatcher: JSTouchDispatcher = JSTouchDispatcher(this)
39
42
  private var jsPointerDispatcher: JSPointerDispatcher? = null
43
+ private var jsKeyDispatcher: JSKeyDispatcher? = null
40
44
  private var wasMeasured = false
41
45
  private var widthMeasureSpec = 0
42
46
  private var heightMeasureSpec = 0
@@ -45,6 +49,9 @@ public class ReactSurfaceView(context: Context?, private val surface: ReactSurfa
45
49
  if (ReactFeatureFlags.dispatchPointerEvents) {
46
50
  jsPointerDispatcher = JSPointerDispatcher(this)
47
51
  }
52
+ if (ReactNativeFeatureFlags.enableKeyEvents()) {
53
+ jsKeyDispatcher = JSKeyDispatcher()
54
+ }
48
55
  }
49
56
 
50
57
  override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
@@ -188,6 +195,51 @@ public class ReactSurfaceView(context: Context?, private val surface: ReactSurfa
188
195
  }
189
196
  }
190
197
 
198
+ override fun dispatchJSKeyEvent(event: KeyEvent) {
199
+ if (jsKeyDispatcher == null) {
200
+ if (!ReactNativeFeatureFlags.enableKeyEvents()) {
201
+ return
202
+ }
203
+ FLog.w(TAG, "Unable to dispatch key events to JS before the dispatcher is available")
204
+ return
205
+ }
206
+ val eventDispatcher = surface.eventDispatcher
207
+ if (eventDispatcher != null) {
208
+ jsKeyDispatcher?.handleKeyEvent(event, eventDispatcher, surface.surfaceID)
209
+ } else {
210
+ FLog.w(
211
+ TAG,
212
+ "Unable to dispatch key events to JS as the React instance has not been attached",
213
+ )
214
+ }
215
+ }
216
+
217
+ override fun requestChildFocus(child: View?, focused: View?) {
218
+ super.requestChildFocus(child, focused)
219
+
220
+ if (ReactNativeFeatureFlags.enableKeyEvents()) {
221
+ val focusedViewTag = focused?.id
222
+ if (focusedViewTag != null) {
223
+ jsKeyDispatcher?.setFocusedView(focusedViewTag)
224
+ }
225
+ }
226
+ }
227
+
228
+ override fun onFocusChanged(gainFocus: Boolean, direction: Int, previouslyFocusedRect: Rect?) {
229
+ super.onFocusChanged(gainFocus, direction, previouslyFocusedRect)
230
+
231
+ if (ReactNativeFeatureFlags.enableKeyEvents()) {
232
+ if (gainFocus) {
233
+ val focusedViewTag = focusedChild?.id
234
+ if (focusedViewTag != null) {
235
+ jsKeyDispatcher?.setFocusedView(focusedViewTag)
236
+ }
237
+ } else {
238
+ jsKeyDispatcher?.clearFocus()
239
+ }
240
+ }
241
+ }
242
+
191
243
  override fun hasActiveReactContext(): Boolean =
192
244
  surface.isAttached && surface.reactHost?.currentReactContext != null
193
245
 
@@ -9,7 +9,10 @@ package com.facebook.react.uimanager
9
9
 
10
10
  import android.graphics.Canvas
11
11
  import android.graphics.Color
12
+ import android.graphics.Paint
12
13
  import android.graphics.Path
14
+ import android.graphics.PorterDuff
15
+ import android.graphics.PorterDuffXfermode
13
16
  import android.graphics.Rect
14
17
  import android.graphics.RectF
15
18
  import android.graphics.drawable.Drawable
@@ -19,6 +22,7 @@ import android.widget.ImageView
19
22
  import androidx.annotation.ColorInt
20
23
  import com.facebook.react.bridge.ReadableArray
21
24
  import com.facebook.react.common.annotations.UnstableReactNativeAPI
25
+ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
22
26
  import com.facebook.react.uimanager.PixelUtil.dpToPx
23
27
  import com.facebook.react.uimanager.PixelUtil.pxToDp
24
28
  import com.facebook.react.uimanager.common.UIManagerType
@@ -467,7 +471,7 @@ public object BackgroundStyleApplicator {
467
471
  */
468
472
  @JvmStatic
469
473
  public fun setFeedbackUnderlay(view: View, drawable: Drawable?) {
470
- ensureCompositeBackgroundDrawable(view).withNewFeedbackUnderlay(drawable)
474
+ view.background = ensureCompositeBackgroundDrawable(view).withNewFeedbackUnderlay(drawable)
471
475
  }
472
476
 
473
477
  /**
@@ -481,12 +485,36 @@ public object BackgroundStyleApplicator {
481
485
  */
482
486
  @JvmStatic
483
487
  public fun clipToPaddingBox(view: View, canvas: Canvas) {
488
+ clipToPaddingBoxWithAntiAliasing(view, canvas, null)
489
+ }
490
+
491
+ /**
492
+ * Clips the canvas to the padding box of the view.
493
+ *
494
+ * The padding box is the area within the borders of the view, accounting for border radius if
495
+ * present.
496
+ *
497
+ * On Android 28 and below, when border radius is present, this uses an antialiased clipping
498
+ * approach with Porter-Duff compositing to avoid jagged edges. The drawContent lambda is invoked
499
+ * to draw the actual content after setting up the layer but before applying the mask.
500
+ *
501
+ * @param view The view whose padding box defines the clipping region
502
+ * @param canvas The canvas to clip
503
+ * @param drawContent Lambda that draws the content after clipping is set up
504
+ */
505
+ @JvmStatic
506
+ public fun clipToPaddingBoxWithAntiAliasing(
507
+ view: View,
508
+ canvas: Canvas,
509
+ drawContent: (() -> Unit)?,
510
+ ) {
484
511
  val drawingRect = Rect()
485
512
  view.getDrawingRect(drawingRect)
486
513
 
487
514
  val composite = getCompositeBackgroundDrawable(view)
488
515
  if (composite == null) {
489
516
  canvas.clipRect(drawingRect)
517
+ drawContent?.invoke()
490
518
  return
491
519
  }
492
520
 
@@ -508,15 +536,76 @@ public object BackgroundStyleApplicator {
508
536
  paddingBoxRect,
509
537
  computedBorderInsets,
510
538
  )
511
-
512
539
  paddingBoxPath.offset(drawingRect.left.toFloat(), drawingRect.top.toFloat())
513
- canvas.clipPath(paddingBoxPath)
540
+
541
+ // On Android 28 and below, use antialiased clipping with Porter-Duff compositing. On newer
542
+ // Android versions, use the standard clipPath.
543
+ if (
544
+ ReactNativeFeatureFlags.enableAndroidAntialiasedBorderRadiusClipping() &&
545
+ Build.VERSION.SDK_INT <= Build.VERSION_CODES.P &&
546
+ view.width > 0 &&
547
+ view.height > 0 &&
548
+ drawContent != null
549
+ ) {
550
+ clipWithAntiAliasing(
551
+ view,
552
+ canvas,
553
+ paddingBoxPath,
554
+ drawContent,
555
+ )
556
+ } else {
557
+ canvas.clipPath(paddingBoxPath)
558
+ drawContent?.invoke()
559
+ }
514
560
  } else {
515
561
  paddingBoxRect.offset(drawingRect.left.toFloat(), drawingRect.top.toFloat())
516
562
  canvas.clipRect(paddingBoxRect)
563
+ drawContent?.invoke()
517
564
  }
518
565
  }
519
566
 
567
+ /**
568
+ * Applies antialiased clipping using Porter-Duff compositing for Android 28 and below. This draws
569
+ * content to a layer, then applies an antialiased mask to clip it.
570
+ */
571
+ private fun clipWithAntiAliasing(
572
+ view: View,
573
+ canvas: Canvas,
574
+ paddingBoxPath: Path,
575
+ drawContent: () -> Unit,
576
+ ) {
577
+ // Save the layer for Porter-Duff compositing
578
+ val saveCount = canvas.saveLayer(0f, 0f, view.width.toFloat(), view.height.toFloat(), null)
579
+
580
+ // Draw the content first
581
+ drawContent()
582
+
583
+ val maskPaint = Paint(Paint.ANTI_ALIAS_FLAG)
584
+ maskPaint.style = Paint.Style.FILL
585
+
586
+ // Transparent pixels with INVERSE_WINDING only works on API 28
587
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
588
+ maskPaint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_IN)
589
+ maskPaint.color = Color.TRANSPARENT
590
+ paddingBoxPath.setFillType(Path.FillType.INVERSE_WINDING)
591
+ canvas.drawPath(paddingBoxPath, maskPaint)
592
+ } else {
593
+ // Create an inverse path: outer rect minus the rounded rect (using even-odd fill rule)
594
+ val inversePath = Path()
595
+ inversePath.addRect(0f, 0f, view.width.toFloat(), view.height.toFloat(), Path.Direction.CW)
596
+ inversePath.addPath(paddingBoxPath)
597
+ inversePath.setFillType(Path.FillType.EVEN_ODD)
598
+
599
+ // Use DST_OUT to remove content where the mask is drawn (outside the rounded rect)
600
+ maskPaint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OUT)
601
+ maskPaint.color = Color.BLACK
602
+ canvas.drawPath(inversePath, maskPaint)
603
+ }
604
+
605
+ // Restore the layer
606
+ canvas.restoreToCount(saveCount)
607
+ }
608
+
520
609
  /**
521
610
  * Resets the background styling of the view to its original state.
522
611
  *