react-native-tvos 0.84.1-0 → 0.85.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 (873) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
  2. package/Libraries/Animated/Animated.d.ts +8 -1
  3. package/Libraries/Animated/AnimatedEvent.js +4 -4
  4. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  5. package/Libraries/Animated/animations/Animation.js +3 -3
  6. package/Libraries/Animated/animations/DecayAnimation.js +4 -4
  7. package/Libraries/Animated/animations/SpringAnimation.js +5 -5
  8. package/Libraries/Animated/animations/TimingAnimation.js +5 -5
  9. package/Libraries/Animated/createAnimatedComponent.js +7 -7
  10. package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
  11. package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
  12. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  13. package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
  14. package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
  15. package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
  16. package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
  17. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  18. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  19. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  20. package/{jest/mocks/Vibration.js → Libraries/Animated/useAnimatedColor.d.ts} +5 -6
  21. package/Libraries/Animated/useAnimatedColor.js +25 -0
  22. package/{jest/mocks/Clipboard.js → Libraries/Animated/useAnimatedValueXY.d.ts} +5 -6
  23. package/Libraries/Animated/useAnimatedValueXY.js +26 -0
  24. package/Libraries/AppDelegate/RCTAppDelegate.mm +0 -8
  25. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +1 -3
  26. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +1 -0
  27. package/Libraries/AppDelegate/RCTRootViewFactory.mm +2 -6
  28. package/Libraries/AppState/AppState.js +1 -1
  29. package/Libraries/BatchedBridge/MessageQueue.js +3 -3
  30. package/Libraries/BatchedBridge/NativeModules.js +12 -10
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
  32. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
  33. package/Libraries/Components/Button.js +2 -2
  34. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
  35. package/Libraries/Components/Keyboard/Keyboard.js +6 -6
  36. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
  37. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
  38. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
  39. package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
  40. package/Libraries/Components/Pressable/Pressable.js +3 -3
  41. package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
  42. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  43. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
  44. package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
  45. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +10 -12
  46. package/Libraries/Components/ScrollView/ScrollView.d.ts +18 -1
  47. package/Libraries/Components/ScrollView/ScrollView.js +33 -10
  48. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +12 -18
  49. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +7 -4
  50. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  51. package/Libraries/Components/StaticRenderer.js +1 -1
  52. package/Libraries/Components/StatusBar/StatusBar.js +8 -8
  53. package/Libraries/Components/Switch/Switch.js +3 -3
  54. package/Libraries/Components/TV/TVViewPropTypes.js +7 -0
  55. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
  56. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  57. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
  58. package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
  59. package/Libraries/Components/TextInput/TextInput.js +8 -4
  60. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  61. package/Libraries/Components/Touchable/Touchable.js +2 -2
  62. package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
  63. package/Libraries/Components/Touchable/TouchableHighlight.js +6 -6
  64. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
  65. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -3
  66. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
  67. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  68. package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
  69. package/Libraries/Components/View/View.js +6 -0
  70. package/Libraries/Components/View/ViewAccessibility.js +7 -7
  71. package/Libraries/Components/View/ViewPropTypes.js +15 -15
  72. package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
  73. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  74. package/Libraries/Core/ExceptionsManager.js +2 -2
  75. package/Libraries/Core/ExtendedError.js +3 -3
  76. package/Libraries/Core/RawEventEmitter.js +1 -1
  77. package/Libraries/Core/ReactNativeVersion.js +2 -2
  78. package/Libraries/Core/Timers/JSTimers.js +3 -2
  79. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  80. package/Libraries/Core/setUpErrorHandling.js +4 -2
  81. package/Libraries/Core/setUpReactDevTools.js +23 -6
  82. package/Libraries/Core/setUpSegmentFetcher.js +1 -1
  83. package/Libraries/Debugging/DebuggingOverlay.js +2 -2
  84. package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
  85. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
  86. package/Libraries/FBLazyVector/FBLazyVector/FBLazyIterator.h +0 -6
  87. package/Libraries/Image/AssetSourceResolver.js +1 -1
  88. package/Libraries/Image/Image.android.js +172 -306
  89. package/Libraries/Image/ImageProps.js +9 -11
  90. package/Libraries/Image/ImageSource.js +2 -2
  91. package/Libraries/Image/ImageSourceUtils.js +8 -4
  92. package/Libraries/Image/ImageTypes.flow.js +2 -2
  93. package/Libraries/Image/ImageViewNativeComponent.js +7 -16
  94. package/Libraries/Image/RCTImageUtils.mm +37 -1
  95. package/Libraries/Image/nativeImageSource.js +1 -1
  96. package/Libraries/Interaction/InteractionManager.js +5 -4
  97. package/Libraries/Interaction/PanResponder.js +1 -1
  98. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  99. package/Libraries/Linking/Linking.js +1 -1
  100. package/Libraries/Lists/FlatList.js +3 -3
  101. package/Libraries/Lists/SectionList.js +1 -1
  102. package/Libraries/Lists/SectionListModern.js +2 -2
  103. package/Libraries/LogBox/Data/LogBoxData.js +38 -24
  104. package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
  105. package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
  106. package/Libraries/LogBox/LogBox.js +42 -19
  107. package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
  108. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  109. package/Libraries/LogBox/UI/LogBoxButton.js +28 -30
  110. package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
  111. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
  112. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
  113. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
  114. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  115. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
  116. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
  117. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
  118. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
  119. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
  120. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
  121. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
  122. package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
  123. package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
  124. package/Libraries/Modal/Modal.js +3 -3
  125. package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
  126. package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
  127. package/Libraries/NativeComponent/TVViewConfig.js +1 -0
  128. package/Libraries/Network/RCTHTTPRequestHandler.h +9 -0
  129. package/Libraries/Network/RCTHTTPRequestHandler.mm +15 -1
  130. package/Libraries/Network/RCTNetworking.android.js +1 -1
  131. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  132. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  133. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
  134. package/Libraries/Network/XMLHttpRequest.js +1 -1
  135. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  136. package/Libraries/Pressability/Pressability.js +12 -5
  137. package/Libraries/Pressability/PressabilityDebug.js +1 -1
  138. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  139. package/Libraries/Pressability/usePressability.js +3 -14
  140. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
  141. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +11 -21
  142. package/Libraries/ReactNative/AppContainer-dev.js +18 -1
  143. package/Libraries/ReactNative/AppContainer.js +1 -1
  144. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  145. package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
  146. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  147. package/Libraries/ReactNative/RendererImplementation.js +4 -4
  148. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  149. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
  150. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
  151. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
  152. package/Libraries/Renderer/shims/ReactFabric.js +1 -3
  153. package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
  154. package/Libraries/Renderer/shims/ReactNative.js +3 -2
  155. package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
  156. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
  157. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
  158. package/Libraries/StyleSheet/PointPropType.js +1 -1
  159. package/Libraries/StyleSheet/Rect.js +1 -1
  160. package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
  161. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  162. package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
  163. package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
  164. package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
  165. package/Libraries/StyleSheet/StyleSheetTypes.js +33 -36
  166. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
  167. package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
  168. package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
  169. package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
  170. package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
  171. package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
  172. package/Libraries/StyleSheet/processBoxShadow.js +44 -4
  173. package/Libraries/StyleSheet/processColorArray.js +2 -2
  174. package/Libraries/StyleSheet/processFilter.js +2 -2
  175. package/Libraries/Text/Text/RCTDynamicTypeRamp.mm +5 -4
  176. package/Libraries/Text/Text.js +295 -627
  177. package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +7 -1
  178. package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +14 -12
  179. package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +1 -1
  180. package/Libraries/Text/TextNativeComponent.js +14 -7
  181. package/Libraries/Text/TextProps.js +4 -4
  182. package/Libraries/Types/CodegenTypes.js +1 -1
  183. package/Libraries/Types/CoreEventTypes.js +21 -21
  184. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  185. package/Libraries/Utilities/Appearance.js +6 -1
  186. package/Libraries/Utilities/Dimensions.js +1 -1
  187. package/Libraries/Utilities/HMRClient.js +4 -4
  188. package/Libraries/Utilities/IPerformanceLogger.js +4 -4
  189. package/Libraries/Utilities/codegenNativeCommands.js +4 -4
  190. package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
  191. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  192. package/Libraries/Utilities/logError.js +1 -1
  193. package/Libraries/Utilities/stringifySafe.js +3 -3
  194. package/Libraries/Utilities/useMergeRefs.js +2 -2
  195. package/Libraries/WebSocket/RCTReconnectingWebSocket.m +4 -1
  196. package/Libraries/vendor/core/ErrorUtils.js +4 -4
  197. package/Libraries/vendor/emitter/EventEmitter.js +16 -20
  198. package/README.md +52 -0
  199. package/React/Base/RCTBridge.mm +1 -1
  200. package/React/Base/RCTBundleURLProvider.mm +29 -8
  201. package/React/Base/RCTConvert.mm +3 -18
  202. package/React/Base/RCTDefines.h +7 -8
  203. package/React/Base/RCTDevSupportHttpHeaders.h +24 -0
  204. package/React/Base/RCTDevSupportHttpHeaders.m +65 -0
  205. package/React/Base/RCTJavaScriptLoader.h +1 -0
  206. package/React/Base/RCTJavaScriptLoader.mm +6 -2
  207. package/React/Base/RCTMultipartDataTask.h +9 -0
  208. package/React/Base/RCTMultipartDataTask.m +19 -1
  209. package/React/Base/RCTTVColorSupport.h +17 -0
  210. package/React/Base/RCTTVColorSupport.mm +23 -0
  211. package/React/Base/RCTUtils.mm +15 -6
  212. package/React/Base/RCTVersion.m +2 -2
  213. package/React/CoreModules/RCTActionSheetManager.mm +28 -3
  214. package/React/CoreModules/RCTClipboard.mm +5 -5
  215. package/React/CoreModules/RCTDevLoadingView.mm +1 -1
  216. package/React/CoreModules/RCTDevSettings.mm +8 -0
  217. package/React/CoreModules/RCTDeviceInfo.mm +4 -3
  218. package/React/CoreModules/RCTKeyboardObserver.mm +9 -2
  219. package/React/CoreModules/RCTLogBoxView.mm +4 -8
  220. package/React/CoreModules/RCTPerfMonitor.mm +5 -0
  221. package/React/CoreModules/RCTStatusBarManager.h +2 -0
  222. package/React/CoreModules/RCTWebSocketModule.h +6 -0
  223. package/React/CoreModules/RCTWebSocketModule.mm +14 -1
  224. package/React/DevSupport/RCTInspectorDevServerHelper.mm +33 -22
  225. package/React/DevSupport/RCTInspectorNetworkHelper.mm +2 -0
  226. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +66 -79
  227. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.cpp +8 -8
  228. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +1 -1
  229. package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +2 -2
  230. package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryComponentView.mm +4 -0
  231. package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.mm +6 -0
  232. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +8 -4
  233. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.h +2 -0
  234. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +81 -0
  235. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +16 -4
  236. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +145 -8
  237. package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.mm +10 -5
  238. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +13 -0
  239. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +9 -13
  240. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.h +2 -0
  241. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +2 -0
  242. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +2 -0
  243. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +42 -4
  244. package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.h +2 -1
  245. package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +92 -163
  246. package/React/Fabric/Mounting/RCTMountingManager.mm +8 -3
  247. package/React/Fabric/RCTScheduler.h +2 -0
  248. package/React/Fabric/RCTScheduler.mm +57 -0
  249. package/React/Fabric/RCTSurfacePointerHandler.mm +15 -9
  250. package/React/Fabric/RCTSurfacePresenter.mm +9 -0
  251. package/React/Fabric/RCTSurfaceTouchHandler.mm +4 -2
  252. package/React/Fabric/Surface/RCTFabricSurface.mm +4 -0
  253. package/React/Fabric/Utils/RCTLinearGradient.mm +4 -9
  254. package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +5 -1
  255. package/React/Modules/RCTLayoutAnimation.m +10 -0
  256. package/React/Modules/RCTUIManager.mm +2 -4
  257. package/React/Profiler/RCTProfile.m +2 -0
  258. package/React/React-RCTFabric.podspec +3 -0
  259. package/React/Views/RCTView.m +6 -1
  260. package/React/Views/ScrollView/RCTScrollViewManager.m +1 -0
  261. package/React-Core-prebuilt.podspec +1 -1
  262. package/ReactAndroid/api/ReactAndroid.api +120 -298
  263. package/ReactAndroid/build.gradle.kts +9 -0
  264. package/ReactAndroid/gradle.properties +1 -1
  265. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +11 -101
  266. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.kt +2 -2
  267. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +10 -10
  268. package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimationDriver.kt +1 -3
  269. package/ReactAndroid/src/main/java/com/facebook/react/animated/ColorAnimatedNode.kt +11 -11
  270. package/ReactAndroid/src/main/java/com/facebook/react/animated/DiffClampAnimatedNode.kt +11 -11
  271. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +0 -26
  272. package/ReactAndroid/src/main/java/com/facebook/react/animated/InterpolationAnimatedNode.kt +12 -0
  273. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.kt +11 -1
  274. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.kt +5 -5
  275. package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.kt +5 -5
  276. package/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.kt +19 -19
  277. package/ReactAndroid/src/main/java/com/facebook/react/animated/TrackingAnimatedNode.kt +5 -1
  278. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromArray.kt +9 -4
  279. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +15 -15
  280. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaOnlyMap.kt +8 -6
  281. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.kt +3 -1
  282. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +10 -0
  283. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ScrollEndedListener.kt +70 -0
  284. package/ReactAndroid/src/main/java/com/facebook/react/common/assets/ReactFontManager.kt +4 -0
  285. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.kt +4 -4
  286. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +36 -34
  287. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BundleDownloader.kt +14 -9
  288. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +2 -8
  289. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +3 -2
  290. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.kt +17 -13
  291. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +5 -5
  292. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.kt +10 -19
  293. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxContentView.kt +2 -2
  294. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/DevSupportHttpClient.kt +74 -0
  295. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +2 -3
  296. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +110 -80
  297. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -12
  298. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevBundleDownloadListener.kt +1 -1
  299. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevLoadingViewManager.kt +1 -1
  300. package/ReactAndroid/src/main/java/com/facebook/react/fabric/AnimationBackendChoreographer.kt +87 -0
  301. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +36 -7
  302. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +16 -2
  303. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.kt +3 -0
  304. package/ReactAndroid/src/main/java/com/facebook/react/fabric/LongStreamingStats.kt +2 -2
  305. package/ReactAndroid/src/main/java/com/facebook/react/fabric/SurfaceHandlerBinding.kt +6 -6
  306. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.kt +2 -2
  307. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +0 -29
  308. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.kt +2 -8
  309. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt +1258 -0
  310. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/FabricNameComponentMapping.kt +1 -0
  311. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.kt +2 -2
  312. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/MountItemFactory.kt +1 -1
  313. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.kt +1 -1
  314. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +37 -55
  315. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +66 -96
  316. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +14 -20
  317. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +15 -21
  318. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +74 -107
  319. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +5 -1
  320. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +14 -20
  321. package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +1 -15
  322. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +2 -2
  323. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.kt +4 -10
  324. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.kt +1 -1
  325. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt +4 -2
  326. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.kt +4 -1
  327. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +45 -74
  328. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +17 -13
  329. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ProgressRequestBody.kt +2 -5
  330. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoHelpers.kt +1 -1
  331. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
  332. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +3 -4
  333. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/JSPackagerClient.kt +2 -1
  334. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.kt +2 -8
  335. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessAtomicRef.kt +2 -0
  336. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +9 -3
  337. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +8 -8
  338. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +12 -12
  339. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +2 -2
  340. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +13 -7
  341. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +14 -14
  342. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.kt +14 -6
  343. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +42 -28
  344. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +8 -49
  345. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +11 -8
  346. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.kt +17 -0
  347. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +13 -8
  348. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.kt +751 -0
  349. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +104 -781
  350. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.kt +18 -0
  351. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +7 -9
  352. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +7 -31
  353. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactZIndexedViewGroup.kt +11 -1
  354. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +4 -0
  355. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.kt +1 -4
  356. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +103 -759
  357. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.kt +14 -38
  358. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +41 -170
  359. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +33 -962
  360. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.kt +2 -0
  361. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/UIManagerType.kt +22 -0
  362. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/common/ViewUtil.kt +15 -0
  363. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +1 -6
  364. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.kt +2 -9
  365. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +12 -1
  366. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -16
  367. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +0 -33
  368. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundImageLayer.kt +27 -0
  369. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundPosition.kt +20 -0
  370. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundRepeat.kt +27 -0
  371. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundSize.kt +50 -0
  372. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderColors.kt +33 -0
  373. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderInsets.kt +25 -1
  374. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +46 -2
  375. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderStyle.kt +14 -0
  376. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BoxShadow.kt +23 -1
  377. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ColorStop.kt +45 -7
  378. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ComputedBorderRadius.kt +40 -2
  379. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/CornerRadii.kt +21 -1
  380. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Gradient.kt +16 -0
  381. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/LinearGradient.kt +34 -0
  382. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/LogicalEdge.kt +33 -1
  383. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/OutlineStyle.kt +17 -0
  384. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Overflow.kt +15 -0
  385. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/RadialGradient.kt +42 -0
  386. package/ReactAndroid/src/main/java/com/facebook/react/views/common/UiModeUtils.kt +20 -0
  387. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.kt +1 -2
  388. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +9 -10
  389. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +1 -1
  390. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.kt +6 -5
  391. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +132 -16
  392. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt +17 -0
  393. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.java +1647 -0
  394. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollViewManager.kt +466 -0
  395. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +104 -10
  396. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +71 -9
  397. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt +17 -0
  398. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainer.kt +2 -35
  399. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateClassic.kt +7 -30
  400. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +20 -41
  401. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/generate-nested-scroll-view.js +270 -0
  402. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.kt +1 -1
  403. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.kt +1 -1
  404. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.kt +7 -7
  405. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayout.kt +2 -0
  406. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextView.kt +39 -17
  407. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextViewManager.kt +4 -3
  408. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextUpdate.kt +4 -65
  409. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +86 -111
  410. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewAccessibilityDelegate.kt +6 -0
  411. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +243 -20
  412. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.kt +1 -2
  413. package/ReactAndroid/src/main/java/com/facebook/react/views/text/SelectableTextViewManager.kt +29 -0
  414. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt +1 -2
  415. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +54 -77
  416. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/DrawCommandSpan.kt +27 -0
  417. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactClickableSpan.kt +1 -1
  418. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactLinkSpan.kt +10 -3
  419. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +2 -75
  420. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextChangedEvent.kt +8 -0
  421. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextContentSizeWatcher.kt +1 -1
  422. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +5 -38
  423. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputTextWatcher.kt +3 -2
  424. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextScrollWatcher.kt +1 -1
  425. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextSelectionWatcher.kt +1 -1
  426. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ImportantForInteractionHelper.kt +55 -0
  427. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +19 -60
  428. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +7 -4
  429. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +150 -296
  430. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualViewManager.kt +11 -13
  431. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfig.kt +2 -2
  432. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIBase.kt +64 -0
  433. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIFinalizer.java +4 -4
  434. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDirection.kt +29 -0
  435. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.kt +1 -1
  436. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.kt +244 -0
  437. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +1 -1
  438. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.kt +183 -0
  439. package/ReactAndroid/src/main/jni/CMakeLists.txt +6 -0
  440. package/ReactAndroid/src/main/jni/react/fabric/AndroidAnimationChoreographer.h +38 -0
  441. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +4 -4
  442. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +7 -0
  443. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +2 -0
  444. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +50 -2
  445. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +11 -0
  446. package/ReactAndroid/src/main/jni/react/fabric/JAnimationBackendChoreographer.cpp +23 -0
  447. package/ReactAndroid/src/main/jni/react/fabric/JAnimationBackendChoreographer.h +37 -0
  448. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +2 -1
  449. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +89 -131
  450. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +19 -28
  451. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +0 -1
  452. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +1 -1
  453. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +0 -7
  454. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +24 -60
  455. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +12 -28
  456. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +13 -6
  457. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +2 -1
  458. package/{ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.cpp → ReactAndroid/src/main/jni/react/uimanager/StateWrapper.h} +7 -2
  459. package/ReactAndroid/src/main/res/views/uimanager/values/ids.xml +3 -0
  460. package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +2 -0
  461. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm +8 -1
  462. package/ReactApple/RCTSwiftUI/RCTSwiftUI.podspec +1 -1
  463. package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIWrapper.podspec +1 -2
  464. package/ReactCommon/React-Fabric.podspec +5 -6
  465. package/ReactCommon/React-FabricComponents.podspec +6 -8
  466. package/ReactCommon/cxxreact/ReactNativeVersion.h +8 -6
  467. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +1 -1
  468. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeTargetDelegate.cpp +25 -16
  469. package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeTargetDelegate.h +1 -1
  470. package/ReactCommon/jsinspector-modern/HostAgent.cpp +10 -30
  471. package/ReactCommon/jsinspector-modern/HostAgent.h +4 -11
  472. package/ReactCommon/jsinspector-modern/HostTarget.cpp +33 -33
  473. package/ReactCommon/jsinspector-modern/HostTarget.h +23 -24
  474. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +1 -2
  475. package/ReactCommon/jsinspector-modern/HostTargetTracing.h +89 -0
  476. package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +4 -9
  477. package/ReactCommon/jsinspector-modern/InspectorInterfaces.h +0 -1
  478. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +164 -54
  479. package/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +39 -4
  480. package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +12 -3
  481. package/ReactCommon/jsinspector-modern/NetworkIOAgent.h +13 -0
  482. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +6 -0
  483. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +34 -18
  484. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +19 -0
  485. package/ReactCommon/jsinspector-modern/RuntimeTargetDebuggerSessionObserver.cpp +6 -95
  486. package/ReactCommon/jsinspector-modern/RuntimeTargetGlobalStateObserver.cpp +122 -0
  487. package/ReactCommon/jsinspector-modern/RuntimeTargetGlobalStateObserver.h +42 -0
  488. package/ReactCommon/jsinspector-modern/RuntimeTargetTracingStateObserver.cpp +27 -0
  489. package/ReactCommon/jsinspector-modern/RuntimeTargetTracingStateObserver.h +27 -0
  490. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +7 -45
  491. package/ReactCommon/jsinspector-modern/TracingAgent.h +0 -11
  492. package/ReactCommon/jsinspector-modern/UniqueMonostate.h +0 -4
  493. package/ReactCommon/jsinspector-modern/WeakList.h +60 -1
  494. package/ReactCommon/jsinspector-modern/network/NetworkHandler.cpp +25 -21
  495. package/ReactCommon/jsinspector-modern/network/NetworkHandler.h +21 -15
  496. package/ReactCommon/jsinspector-modern/tests/GmockHelpers.h +1 -1
  497. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +3 -3
  498. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionMultiSessionTest.cpp +692 -0
  499. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp +10 -123
  500. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.h +140 -0
  501. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +158 -6
  502. package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +34 -0
  503. package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +223 -4
  504. package/ReactCommon/jsinspector-modern/tests/WeakListTest.cpp +31 -1
  505. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +1 -1
  506. package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +6 -9
  507. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +4 -6
  508. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +6 -17
  509. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +4 -5
  510. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +27 -39
  511. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +32 -47
  512. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +153 -207
  513. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +18 -24
  514. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +26 -38
  515. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +56 -83
  516. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +9 -1
  517. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +9 -12
  518. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +3 -1
  519. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
  520. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +10 -4
  521. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -0
  522. package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.cpp +32 -0
  523. package/ReactCommon/react/nativemodule/fantomtestspecificmethods/NativeFantomTestSpecificMethods.h +2 -0
  524. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +32 -47
  525. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +14 -20
  526. package/ReactCommon/react/renderer/animated/AnimatedModule.h +1 -1
  527. package/ReactCommon/react/renderer/animated/CMakeLists.txt +0 -1
  528. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +108 -151
  529. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +16 -11
  530. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +80 -86
  531. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.h +0 -1
  532. package/ReactCommon/react/renderer/animated/event_drivers/EventAnimationDriver.h +0 -1
  533. package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.h +0 -2
  534. package/ReactCommon/react/renderer/animated/internal/NativeAnimatedAllowlist.h +2 -2
  535. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +32 -4
  536. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +6 -0
  537. package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +14 -21
  538. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +3 -1
  539. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +6 -3
  540. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +125 -63
  541. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +33 -33
  542. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.cpp +18 -8
  543. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +1 -1
  544. package/ReactCommon/react/renderer/animationbackend/AnimationChoreographer.h +39 -0
  545. package/ReactCommon/react/renderer/animationbackend/CMakeLists.txt +0 -1
  546. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +1 -2
  547. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  548. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.cpp +0 -6
  549. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +0 -1
  550. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +0 -4
  551. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +0 -1
  552. package/ReactCommon/react/renderer/attributedstring/conversions.h +60 -0
  553. package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +3 -5
  554. package/ReactCommon/react/renderer/components/image/ImageProps.h +1 -1
  555. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{LegacyViewManagerInteropComponentDescriptor.mm → platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm} +1 -1
  556. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{LegacyViewManagerInteropState.mm → platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropState.mm} +1 -1
  557. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +1 -1
  558. package/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.cpp +20 -0
  559. package/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.h +2 -0
  560. package/ReactCommon/react/renderer/components/scrollview/ScrollViewState.h +1 -1
  561. package/ReactCommon/react/renderer/components/scrollview/conversions.h +6 -0
  562. package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.cpp +18 -1
  563. package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.h +2 -0
  564. package/ReactCommon/react/renderer/components/scrollview/primitives.h +2 -11
  565. package/ReactCommon/react/renderer/components/scrollview/tests/ScrollViewTest.cpp +83 -3
  566. package/ReactCommon/react/renderer/components/text/BaseParagraphComponentDescriptor.h +49 -0
  567. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +14 -14
  568. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +3 -28
  569. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
  570. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h +4 -4
  571. package/ReactCommon/react/renderer/components/text/SelectableParagraphComponentDescriptor.h +24 -0
  572. package/ReactCommon/react/renderer/components/text/SelectableParagraphShadowNode.h +32 -0
  573. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.cpp +1 -1
  574. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.cpp +1 -1
  575. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +2 -2
  576. package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +13 -1
  577. package/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.cpp +2 -1
  578. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +2 -21
  579. package/ReactCommon/react/renderer/components/view/BackgroundImagePropsConversions.cpp +15 -24
  580. package/ReactCommon/react/renderer/components/view/BaseTouch.h +7 -7
  581. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +11 -1
  582. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +4 -0
  583. package/ReactCommon/react/renderer/components/view/ConcreteViewShadowNode.h +0 -3
  584. package/ReactCommon/react/renderer/components/view/FilterPropsConversions.h +57 -53
  585. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +1 -0
  586. package/ReactCommon/react/renderer/components/view/conversions.h +250 -2
  587. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +19 -63
  588. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +1 -0
  589. package/ReactCommon/react/renderer/components/view/primitives.h +3 -86
  590. package/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp +215 -0
  591. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +1 -1
  592. package/ReactCommon/react/renderer/components/virtualview/VirtualViewComponentDescriptor.h +1 -1
  593. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +1 -1
  594. package/ReactCommon/react/renderer/core/EventEmitter.cpp +2 -2
  595. package/ReactCommon/react/renderer/core/EventEmitter.h +8 -8
  596. package/ReactCommon/react/renderer/core/EventPipe.h +1 -1
  597. package/ReactCommon/react/renderer/core/EventTarget.cpp +3 -3
  598. package/ReactCommon/react/renderer/core/EventTarget.h +7 -7
  599. package/ReactCommon/react/renderer/core/LayoutConstraints.h +0 -5
  600. package/ReactCommon/react/renderer/core/LayoutContext.h +0 -5
  601. package/ReactCommon/react/renderer/core/LayoutMetrics.h +0 -2
  602. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +11 -21
  603. package/ReactCommon/react/renderer/core/RawPropsKey.h +0 -1
  604. package/ReactCommon/react/renderer/core/RawPropsKeyMap.cpp +4 -1
  605. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +1 -7
  606. package/ReactCommon/react/renderer/core/RawPropsParser.h +2 -6
  607. package/ReactCommon/react/renderer/core/RawValue.h +1 -2
  608. package/ReactCommon/react/renderer/core/ShadowNode.cpp +33 -31
  609. package/ReactCommon/react/renderer/core/ShadowNode.h +19 -29
  610. package/ReactCommon/react/renderer/core/ShadowNodeFamily.cpp +6 -6
  611. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +14 -14
  612. package/ReactCommon/react/renderer/core/ShadowNodeFragment.cpp +4 -2
  613. package/ReactCommon/react/renderer/core/ShadowNodeFragment.h +2 -2
  614. package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +57 -2
  615. package/ReactCommon/react/renderer/css/CSSBackgroundImage.h +112 -140
  616. package/ReactCommon/react/renderer/css/CSSColor.h +7 -8
  617. package/ReactCommon/react/renderer/css/CSSColorFunction.h +38 -39
  618. package/ReactCommon/react/renderer/css/CSSCompoundDataType.h +23 -17
  619. package/ReactCommon/react/renderer/css/CSSDataType.h +15 -10
  620. package/ReactCommon/react/renderer/css/CSSFilter.h +12 -17
  621. package/ReactCommon/react/renderer/css/CSSKeyword.h +8 -0
  622. package/ReactCommon/react/renderer/css/CSSList.h +11 -11
  623. package/ReactCommon/react/renderer/css/CSSRatio.h +4 -4
  624. package/ReactCommon/react/renderer/css/CSSShadow.h +7 -7
  625. package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +10 -6
  626. package/ReactCommon/react/renderer/css/CSSTokenizer.h +2 -0
  627. package/ReactCommon/react/renderer/css/CSSTransform.h +20 -20
  628. package/ReactCommon/react/renderer/css/CSSTransformOrigin.h +4 -5
  629. package/ReactCommon/react/renderer/css/CSSValueParser.h +71 -67
  630. package/ReactCommon/react/renderer/css/tests/CSSValueParserTest.cpp +11 -10
  631. package/ReactCommon/react/renderer/graphics/BackgroundPosition.h +0 -1
  632. package/ReactCommon/react/renderer/graphics/BackgroundRepeat.h +0 -1
  633. package/ReactCommon/react/renderer/graphics/BackgroundSize.h +0 -1
  634. package/ReactCommon/react/renderer/graphics/Filter.h +3 -2
  635. package/ReactCommon/react/renderer/graphics/LinearGradient.cpp +9 -15
  636. package/ReactCommon/react/renderer/graphics/LinearGradient.h +7 -19
  637. package/ReactCommon/react/renderer/graphics/Point.h +0 -2
  638. package/ReactCommon/react/renderer/graphics/RadialGradient.h +4 -35
  639. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -0
  640. package/ReactCommon/react/renderer/graphics/Rect.h +1 -9
  641. package/ReactCommon/react/renderer/graphics/RectangleCorners.h +1 -10
  642. package/ReactCommon/react/renderer/graphics/RectangleEdges.h +1 -10
  643. package/ReactCommon/react/renderer/graphics/Size.h +0 -5
  644. package/ReactCommon/react/renderer/graphics/Transform.cpp +0 -4
  645. package/ReactCommon/react/renderer/graphics/Transform.h +1 -13
  646. package/ReactCommon/react/renderer/graphics/TransformUtils.h +95 -0
  647. package/ReactCommon/react/renderer/graphics/ValueUnit.h +3 -11
  648. package/ReactCommon/react/renderer/graphics/fromRawValueShared.h +13 -1
  649. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +0 -4
  650. package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.cpp +11 -12
  651. package/ReactCommon/react/renderer/imagemanager/ImageResponseObserverCoordinator.h +4 -3
  652. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +1 -36
  653. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequestParams.h +1 -9
  654. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h +1 -9
  655. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
  656. package/ReactCommon/react/renderer/imagemanager/primitives.h +0 -5
  657. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp +51 -30
  658. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.h +2 -0
  659. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +21 -38
  660. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +153 -18
  661. package/ReactCommon/react/renderer/mounting/ShadowTree.h +30 -6
  662. package/ReactCommon/react/renderer/mounting/ShadowTreeDelegate.h +11 -0
  663. package/ReactCommon/react/renderer/mounting/ShadowView.cpp +0 -4
  664. package/ReactCommon/react/renderer/mounting/ShadowView.h +0 -1
  665. package/ReactCommon/react/renderer/mounting/internal/DiffMap.h +170 -0
  666. package/ReactCommon/react/renderer/mounting/internal/ShadowViewNodePair.h +0 -5
  667. package/ReactCommon/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.h +3 -3
  668. package/ReactCommon/react/renderer/mounting/stubs/StubView.cpp +0 -4
  669. package/ReactCommon/react/renderer/mounting/stubs/StubView.h +0 -1
  670. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +0 -4
  671. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.h +0 -2
  672. package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +6 -0
  673. package/ReactCommon/react/renderer/mounting/updateMountedFlag.cpp +12 -4
  674. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +2 -1
  675. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverState.cpp +0 -5
  676. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverState.h +0 -1
  677. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +1 -1
  678. package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +1 -0
  679. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +28 -1
  680. package/ReactCommon/react/renderer/scheduler/Scheduler.h +2 -2
  681. package/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +6 -0
  682. package/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +7 -0
  683. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +2 -2
  684. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManagerExtended.h +18 -18
  685. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +8 -7
  686. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h +5 -5
  687. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.h +3 -3
  688. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +4 -3
  689. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.h +1 -1
  690. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +15 -5
  691. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h +2 -2
  692. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +10 -1
  693. package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.cpp +1 -1
  694. package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.h +1 -3
  695. package/ReactCommon/react/renderer/uimanager/PointerHoverTracker.cpp +1 -1
  696. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +68 -38
  697. package/ReactCommon/react/renderer/uimanager/UIManager.h +17 -8
  698. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +17 -5
  699. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -2
  700. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +2 -2
  701. package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +10 -0
  702. package/ReactCommon/react/renderer/uimanager/consistency/LazyShadowTreeRevisionConsistencyManager.cpp +19 -23
  703. package/ReactCommon/react/renderer/uimanager/consistency/LazyShadowTreeRevisionConsistencyManager.h +2 -3
  704. package/ReactCommon/react/renderer/uimanager/consistency/tests/LazyShadowTreeRevisionConsistencyManagerTest.cpp +13 -5
  705. package/ReactCommon/react/renderer/uimanager/primitives.h +16 -7
  706. package/ReactCommon/react/renderer/uimanager/tests/FindShadowNodeByTagTest.cpp +287 -0
  707. package/ReactCommon/react/runtime/TimerManager.cpp +16 -2
  708. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +11 -6
  709. package/ReactCommon/react/runtime/iostests/RCTHostTests.mm +11 -0
  710. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +17 -3
  711. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +8 -1
  712. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +8 -5
  713. package/ReactCommon/react/utils/ContextContainer.h +0 -2
  714. package/ReactCommon/yoga/yoga/YGNode.cpp +14 -0
  715. package/ReactCommon/yoga/yoga/YGValue.h +0 -4
  716. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +7 -7
  717. package/ReactCommon/yoga/yoga/enums/YogaEnums.h +0 -1
  718. package/ReactCommon/yoga/yoga/node/LayoutResults.h +0 -3
  719. package/ReactCommon/yoga/yoga/numeric/FloatOptional.h +0 -9
  720. package/ReactCommon/yoga/yoga/style/Style.h +0 -4
  721. package/flow/bom.js.flow +18 -17
  722. package/flow/dom.js.flow +12 -5
  723. package/flow/global.js +1 -1
  724. package/gradle/libs.versions.toml +1 -1
  725. package/index.js +9 -0
  726. package/index.js.flow +8 -1
  727. package/jest-preset.js +14 -18
  728. package/package.json +17 -17
  729. package/scripts/cocoapods/rncore.rb +111 -2
  730. package/scripts/cocoapods/utils.rb +2 -0
  731. package/scripts/codegen/templates/Package.swift.template +7 -0
  732. package/scripts/react_native_pods.rb +13 -6
  733. package/scripts/replace-rncore-version.js +12 -3
  734. package/sdks/.hermesv1version +1 -1
  735. package/sdks/.hermesversion +1 -1
  736. package/sdks/hermes-engine/version.properties +2 -2
  737. package/src/private/animated/NativeAnimatedHelper.js +2 -2
  738. package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
  739. package/src/private/components/virtualview/VirtualView.js +14 -21
  740. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
  741. package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
  742. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
  743. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
  744. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
  745. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  746. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
  747. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
  748. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
  749. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
  750. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  751. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  752. package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
  753. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
  754. package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
  755. package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
  756. package/src/private/featureflags/ReactNativeFeatureFlags.js +49 -82
  757. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
  758. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +9 -12
  759. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
  760. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
  761. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  762. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  763. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
  764. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
  765. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
  766. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
  767. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
  768. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +3 -3
  769. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
  770. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
  771. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
  772. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
  773. package/src/private/styles/composeStyles.js +1 -1
  774. package/src/private/utilities/toError.js +27 -0
  775. package/src/private/utilities/toExtendedError.js +30 -0
  776. package/src/private/webapis/dom/events/Event.js +1 -1
  777. package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
  778. package/src/private/webapis/dom/events/EventTarget.js +3 -3
  779. package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
  780. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  781. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
  782. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
  783. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  784. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +1 -1
  785. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  786. package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +1 -1
  787. package/src/private/webapis/geometry/DOMRectList.js +2 -2
  788. package/src/private/webapis/geometry/DOMRectList.js.flow +1 -1
  789. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
  790. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
  791. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  792. package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
  793. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
  794. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
  795. package/src/private/webapis/performance/LongTasks.js +3 -3
  796. package/src/private/webapis/performance/Performance.js +4 -4
  797. package/src/private/webapis/performance/PerformanceEntry.js +1 -1
  798. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  799. package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
  800. package/src/private/webapis/structuredClone/structuredClone.js +2 -2
  801. package/src/types/globals.d.ts +4 -4
  802. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  803. package/third-party-podspecs/fmt.podspec +2 -2
  804. package/types/index.d.ts +2 -0
  805. package/types/public/ReactNativeTVTypes.d.ts +27 -2
  806. package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
  807. package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
  808. package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.h +0 -25
  809. package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.mm +0 -321
  810. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +0 -620
  811. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +0 -1411
  812. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +0 -985
  813. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +0 -403
  814. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.kt +0 -336
  815. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventEmitterImpl.kt +0 -135
  816. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarShadowNode.kt +0 -81
  817. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +0 -72
  818. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.kt +0 -677
  819. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.kt +0 -218
  820. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.kt +0 -369
  821. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.kt +0 -156
  822. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.kt +0 -174
  823. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.kt +0 -54
  824. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/ReactTextInlineImageShadowNode.kt +0 -30
  825. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/TextInlineImageSpan.kt +0 -58
  826. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputShadowNode.kt +0 -228
  827. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +0 -305
  828. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimentalManager.kt +0 -110
  829. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIBase.java +0 -62
  830. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDirection.java +0 -35
  831. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +0 -279
  832. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +0 -197
  833. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +0 -410
  834. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +0 -113
  835. package/ReactCommon/react/renderer/components/virtualviewexperimental/VirtualViewExperimentalComponentDescriptor.h +0 -19
  836. package/ReactCommon/react/renderer/components/virtualviewexperimental/VirtualViewExperimentalShadowNode.h +0 -38
  837. package/jest/MockNativeMethods.js +0 -27
  838. package/jest/RefreshControlMock.js +0 -32
  839. package/jest/assetFileTransformer.js +0 -33
  840. package/jest/local-setup.js +0 -29
  841. package/jest/mock.js +0 -39
  842. package/jest/mockComponent.js +0 -104
  843. package/jest/mockNativeComponent.js +0 -52
  844. package/jest/mocks/AccessibilityInfo.js +0 -62
  845. package/jest/mocks/ActivityIndicator.js +0 -23
  846. package/jest/mocks/AppState.js +0 -19
  847. package/jest/mocks/Image.js +0 -23
  848. package/jest/mocks/InitializeCore.js +0 -9
  849. package/jest/mocks/Linking.js +0 -28
  850. package/jest/mocks/Modal.js +0 -33
  851. package/jest/mocks/NativeComponentRegistry.js +0 -30
  852. package/jest/mocks/NativeModules.js +0 -239
  853. package/jest/mocks/RefreshControl.js +0 -31
  854. package/jest/mocks/RendererProxy.js +0 -45
  855. package/jest/mocks/ScrollView.js +0 -58
  856. package/jest/mocks/Text.js +0 -27
  857. package/jest/mocks/TextInput.js +0 -32
  858. package/jest/mocks/UIManager.js +0 -60
  859. package/jest/mocks/View.js +0 -27
  860. package/jest/mocks/ViewNativeComponent.js +0 -23
  861. package/jest/mocks/requireNativeComponent.js +0 -22
  862. package/jest/mocks/useColorScheme.js +0 -18
  863. package/jest/react-native-env.js +0 -17
  864. package/jest/renderer.js +0 -40
  865. package/jest/resolver.js +0 -32
  866. package/jest/setup.js +0 -140
  867. /package/React/Fabric/Mounting/ComponentViews/{VirtualViewExperimental → VirtualView}/RCTVirtualViewMode.h +0 -0
  868. /package/React/Fabric/Mounting/ComponentViews/{VirtualViewExperimental → VirtualView}/RCTVirtualViewRenderState.h +0 -0
  869. /package/ReactAndroid/src/main/java/com/facebook/react/fabric/internal/interop/{InteropUiBlockListener.kt → InteropUIBlockListener.kt} +0 -0
  870. /package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{LegacyViewManagerInteropComponentDescriptor.h → platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h} +0 -0
  871. /package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{RCTLegacyViewManagerInteropCoordinator.h → platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.h} +0 -0
  872. /package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/{RCTLegacyViewManagerInteropCoordinator.mm → platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm} +0 -0
  873. /package/ReactCommon/react/renderer/components/scrollview/{RCTComponentViewHelpers.h → platform/ios/react/renderer/components/scrollview/RCTComponentViewHelpers.h} +0 -0
