react-native-tvos 0.77.0-0rc5 → 0.78.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 (655) hide show
  1. package/Libraries/Animated/animations/Animation.js +22 -1
  2. package/Libraries/Animated/animations/DecayAnimation.js +1 -0
  3. package/Libraries/Animated/animations/SpringAnimation.js +1 -0
  4. package/Libraries/Animated/animations/TimingAnimation.js +1 -0
  5. package/Libraries/Animated/nodes/AnimatedAddition.js +9 -2
  6. package/Libraries/Animated/nodes/AnimatedColor.js +4 -1
  7. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +10 -2
  8. package/Libraries/Animated/nodes/AnimatedDivision.js +9 -2
  9. package/Libraries/Animated/nodes/AnimatedInterpolation.js +5 -1
  10. package/Libraries/Animated/nodes/AnimatedModulo.js +5 -2
  11. package/Libraries/Animated/nodes/AnimatedMultiplication.js +9 -2
  12. package/Libraries/Animated/nodes/AnimatedNode.js +25 -46
  13. package/Libraries/Animated/nodes/AnimatedObject.js +9 -2
  14. package/Libraries/Animated/nodes/AnimatedProps.js +5 -1
  15. package/Libraries/Animated/nodes/AnimatedStyle.js +5 -1
  16. package/Libraries/Animated/nodes/AnimatedSubtraction.js +9 -2
  17. package/Libraries/Animated/nodes/AnimatedTracking.js +5 -1
  18. package/Libraries/Animated/nodes/AnimatedTransform.js +5 -1
  19. package/Libraries/Animated/nodes/AnimatedValue.js +63 -4
  20. package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -1
  21. package/Libraries/Animated/useAnimatedProps.js +14 -56
  22. package/Libraries/AppDelegate/RCTAppDelegate.h +6 -48
  23. package/Libraries/AppDelegate/RCTAppDelegate.mm +5 -230
  24. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.h +21 -0
  25. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +123 -0
  26. package/Libraries/AppDelegate/RCTReactNativeFactory.h +98 -0
  27. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +266 -0
  28. package/Libraries/AppDelegate/RCTRootViewFactory.mm +1 -1
  29. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +0 -1
  30. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +1 -1
  31. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
  32. package/Libraries/Components/LayoutConformance/LayoutConformance.d.ts +21 -0
  33. package/Libraries/Components/LayoutConformance/LayoutConformance.js +59 -0
  34. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +29 -0
  35. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  36. package/Libraries/Components/TV/TVFocusGuideView.js +0 -1
  37. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
  38. package/Libraries/Components/TextInput/TextInput.d.ts +5 -0
  39. package/Libraries/Components/TextInput/TextInput.flow.js +6 -0
  40. package/Libraries/Components/TextInput/TextInput.js +6 -0
  41. package/Libraries/Components/View/ViewPropTypes.d.ts +8 -7
  42. package/Libraries/Components/View/ViewPropTypes.js +0 -9
  43. package/Libraries/Core/ReactNativeVersion.js +2 -2
  44. package/Libraries/Core/setUpBatchedBridge.js +1 -16
  45. package/Libraries/Core/setUpDeveloperTools.js +2 -3
  46. package/Libraries/EventEmitter/RCTEventEmitter.js +2 -6
  47. package/Libraries/Image/AssetSourceResolver.js +11 -0
  48. package/Libraries/Image/RCTImageLoader.mm +9 -1
  49. package/Libraries/Image/RCTImageView.mm +3 -3
  50. package/Libraries/Inspector/BorderBox.js +26 -14
  51. package/Libraries/Inspector/BoxInspector.js +60 -42
  52. package/Libraries/Inspector/ElementBox.js +55 -48
  53. package/Libraries/Inspector/StyleInspector.js +36 -30
  54. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  55. package/Libraries/Lists/FlatList.d.ts +1 -1
  56. package/Libraries/Modal/Modal.js +2 -0
  57. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm +1 -1
  58. package/Libraries/NativeComponent/BaseViewConfig.android.js +0 -2
  59. package/Libraries/NativeComponent/BaseViewConfig.ios.js +0 -2
  60. package/Libraries/Network/RCTNetworking.android.js +24 -16
  61. package/Libraries/Network/RCTNetworking.ios.js +1 -46
  62. package/Libraries/Network/RCTNetworking.js.flow +1 -46
  63. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +57 -0
  64. package/Libraries/Pressability/Pressability.js +2 -2
  65. package/Libraries/ReactNative/UIManagerProperties.js +3 -1
  66. package/Libraries/Renderer/implementations/ReactFabric-dev.js +15829 -26461
  67. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3907 -2560
  68. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4399 -2878
  69. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +16103 -26908
  70. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +4034 -2695
  71. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4535 -3045
  72. package/Libraries/Renderer/shims/ReactNativeTypes.js +5 -6
  73. package/Libraries/StyleSheet/processTransform.js +6 -0
  74. package/Libraries/Text/Text/NSTextStorage+FontScaling.m +9 -0
  75. package/Libraries/Text/Text.d.ts +6 -1
  76. package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +2 -0
  77. package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +26 -0
  78. package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +2 -0
  79. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +26 -1
  80. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +2 -0
  81. package/Libraries/Text/TextInput/Singleline/RCTUITextField.h +1 -0
  82. package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +26 -0
  83. package/Libraries/Text/TextProps.js +2 -2
  84. package/Libraries/Utilities/BackHandler.android.js +5 -4
  85. package/Libraries/Utilities/BackHandler.ios.js +3 -4
  86. package/Libraries/Utilities/HMRClient.js +0 -28
  87. package/Libraries/Utilities/HMRClientProdShim.js +0 -1
  88. package/README-core.md +2 -2
  89. package/React/Base/RCTConvert.mm +3 -1
  90. package/React/Base/RCTVersion.m +2 -2
  91. package/React/CoreModules/RCTDevSettings.h +0 -1
  92. package/React/CoreModules/RCTDeviceInfo.mm +4 -0
  93. package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +3 -5
  94. package/React/DevSupport/RCTInspectorDevServerHelper.mm +1 -6
  95. package/React/DevSupport/RCTPausedInDebuggerOverlayController.mm +3 -5
  96. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +0 -24
  97. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +0 -28
  98. package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +90 -57
  99. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +241 -104
  100. package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryContentView.mm +0 -5
  101. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +39 -10
  102. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +3 -3
  103. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +107 -34
  104. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +5 -0
  105. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +1 -0
  106. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +12 -4
  107. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +3 -0
  108. package/React/Fabric/Mounting/RCTMountingManager.mm +6 -9
  109. package/React/Fabric/RCTScheduler.mm +1 -1
  110. package/React/I18n/strings/da.lproj/fbt_language_pack.bin +0 -0
  111. package/React/Modules/RCTUIManager.mm +1 -2
  112. package/React/React-RCTFBReactNativeSpec.podspec +1 -0
  113. package/React/React-RCTFabric.podspec +3 -2
  114. package/React/Tests/Text/RCTParagraphComponentViewTests.mm +12 -12
  115. package/React/Views/RCTComponentData.mm +1 -5
  116. package/React/Views/RCTLayout.m +3 -0
  117. package/React/Views/RCTShadowView.h +3 -3
  118. package/React/Views/RCTShadowView.m +52 -20
  119. package/React/Views/RCTTVView.m +5 -2
  120. package/React/Views/RCTView.m +6 -2
  121. package/React/Views/RCTViewManager.m +0 -7
  122. package/React/Views/ScrollView/RCTScrollView.m +109 -45
  123. package/React-Core.podspec +1 -1
  124. package/ReactAndroid/api/ReactAndroid.api +123 -227
  125. package/ReactAndroid/build.gradle.kts +8 -13
  126. package/ReactAndroid/cmake-utils/ReactNative-application.cmake +13 -3
  127. package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +2 -0
  128. package/ReactAndroid/external-artifacts/build.gradle.kts +5 -5
  129. package/ReactAndroid/gradle.properties +3 -3
  130. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesMemoryDumper.java → HermesMemoryDumper.kt} +5 -5
  131. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesSamplingProfiler.java → HermesSamplingProfiler.kt} +8 -10
  132. package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +12 -59
  133. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +8 -0
  134. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +8 -0
  135. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +37 -0
  136. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +12 -1
  137. package/ReactAndroid/src/main/java/com/facebook/react/{ReactPackageLogger.java → ReactPackageLogger.kt} +3 -3
  138. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +8 -8
  139. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java +1 -1
  140. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -3
  141. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +6 -0
  142. package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.kt +5 -3
  143. package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.kt +4 -8
  144. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +11 -5
  145. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt +0 -7
  146. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +1 -3
  147. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +6 -1
  148. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +11 -23
  149. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +3 -30
  150. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/HMRClient.java +4 -1
  151. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +2 -0
  152. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java +4 -4
  153. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +21 -26
  154. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +1 -14
  155. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.java +2 -11
  156. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +88 -0
  157. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +6 -6
  158. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +39 -8
  159. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/exceptionmanager/ReactJsExceptionHandler.kt +7 -7
  160. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +21 -21
  161. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +36 -36
  162. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +8 -8
  163. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +10 -10
  164. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +40 -40
  165. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +8 -8
  166. package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +3 -3
  167. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.kt +55 -0
  168. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.kt +185 -0
  169. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/{HeadlessJsTaskEventListener.java → HeadlessJsTaskEventListener.kt} +5 -6
  170. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.kt +20 -0
  171. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/LinearCountingRetryPolicy.kt +4 -4
  172. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/NoRetryPolicy.kt +7 -8
  173. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +8 -5
  174. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.kt +11 -17
  175. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt +1 -1
  176. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.kt +16 -0
  177. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.kt +107 -0
  178. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +18 -19
  179. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.kt +48 -0
  180. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
  181. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +397 -0
  182. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostDelegate.kt +0 -10
  183. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +1 -1
  184. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +8 -8
  185. package/ReactAndroid/src/main/java/com/facebook/react/runtime/hermes/HermesInstance.kt +4 -10
  186. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +4 -0
  187. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +13 -12
  188. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +15 -12
  189. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ComponentNameResolver.java → ComponentNameResolver.kt} +4 -5
  190. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.kt +5 -2
  191. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +0 -5
  192. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.kt +21 -0
  193. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.kt +18 -0
  194. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{RootView.java → RootView.kt} +11 -12
  195. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewManager.kt +1 -1
  196. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{UIBlock.java → UIBlock.kt} +3 -3
  197. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +2 -5
  198. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +25 -0
  199. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt +1 -1
  200. package/{Libraries/AppDelegate/RCTAppDelegate+Protected.h → ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerWithGeneratedInterface.kt} +3 -8
  201. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +12 -5
  202. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundDrawable.kt +46 -80
  203. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt +5 -5
  204. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +5 -5
  205. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/{BatchEventDispatchedListener.java → BatchEventDispatchedListener.kt} +3 -3
  206. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.kt +46 -0
  207. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.kt +40 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +2 -6
  209. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.kt +19 -0
  210. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.kt +23 -0
  211. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +241 -0
  212. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.kt +193 -0
  213. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.kt +44 -0
  214. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +37 -0
  215. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.kt +130 -0
  216. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -1
  217. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.kt +77 -0
  218. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +196 -0
  219. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +16 -17
  220. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +5 -0
  221. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +56 -3
  222. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.kt +11 -0
  223. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/{FpsListener.java → FpsListener.kt} +4 -4
  224. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +16 -0
  225. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +3 -3
  226. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.kt +136 -0
  227. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +2 -2
  228. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.kt +152 -0
  229. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +52 -0
  230. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +1 -7
  231. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +16 -2
  232. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +8 -13
  233. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.kt +50 -0
  234. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ShadowStyleSpan.kt +1 -1
  235. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +1 -9
  236. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +111 -0
  237. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +91 -20
  238. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +14 -2
  239. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java +22 -1
  240. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +43 -1
  241. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +86 -2
  242. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +44 -2
  243. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.java +7 -1
  244. package/ReactAndroid/src/main/jni/CMakeLists.txt +5 -6
  245. package/ReactAndroid/src/main/jni/first-party/yogajni/CMakeLists.txt +6 -1
  246. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +96 -11
  247. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +9 -0
  248. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +1 -0
  249. package/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +0 -3
  250. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +3 -0
  251. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +41 -25
  252. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +0 -2
  253. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +63 -91
  254. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +1 -7
  255. package/ReactAndroid/src/main/jni/react/fabric/MountItem.cpp +9 -9
  256. package/ReactAndroid/src/main/jni/react/fabric/MountItem.h +6 -10
  257. package/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +0 -2
  258. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp +4 -0
  259. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +1 -0
  260. package/ReactAndroid/src/main/jni/react/featureflags/CMakeLists.txt +0 -1
  261. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +49 -49
  262. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +11 -11
  263. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/OnLoad.cpp +1 -4
  264. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +0 -1
  265. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +0 -1
  266. package/ReactAndroid/src/main/jni/react/jni/JSLogging.cpp +4 -9
  267. package/ReactAndroid/src/main/jni/react/jni/JSLogging.h +0 -4
  268. package/ReactAndroid/src/main/jni/react/jni/JniJSModulesUnbundle.cpp +3 -4
  269. package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp +3 -4
  270. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.cpp +6 -0
  271. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.h +1 -0
  272. package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.cpp +6 -0
  273. package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.h +1 -0
  274. package/ReactAndroid/src/main/jni/react/jscexecutor/OnLoad.cpp +3 -7
  275. package/ReactAndroid/src/main/jni/react/mapbuffer/CMakeLists.txt +0 -2
  276. package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +0 -1
  277. package/ReactAndroid/src/main/jni/react/reactperflogger/CMakeLists.txt +0 -1
  278. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.cpp +2 -8
  279. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.h +2 -8
  280. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +0 -1
  281. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.cpp +18 -17
  282. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.h +1 -1
  283. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +1 -1
  284. package/ReactAndroid/src/main/jni/react/turbomodule/CMakeLists.txt +0 -2
  285. package/ReactAndroid/src/main/jni/react/uimanager/CMakeLists.txt +0 -1
  286. package/ReactAndroid/src/main/res/views/view/values/ids.xml +5 -0
  287. package/ReactCommon/React-Fabric.podspec +8 -0
  288. package/ReactCommon/React-FabricComponents.podspec +2 -2
  289. package/ReactCommon/React-FabricImage.podspec +4 -1
  290. package/ReactCommon/cxxreact/CxxNativeModule.cpp +3 -3
  291. package/ReactCommon/cxxreact/Instance.cpp +6 -6
  292. package/ReactCommon/cxxreact/JSBigString.cpp +1 -1
  293. package/ReactCommon/cxxreact/JSExecutor.cpp +4 -2
  294. package/ReactCommon/cxxreact/ModuleRegistry.cpp +6 -6
  295. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +3 -3
  296. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  297. package/ReactCommon/cxxreact/SystraceSection.h +8 -141
  298. package/ReactCommon/cxxreact/TraceSection.h +181 -0
  299. package/ReactCommon/cxxreact/tests/jsbigstring.cpp +19 -0
  300. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +2 -2
  301. package/ReactCommon/jsc/JSCRuntime.cpp +0 -2
  302. package/ReactCommon/jsc/React-jsc.podspec +1 -1
  303. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +27 -19
  304. package/ReactCommon/jserrorhandler/JsErrorHandler.h +5 -3
  305. package/ReactCommon/jserrorhandler/StackTraceParser.cpp +16 -16
  306. package/ReactCommon/jserrorhandler/StackTraceParser.h +1 -1
  307. package/ReactCommon/jserrorhandler/tests/StackTraceParserTest.cpp +252 -246
  308. package/ReactCommon/jsi/jsi/CMakeLists.txt +0 -3
  309. package/ReactCommon/jsi/jsi/JSIDynamic.cpp +1 -1
  310. package/ReactCommon/jsi/jsi/JSIDynamic.h +1 -1
  311. package/ReactCommon/jsi/jsi/decorator.h +61 -0
  312. package/ReactCommon/jsi/jsi/jsi-inl.h +4 -0
  313. package/ReactCommon/jsi/jsi/jsi.cpp +37 -0
  314. package/ReactCommon/jsi/jsi/jsi.h +81 -0
  315. package/ReactCommon/jsi/jsi/test/testlib.cpp +88 -0
  316. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +9 -9
  317. package/ReactCommon/jsinspector-modern/CMakeLists.txt +1 -1
  318. package/ReactCommon/jsinspector-modern/HostAgent.cpp +3 -7
  319. package/ReactCommon/jsinspector-modern/HostTarget.cpp +22 -1
  320. package/ReactCommon/jsinspector-modern/HostTarget.h +1 -1
  321. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +19 -4
  322. package/ReactCommon/jsinspector-modern/InspectorFlags.h +14 -0
  323. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +21 -10
  324. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +12 -11
  325. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +2 -16
  326. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +14 -14
  327. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.h +7 -13
  328. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestGenericEngineAdapter.cpp +1 -1
  329. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +1 -3
  330. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +3 -3
  331. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +1 -1
  332. package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +26 -0
  333. package/ReactCommon/jsinspector-modern/tracing/CdpTracing.h +21 -0
  334. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +187 -0
  335. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +126 -0
  336. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +56 -0
  337. package/ReactCommon/react/featureflags/CMakeLists.txt +3 -0
  338. package/ReactCommon/react/featureflags/React-featureflags.podspec +7 -0
  339. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +15 -15
  340. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +18 -18
  341. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +88 -88
  342. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +9 -9
  343. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +17 -17
  344. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +454 -0
  345. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +5 -5
  346. package/ReactCommon/react/featureflags/tests/ReactNativeFeatureFlagsDynamicProviderTest.cpp +78 -0
  347. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +2 -3
  348. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +3 -3
  349. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +13 -4
  350. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +1 -0
  351. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +19 -11
  352. package/ReactCommon/react/nativemodule/cputime/CPUTime.h +55 -0
  353. package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.cpp +35 -0
  354. package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.h +28 -0
  355. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +18 -18
  356. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +8 -8
  357. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -0
  358. package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.cpp +5 -8
  359. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +3 -3
  360. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +22 -43
  361. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.h +0 -15
  362. package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
  363. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +22 -2
  364. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +9 -4
  365. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
  366. package/ReactCommon/react/renderer/animations/CMakeLists.txt +0 -1
  367. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +1 -1
  368. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +25 -19
  369. package/ReactCommon/react/renderer/animations/primitives.h +1 -1
  370. package/ReactCommon/react/renderer/animations/utils.h +3 -4
  371. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +31 -9
  372. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +85 -29
  373. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +2 -0
  374. package/ReactCommon/react/renderer/attributedstring/conversions.h +5 -0
  375. package/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +0 -1
  376. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.cpp +4 -1
  377. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +2 -0
  378. package/ReactCommon/react/renderer/components/image/ImageEventEmitter.cpp +2 -2
  379. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +5 -5
  380. package/ReactCommon/react/renderer/components/image/ImageProps.h +1 -1
  381. package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +38 -10
  382. package/ReactCommon/react/renderer/components/image/ImageShadowNode.h +1 -1
  383. package/ReactCommon/react/renderer/components/image/ImageState.cpp +2 -3
  384. package/ReactCommon/react/renderer/components/image/ImageState.h +9 -6
  385. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -4
  386. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h +7 -0
  387. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -2
  388. package/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt +2 -2
  389. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.cpp +33 -0
  390. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +17 -0
  391. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.cpp +3 -2
  392. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +2 -1
  393. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -4
  394. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h +7 -0
  395. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +12 -0
  396. package/ReactCommon/react/renderer/{uimanager/bindingUtils.h → components/text/ParagraphComponentDescriptor.cpp} +2 -8
  397. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +10 -7
  398. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp +23 -0
  399. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +8 -1
  400. package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +243 -0
  401. package/ReactCommon/react/renderer/components/textinput/TextInputState.cpp +71 -0
  402. package/ReactCommon/react/renderer/components/textinput/{platform/ios/react/renderer/components/iostextinput/TextInputState.h → TextInputState.h} +27 -7
  403. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +6 -13
  404. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +0 -2
  405. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +145 -144
  406. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +27 -29
  407. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +4 -5
  408. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.cpp +0 -26
  409. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h +0 -6
  410. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.cpp +0 -147
  411. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h +5 -57
  412. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +60 -70
  413. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +3 -3
  414. package/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h +18 -0
  415. package/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h +36 -0
  416. package/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h +28 -0
  417. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +4 -0
  418. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +0 -1
  419. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +21 -22
  420. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
  421. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +3 -1
  422. package/ReactCommon/react/renderer/components/view/conversions.h +117 -43
  423. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +3 -2
  424. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +3 -1
  425. package/ReactCommon/react/renderer/components/view/primitives.h +1 -1
  426. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +12 -12
  427. package/ReactCommon/react/renderer/core/CMakeLists.txt +0 -1
  428. package/ReactCommon/react/renderer/core/ComponentDescriptor.cpp +4 -2
  429. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +4 -2
  430. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +17 -2
  431. package/ReactCommon/react/renderer/core/DynamicPropsUtilities.cpp +26 -0
  432. package/ReactCommon/react/renderer/core/DynamicPropsUtilities.h +4 -0
  433. package/ReactCommon/react/renderer/core/EventEmitter.cpp +3 -3
  434. package/ReactCommon/react/renderer/core/Props.cpp +16 -5
  435. package/ReactCommon/react/renderer/core/Props.h +11 -4
  436. package/ReactCommon/react/renderer/core/RawProps.cpp +30 -5
  437. package/ReactCommon/react/renderer/core/RawProps.h +10 -1
  438. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +7 -2
  439. package/ReactCommon/react/renderer/core/RawPropsParser.h +7 -1
  440. package/ReactCommon/react/renderer/core/RawPropsPrimitives.h +1 -0
  441. package/ReactCommon/react/renderer/core/RawValue.h +315 -22
  442. package/ReactCommon/react/renderer/core/tests/DynamicPropsUtilitiesTest.cpp +95 -4
  443. package/ReactCommon/react/renderer/debug/debugStringConvertibleUtils.h +19 -4
  444. package/ReactCommon/react/renderer/graphics/CMakeLists.txt +7 -1
  445. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +7 -5
  446. package/ReactCommon/react/renderer/graphics/Transform.cpp +11 -2
  447. package/ReactCommon/react/renderer/graphics/Transform.h +2 -1
  448. package/ReactCommon/react/renderer/imagemanager/CMakeLists.txt +4 -2
  449. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +7 -0
  450. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +43 -0
  451. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +36 -0
  452. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +43 -0
  453. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +94 -0
  454. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +101 -0
  455. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageManager.cpp +9 -1
  456. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequestParams.h +30 -0
  457. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageManager.mm +9 -0
  458. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h +30 -0
  459. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImageManager.mm +2 -2
  460. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +187 -152
  461. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +4 -5
  462. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +10 -16
  463. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -12
  464. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +44 -14
  465. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +8 -4
  466. package/ReactCommon/react/renderer/mounting/stubs/stubs.cpp +1 -1
  467. package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +116 -193
  468. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +0 -3
  469. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +7 -4
  470. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.h +2 -1
  471. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +7 -8
  472. package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.cpp +6 -6
  473. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +3 -1
  474. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +2 -0
  475. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +11 -11
  476. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +14 -15
  477. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +4 -3
  478. package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +0 -1
  479. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +6 -37
  480. package/ReactCommon/react/renderer/scheduler/Scheduler.h +0 -3
  481. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +15 -11
  482. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +1 -0
  483. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +56 -2
  484. package/ReactCommon/react/renderer/scheduler/SurfaceManager.h +23 -3
  485. package/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +1 -2
  486. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManager.cpp +26 -0
  487. package/ReactCommon/react/renderer/textlayoutmanager/{platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h → TextLayoutManager.h} +18 -17
  488. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +2 -3
  489. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +77 -89
  490. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.cpp +6 -10
  491. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +11 -5
  492. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +23 -1
  493. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +11 -32
  494. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +9 -23
  495. package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.cpp +88 -0
  496. package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.h +50 -0
  497. package/ReactCommon/react/renderer/uimanager/CMakeLists.txt +0 -1
  498. package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.h +3 -40
  499. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +23 -18
  500. package/ReactCommon/react/renderer/uimanager/UIManager.h +2 -0
  501. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -31
  502. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +0 -4
  503. package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +10 -10
  504. package/ReactCommon/react/runtime/CMakeLists.txt +0 -1
  505. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -2
  506. package/ReactCommon/react/runtime/ReactInstance.cpp +43 -57
  507. package/ReactCommon/react/runtime/TimerManager.cpp +4 -4
  508. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +5 -1
  509. package/ReactCommon/react/runtime/hermes/HermesInstance.h +0 -2
  510. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +2 -6
  511. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +6 -15
  512. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +3 -1
  513. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +15 -15
  514. package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +5 -4
  515. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +0 -3
  516. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.cpp +33 -17
  517. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.h +8 -2
  518. package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.cpp → ReactPerfettoLogger.cpp} +25 -24
  519. package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.h → ReactPerfettoLogger.h} +9 -9
  520. package/ReactCommon/yoga/yoga/YGEnums.cpp +6 -0
  521. package/ReactCommon/yoga/yoga/YGEnums.h +4 -1
  522. package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +124 -24
  523. package/ReactCommon/yoga/yoga/YGNodeStyle.h +22 -1
  524. package/ReactCommon/yoga/yoga/YGValue.h +3 -0
  525. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +6 -6
  526. package/ReactCommon/yoga/yoga/algorithm/FlexLine.cpp +2 -2
  527. package/ReactCommon/yoga/yoga/algorithm/FlexLine.h +1 -1
  528. package/ReactCommon/yoga/yoga/algorithm/PixelGrid.cpp +9 -6
  529. package/ReactCommon/yoga/yoga/enums/Unit.h +4 -1
  530. package/ReactCommon/yoga/yoga/node/Node.cpp +8 -8
  531. package/ReactCommon/yoga/yoga/node/Node.h +5 -5
  532. package/ReactCommon/yoga/yoga/style/Style.h +14 -12
  533. package/ReactCommon/yoga/yoga/style/StyleLength.h +14 -7
  534. package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +139 -0
  535. package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +8 -0
  536. package/ReactCommon/yoga/yoga/style/StyleValuePool.h +60 -3
  537. package/gradle/libs.versions.toml +6 -2
  538. package/index.js +5 -0
  539. package/package.json +17 -15
  540. package/react-native.config.js +6 -0
  541. package/scripts/cocoapods/codegen_utils.rb +4 -4
  542. package/scripts/cocoapods/new_architecture.rb +3 -3
  543. package/scripts/cocoapods/utils.rb +4 -3
  544. package/scripts/codegen/generate-artifacts-executor.js +8 -4
  545. package/scripts/generate-codegen-artifacts.js +6 -1
  546. package/scripts/react-native-xcode.sh +1 -1
  547. package/scripts/react_native_pods.rb +3 -3
  548. package/scripts/xcode/ccache-clang++.sh +1 -1
  549. package/scripts/xcode/ccache-clang.sh +1 -1
  550. package/sdks/.hermesversion +1 -1
  551. package/sdks/hermes-engine/hermes-utils.rb +2 -2
  552. package/sdks/hermes-engine/utils/build-hermes-xcode.sh +1 -1
  553. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  554. package/sdks/hermesc/osx-bin/hermes +0 -0
  555. package/sdks/hermesc/osx-bin/hermesc +0 -0
  556. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  557. package/src/private/animated/NativeAnimatedValidation.js +1 -1
  558. package/src/private/featureflags/README.md +5 -0
  559. package/src/private/featureflags/ReactNativeFeatureFlags.js +32 -26
  560. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -5
  561. package/src/private/renderer/errorhandling/ErrorHandlers.js +12 -55
  562. package/src/private/specs/modules/{NativeJSCSamplingProfiler.js → NativeCPUTime.js} +7 -2
  563. package/src/private/specs/modules/NativeFantom.js +37 -0
  564. package/src/private/utilities/ensureInstance.js +21 -0
  565. package/src/private/webapis/dom/nodes/ReactNativeElement.js +49 -6
  566. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +17 -9
  567. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +11 -11
  568. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +1 -1
  569. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -1
  570. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  571. package/src/private/webapis/performance/Performance.js +0 -12
  572. package/src/private/webapis/performance/specs/NativePerformance.js +0 -11
  573. package/types/index.d.ts +1 -0
  574. package/types/public/ReactNativeTVTypes.d.ts +49 -51
  575. package/Libraries/HeapCapture/HeapCapture.js +0 -29
  576. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +0 -13
  577. package/Libraries/Performance/NativeJSCSamplingProfiler.js +0 -13
  578. package/Libraries/Performance/SamplingProfiler.js +0 -39
  579. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +0 -334
  580. package/React/Inspector/RCTInspectorPackagerConnection.m +0 -325
  581. package/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedResultAsyncTask.java +0 -50
  582. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorPackagerConnection.java +0 -314
  583. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/JSCHeapCapture.java +0 -76
  584. package/ReactAndroid/src/main/java/com/facebook/react/fabric/EmptyReactNativeConfig.kt +0 -36
  585. package/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.kt +0 -33
  586. package/ReactAndroid/src/main/java/com/facebook/react/fabric/ReactNativeConfig.kt +0 -54
  587. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +0 -83
  588. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.java +0 -121
  589. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +0 -214
  590. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.java +0 -22
  591. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/XmlFormat.kt +0 -143
  592. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.java +0 -17
  593. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +0 -124
  594. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.java +0 -58
  595. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.java +0 -422
  596. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FabricViewStateManager.java +0 -98
  597. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +0 -25
  598. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.java +0 -20
  599. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +0 -45
  600. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.java +0 -37
  601. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.java +0 -19
  602. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.java +0 -24
  603. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +0 -257
  604. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.java +0 -210
  605. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +0 -43
  606. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +0 -39
  607. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +0 -165
  608. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.java +0 -85
  609. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +0 -204
  610. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.java +0 -161
  611. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.java +0 -232
  612. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.java +0 -70
  613. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/LegacyLineHeightSpan.kt +0 -69
  614. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.java +0 -114
  615. package/ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt +0 -31
  616. package/ReactAndroid/src/main/jni/first-party/fb/assert.cpp +0 -39
  617. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ALog.h +0 -82
  618. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Build.h +0 -31
  619. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Countable.h +0 -45
  620. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Doxyfile +0 -18
  621. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Environment.h +0 -93
  622. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ProgramLocation.h +0 -58
  623. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/RefPtr.h +0 -266
  624. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/StaticInitialized.h +0 -37
  625. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ThreadLocal.h +0 -112
  626. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/assert.h +0 -43
  627. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/log.h +0 -350
  628. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/noncopyable.h +0 -20
  629. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/nonmovable.h +0 -20
  630. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/visibility.h +0 -10
  631. package/ReactAndroid/src/main/jni/first-party/fb/log.cpp +0 -102
  632. package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.cpp +0 -47
  633. package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.h +0 -38
  634. package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.cpp +0 -41
  635. package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.h +0 -35
  636. package/ReactAndroid/src/main/jni/react/perftests/OnLoad.cpp +0 -243
  637. package/ReactAndroid/src/main/jni/third-party/jsc/CMakeLists.txt +0 -15
  638. package/ReactCommon/React-nativeconfig.podspec +0 -36
  639. package/ReactCommon/cxxreact/tests/main.cpp +0 -15
  640. package/ReactCommon/react/config/CMakeLists.txt +0 -20
  641. package/ReactCommon/react/config/ReactNativeConfig.cpp +0 -28
  642. package/ReactCommon/react/config/ReactNativeConfig.h +0 -42
  643. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.cpp +0 -95
  644. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h +0 -80
  645. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputState.cpp +0 -10
  646. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.h +0 -78
  647. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.h +0 -69
  648. package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.cpp +0 -123
  649. package/ReactCommon/react/renderer/uimanager/bindingUtils.cpp +0 -79
  650. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +0 -413
  651. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +0 -181
  652. package/src/private/webapis/mutationobserver/specs/__mocks__/NativeMutationObserver.js +0 -327
  653. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewComponentDescriptor.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h} +0 -0
  654. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.cpp → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.cpp} +0 -0
  655. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h} +0 -0
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  #include "MutationObserverManager.h"
9
- #include <cxxreact/SystraceSection.h>
9
+ #include <cxxreact/TraceSection.h>
10
10
  #include <utility>