@@ -7,33 +7,16 @@
7
7
 
8
8
  package com.facebook.react.uimanager;
9
9
 
10
- import android.os.SystemClock;
11
10
  import android.view.View;
12
- import androidx.annotation.GuardedBy;
13
11
  import androidx.annotation.Nullable;
14
- import androidx.annotation.UiThread;
15
- import com.facebook.common.logging.FLog;
16
12
  import com.facebook.react.bridge.Callback;
17
- import com.facebook.react.bridge.GuardedRunnable;
18
13
  import com.facebook.react.bridge.ReactApplicationContext;
19
- import com.facebook.react.bridge.ReactContext;
20
- import com.facebook.react.bridge.ReactNoCrashSoftException;
21
- import com.facebook.react.bridge.ReactSoftExceptionLogger;
22
14
  import com.facebook.react.bridge.ReadableArray;
23
15
  import com.facebook.react.bridge.ReadableMap;
24
- import com.facebook.react.bridge.RetryableMountingLayerException;
25
- import com.facebook.react.bridge.SoftAssertions;
26
- import com.facebook.react.bridge.UiThreadUtil;
27
- import com.facebook.react.common.ReactConstants;
28
16
  import com.facebook.react.common.annotations.internal.LegacyArchitecture;
29
17
  import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
30
18
  import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
31
- import com.facebook.react.modules.core.ReactChoreographer;
32
- import com.facebook.systrace.Systrace;
33
- import com.facebook.systrace.SystraceMessage;
34
19
  import com.facebook.yoga.YogaDirection;
35
- import java.util.ArrayDeque;
36
- import java.util.ArrayList;
37
20
  import java.util.HashMap;
38
21
  import java.util.Map;
39
22
 
@@ -46,6 +29,8 @@ import java.util.Map;
46
29
  *
47
30
  * <p>TODO(7135923): Pooling of operation objects TODO(5694019): Consider a better data structure
48
31
  * for operations queue to save on allocations
32
+ *
33
+ * @deprecated This class is stubbed out and will be removed in a future release.
49
34
  */
50
35
  @LegacyArchitecture(logLevel = LegacyArchitectureLogLevel.ERROR)
51
36
  @Deprecated(
@@ -58,9 +43,6 @@ public class UIViewOperationQueue {
58
43
  }
59
44
 
60
45
  public static final int DEFAULT_MIN_TIME_LEFT_IN_FRAME_FOR_NONBATCHED_OPERATION_MS = 8;
61
- private static final String TAG = UIViewOperationQueue.class.getSimpleName();
62
-
63
- private final int[] mMeasureBuffer = new int[4];
64
46
 
65
47
  /** A mutation or animation operation on the view hierarchy. */
66
48
  public interface UIOperation {
@@ -68,649 +50,47 @@ public class UIViewOperationQueue {
68
50
  void execute();
69
51
  }
70
52
 
71
- /** A spec for an operation on the native View hierarchy. */
72
- private abstract class ViewOperation implements UIOperation {
73
-
74
- public int mTag;
75
-
76
- public ViewOperation(int tag) {
77
- mTag = tag;
78
- }
79
- }
80
-
81
- private final class RemoveRootViewOperation extends ViewOperation {
82
-
83
- public RemoveRootViewOperation(int tag) {
84
- super(tag);
85
- }
86
-
87
- @Override
88
- public void execute() {
89
- mNativeViewHierarchyManager.removeRootView(mTag);
90
- }
91
- }
92
-
93
- private final class UpdatePropertiesOperation extends ViewOperation {
94
-
95
- private final ReactStylesDiffMap mProps;
96
-
97
- private UpdatePropertiesOperation(int tag, ReactStylesDiffMap props) {
98
- super(tag);
99
- mProps = props;
100
- }
101
-
102
- @Override
103
- public void execute() {
104
- mNativeViewHierarchyManager.updateProperties(mTag, mProps);
105
- }
106
- }
107
-
108
- private final class UpdateInstanceHandleOperation extends ViewOperation {
109
-
110
- private final long mInstanceHandle;
111
-
112
- private UpdateInstanceHandleOperation(int tag, long instanceHandle) {
113
- super(tag);
114
- mInstanceHandle = instanceHandle;
115
- }
116
-
117
- @Override
118
- public void execute() {
119
- mNativeViewHierarchyManager.updateInstanceHandle(mTag, mInstanceHandle);
120
- }
121
- }
122
-
123
- /**
124
- * Operation for updating native view's position and size. The operation is not created directly
125
- * by a {@link UIManagerModule} call from JS. Instead it gets inflated using computed position and
126
- * size values by CSSNodeDEPRECATED hierarchy.
127
- */
128
- private final class UpdateLayoutOperation extends ViewOperation {
129
-
130
- private final int mParentTag, mX, mY, mWidth, mHeight;
131
- private final YogaDirection mLayoutDirection;
132
-
133
- public UpdateLayoutOperation(
134
- int parentTag,
135
- int tag,
136
- int x,
137
- int y,
138
- int width,
139
- int height,
140
- YogaDirection layoutDirection) {
141
- super(tag);
142
- mParentTag = parentTag;
143
- mX = x;
144
- mY = y;
145
- mWidth = width;
146
- mHeight = height;
147
- mLayoutDirection = layoutDirection;
148
- Systrace.startAsyncFlow(Systrace.TRACE_TAG_REACT, "updateLayout", mTag);
149
- }
150
-
151
- @Override
152
- public void execute() {
153
- Systrace.endAsyncFlow(Systrace.TRACE_TAG_REACT, "updateLayout", mTag);
154
- mNativeViewHierarchyManager.updateLayout(
155
- mParentTag, mTag, mX, mY, mWidth, mHeight, mLayoutDirection);
156
- }
157
- }
158
-
159
- private final class CreateViewOperation extends ViewOperation {
160
-
161
- private final ThemedReactContext mThemedContext;
162
- private final String mClassName;
163
- private final @Nullable ReactStylesDiffMap mInitialProps;
164
-
165
- public CreateViewOperation(
166
- ThemedReactContext themedContext,
167
- int tag,
168
- String className,
169
- @Nullable ReactStylesDiffMap initialProps) {
170
- super(tag);
171
- mThemedContext = themedContext;
172
- mClassName = className;
173
- mInitialProps = initialProps;
174
- Systrace.startAsyncFlow(Systrace.TRACE_TAG_REACT, "createView", mTag);
175
- }
176
-
177
- @Override
178
- public void execute() {
179
- Systrace.endAsyncFlow(Systrace.TRACE_TAG_REACT, "createView", mTag);
180
- mNativeViewHierarchyManager.createView(mThemedContext, mTag, mClassName, mInitialProps);
181
- }
182
- }
183
-
184
- private final class ManageChildrenOperation extends ViewOperation {
185
-
186
- private final @Nullable int[] mIndicesToRemove;
187
- private final @Nullable ViewAtIndex[] mViewsToAdd;
188
- private final @Nullable int[] mTagsToDelete;
189
-
190
- public ManageChildrenOperation(
191
- int tag,
192
- @Nullable int[] indicesToRemove,
193
- @Nullable ViewAtIndex[] viewsToAdd,
194
- @Nullable int[] tagsToDelete) {
195
- super(tag);
196
- mIndicesToRemove = indicesToRemove;
197
- mViewsToAdd = viewsToAdd;
198
- mTagsToDelete = tagsToDelete;
199
- }
200
-
201
- @Override
202
- public void execute() {
203
- mNativeViewHierarchyManager.manageChildren(
204
- mTag, mIndicesToRemove, mViewsToAdd, mTagsToDelete);
205
- }
206
- }
207
-
208
- private final class SetChildrenOperation extends ViewOperation {
209
-
210
- private final ReadableArray mChildrenTags;
211
-
212
- public SetChildrenOperation(int tag, ReadableArray childrenTags) {
213
- super(tag);
214
- mChildrenTags = childrenTags;
215
- }
216
-
217
- @Override
218
- public void execute() {
219
- mNativeViewHierarchyManager.setChildren(mTag, mChildrenTags);
220
- }
221
- }
222
-
223
- private final class UpdateViewExtraData extends ViewOperation {
224
-
225
- private final Object mExtraData;
226
-
227
- public UpdateViewExtraData(int tag, Object extraData) {
228
- super(tag);
229
- mExtraData = extraData;
230
- }
231
-
232
- @Override
233
- public void execute() {
234
- mNativeViewHierarchyManager.updateViewExtraData(mTag, mExtraData);
235
- }
236
- }
237
-
238
- private final class ChangeJSResponderOperation extends ViewOperation {
239
-
240
- private final int mInitialTag;
241
- private final boolean mBlockNativeResponder;
242
- private final boolean mClearResponder;
243
-
244
- public ChangeJSResponderOperation(
245
- int tag, int initialTag, boolean clearResponder, boolean blockNativeResponder) {
246
- super(tag);
247
- mInitialTag = initialTag;
248
- mClearResponder = clearResponder;
249
- mBlockNativeResponder = blockNativeResponder;
250
- }
251
-
252
- @Override
253
- public void execute() {
254
- if (!mClearResponder) {
255
- mNativeViewHierarchyManager.setJSResponder(mTag, mInitialTag, mBlockNativeResponder);
256
- } else {
257
- mNativeViewHierarchyManager.clearJSResponder();
258
- }
259
- }
260
- }
261
-
262
- /**
263
- * This is a common interface for View Command operations. Once we delete the deprecated {@link
264
- * DispatchCommandOperation}, we can delete this interface too. It provides a set of common
265
- * operations to simplify generic operations on all types of ViewCommands.
266
- */
267
- private interface DispatchCommandViewOperation {
268
-
269
- /**
270
- * Like the execute function, but throws real exceptions instead of logging soft errors and
271
- * returning silently.
272
- */
273
- void executeWithExceptions();
274
-
275
- /** Increment retry counter. */
276
- void incrementRetries();
277
-
278
- /** Get retry counter. */
279
- int getRetries();
280
- }
281
-
282
- @Deprecated
283
- private final class DispatchCommandOperation extends ViewOperation
284
- implements DispatchCommandViewOperation {
285
-
286
- private final int mCommand;
287
- private final @Nullable ReadableArray mArgs;
288
-
289
- private int numRetries = 0;
290
-
291
- public DispatchCommandOperation(int tag, int command, @Nullable ReadableArray args) {
292
- super(tag);
293
- mCommand = command;
294
- mArgs = args;
295
- }
296
-
297
- @Override
298
- public void execute() {
299
- try {
300
- mNativeViewHierarchyManager.dispatchCommand(mTag, mCommand, mArgs);
301
- } catch (Throwable e) {
302
- ReactSoftExceptionLogger.logSoftException(
303
- TAG, new RuntimeException("Error dispatching View Command", e));
304
- }
305
- }
306
-
307
- @Override
308
- public void executeWithExceptions() {
309
- mNativeViewHierarchyManager.dispatchCommand(mTag, mCommand, mArgs);
310
- }
311
-
312
- @Override
313
- @UiThread
314
- public void incrementRetries() {
315
- numRetries++;
316
- }
317
-
318
- @Override
319
- @UiThread
320
- public int getRetries() {
321
- return numRetries;
322
- }
323
- }
324
-
325
- private final class DispatchStringCommandOperation extends ViewOperation
326
- implements DispatchCommandViewOperation {
327
-
328
- private final String mCommand;
329
- private final @Nullable ReadableArray mArgs;
330
- private int numRetries = 0;
331
-
332
- public DispatchStringCommandOperation(int tag, String command, @Nullable ReadableArray args) {
333
- super(tag);
334
- mCommand = command;
335
- mArgs = args;
336
- }
337
-
338
- @Override
339
- public void execute() {
340
- try {
341
- mNativeViewHierarchyManager.dispatchCommand(mTag, mCommand, mArgs);
342
- } catch (Throwable e) {
343
- ReactSoftExceptionLogger.logSoftException(
344
- TAG, new RuntimeException("Error dispatching View Command", e));
345
- }
346
- }
347
-
348
- @Override
349
- @UiThread
350
- public void executeWithExceptions() {
351
- mNativeViewHierarchyManager.dispatchCommand(mTag, mCommand, mArgs);
352
- }
353
-
354
- @Override
355
- @UiThread
356
- public void incrementRetries() {
357
- numRetries++;
358
- }
359
-
360
- @Override
361
- public int getRetries() {
362
- return numRetries;
363
- }
364
- }
365
-
366
- /** A spec for animation operations (add/remove) */
367
- private abstract static class AnimationOperation implements UIViewOperationQueue.UIOperation {
368
-
369
- protected final int mAnimationID;
370
-
371
- public AnimationOperation(int animationID) {
372
- mAnimationID = animationID;
373
- }
374
- }
375
-
376
- private class SetLayoutAnimationEnabledOperation implements UIOperation {
377
- private final boolean mEnabled;
378
-
379
- private SetLayoutAnimationEnabledOperation(final boolean enabled) {
380
- mEnabled = enabled;
381
- }
382
-
383
- @Override
384
- public void execute() {
385
- mNativeViewHierarchyManager.setLayoutAnimationEnabled(mEnabled);
386
- }
387
- }
388
-
389
- private class ConfigureLayoutAnimationOperation implements UIOperation {
390
- private final ReadableMap mConfig;
391
- private final Callback mAnimationComplete;
392
-
393
- private ConfigureLayoutAnimationOperation(
394
- final ReadableMap config, final Callback animationComplete) {
395
- mConfig = config;
396
- mAnimationComplete = animationComplete;
397
- }
398
-
399
- @Override
400
- public void execute() {
401
- mNativeViewHierarchyManager.configureLayoutAnimation(mConfig, mAnimationComplete);
402
- }
403
- }
404
-
405
- private final class MeasureOperation implements UIOperation {
406
-
407
- private final int mReactTag;
408
- private final Callback mCallback;
409
-
410
- private MeasureOperation(final int reactTag, final Callback callback) {
411
- super();
412
- mReactTag = reactTag;
413
- mCallback = callback;
414
- }
415
-
416
- @Override
417
- public void execute() {
418
- try {
419
- mNativeViewHierarchyManager.measure(mReactTag, mMeasureBuffer);
420
- } catch (IllegalViewOperationException e) {
421
- // Invoke with no args to signal failure and to allow JS to clean up the callback
422
- // handle.
423
- mCallback.invoke();
424
- return;
425
- }
426
-
427
- float x = PixelUtil.toDIPFromPixel(mMeasureBuffer[0]);
428
- float y = PixelUtil.toDIPFromPixel(mMeasureBuffer[1]);
429
- float width = PixelUtil.toDIPFromPixel(mMeasureBuffer[2]);
430
- float height = PixelUtil.toDIPFromPixel(mMeasureBuffer[3]);
431
- mCallback.invoke(0, 0, width, height, x, y);
432
- }
433
- }
434
-
435
- private final class MeasureInWindowOperation implements UIOperation {
436
-
437
- private final int mReactTag;
438
- private final Callback mCallback;
439
-
440
- private MeasureInWindowOperation(final int reactTag, final Callback callback) {
441
- super();
442
- mReactTag = reactTag;
443
- mCallback = callback;
444
- }
445
-
446
- @Override
447
- public void execute() {
448
- try {
449
- mNativeViewHierarchyManager.measureInWindow(mReactTag, mMeasureBuffer);
450
- } catch (IllegalViewOperationException e) {
451
- // Invoke with no args to signal failure and to allow JS to clean up the callback
452
- // handle.
453
- mCallback.invoke();
454
- return;
455
- }
456
-
457
- float x = PixelUtil.toDIPFromPixel(mMeasureBuffer[0]);
458
- float y = PixelUtil.toDIPFromPixel(mMeasureBuffer[1]);
459
- float width = PixelUtil.toDIPFromPixel(mMeasureBuffer[2]);
460
- float height = PixelUtil.toDIPFromPixel(mMeasureBuffer[3]);
461
- mCallback.invoke(x, y, width, height);
462
- }
463
- }
464
-
465
- private final class FindTargetForTouchOperation implements UIOperation {
466
-
467
- private final int mReactTag;
468
- private final float mTargetX;
469
- private final float mTargetY;
470
- private final Callback mCallback;
471
-
472
- private FindTargetForTouchOperation(
473
- final int reactTag, final float targetX, final float targetY, final Callback callback) {
474
- super();
475
- mReactTag = reactTag;
476
- mTargetX = targetX;
477
- mTargetY = targetY;
478
- mCallback = callback;
479
- }
480
-
481
- @Override
482
- public void execute() {
483
- try {
484
- mNativeViewHierarchyManager.measure(mReactTag, mMeasureBuffer);
485
- } catch (IllegalViewOperationException e) {
486
- mCallback.invoke();
487
- return;
488
- }
489
-
490
- // Because React coordinates are relative to root container, and measure() operates
491
- // on screen coordinates, we need to offset values using root container location.
492
- final float containerX = (float) mMeasureBuffer[0];
493
- final float containerY = (float) mMeasureBuffer[1];
494
-
495
- final int touchTargetReactTag =
496
- mNativeViewHierarchyManager.findTargetTagForTouch(mReactTag, mTargetX, mTargetY);
497
-
498
- try {
499
- mNativeViewHierarchyManager.measure(touchTargetReactTag, mMeasureBuffer);
500
- } catch (IllegalViewOperationException e) {
501
- mCallback.invoke();
502
- return;
503
- }
504
-
505
- float x = PixelUtil.toDIPFromPixel(mMeasureBuffer[0] - containerX);
506
- float y = PixelUtil.toDIPFromPixel(mMeasureBuffer[1] - containerY);
507
- float width = PixelUtil.toDIPFromPixel(mMeasureBuffer[2]);
508
- float height = PixelUtil.toDIPFromPixel(mMeasureBuffer[3]);
509
- mCallback.invoke(touchTargetReactTag, x, y, width, height);
510
- }
511
- }
512
-
513
- private final class LayoutUpdateFinishedOperation implements UIOperation {
514
-
515
- private final ReactShadowNode mNode;
516
- private final UIImplementation.LayoutUpdateListener mListener;
517
-
518
- private LayoutUpdateFinishedOperation(
519
- ReactShadowNode node, UIImplementation.LayoutUpdateListener listener) {
520
- mNode = node;
521
- mListener = listener;
522
- }
523
-
524
- @Override
525
- public void execute() {
526
- mListener.onLayoutUpdated(mNode);
527
- }
528
- }
529
-
530
- private class UIBlockOperation implements UIOperation {
531
- private final UIBlock mBlock;
532
-
533
- public UIBlockOperation(UIBlock block) {
534
- mBlock = block;
535
- }
536
-
537
- @Override
538
- public void execute() {
539
- mBlock.execute(mNativeViewHierarchyManager);
540
- }
541
- }
542
-
543
- private final class SendAccessibilityEvent extends ViewOperation {
544
-
545
- private final int mEventType;
546
-
547
- private SendAccessibilityEvent(int tag, int eventType) {
548
- super(tag);
549
- mEventType = eventType;
550
- }
551
-
552
- @Override
553
- public void execute() {
554
- try {
555
- mNativeViewHierarchyManager.sendAccessibilityEvent(mTag, mEventType);
556
- } catch (RetryableMountingLayerException e) {
557
- // Accessibility events are similar to commands in that they're imperative
558
- // calls from JS, disconnected from the commit lifecycle, and therefore
559
- // inherently unpredictable and dangerous. If we encounter a "retryable"
560
- // error, that is, a known category of errors that this is likely to hit
561
- // due to race conditions (like the view disappearing after the event is
562
- // queued and before it executes), we log a soft exception and continue along.
563
- // Other categories of errors will still cause a hard crash.
564
- ReactSoftExceptionLogger.logSoftException(TAG, e);
565
- }
566
- }
567
- }
568
-
569
- private final NativeViewHierarchyManager mNativeViewHierarchyManager;
570
- private final Object mDispatchRunnablesLock = new Object();
571
- private final Object mNonBatchedOperationsLock = new Object();
572
- private final DispatchUIFrameCallback mDispatchUIFrameCallback;
573
- private final ReactApplicationContext mReactApplicationContext;
574
-
575
- private ArrayList<DispatchCommandViewOperation> mViewCommandOperations = new ArrayList<>();
576
-
577
- // Only called from the UIManager queue?
578
- private ArrayList<UIOperation> mOperations = new ArrayList<>();
579
-
580
- @GuardedBy("mDispatchRunnablesLock")
581
- private ArrayList<Runnable> mDispatchUIRunnables = new ArrayList<>();
582
-
583
- @GuardedBy("mNonBatchedOperationsLock")
584
- private ArrayDeque<UIOperation> mNonBatchedOperations = new ArrayDeque<>();
585
-
586
- private boolean mIsDispatchUIFrameCallbackEnqueued = false;
587
- private boolean mIsInIllegalUIState = false;
588
- private boolean mIsProfilingNextBatch = false;
589
- private long mNonBatchedExecutionTotalTime;
590
- private long mProfiledBatchCommitStartTime;
591
- private long mProfiledBatchCommitEndTime;
592
- private long mProfiledBatchLayoutTime;
593
- private long mProfiledBatchDispatchViewUpdatesTime;
594
- private long mProfiledBatchRunStartTime;
595
- private long mProfiledBatchRunEndTime;
596
- private long mProfiledBatchBatchedExecutionTime;
597
- private long mProfiledBatchNonBatchedExecutionTime;
598
- private long mThreadCpuTime;
599
- private long mCreateViewCount;
600
- private long mUpdatePropertiesOperationCount;
601
-
602
53
  public UIViewOperationQueue(
603
- ReactApplicationContext reactContext,
604
- NativeViewHierarchyManager nativeViewHierarchyManager,
605
- int minTimeLeftInFrameForNonBatchedOperationMs) {
606
- mNativeViewHierarchyManager = nativeViewHierarchyManager;
607
- mDispatchUIFrameCallback =
608
- new DispatchUIFrameCallback(
609
- reactContext,
610
- minTimeLeftInFrameForNonBatchedOperationMs == -1
611
- ? DEFAULT_MIN_TIME_LEFT_IN_FRAME_FOR_NONBATCHED_OPERATION_MS
612
- : minTimeLeftInFrameForNonBatchedOperationMs);
613
- mReactApplicationContext = reactContext;
614
- }
615
-
616
- /*package*/ NativeViewHierarchyManager getNativeViewHierarchyManager() {
617
- return mNativeViewHierarchyManager;
618
- }
54
+ ReactApplicationContext reactContext, int minTimeLeftInFrameForNonBatchedOperationMs) {}
619
55
 
620
- public void profileNextBatch() {
621
- mIsProfilingNextBatch = true;
622
- mProfiledBatchCommitStartTime = 0;
623
- mCreateViewCount = 0;
624
- mUpdatePropertiesOperationCount = 0;
625
- }
56
+ public void profileNextBatch() {}
626
57
 
627
58
  public Map<String, Long> getProfiledBatchPerfCounters() {
628
- Map<String, Long> perfMap = new HashMap<>();
629
- perfMap.put("CommitStartTime", mProfiledBatchCommitStartTime);
630
- perfMap.put("CommitEndTime", mProfiledBatchCommitEndTime);
631
- perfMap.put("LayoutTime", mProfiledBatchLayoutTime);
632
- perfMap.put("DispatchViewUpdatesTime", mProfiledBatchDispatchViewUpdatesTime);
633
- perfMap.put("RunStartTime", mProfiledBatchRunStartTime);
634
- perfMap.put("RunEndTime", mProfiledBatchRunEndTime);
635
- perfMap.put("BatchedExecutionTime", mProfiledBatchBatchedExecutionTime);
636
- perfMap.put("NonBatchedExecutionTime", mProfiledBatchNonBatchedExecutionTime);
637
- perfMap.put("NativeModulesThreadCpuTime", mThreadCpuTime);
638
- perfMap.put("CreateViewCount", mCreateViewCount);
639
- perfMap.put("UpdatePropsCount", mUpdatePropertiesOperationCount);
640
- return perfMap;
59
+ return new HashMap<>();
641
60
  }
642
61
 
643
62
  public boolean isEmpty() {
644
- return mOperations.isEmpty() && mViewCommandOperations.isEmpty();
63
+ return true;
645
64
  }
646
65
 
647
- public void addRootView(final int tag, final View rootView) {
648
- mNativeViewHierarchyManager.addRootView(tag, rootView);
649
- }
66
+ public void addRootView(final int tag, final View rootView) {}
650
67
 
651
- /**
652
- * Enqueues a UIOperation to be executed in UI thread. This method should only be used by a
653
- * subclass to support UIOperations not provided by UIViewOperationQueue.
654
- */
655
- protected void enqueueUIOperation(UIOperation operation) {
656
- SoftAssertions.assertNotNull(operation);
657
- mOperations.add(operation);
658
- }
68
+ protected void enqueueUIOperation(UIOperation operation) {}
659
69
 
660
- public void enqueueRemoveRootView(int rootViewTag) {
661
- mOperations.add(new RemoveRootViewOperation(rootViewTag));
662
- }
70
+ public void enqueueRemoveRootView(int rootViewTag) {}
663
71
 
664
- public void enqueueSetJSResponder(int tag, int initialTag, boolean blockNativeResponder) {
665
- mOperations.add(
666
- new ChangeJSResponderOperation(
667
- tag, initialTag, false /*clearResponder*/, blockNativeResponder));
668
- }
72
+ public void enqueueSetJSResponder(int tag, int initialTag, boolean blockNativeResponder) {}
669
73
 
670
- public void enqueueClearJSResponder() {
671
- // Tag is 0 because JSResponderHandler doesn't need one in order to clear the responder.
672
- mOperations.add(new ChangeJSResponderOperation(0, 0, true /*clearResponder*/, false));
673
- }
74
+ public void enqueueClearJSResponder() {}
674
75
 
675
76
  @Deprecated
676
77
  public void enqueueDispatchCommand(
677
- int reactTag, int commandId, @Nullable ReadableArray commandArgs) {
678
- final DispatchCommandOperation command =
679
- new DispatchCommandOperation(reactTag, commandId, commandArgs);
680
- mViewCommandOperations.add(command);
681
- }
78
+ int reactTag, int commandId, @Nullable ReadableArray commandArgs) {}
682
79
 