11
11
  #include "MutationObserver.h"
12
12
 
@@ -19,7 +19,7 @@ void MutationObserverManager::observe(
19
19
  ShadowNode::Shared shadowNode,
20
20
  bool observeSubtree,
21
21
  const UIManager& uiManager) {
22
- SystraceSection s("MutationObserverManager::observe");
22
+ TraceSection s("MutationObserverManager::observe");
23
23
 
24
24
  auto surfaceId = shadowNode->getSurfaceId();
25
25
 
@@ -39,7 +39,7 @@ void MutationObserverManager::observe(
39
39
  void MutationObserverManager::unobserve(
40
40
  MutationObserverId mutationObserverId,
41
41
  const ShadowNode& shadowNode) {
42
- SystraceSection s("MutationObserverManager::unobserve");
42
+ TraceSection s("MutationObserverManager::unobserve");
43
43
 
44
44
  auto surfaceId = shadowNode.getSurfaceId();
45
45
 
@@ -71,7 +71,7 @@ void MutationObserverManager::unobserve(
71
71
  void MutationObserverManager::connect(
72
72
  UIManager& uiManager,
73
73
  std::function<void(std::vector<MutationRecord>&)> onMutations) {
74
- SystraceSection s("MutationObserverManager::connect");
74
+ TraceSection s("MutationObserverManager::connect");
75
75
 
76
76
  // Fail-safe in case the caller doesn't guarantee consistency.
77
77
  if (commitHookRegistered_) {
@@ -85,7 +85,7 @@ void MutationObserverManager::connect(
85
85
  }
86
86
 
87
87
  void MutationObserverManager::disconnect(UIManager& uiManager) {
88
- SystraceSection s("MutationObserverManager::disconnect");
88
+ TraceSection s("MutationObserverManager::disconnect");
89
89
 
90
90
  // Fail-safe in case the caller doesn't guarantee consistency.
91
91
  if (!commitHookRegistered_) {
@@ -115,7 +115,7 @@ void MutationObserverManager::runMutationObservations(
115
115
  const ShadowTree& shadowTree,
116
116
  const RootShadowNode& oldRootShadowNode,
117
117
  const RootShadowNode& newRootShadowNode) {
118
- SystraceSection s("MutationObserverManager::runMutationObservations");
118
+ TraceSection s("MutationObserverManager::runMutationObservations");
119
119
 
120
120
  auto surfaceId = shadowTree.getSurfaceId();
121
121
 
@@ -11,12 +11,14 @@
11
11
  #include "SchedulerPriorityUtils.h"
12
12
 
13
13
  #include <cxxreact/ErrorUtils.h>
14
- #include <cxxreact/SystraceSection.h>
14
+ #include <cxxreact/TraceSection.h>
15
15
  #include <react/featureflags/ReactNativeFeatureFlags.h>
16
16
  #include <utility>
17
17
 
18
18
  namespace facebook::react {
19
19
 
20
+ extern const char RuntimeSchedulerKey[] = "RuntimeScheduler";
21
+
20
22
  namespace {
21
23
  std::unique_ptr<RuntimeSchedulerBase> getRuntimeSchedulerImplementation(
22
24
  RuntimeExecutor runtimeExecutor,
@@ -24,6 +24,8 @@ using SurfaceId = int32_t;
24
24
  using RuntimeSchedulerTaskErrorHandler =
25
25
  std::function<void(jsi::Runtime& runtime, jsi::JSError& error)>;
26
26
 
27
+ extern const char RuntimeSchedulerKey[];
28
+
27
29
  // This is a temporary abstract class for RuntimeScheduler forks to implement
28
30
  // (and use them interchangeably).
29
31
  class RuntimeSchedulerBase {
@@ -8,7 +8,7 @@
8
8
  #include "RuntimeScheduler_Legacy.h"
9
9
  #include "SchedulerPriorityUtils.h"
10
10
 
11
- #include <cxxreact/SystraceSection.h>
11
+ #include <cxxreact/TraceSection.h>
12
12
  #include <react/renderer/consistency/ScopedShadowTreeRevisionLock.h>
13
13
  #include <utility>
14
14
 
@@ -25,13 +25,13 @@ RuntimeScheduler_Legacy::RuntimeScheduler_Legacy(
25
25
  onTaskError_(std::move(onTaskError)) {}
26
26
 
27
27
  void RuntimeScheduler_Legacy::scheduleWork(RawCallback&& callback) noexcept {
28
- SystraceSection s("RuntimeScheduler::scheduleWork");
28
+ TraceSection s("RuntimeScheduler::scheduleWork");
29
29
 
30
30
  runtimeAccessRequests_ += 1;
31
31
 
32
32
  runtimeExecutor_(
33
33
  [this, callback = std::move(callback)](jsi::Runtime& runtime) {
34
- SystraceSection s2("RuntimeScheduler::scheduleWork callback");
34
+ TraceSection s2("RuntimeScheduler::scheduleWork callback");
35
35
  runtimeAccessRequests_ -= 1;
36
36
  {
37
37
  ScopedShadowTreeRevisionLock revisionLock(
@@ -45,7 +45,7 @@ void RuntimeScheduler_Legacy::scheduleWork(RawCallback&& callback) noexcept {
45
45
  std::shared_ptr<Task> RuntimeScheduler_Legacy::scheduleTask(
46
46
  SchedulerPriority priority,
47
47
  jsi::Function&& callback) noexcept {
48
- SystraceSection s(
48
+ TraceSection s(
49
49
  "RuntimeScheduler::scheduleTask",
50
50
  "priority",
51
51
  serialize(priority),
@@ -65,7 +65,7 @@ std::shared_ptr<Task> RuntimeScheduler_Legacy::scheduleTask(
65
65
  std::shared_ptr<Task> RuntimeScheduler_Legacy::scheduleTask(
66
66
  SchedulerPriority priority,
67
67
  RawCallback&& callback) noexcept {
68
- SystraceSection s(
68
+ TraceSection s(
69
69
  "RuntimeScheduler::scheduleTask",
70
70
  "priority",
71
71
  serialize(priority),
@@ -119,7 +119,7 @@ RuntimeSchedulerTimePoint RuntimeScheduler_Legacy::now() const noexcept {
119
119
 
120
120
  void RuntimeScheduler_Legacy::executeNowOnTheSameThread(
121
121
  RawCallback&& callback) {
122
- SystraceSection s("RuntimeScheduler::executeNowOnTheSameThread");
122
+ TraceSection s("RuntimeScheduler::executeNowOnTheSameThread");
123
123
 
124
124
  static thread_local jsi::Runtime* runtimePtr = nullptr;
125
125
 
@@ -127,7 +127,7 @@ void RuntimeScheduler_Legacy::executeNowOnTheSameThread(
127
127
  runtimeAccessRequests_ += 1;
128
128
  executeSynchronouslyOnSameThread_CAN_DEADLOCK(
129
129
  runtimeExecutor_, [this, &callback](jsi::Runtime& runtime) {
130
- SystraceSection s2(
130
+ TraceSection s2(
131
131
  "RuntimeScheduler::executeNowOnTheSameThread callback");
132
132
 
133
133
  runtimeAccessRequests_ -= 1;
@@ -153,7 +153,7 @@ void RuntimeScheduler_Legacy::executeNowOnTheSameThread(
153
153
  }
154
154
 
155
155
  void RuntimeScheduler_Legacy::callExpiredTasks(jsi::Runtime& runtime) {
156
- SystraceSection s("RuntimeScheduler::callExpiredTasks");
156
+ TraceSection s("RuntimeScheduler::callExpiredTasks");
157
157
 
158
158
  auto previousPriority = currentPriority_;
159
159
  try {
@@ -181,7 +181,7 @@ void RuntimeScheduler_Legacy::callExpiredTasks(jsi::Runtime& runtime) {
181
181
  void RuntimeScheduler_Legacy::scheduleRenderingUpdate(
182
182
  SurfaceId /*surfaceId*/,
183
183
  RuntimeSchedulerRenderingUpdate&& renderingUpdate) {
184
- SystraceSection s("RuntimeScheduler::scheduleRenderingUpdate");
184
+ TraceSection s("RuntimeScheduler::scheduleRenderingUpdate");
185
185
 
186
186
  if (renderingUpdate != nullptr) {
187
187
  renderingUpdate();
@@ -217,7 +217,7 @@ void RuntimeScheduler_Legacy::scheduleWorkLoopIfNecessary() {
217
217
  }
218
218
 
219
219
  void RuntimeScheduler_Legacy::startWorkLoop(jsi::Runtime& runtime) {
220
- SystraceSection s("RuntimeScheduler::startWorkLoop");
220
+ TraceSection s("RuntimeScheduler::startWorkLoop");
221
221
 
222
222
  auto previousPriority = currentPriority_;
223
223
  isPerformingWork_ = true;
@@ -249,7 +249,7 @@ void RuntimeScheduler_Legacy::executeTask(
249
249
  jsi::Runtime& runtime,
250
250
  const std::shared_ptr<Task>& task,
251
251
  bool didUserCallbackTimeout) {
252
- SystraceSection s(
252
+ TraceSection s(
253
253
  "RuntimeScheduler::executeTask",
254
254
  "priority",
255
255
  serialize(task->priority),
@@ -8,7 +8,7 @@
8
8
  #include "RuntimeScheduler_Modern.h"
9
9
  #include "SchedulerPriorityUtils.h"
10
10
 
11
- #include <cxxreact/SystraceSection.h>
11
+ #include <cxxreact/TraceSection.h>
12
12
  #include <react/featureflags/ReactNativeFeatureFlags.h>
13
13
  #include <react/renderer/consistency/ScopedShadowTreeRevisionLock.h>
14
14
  #include <react/timing/primitives.h>
@@ -39,14 +39,14 @@ RuntimeScheduler_Modern::RuntimeScheduler_Modern(
39
39
  onTaskError_(std::move(onTaskError)) {}
40
40
 
41
41
  void RuntimeScheduler_Modern::scheduleWork(RawCallback&& callback) noexcept {
42
- SystraceSection s("RuntimeScheduler::scheduleWork");
42
+ TraceSection s("RuntimeScheduler::scheduleWork");
43
43
  scheduleTask(SchedulerPriority::ImmediatePriority, std::move(callback));
44
44
  }
45
45
 
46
46
  std::shared_ptr<Task> RuntimeScheduler_Modern::scheduleTask(
47
47
  SchedulerPriority priority,
48
48
  jsi::Function&& callback) noexcept {
49
- SystraceSection s(
49
+ TraceSection s(
50
50
  "RuntimeScheduler::scheduleTask",
51
51
  "priority",
52
52
  serialize(priority),
@@ -65,7 +65,7 @@ std::shared_ptr<Task> RuntimeScheduler_Modern::scheduleTask(
65
65
  std::shared_ptr<Task> RuntimeScheduler_Modern::scheduleTask(
66
66
  SchedulerPriority priority,
67
67
  RawCallback&& callback) noexcept {
68
- SystraceSection s(
68
+ TraceSection s(
69
69
  "RuntimeScheduler::scheduleTask",
70
70
  "priority",
71
71
  serialize(priority),
@@ -84,7 +84,7 @@ std::shared_ptr<Task> RuntimeScheduler_Modern::scheduleTask(
84
84
  std::shared_ptr<Task> RuntimeScheduler_Modern::scheduleIdleTask(
85
85
  jsi::Function&& callback,
86
86
  RuntimeSchedulerTimeout customTimeout) noexcept {
87
- SystraceSection s(
87
+ TraceSection s(
88
88
  "RuntimeScheduler::scheduleIdleTask",
89
89
  "customTimeout",
90
90
  customTimeout.count(),
@@ -104,7 +104,7 @@ std::shared_ptr<Task> RuntimeScheduler_Modern::scheduleIdleTask(
104
104
  std::shared_ptr<Task> RuntimeScheduler_Modern::scheduleIdleTask(
105
105
  RawCallback&& callback,
106
106
  RuntimeSchedulerTimeout customTimeout) noexcept {
107
- SystraceSection s(
107
+ TraceSection s(
108
108
  "RuntimeScheduler::scheduleIdleTask",
109
109
  "customTimeout",
110
110
  customTimeout.count(),
@@ -146,7 +146,7 @@ RuntimeSchedulerTimePoint RuntimeScheduler_Modern::now() const noexcept {
146
146
 
147
147
  void RuntimeScheduler_Modern::executeNowOnTheSameThread(
148
148
  RawCallback&& callback) {
149
- SystraceSection s("RuntimeScheduler::executeNowOnTheSameThread");
149
+ TraceSection s("RuntimeScheduler::executeNowOnTheSameThread");
150
150
 
151
151
  static thread_local jsi::Runtime* runtimePtr = nullptr;
152
152
 
@@ -166,8 +166,7 @@ void RuntimeScheduler_Modern::executeNowOnTheSameThread(
166
166
  executeSynchronouslyOnSameThread_CAN_DEADLOCK(
167
167
  runtimeExecutor_,
168
168
  [this, currentTime, &task](jsi::Runtime& runtime) mutable {
169
- SystraceSection s2(
170
- "RuntimeScheduler::executeNowOnTheSameThread callback");
169
+ TraceSection s2("RuntimeScheduler::executeNowOnTheSameThread callback");
171
170
 
172
171
  syncTaskRequests_--;
173
172
  runtimePtr = &runtime;
@@ -201,7 +200,7 @@ void RuntimeScheduler_Modern::callExpiredTasks(jsi::Runtime& runtime) {
201
200
  void RuntimeScheduler_Modern::scheduleRenderingUpdate(
202
201
  SurfaceId surfaceId,
203
202
  RuntimeSchedulerRenderingUpdate&& renderingUpdate) {
204
- SystraceSection s("RuntimeScheduler::scheduleRenderingUpdate");
203
+ TraceSection s("RuntimeScheduler::scheduleRenderingUpdate");
205
204
 
206
205
  surfaceIdsWithPendingRenderingUpdates_.insert(surfaceId);
207
206
  pendingRenderingUpdates_.push(renderingUpdate);
@@ -256,7 +255,7 @@ void RuntimeScheduler_Modern::scheduleEventLoop() {
256
255
  void RuntimeScheduler_Modern::runEventLoop(
257
256
  jsi::Runtime& runtime,
258
257
  bool onlyExpired) {
259
- SystraceSection s("RuntimeScheduler::runEventLoop");
258
+ TraceSection s("RuntimeScheduler::runEventLoop");
260
259
 
261
260
  auto previousPriority = currentPriority_;
262
261
 
@@ -308,7 +307,7 @@ void RuntimeScheduler_Modern::runEventLoopTick(
308
307
  jsi::Runtime& runtime,
309
308
  Task& task,
310
309
  RuntimeSchedulerTimePoint taskStartTime) {
311
- SystraceSection s("RuntimeScheduler::runEventLoopTick");
310
+ TraceSection s("RuntimeScheduler::runEventLoopTick");
312
311
 
313
312
  ScopedShadowTreeRevisionLock revisionLock(
314
313
  shadowTreeRevisionConsistencyManager_);
@@ -346,7 +345,7 @@ void RuntimeScheduler_Modern::runEventLoopTick(
346
345
  * https://html.spec.whatwg.org/multipage/webappapis.html#update-the-rendering.
347
346
  */
348
347
  void RuntimeScheduler_Modern::updateRendering() {
349
- SystraceSection s("RuntimeScheduler::updateRendering");
348
+ TraceSection s("RuntimeScheduler::updateRendering");
350
349
 
351
350
  if (eventTimingDelegate_ != nullptr &&
352
351
  ReactNativeFeatureFlags::enableReportEventPaintTime()) {
@@ -369,7 +368,7 @@ void RuntimeScheduler_Modern::executeTask(
369
368
  jsi::Runtime& runtime,
370
369
  Task& task,
371
370
  bool didUserCallbackTimeout) const {
372
- SystraceSection s(
371
+ TraceSection s(
373
372
  "RuntimeScheduler::executeTask",
374
373
  "priority",
375
374
  serialize(task.priority),
@@ -401,7 +400,7 @@ void RuntimeScheduler_Modern::executeTask(
401
400
  */
402
401
  void RuntimeScheduler_Modern::performMicrotaskCheckpoint(
403
402
  jsi::Runtime& runtime) {
404
- SystraceSection s("RuntimeScheduler::performMicrotaskCheckpoint");
403
+ TraceSection s("RuntimeScheduler::performMicrotaskCheckpoint");
405
404
 
406
405
  if (performingMicrotaskCheckpoint_) {
407
406
  return;
@@ -31,10 +31,9 @@ static inline SchedulerPriority fromRawValue(double value) {
31
31
  return SchedulerPriority::LowPriority;
32
32
  case 5:
33
33
  return SchedulerPriority::IdlePriority;
34
- default:
35
- react_native_assert(false && "Unsupported SchedulerPriority value");
36
- return SchedulerPriority::NormalPriority;
37
34
  }
35
+ react_native_assert(false && "Unsupported SchedulerPriority value");
36
+ return SchedulerPriority::NormalPriority;
38
37
  }
39
38
 
40
39
  static inline std::chrono::milliseconds timeoutForSchedulerPriority(
@@ -51,6 +50,8 @@ static inline std::chrono::milliseconds timeoutForSchedulerPriority(
51
50
  case SchedulerPriority::IdlePriority:
52
51
  return std::chrono::minutes(5);
53
52
  }
53
+ react_native_assert(false && "Unsupported SchedulerPriority value");
54
+ return std::chrono::seconds(5);
54
55
  }
55
56
 
56
57
  } // namespace facebook::react
@@ -23,7 +23,6 @@ target_link_libraries(react_render_scheduler
23
23
  folly_runtime
24
24
  glog
25
25
  jsi
26
- react_config
27
26
  react_debug
28
27
  react_featureflags
29
28
  react_performance_timeline
@@ -10,7 +10,7 @@
10
10
  #include <glog/logging.h>
11
11
  #include <jsi/jsi.h>
12
12
 
13
- #include <cxxreact/SystraceSection.h>
13
+ #include <cxxreact/TraceSection.h>
14
14
  #include <react/debug/react_native_assert.h>
15
15
  #include <react/featureflags/ReactNativeFeatureFlags.h>
16
16
  #include <react/renderer/componentregistry/ComponentDescriptorRegistry.h>
@@ -49,7 +49,7 @@ Scheduler::Scheduler(
49
49
 
50
50
  auto weakRuntimeScheduler =
51
51
  contextContainer_->find<std::weak_ptr<RuntimeScheduler>>(
52
- "RuntimeScheduler");
52
+ RuntimeSchedulerKey);
53
53
  react_native_assert(
54
54
  weakRuntimeScheduler.has_value() &&
55
55
  "Unexpected state: RuntimeScheduler was not provided.");
@@ -151,7 +151,7 @@ Scheduler::~Scheduler() {
151
151
  if (ReactNativeFeatureFlags::enableReportEventPaintTime()) {
152
152
  auto weakRuntimeScheduler =
153
153
  contextContainer_->find<std::weak_ptr<RuntimeScheduler>>(
154
- "RuntimeScheduler");
154
+ RuntimeSchedulerKey);
155
155
  auto runtimeScheduler = weakRuntimeScheduler.has_value()
156
156
  ? weakRuntimeScheduler.value().lock()
157
157
  : nullptr;
@@ -216,37 +216,6 @@ void Scheduler::registerSurface(
216
216
  surfaceHandler.setUIManager(uiManager_.get());
217
217
  }
218
218
 
219
- InspectorData Scheduler::getInspectorDataForInstance(
220
- const EventEmitter& eventEmitter) const noexcept {
221
- return executeSynchronouslyOnSameThread_CAN_DEADLOCK<InspectorData>(
222
- runtimeExecutor_, [=](jsi::Runtime& runtime) -> InspectorData {
223
- auto uiManagerBinding = UIManagerBinding::getBinding(runtime);
224
- auto value = uiManagerBinding->getInspectorDataForInstance(
225
- runtime, eventEmitter);
226
-
227
- // TODO T97216348: avoid transforming jsi into folly::dynamic
228
- auto dynamic = jsi::dynamicFromValue(runtime, value);
229
- auto source = dynamic["source"];
230
-
231
- InspectorData result = {};
232
- result.fileName =
233
- source["fileName"].isNull() ? "" : source["fileName"].c_str();
234
- result.lineNumber = (int)source["lineNumber"].getDouble();
235
- result.columnNumber = (int)source["columnNumber"].getDouble();
236
- result.selectedIndex = (int)dynamic["selectedIndex"].getDouble();
237
- // TODO T97216348: remove folly::dynamic from InspectorData struct
238
- result.props = dynamic["props"];
239
- auto hierarchy = dynamic["hierarchy"];
240
- for (auto& i : hierarchy) {
241
- auto viewHierarchyValue = i["name"];
242
- if (!viewHierarchyValue.isNull()) {
243
- result.hierarchy.emplace_back(viewHierarchyValue.c_str());
244
- }
245
- }
246
- return result;
247
- });
248
- }
249
-
250
219
  void Scheduler::unregisterSurface(
251
220
  const SurfaceHandler& surfaceHandler) const noexcept {
252
221
  surfaceHandler.setUIManager(nullptr);
@@ -280,7 +249,7 @@ void Scheduler::animationTick() const {
280
249
  void Scheduler::uiManagerDidFinishTransaction(
281
250
  std::shared_ptr<const MountingCoordinator> mountingCoordinator,
282
251
  bool mountSynchronously) {
283
- SystraceSection s("Scheduler::uiManagerDidFinishTransaction");
252
+ TraceSection s("Scheduler::uiManagerDidFinishTransaction");
284
253
 
285
254
  if (delegate_ != nullptr) {
286
255
  // This is no-op on all platforms except for Android where we need to
@@ -312,7 +281,7 @@ void Scheduler::uiManagerDidDispatchCommand(
312
281
  const ShadowNode::Shared& shadowNode,
313
282
  const std::string& commandName,
314
283
  const folly::dynamic& args) {
315
- SystraceSection s("Scheduler::uiManagerDispatchCommand");
284
+ TraceSection s("Scheduler::uiManagerDispatchCommand");
316
285
 
317
286
  if (delegate_ != nullptr) {
318
287
  auto shadowView = ShadowView(*shadowNode);
@@ -335,7 +304,7 @@ void Scheduler::uiManagerDidDispatchCommand(
335
304
  void Scheduler::uiManagerDidSendAccessibilityEvent(
336
305
  const ShadowNode::Shared& shadowNode,
337
306
  const std::string& eventType) {
338
- SystraceSection s("Scheduler::uiManagerDidSendAccessibilityEvent");
307
+ TraceSection s("Scheduler::uiManagerDidSendAccessibilityEvent");
339
308
 
340
309
  if (delegate_ != nullptr) {
341
310
  auto shadowView = ShadowView(*shadowNode);
@@ -52,9 +52,6 @@ class Scheduler final : public UIManagerDelegate {
52
52
  void registerSurface(const SurfaceHandler& surfaceHandler) const noexcept;
53
53
  void unregisterSurface(const SurfaceHandler& surfaceHandler) const noexcept;
54
54
 
55
- InspectorData getInspectorDataForInstance(
56
- const EventEmitter& eventEmitter) const noexcept;
57
-
58
55
  /*
59
56
  * This is broken. Please do not use.
60
57
  * `ComponentDescriptor`s are not designed to be used outside of `UIManager`,
@@ -7,7 +7,7 @@
7
7
 
8
8
  #include "SurfaceHandler.h"
9
9
 
10
- #include <cxxreact/SystraceSection.h>
10
+ #include <cxxreact/TraceSection.h>
11
11
  #include <react/debug/react_native_assert.h>
12
12
  #include <react/renderer/uimanager/UIManager.h>
13
13
 
@@ -55,7 +55,7 @@ Status SurfaceHandler::getStatus() const noexcept {
55
55
  }
56
56
 
57
57
  void SurfaceHandler::start() const noexcept {
58
- SystraceSection s("SurfaceHandler::start");
58
+ TraceSection s("SurfaceHandler::start");
59
59
  std::unique_lock lock(linkMutex_);
60
60
  react_native_assert(
61
61
  link_.status == Status::Registered && "Surface must be registered.");
@@ -67,7 +67,7 @@ void SurfaceHandler::start() const noexcept {
67
67
 
68
68
  auto parameters = Parameters{};
69
69
  {
70
- SystraceSection s2("SurfaceHandler::start::paramsLock");
70
+ TraceSection s2("SurfaceHandler::start::paramsLock");
71
71
  std::shared_lock parametersLock(parametersMutex_);
72
72
  parameters = parameters_;
73
73
  }
@@ -81,11 +81,15 @@ void SurfaceHandler::start() const noexcept {
81
81
 
82
82
  link_.shadowTree = shadowTree.get();
83
83
 
84
- link_.uiManager->startSurface(
85
- std::move(shadowTree),
86
- parameters.moduleName,
87
- parameters.props,
88
- parameters_.displayMode);
84
+ if (!parameters.moduleName.empty()) {
85
+ link_.uiManager->startSurface(
86
+ std::move(shadowTree),
87
+ parameters.moduleName,
88
+ parameters.props,
89
+ parameters_.displayMode);
90
+ } else {
91
+ link_.uiManager->startEmptySurface(std::move(shadowTree));
92
+ }
89
93
 
90
94
  link_.status = Status::Running;
91
95
 
@@ -165,7 +169,7 @@ std::string SurfaceHandler::getModuleName() const noexcept {
165
169
  }
166
170
 
167
171
  void SurfaceHandler::setProps(const folly::dynamic& props) const noexcept {
168
- SystraceSection s("SurfaceHandler::setProps");
172
+ TraceSection s("SurfaceHandler::setProps");
169
173
  auto parameters = Parameters{};
170
174
  {
171
175
  std::unique_lock lock(parametersMutex_);
@@ -231,7 +235,7 @@ Size SurfaceHandler::measure(
231
235
  void SurfaceHandler::constraintLayout(
232
236
  const LayoutConstraints& layoutConstraints,
233
237
  const LayoutContext& layoutContext) const noexcept {
234
- SystraceSection s("SurfaceHandler::constraintLayout");
238
+ TraceSection s("SurfaceHandler::constraintLayout");
235
239
  {
236
240
  std::unique_lock lock(parametersMutex_);
237
241
 
@@ -278,7 +282,7 @@ LayoutContext SurfaceHandler::getLayoutContext() const noexcept {
278
282
  #pragma mark - Private
279
283
 
280
284
  void SurfaceHandler::applyDisplayMode(DisplayMode displayMode) const noexcept {
281
- SystraceSection s("SurfaceHandler::applyDisplayMode");
285
+ TraceSection s("SurfaceHandler::applyDisplayMode");
282
286
  react_native_assert(
283
287
  link_.status == Status::Running && "Surface must be running.");
284
288
  react_native_assert(
@@ -62,6 +62,7 @@ class SurfaceHandler {
62
62
  * Can be constructed anytime with a `moduleName` and a `surfaceId`.
63
63
  */
64
64
  SurfaceHandler(const std::string& moduleName, SurfaceId surfaceId) noexcept;
65
+
65
66
  virtual ~SurfaceHandler() noexcept;
66
67
 
67
68
  /*
@@ -7,6 +7,7 @@
7
7
 
8
8
  #include "SurfaceManager.h"
9
9
 
10
+ #include <glog/logging.h>
10
11
  #include <react/renderer/scheduler/Scheduler.h>
11
12
 
12
13
  namespace facebook::react {
@@ -14,12 +15,18 @@ namespace facebook::react {
14
15
  SurfaceManager::SurfaceManager(const Scheduler& scheduler) noexcept
15
16
  : scheduler_(scheduler) {}
16
17
 
18
+ SurfaceManager::~SurfaceManager() noexcept {
19
+ LOG(WARNING) << "SurfaceManager::~SurfaceManager() was called (address: "
20
+ << this << ").";
21
+ stopAllSurfaces();
22
+ }
23
+
17
24
  void SurfaceManager::startSurface(
18
25
  SurfaceId surfaceId,
19
26
  const std::string& moduleName,
20
27
  const folly::dynamic& props,
21
28
  const LayoutConstraints& layoutConstraints,
22
- const LayoutContext& layoutContext) const noexcept {
29
+ const LayoutContext& layoutContext) noexcept {
23
30
  {
24
31
  std::unique_lock lock(mutex_);
25
32
  auto surfaceHandler = SurfaceHandler{moduleName, surfaceId};
@@ -37,11 +44,18 @@ void SurfaceManager::startSurface(
37
44
  });
38
45
  }
39
46
 
40
- void SurfaceManager::stopSurface(SurfaceId surfaceId) const noexcept {
47
+ void SurfaceManager::stopSurface(SurfaceId surfaceId) noexcept {
48
+ bool surfaceWasRunning = false;
41
49
  visit(surfaceId, [&](const SurfaceHandler& surfaceHandler) {
42
50
  surfaceHandler.stop();
43
51
  scheduler_.unregisterSurface(surfaceHandler);
52
+ surfaceWasRunning = true;
44
53
  });
54
+ if (!surfaceWasRunning) {
55
+ LOG(WARNING)
56
+ << "SurfaceManager::stopSurface tried to stop a surface which was not running, surfaceId = "
57
+ << surfaceId;
58
+ }
45
59
 
46
60
  {
47
61
  std::unique_lock lock(mutex_);
@@ -51,6 +65,46 @@ void SurfaceManager::stopSurface(SurfaceId surfaceId) const noexcept {
51
65
  }
52
66
  }
53
67
 
68
+ void SurfaceManager::stopAllSurfaces() noexcept {
69
+ auto surfaceIds = getRunningSurfaces();
70
+ for (const auto& surfaceId : surfaceIds) {
71
+ stopSurface(surfaceId);
72
+ }
73
+ }
74
+
75
+ bool SurfaceManager::isSurfaceRunning(SurfaceId surfaceId) const noexcept {
76
+ std::shared_lock lock(mutex_);
77
+ return registry_.contains(surfaceId);
78
+ }
79
+
80
+ std::unordered_set<SurfaceId> SurfaceManager::getRunningSurfaces()
81
+ const noexcept {
82
+ std::unordered_set<SurfaceId> surfaceIds;
83
+ {
84
+ std::shared_lock lock(mutex_);
85
+ for (const auto& [surfaceId, _] : registry_) {
86
+ surfaceIds.insert(surfaceId);
87
+ }
88
+ }
89
+ return surfaceIds;
90
+ }
91
+
92
+ std::optional<SurfaceManager::SurfaceProps> SurfaceManager::getSurfaceProps(
93
+ SurfaceId surfaceId) const noexcept {
94
+ std::optional<SurfaceManager::SurfaceProps> surfaceProps;
95
+
96
+ visit(surfaceId, [&](const SurfaceHandler& surfaceHandler) {
97
+ surfaceProps = SurfaceManager::SurfaceProps{
98
+ surfaceId,
99
+ surfaceHandler.getModuleName(),
100
+ surfaceHandler.getProps(),
101
+ surfaceHandler.getLayoutConstraints(),
102
+ surfaceHandler.getLayoutContext()};
103
+ });
104
+
105
+ return surfaceProps;
106
+ }
107
+
54
108
  Size SurfaceManager::measureSurface(
55
109
  SurfaceId surfaceId,
56
110
  const LayoutConstraints& layoutConstraints,
@@ -8,6 +8,7 @@
8
8
  #pragma once
9
9
 
10
10
  #include <mutex>
11
+ #include <optional>
11
12
  #include <shared_mutex>
12
13
  #include <unordered_map>
13
14
 
@@ -27,6 +28,16 @@ namespace facebook::react {
27
28
  class SurfaceManager final {
28
29
  public:
29
30
  explicit SurfaceManager(const Scheduler& scheduler) noexcept;
31
+ ~SurfaceManager() noexcept;
32
+
33
+ /* SurfaceProps contain information about running surfaces */
34
+ struct SurfaceProps {
35
+ SurfaceId surfaceId;
36
+ std::string moduleName;
37
+ folly::dynamic props;
38
+ LayoutConstraints layoutConstraints;
39
+ LayoutContext layoutContext;
40
+ };
30
41
 
31
42
  #pragma mark - Surface Management
32
43
 
@@ -35,9 +46,18 @@ class SurfaceManager final {
35
46
  const std::string& moduleName,
36
47
  const folly::dynamic& props,
37
48
  const LayoutConstraints& layoutConstraints = {},
38
- const LayoutContext& layoutContext = {}) const noexcept;
49
+ const LayoutContext& layoutContext = {}) noexcept;
50
+
51
+ void stopSurface(SurfaceId surfaceId) noexcept;
52
+
53
+ void stopAllSurfaces() noexcept;
39
54
 
40
- void stopSurface(SurfaceId surfaceId) const noexcept;
55
+ bool isSurfaceRunning(SurfaceId surfaceId) const noexcept;
56
+
57
+ std::unordered_set<SurfaceId> getRunningSurfaces() const noexcept;
58
+
59
+ std::optional<SurfaceManager::SurfaceProps> getSurfaceProps(
60
+ SurfaceId surfaceId) const noexcept;
41
61
 
42
62
  Size measureSurface(
43
63
  SurfaceId surfaceId,
@@ -60,7 +80,7 @@ class SurfaceManager final {
60
80
 
61
81
  const Scheduler& scheduler_;
62
82
  mutable std::shared_mutex mutex_; // Protects `registry_`.
63
- mutable std::unordered_map<SurfaceId, SurfaceHandler> registry_{};
83
+ std::unordered_map<SurfaceId, SurfaceHandler> registry_{};
64
84
  };
65
85
 
66
86
  } // namespace facebook::react
@@ -24,16 +24,15 @@ add_library(react_render_textlayoutmanager
24
24
 
25
25
  target_include_directories(react_render_textlayoutmanager
26
26
  PUBLIC
27
+ .
27
28
  ${REACT_COMMON_DIR}
28
29
  ${CMAKE_CURRENT_SOURCE_DIR}/platform/android/
29
30
  )
30
31
 
31
32
  target_link_libraries(react_render_textlayoutmanager
32
33
  glog
33
- fb
34
34
  fbjni
35
35
  folly_runtime
36
- glog_init
37
36
  mapbufferjni
38
37
  react_debug
39
38
  react_render_attributedstring