683
80
  public void enqueueDispatchCommand(
684
- int reactTag, String commandId, @Nullable ReadableArray commandArgs) {
685
- final DispatchStringCommandOperation command =
686
- new DispatchStringCommandOperation(reactTag, commandId, commandArgs);
687
- mViewCommandOperations.add(command);
688
- }
81
+ int reactTag, String commandId, @Nullable ReadableArray commandArgs) {}
689
82
 
690
- public void enqueueUpdateExtraData(int reactTag, Object extraData) {
691
- mOperations.add(new UpdateViewExtraData(reactTag, extraData));
692
- }
83
+ public void enqueueUpdateExtraData(int reactTag, Object extraData) {}
693
84
 
694
85
  public void enqueueCreateView(
695
86
  ThemedReactContext themedContext,
696
87
  int viewReactTag,
697
88
  String viewClassName,
698
- @Nullable ReactStylesDiffMap initialProps) {
699
- synchronized (mNonBatchedOperationsLock) {
700
- mCreateViewCount++;
701
- mNonBatchedOperations.addLast(
702
- new CreateViewOperation(themedContext, viewReactTag, viewClassName, initialProps));
703
- }
704
- }
89
+ @Nullable ReactStylesDiffMap initialProps) {}
705
90
 
706
- public void enqueueUpdateInstanceHandle(int reactTag, long instanceHandle) {
707
- mOperations.add(new UpdateInstanceHandleOperation(reactTag, instanceHandle));
708
- }
91
+ public void enqueueUpdateInstanceHandle(int reactTag, long instanceHandle) {}
709
92
 
710
- public void enqueueUpdateProperties(int reactTag, String className, ReactStylesDiffMap props) {
711
- mUpdatePropertiesOperationCount++;
712
- mOperations.add(new UpdatePropertiesOperation(reactTag, props));
713
- }
93
+ public void enqueueUpdateProperties(int reactTag, String className, ReactStylesDiffMap props) {}
714
94
 
715
95
  /**
716
96
  * @deprecated Use {@link #enqueueUpdateLayout(int, int, int, int, int, int, YogaDirection)}
@@ -718,9 +98,7 @@ public class UIViewOperationQueue {
718
98
  */
719
99
  @Deprecated
720
100
  public void enqueueUpdateLayout(
721
- int parentTag, int reactTag, int x, int y, int width, int height) {
722
- enqueueUpdateLayout(parentTag, reactTag, x, y, width, height, YogaDirection.INHERIT);
723
- }
101
+ int parentTag, int reactTag, int x, int y, int width, int height) {}
724
102
 
725
103
  public void enqueueUpdateLayout(
726
104
  int parentTag,
@@ -729,348 +107,41 @@ public class UIViewOperationQueue {
729
107
  int y,
730
108
  int width,
731
109
  int height,
732
- YogaDirection layoutDirection) {
733
- mOperations.add(
734
- new UpdateLayoutOperation(parentTag, reactTag, x, y, width, height, layoutDirection));
735
- }
110
+ YogaDirection layoutDirection) {}
736
111
 
737
112
  public void enqueueManageChildren(
738
113
  int reactTag,
739
114
  @Nullable int[] indicesToRemove,
740
115
  @Nullable ViewAtIndex[] viewsToAdd,
741
- @Nullable int[] tagsToDelete) {
742
- mOperations.add(
743
- new ManageChildrenOperation(reactTag, indicesToRemove, viewsToAdd, tagsToDelete));
744
- }
116
+ @Nullable int[] tagsToDelete) {}
745
117
 
746
- public void enqueueSetChildren(int reactTag, ReadableArray childrenTags) {
747
- mOperations.add(new SetChildrenOperation(reactTag, childrenTags));
748
- }
118
+ public void enqueueSetChildren(int reactTag, ReadableArray childrenTags) {}
749
119
 
750
- public void enqueueSetLayoutAnimationEnabled(final boolean enabled) {
751
- mOperations.add(new SetLayoutAnimationEnabledOperation(enabled));
752
- }
120
+ public void enqueueSetLayoutAnimationEnabled(final boolean enabled) {}
753
121
 
754
122
  public void enqueueConfigureLayoutAnimation(
755
- final ReadableMap config, final Callback onAnimationComplete) {
756
- mOperations.add(new ConfigureLayoutAnimationOperation(config, onAnimationComplete));
757
- }
123
+ final ReadableMap config, final Callback onAnimationComplete) {}
758
124
 
759
- public void enqueueMeasure(final int reactTag, final Callback callback) {
760
- mOperations.add(new MeasureOperation(reactTag, callback));
761
- }
125
+ public void enqueueMeasure(final int reactTag, final Callback callback) {}
762
126
 
763
- public void enqueueMeasureInWindow(final int reactTag, final Callback callback) {
764
- mOperations.add(new MeasureInWindowOperation(reactTag, callback));
765
- }
127
+ public void enqueueMeasureInWindow(final int reactTag, final Callback callback) {}
766
128
 
767
129
  public void enqueueFindTargetForTouch(
768
- final int reactTag, final float targetX, final float targetY, final Callback callback) {
769
- mOperations.add(new FindTargetForTouchOperation(reactTag, targetX, targetY, callback));
770
- }
130
+ final int reactTag, final float targetX, final float targetY, final Callback callback) {}
771
131
 
772
- public void enqueueSendAccessibilityEvent(int tag, int eventType) {
773
- mOperations.add(new SendAccessibilityEvent(tag, eventType));
774
- }
132
+ public void enqueueSendAccessibilityEvent(int tag, int eventType) {}
775
133
 
776
134
  public void enqueueLayoutUpdateFinished(
777
- ReactShadowNode node, UIImplementation.LayoutUpdateListener listener) {
778
- mOperations.add(new LayoutUpdateFinishedOperation(node, listener));
779
- }
135
+ ReactShadowNode node, UIImplementation.LayoutUpdateListener listener) {}
780
136
 
781
- public void enqueueUIBlock(UIBlock block) {
782
- mOperations.add(new UIBlockOperation(block));
783
- }
137
+ public void enqueueUIBlock(UIBlock block) {}
784
138
 
785
- public void prependUIBlock(UIBlock block) {
786
- mOperations.add(0, new UIBlockOperation(block));
787
- }
139
+ public void prependUIBlock(UIBlock block) {}
788
140
 
789
141
  public void dispatchViewUpdates(
790
- final int batchId, final long commitStartTime, final long layoutTime) {
791
- SystraceMessage.beginSection(
792
- Systrace.TRACE_TAG_REACT, "UIViewOperationQueue.dispatchViewUpdates")
793
- .arg("batchId", batchId)
794
- .flush();
795
- try {
796
- final long dispatchViewUpdatesTime = SystemClock.uptimeMillis();
797
- final long nativeModulesThreadCpuTime = SystemClock.currentThreadTimeMillis();
142
+ final int batchId, final long commitStartTime, final long layoutTime) {}
798
143
 
799
- // Store the current operation queues to dispatch and create new empty ones to continue
800
- // receiving new operations
801
- final ArrayList<DispatchCommandViewOperation> viewCommandOperations;
802
- if (!mViewCommandOperations.isEmpty()) {
803
- viewCommandOperations = mViewCommandOperations;
804
- mViewCommandOperations = new ArrayList<>();
805
- } else {
806
- viewCommandOperations = null;
807
- }
144
+ /* package */ void resumeFrameCallback() {}
808
145
 
809
- final ArrayList<UIOperation> batchedOperations;
810
- if (!mOperations.isEmpty()) {
811
- batchedOperations = mOperations;
812
- mOperations = new ArrayList<>();
813
- } else {
814
- batchedOperations = null;
815
- }
816
-
817
- final ArrayDeque<UIOperation> nonBatchedOperations;
818
- synchronized (mNonBatchedOperationsLock) {
819
- if (!mNonBatchedOperations.isEmpty()) {
820
- nonBatchedOperations = mNonBatchedOperations;
821
- mNonBatchedOperations = new ArrayDeque<>();
822
- } else {
823
- nonBatchedOperations = null;
824
- }
825
- }
826
-
827
- Runnable runOperations =
828
- new Runnable() {
829
- @Override
830
- public void run() {
831
- SystraceMessage.beginSection(Systrace.TRACE_TAG_REACT, "DispatchUI")
832
- .arg("BatchId", batchId)
833
- .flush();
834
- try {
835
- long runStartTime = SystemClock.uptimeMillis();
836
-
837
- // All ViewCommands should be executed first as a perf optimization.
838
- // This entire block is only executed if there's at least one ViewCommand queued.
839
- if (viewCommandOperations != null) {
840
- for (DispatchCommandViewOperation op : viewCommandOperations) {
841
- try {
842
- op.executeWithExceptions();
843
- } catch (RetryableMountingLayerException e) {
844
- // Catch errors in DispatchCommands. We allow all commands to be retried
845
- // exactly once, after the current batch of other mountitems. If the second
846
- // attempt fails, then we log a soft error. This will still crash only in
847
- // debug. We do this because it is a ~relatively common pattern to dispatch a
848
- // command during render, for example, to scroll to the bottom of a ScrollView
849
- // in render. This dispatches the command before that View is even mounted. By
850
- // retrying once, we can still dispatch the vast majority of commands faster,
851
- // avoid errors, and still operate correctly for most commands even when
852
- // they're executed too soon.
853
- if (op.getRetries() == 0) {
854
- op.incrementRetries();
855
- mViewCommandOperations.add(op);
856
- } else {
857
- // Retryable exceptions should be logged, but never crash in debug.
858
- ReactSoftExceptionLogger.logSoftException(
859
- TAG, new ReactNoCrashSoftException(e));
860
- }
861
- } catch (Throwable e) {
862
- // Non-retryable exceptions should be logged in prod, and crash in Debug.
863
- ReactSoftExceptionLogger.logSoftException(TAG, e);
864
- }
865
- }
866
- }
867
-
868
- // All nonBatchedOperations should be executed before regular operations as
869
- // regular operations may depend on them
870
- if (nonBatchedOperations != null) {
871
- for (UIOperation op : nonBatchedOperations) {
872
- op.execute();
873
- }
874
- }
875
-
876
- if (batchedOperations != null) {
877
- for (UIOperation op : batchedOperations) {
878
- op.execute();
879
- }
880
- }
881
-
882
- if (mIsProfilingNextBatch && mProfiledBatchCommitStartTime == 0) {
883
- mProfiledBatchCommitStartTime = commitStartTime;
884
- mProfiledBatchCommitEndTime = SystemClock.uptimeMillis();
885
- mProfiledBatchLayoutTime = layoutTime;
886
- mProfiledBatchDispatchViewUpdatesTime = dispatchViewUpdatesTime;
887
- mProfiledBatchRunStartTime = runStartTime;
888
- mProfiledBatchRunEndTime = mProfiledBatchCommitEndTime;
889
- mThreadCpuTime = nativeModulesThreadCpuTime;
890
-
891
- Systrace.beginAsyncSection(
892
- Systrace.TRACE_TAG_REACT,
893
- "delayBeforeDispatchViewUpdates",
894
- 0,
895
- mProfiledBatchCommitStartTime * 1000000);
896
- Systrace.endAsyncSection(
897
- Systrace.TRACE_TAG_REACT,
898
- "delayBeforeDispatchViewUpdates",
899
- 0,
900
- mProfiledBatchDispatchViewUpdatesTime * 1000000);
901
- Systrace.beginAsyncSection(
902
- Systrace.TRACE_TAG_REACT,
903
- "delayBeforeBatchRunStart",
904
- 0,
905
- mProfiledBatchDispatchViewUpdatesTime * 1000000);
906
- Systrace.endAsyncSection(
907
- Systrace.TRACE_TAG_REACT,
908
- "delayBeforeBatchRunStart",
909
- 0,
910
- mProfiledBatchRunStartTime * 1000000);
911
- }
912
-
913
- // Clear layout animation, as animation only apply to current UI operations batch.
914
- mNativeViewHierarchyManager.clearLayoutAnimation();
915
-
916
- } catch (Exception e) {
917
- mIsInIllegalUIState = true;
918
- throw e;
919
- } finally {
920
- Systrace.endSection(Systrace.TRACE_TAG_REACT);
921
- }
922
- }
923
- };
924
-
925
- SystraceMessage.beginSection(Systrace.TRACE_TAG_REACT, "acquiring mDispatchRunnablesLock")
926
- .arg("batchId", batchId)
927
- .flush();
928
- synchronized (mDispatchRunnablesLock) {
929
- Systrace.endSection(Systrace.TRACE_TAG_REACT);
930
- mDispatchUIRunnables.add(runOperations);
931
- }
932
-
933
- // In the case where the frame callback isn't enqueued, the UI isn't being displayed or is
934
- // being
935
- // destroyed. In this case it's no longer important to align to frames, but it is important to
936
- // make
937
- // sure any late-arriving UI commands are executed.
938
- if (!mIsDispatchUIFrameCallbackEnqueued) {
939
- UiThreadUtil.runOnUiThread(
940
- new GuardedRunnable(mReactApplicationContext) {
941
- @Override
942
- public void runGuarded() {
943
- flushPendingBatches();
944
- }
945
- });
946
- }
947
- } finally {
948
- Systrace.endSection(Systrace.TRACE_TAG_REACT);
949
- }
950
- }
951
-
952
- /* package */ void resumeFrameCallback() {
953
- mIsDispatchUIFrameCallbackEnqueued = true;
954
- ReactChoreographer.getInstance()
955
- .postFrameCallback(ReactChoreographer.CallbackType.DISPATCH_UI, mDispatchUIFrameCallback);
956
- }
957
-
958
- /* package */ void pauseFrameCallback() {
959
- mIsDispatchUIFrameCallbackEnqueued = false;
960
- ReactChoreographer.getInstance()
961
- .removeFrameCallback(ReactChoreographer.CallbackType.DISPATCH_UI, mDispatchUIFrameCallback);
962
- flushPendingBatches();
963
- }
964
-
965
- private void flushPendingBatches() {
966
- if (mIsInIllegalUIState) {
967
- FLog.w(
968
- ReactConstants.TAG,
969
- "Not flushing pending UI operations because of previously thrown Exception");
970
- return;
971
- }
972
-
973
- final ArrayList<Runnable> runnables;
974
- synchronized (mDispatchRunnablesLock) {
975
- if (!mDispatchUIRunnables.isEmpty()) {
976
- runnables = mDispatchUIRunnables;
977
- mDispatchUIRunnables = new ArrayList<>();
978
- } else {
979
- return;
980
- }
981
- }
982
-
983
- final long batchedExecutionStartTime = SystemClock.uptimeMillis();
984
- for (Runnable runnable : runnables) {
985
- runnable.run();
986
- }
987
-
988
- if (mIsProfilingNextBatch) {
989
- mProfiledBatchBatchedExecutionTime = SystemClock.uptimeMillis() - batchedExecutionStartTime;
990
- mProfiledBatchNonBatchedExecutionTime = mNonBatchedExecutionTotalTime;
991
- mIsProfilingNextBatch = false;
992
-
993
- Systrace.beginAsyncSection(
994
- Systrace.TRACE_TAG_REACT, "batchedExecutionTime", 0, batchedExecutionStartTime * 1000000);
995
- Systrace.endAsyncSection(Systrace.TRACE_TAG_REACT, "batchedExecutionTime", 0);
996
- }
997
- mNonBatchedExecutionTotalTime = 0;
998
- }
999
-
1000
- /**
1001
- * Choreographer FrameCallback responsible for actually dispatching view updates on the UI thread
1002
- * that were enqueued via {@link #dispatchViewUpdates(int)}. The reason we don't just enqueue
1003
- * directly to the UI thread from that method is to make sure our Runnables actually run before
1004
- * the next traversals happen:
1005
- *
1006
- * <p>ViewRootImpl#scheduleTraversals (which is called from invalidate, requestLayout, etc) calls
1007
- * Looper#postSyncBarrier which keeps any UI thread looper messages from being processed until
1008
- * that barrier is removed during the next traversal. That means, depending on when we get updates
1009
- * from JS and what else is happening on the UI thread, we can sometimes try to post this runnable
1010
- * after ViewRootImpl has posted a barrier.
1011
- *
1012
- * <p>Using a Choreographer callback (which runs immediately before traversals), we guarantee we
1013
- * run before the next traversal.
1014
- */
1015
- private class DispatchUIFrameCallback extends GuardedFrameCallback {
1016
-
1017
- private static final int FRAME_TIME_MS = 16;
1018
- private final int mMinTimeLeftInFrameForNonBatchedOperationMs;
1019
-
1020
- private DispatchUIFrameCallback(
1021
- ReactContext reactContext, int minTimeLeftInFrameForNonBatchedOperationMs) {
1022
- super(reactContext);
1023
- mMinTimeLeftInFrameForNonBatchedOperationMs = minTimeLeftInFrameForNonBatchedOperationMs;
1024
- }
1025
-
1026
- @Override
1027
- public void doFrameGuarded(long frameTimeNanos) {
1028
- if (mIsInIllegalUIState) {
1029
- FLog.w(
1030
- ReactConstants.TAG,
1031
- "Not flushing pending UI operations because of previously thrown Exception");
1032
- return;
1033
- }
1034
-
1035
- Systrace.beginSection(Systrace.TRACE_TAG_REACT, "dispatchNonBatchedUIOperations");
1036
- try {
1037
- dispatchPendingNonBatchedOperations(frameTimeNanos);
1038
- } finally {
1039
- Systrace.endSection(Systrace.TRACE_TAG_REACT);
1040
- }
1041
-
1042
- flushPendingBatches();
1043
-
1044
- ReactChoreographer.getInstance()
1045
- .postFrameCallback(ReactChoreographer.CallbackType.DISPATCH_UI, this);
1046
- }
1047
-
1048
- private void dispatchPendingNonBatchedOperations(long frameTimeNanos) {
1049
- while (true) {
1050
- long timeLeftInFrame = FRAME_TIME_MS - ((System.nanoTime() - frameTimeNanos) / 1000000);
1051
- if (timeLeftInFrame < mMinTimeLeftInFrameForNonBatchedOperationMs) {
1052
- break;
1053
- }
1054
-
1055
- UIOperation nextOperation;
1056
- synchronized (mNonBatchedOperationsLock) {
1057
- if (mNonBatchedOperations.isEmpty()) {
1058
- break;
1059
- }
1060
-
1061
- nextOperation = mNonBatchedOperations.pollFirst();
1062
- }
1063
-
1064
- try {
1065
- long nonBatchedExecutionStartTime = SystemClock.uptimeMillis();
1066
- nextOperation.execute();
1067
- mNonBatchedExecutionTotalTime +=
1068
- SystemClock.uptimeMillis() - nonBatchedExecutionStartTime;
1069
- } catch (Exception e) {
1070
- mIsInIllegalUIState = true;
1071
- throw e;
1072
- }
1073
- }
1074
- }
1075
- }
146
+ /* package */ void pauseFrameCallback() {}
1076
147
  }