react-native 0.0.0-16bb2ae4f → 0.0.0-18697adec

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 (616) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +14 -1
  2. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -0
  3. package/Libraries/Animated/AnimatedEvent.js +23 -4
  4. package/Libraries/Animated/NativeAnimatedHelper.js +3 -3
  5. package/Libraries/BatchedBridge/MessageQueue.js +10 -10
  6. package/Libraries/Blob/FileReader.js +1 -1
  7. package/Libraries/Blob/React-RCTBlob.podspec +1 -1
  8. package/Libraries/Blob/URL.js +1 -1
  9. package/Libraries/Components/Button.js +3 -0
  10. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
  11. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
  12. package/Libraries/Components/ScrollView/ScrollView.js +14 -5
  13. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -0
  14. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
  15. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -0
  16. package/Libraries/Components/StatusBar/StatusBar.js +6 -14
  17. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +2 -3
  18. package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +1 -0
  19. package/Libraries/Components/TextInput/TextInput.js +27 -1
  20. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  21. package/Libraries/Components/View/ViewAccessibility.js +1 -0
  22. package/Libraries/Core/ExceptionsManager.js +3 -1
  23. package/Libraries/Core/ReactNativeVersion.js +1 -1
  24. package/Libraries/Core/Timers/JSTimers.js +37 -28
  25. package/Libraries/Core/Timers/immediateShim.js +67 -0
  26. package/Libraries/Core/Timers/queueMicrotask.js +41 -0
  27. package/Libraries/Core/polyfillPromise.js +1 -1
  28. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  29. package/Libraries/Core/setUpGlobals.js +2 -0
  30. package/Libraries/Core/setUpRegeneratorRuntime.js +25 -8
  31. package/Libraries/Core/setUpTimers.js +65 -6
  32. package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +1 -1
  33. package/Libraries/Image/Image.ios.js +6 -0
  34. package/Libraries/Image/ImageBackground.js +10 -8
  35. package/Libraries/Image/ImageProps.js +28 -0
  36. package/Libraries/Image/ImageSource.js +1 -1
  37. package/Libraries/Image/React-RCTImage.podspec +1 -1
  38. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
  39. package/Libraries/Lists/FlatList.js +43 -26
  40. package/Libraries/Lists/VirtualizedList.js +3 -1
  41. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +4 -4
  42. package/Libraries/LogBox/Data/LogBoxData.js +18 -18
  43. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  44. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  45. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  46. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  47. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  48. package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
  49. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
  50. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +1 -2
  51. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +17 -11
  52. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
  53. package/Libraries/Network/React-RCTNetwork.podspec +1 -1
  54. package/Libraries/Network/XMLHttpRequest.js +3 -1
  55. package/Libraries/NewAppScreen/components/logo.png +0 -0
  56. package/Libraries/Performance/QuickPerformanceLogger.js +2 -1
  57. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
  58. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
  59. package/Libraries/Pressability/Pressability.js +1 -0
  60. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -0
  61. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
  62. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  63. package/Libraries/ReactNative/AppRegistry.js +1 -1
  64. package/Libraries/ReactNative/PaperUIManager.js +1 -0
  65. package/Libraries/ReactNative/renderApplication.js +1 -1
  66. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
  67. package/Libraries/Reliability/UserFlow.js +7 -0
  68. package/Libraries/Renderer/REVISION +1 -1
  69. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +4485 -3842
  70. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +2060 -1709
  71. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +2148 -1796
  72. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +4264 -3695
  73. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +1303 -1063
  74. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +1374 -1139
  75. package/Libraries/Renderer/shims/ReactFabric.js +3 -1
  76. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
  77. package/Libraries/Renderer/shims/ReactNative.js +3 -1
  78. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
  79. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  80. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
  81. package/Libraries/Settings/React-RCTSettings.podspec +1 -1
  82. package/Libraries/StyleSheet/normalizeColor.js +2 -2
  83. package/Libraries/Text/Text.js +11 -0
  84. package/Libraries/Text/TextInput/RCTBaseTextInputView.m +2 -12
  85. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
  86. package/Libraries/Text/TextProps.js +1 -7
  87. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  88. package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
  89. package/Libraries/UTFSequence.js +1 -1
  90. package/Libraries/Utilities/Dimensions.js +9 -14
  91. package/Libraries/Utilities/FeatureDetection.js +31 -0
  92. package/Libraries/Utilities/HMRClient.js +10 -6
  93. package/Libraries/Utilities/MatrixMath.js +1 -1
  94. package/Libraries/Utilities/NativeDeviceInfo.js +1 -1
  95. package/Libraries/Utilities/deprecatedPropType.js +2 -2
  96. package/Libraries/Utilities/useWindowDimensions.js +7 -2
  97. package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
  98. package/Libraries/vendor/emitter/_EventSubscriptionVendor.js +1 -1
  99. package/React/Base/RCTBridge+Private.h +8 -0
  100. package/React/Base/RCTBridge.h +13 -0
  101. package/React/Base/RCTBridge.m +30 -7
  102. package/React/Base/RCTBridgeModule.h +3 -12
  103. package/React/Base/RCTBundleURLProvider.h +26 -1
  104. package/React/Base/RCTBundleURLProvider.mm +79 -15
  105. package/React/Base/RCTConstants.h +6 -7
  106. package/React/Base/RCTConstants.m +12 -12
  107. package/React/Base/RCTConvert.h +1 -1
  108. package/React/Base/RCTConvert.m +1 -1
  109. package/React/Base/RCTCxxConvert.h +1 -1
  110. package/React/Base/RCTDefines.h +12 -3
  111. package/React/Base/RCTEventDispatcherProtocol.h +2 -0
  112. package/React/Base/RCTJSThread.h +29 -0
  113. package/React/Base/RCTJSThread.m +19 -0
  114. package/React/Base/RCTMultipartStreamReader.m +0 -2
  115. package/React/Base/RCTRootView.h +15 -0
  116. package/React/Base/RCTRootView.m +15 -0
  117. package/React/Base/RCTTouchHandler.m +4 -9
  118. package/React/Base/RCTUtils.h +3 -0
  119. package/React/Base/RCTUtils.m +14 -7
  120. package/React/Base/RCTVersion.m +1 -1
  121. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +11 -0
  122. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +35 -1
  123. package/React/CoreModules/BUCK +3 -3
  124. package/React/CoreModules/RCTAccessibilityManager.mm +1 -1
  125. package/React/CoreModules/RCTActionSheetManager.mm +14 -5
  126. package/React/CoreModules/RCTAsyncLocalStorage.mm +4 -0
  127. package/React/CoreModules/RCTDevLoadingView.mm +5 -10
  128. package/React/CoreModules/RCTDevSettings.mm +12 -10
  129. package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
  130. package/React/CoreModules/RCTDeviceInfo.mm +4 -4
  131. package/React/CoreModules/RCTEventDispatcher.mm +5 -0
  132. package/React/CoreModules/RCTLogBox.mm +14 -10
  133. package/React/CoreModules/RCTPerfMonitor.mm +9 -4
  134. package/React/CoreModules/RCTRedBox.mm +1 -5
  135. package/React/CoreModules/React-CoreModules.podspec +1 -1
  136. package/React/CxxBridge/RCTCxxBridge.mm +18 -1
  137. package/React/DevSupport/RCTPackagerConnection.h +3 -0
  138. package/React/DevSupport/RCTPackagerConnection.mm +19 -8
  139. package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +12 -4
  140. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +1 -2
  141. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +64 -62
  142. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +31 -11
  143. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
  144. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +108 -4
  145. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +1 -0
  146. package/React/Fabric/Mounting/RCTMountingManager.h +3 -0
  147. package/React/Fabric/Mounting/RCTMountingManager.mm +22 -3
  148. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.h +2 -0
  149. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm +12 -0
  150. package/React/Fabric/RCTConversions.h +3 -0
  151. package/React/Fabric/RCTScheduler.mm +12 -5
  152. package/React/Fabric/RCTSurfacePresenter.mm +6 -7
  153. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +1 -1
  154. package/React/Fabric/RCTSurfaceRegistry.h +1 -1
  155. package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
  156. package/React/Fabric/Surface/RCTFabricSurface.mm +3 -0
  157. package/React/Modules/RCTI18nUtil.h +14 -6
  158. package/React/Modules/RCTI18nUtil.m +1 -47
  159. package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
  160. package/React/Profiler/RCTProfileTrampoline-arm64.S +2 -2
  161. package/React/React-RCTFabric.podspec +1 -1
  162. package/React/Views/RCTFont.mm +54 -38
  163. package/React/Views/RCTModalHostView.h +1 -1
  164. package/React/Views/RCTModalHostView.m +16 -0
  165. package/React/Views/RCTModalHostViewManager.m +1 -0
  166. package/React/Views/RCTView.m +2 -7
  167. package/React/Views/RCTViewManager.m +4 -2
  168. package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
  169. package/React/Views/ScrollView/RCTScrollView.h +1 -0
  170. package/React/Views/ScrollView/RCTScrollView.m +111 -36
  171. package/React/Views/ScrollView/RCTScrollViewManager.m +1 -7
  172. package/React/Views/UIView+React.m +2 -11
  173. package/React-Core.podspec +1 -1
  174. package/ReactAndroid/Android-prebuilt.mk +8 -0
  175. package/ReactAndroid/README.md +1 -1
  176. package/ReactAndroid/build.gradle +12 -5
  177. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/BUCK +1 -1
  178. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppInstrumentationTestCase.java +1 -1
  179. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/idledetection/BUCK +1 -1
  180. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/rule/BUCK +5 -5
  181. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -1
  182. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/core/BUCK +5 -5
  183. package/ReactAndroid/src/androidTest/js/BUCK +26 -0
  184. package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -7
  185. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/Android.mk +2 -2
  186. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/Android.mk +4 -4
  187. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutorFactory.java +1 -1
  188. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/RuntimeConfig.java +0 -6
  189. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +1 -1
  190. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +1 -0
  191. package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.java +2 -0
  192. package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +6 -2
  193. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +89 -44
  194. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +28 -0
  195. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +13 -0
  196. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +5 -4
  197. package/ReactAndroid/src/main/java/com/facebook/react/animated/BUCK +1 -1
  198. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +2 -2
  199. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +4 -4
  200. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BackgroundExecutor.java +3 -2
  201. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +4 -0
  202. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +11 -0
  203. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java +37 -0
  204. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.java +22 -0
  205. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +3 -6
  206. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.java +1 -1
  207. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{ReactSoftException.java → ReactSoftExceptionLogger.java} +8 -3
  209. package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
  210. package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.java +8 -7
  211. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +10 -0
  212. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
  213. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +1 -1
  214. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +32 -4
  215. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -1
  216. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +97 -0
  217. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +9 -58
  218. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +14 -9
  219. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +3 -72
  220. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.java +100 -0
  221. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +10 -0
  222. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +4 -3
  223. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +1 -0
  224. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +64 -31
  225. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +3 -3
  226. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
  227. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +1 -1
  228. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +54 -10
  229. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +7 -1
  230. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +14 -6
  231. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +4 -4
  232. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +40 -11
  233. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.java +2 -2
  234. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/Android.mk +2 -2
  235. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +2 -2
  236. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/BUCK +1 -1
  237. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/BUCK +1 -1
  238. package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/BUCK +1 -1
  239. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BUCK +1 -1
  240. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/Android.mk +2 -2
  241. package/ReactAndroid/src/main/java/com/facebook/react/modules/bundleloader/BUCK +1 -1
  242. package/ReactAndroid/src/main/java/com/facebook/react/modules/camera/BUCK +1 -1
  243. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/BUCK +1 -1
  244. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
  245. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
  246. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
  247. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/BUCK +1 -1
  248. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/BUCK +1 -1
  249. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java +10 -6
  250. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +1 -1
  251. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/BUCK +1 -1
  252. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
  253. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK +1 -1
  254. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/BUCK +1 -1
  255. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
  256. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/BUCK +1 -1
  257. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
  258. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/BUCK +1 -1
  259. package/ReactAndroid/src/main/java/com/facebook/react/modules/share/BUCK +1 -1
  260. package/ReactAndroid/src/main/java/com/facebook/react/modules/sound/BUCK +1 -1
  261. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/BUCK +1 -1
  262. package/ReactAndroid/src/main/java/com/facebook/react/modules/storage/BUCK +1 -1
  263. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/BUCK +2 -2
  264. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  265. package/ReactAndroid/src/main/java/com/facebook/react/modules/toast/BUCK +1 -1
  266. package/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/BUCK +1 -1
  267. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/BUCK +1 -1
  268. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +11 -9
  269. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
  270. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
  271. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/TurboModuleManager.java +4 -2
  272. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp +39 -11
  273. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.h +9 -2
  274. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.java +7 -28
  275. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.java +1 -6
  276. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +2 -2
  277. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +25 -0
  278. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +162 -66
  279. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +9 -9
  280. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -0
  281. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +6 -5
  282. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +16 -1
  283. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +12 -20
  284. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
  285. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +14 -13
  286. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +21 -5
  287. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +1 -1
  288. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +1 -1
  289. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/BUCK +1 -1
  290. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/BUCK +1 -1
  291. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.java +7 -11
  292. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/BUCK +1 -1
  293. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/BUCK +1 -0
  294. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +9 -1
  295. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +24 -1
  296. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.java +2 -2
  297. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/BUCK +1 -1
  298. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderManager.java +4 -7
  299. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/BUCK +1 -1
  300. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/BUCK +1 -1
  301. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
  302. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +23 -2
  303. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +8 -0
  304. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
  305. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +31 -12
  306. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +31 -11
  307. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/BUCK +1 -0
  308. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +14 -4
  309. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
  310. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +114 -62
  311. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
  312. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +39 -8
  313. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +24 -3
  314. package/ReactAndroid/src/main/jni/react/jni/Android.mk +5 -3
  315. package/ReactAndroid/src/main/jni/react/jni/BUCK +5 -2
  316. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +61 -0
  317. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +8 -0
  318. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
  319. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
  320. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.cpp +21 -0
  321. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.h +28 -0
  322. package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
  323. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
  324. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  325. package/ReactAndroid/src/main/jni/third-party/libevent/Android.mk +0 -1
  326. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +63 -2
  327. package/ReactAndroid/src/main/third-party/java/testing-support-lib/BUCK +0 -31
  328. package/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.java +1 -0
  329. package/ReactAndroid/src/test/java/com/facebook/react/modules/BUCK +1 -0
  330. package/ReactAndroid/src/test/java/com/facebook/react/modules/deviceinfo/DeviceInfoModuleTest.java +168 -0
  331. package/ReactCommon/React-Fabric.podspec +10 -1
  332. package/ReactCommon/ReactCommon.podspec +2 -1
  333. package/ReactCommon/callinvoker/BUCK +2 -2
  334. package/ReactCommon/callinvoker/React-callinvoker.podspec +1 -1
  335. package/ReactCommon/cxxreact/Android.mk +2 -1
  336. package/ReactCommon/cxxreact/BUCK +1 -0
  337. package/ReactCommon/cxxreact/CxxNativeModule.cpp +28 -0
  338. package/ReactCommon/cxxreact/CxxNativeModule.h +9 -0
  339. package/ReactCommon/cxxreact/React-cxxreact.podspec +2 -1
  340. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  341. package/ReactCommon/hermes/React-hermes.podspec +1 -1
  342. package/ReactCommon/hermes/executor/Android.mk +4 -4
  343. package/ReactCommon/hermes/inspector/Android.mk +1 -2
  344. package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
  345. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
  346. package/ReactCommon/jsi/Android.mk +1 -1
  347. package/ReactCommon/jsi/BUCK +0 -2
  348. package/ReactCommon/jsi/React-jsi.podspec +1 -1
  349. package/ReactCommon/jsiexecutor/Android.mk +2 -2
  350. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -1
  351. package/ReactCommon/logger/Android.mk +23 -0
  352. package/ReactCommon/logger/BUCK +43 -0
  353. package/ReactCommon/logger/React-logger.podspec +40 -0
  354. package/ReactCommon/logger/react_native_log.cpp +52 -0
  355. package/ReactCommon/logger/react_native_log.h +33 -0
  356. package/ReactCommon/react/nativemodule/core/Android.mk +2 -2
  357. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.cpp +1 -0
  358. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.h +3 -2
  359. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +46 -1
  360. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +10 -0
  361. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +37 -1
  362. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +24 -22
  363. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +11 -8
  364. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.h +7 -5
  365. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.mm +51 -29
  366. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +45 -34
  367. package/ReactCommon/react/nativemodule/samples/BUCK +2 -2
  368. package/ReactCommon/react/nativemodule/samples/platform/android/Android.mk +1 -1
  369. package/ReactCommon/react/renderer/animations/BUCK +1 -0
  370. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
  371. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -27
  372. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
  373. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +920 -1136
  374. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
  375. package/ReactCommon/react/renderer/animations/conversions.h +212 -0
  376. package/ReactCommon/react/renderer/animations/primitives.h +104 -0
  377. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +9 -6
  378. package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
  379. package/ReactCommon/react/renderer/animations/utils.h +80 -0
  380. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  381. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
  382. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
  383. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +7 -2
  384. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +3 -1
  385. package/ReactCommon/react/renderer/attributedstring/conversions.h +162 -11
  386. package/ReactCommon/react/renderer/attributedstring/primitives.h +34 -1
  387. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.cpp +2 -2
  388. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h +1 -0
  389. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +10 -4
  390. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.h +4 -1
  391. package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +2 -1
  392. package/ReactCommon/react/renderer/components/image/Android.mk +1 -1
  393. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +28 -9
  394. package/ReactCommon/react/renderer/components/image/ImageProps.h +5 -1
  395. package/ReactCommon/react/renderer/components/image/conversions.h +9 -2
  396. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +1 -1
  397. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +1 -1
  398. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +0 -1
  399. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.cpp +2 -1
  400. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +2 -0
  401. package/ReactCommon/react/renderer/components/root/RootProps.cpp +12 -2
  402. package/ReactCommon/react/renderer/components/root/RootProps.h +6 -1
  403. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -1
  404. package/ReactCommon/react/renderer/components/root/RootShadowNode.h +2 -0
  405. package/ReactCommon/react/renderer/components/root/tests/RootShadowNodeTest.cpp +8 -4
  406. package/ReactCommon/react/renderer/components/safeareaview/BUCK +1 -1
  407. package/ReactCommon/react/renderer/components/scrollview/Android.mk +1 -1
  408. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +45 -4
  409. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +5 -1
  410. package/ReactCommon/react/renderer/components/scrollview/conversions.h +5 -0
  411. package/ReactCommon/react/renderer/components/text/Android.mk +1 -1
  412. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +32 -0
  413. package/ReactCommon/react/renderer/components/text/BaseTextProps.h +5 -1
  414. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -16
  415. package/ReactCommon/react/renderer/components/text/ParagraphProps.cpp +10 -4
  416. package/ReactCommon/react/renderer/components/text/ParagraphProps.h +5 -1
  417. package/ReactCommon/react/renderer/components/text/RawTextProps.cpp +3 -2
  418. package/ReactCommon/react/renderer/components/text/RawTextProps.h +5 -1
  419. package/ReactCommon/react/renderer/components/text/RawTextShadowNode.h +0 -6
  420. package/ReactCommon/react/renderer/components/text/TextProps.cpp +6 -3
  421. package/ReactCommon/react/renderer/components/text/TextProps.h +5 -1
  422. package/ReactCommon/react/renderer/components/text/TextShadowNode.h +0 -6
  423. package/ReactCommon/react/renderer/components/textinput/Android.mk +1 -1
  424. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +58 -91
  425. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +10 -6
  426. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.cpp +46 -22
  427. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.h +6 -5
  428. package/ReactCommon/react/renderer/components/textinput/iostextinput/conversions.h +15 -3
  429. package/ReactCommon/react/renderer/components/textinput/iostextinput/primitives.h +6 -0
  430. package/ReactCommon/react/renderer/components/textinput/iostextinput/propsConversions.h +63 -2
  431. package/ReactCommon/react/renderer/components/unimplementedview/Android.mk +1 -1
  432. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +4 -2
  433. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h +5 -2
  434. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h +1 -0
  435. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +21 -0
  436. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +24 -1
  437. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +3 -0
  438. package/ReactCommon/react/renderer/components/view/Android.mk +3 -2
  439. package/ReactCommon/react/renderer/components/view/BUCK +1 -0
  440. package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
  441. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -22
  442. package/ReactCommon/react/renderer/components/view/ViewProps.cpp +62 -14
  443. package/ReactCommon/react/renderer/components/view/ViewProps.h +7 -1
  444. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -10
  445. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +5 -4
  446. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
  447. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +58 -33
  448. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +2 -8
  449. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
  450. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +2 -0
  451. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +62 -8
  452. package/ReactCommon/react/renderer/components/view/conversions.h +57 -14
  453. package/ReactCommon/react/renderer/components/view/propsConversions.h +163 -28
  454. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +7 -2
  455. package/ReactCommon/react/renderer/core/Android.mk +1 -1
  456. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +5 -2
  457. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +19 -21
  458. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +4 -0
  459. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +12 -31
  460. package/ReactCommon/react/renderer/core/EventDispatcher.h +1 -4
  461. package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +0 -6
  462. package/ReactCommon/react/renderer/core/Props.cpp +10 -2
  463. package/ReactCommon/react/renderer/core/Props.h +6 -1
  464. package/ReactCommon/react/renderer/core/PropsParserContext.h +29 -0
  465. package/ReactCommon/react/renderer/core/RawProps.cpp +2 -1
  466. package/ReactCommon/react/renderer/core/RawProps.h +3 -1
  467. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
  468. package/ReactCommon/react/renderer/core/RawPropsParser.h +11 -2
  469. package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
  470. package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
  471. package/ReactCommon/react/renderer/core/ShadowNode.h +4 -0
  472. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
  473. package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +11 -1
  474. package/ReactCommon/react/renderer/core/propsConversions.h +18 -8
  475. package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +16 -4
  476. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +85 -20
  477. package/ReactCommon/react/renderer/core/tests/TestComponent.h +6 -2
  478. package/ReactCommon/react/renderer/graphics/Android.mk +5 -2
  479. package/ReactCommon/react/renderer/graphics/BUCK +12 -1
  480. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +2 -1
  481. package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
  482. package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
  483. package/ReactCommon/react/renderer/graphics/conversions.h +34 -19
  484. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +67 -0
  485. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h +29 -0
  486. package/ReactCommon/react/renderer/graphics/platform/ios/Color.h +42 -1
  487. package/ReactCommon/react/renderer/graphics/platform/ios/PlatformColorParser.h +34 -0
  488. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.h +12 -0
  489. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.mm +206 -0
  490. package/ReactCommon/react/renderer/imagemanager/BUCK +1 -1
  491. package/ReactCommon/react/renderer/imagemanager/platform/ios/RCTSyncImageManager.mm +1 -1
  492. package/ReactCommon/react/renderer/mapbuffer/BUCK +2 -2
  493. package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
  494. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  495. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +6 -2
  496. package/ReactCommon/react/renderer/mounting/ShadowTree.h +3 -1
  497. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
  498. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
  499. package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +12 -1
  500. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +8 -1
  501. package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +10 -3
  502. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
  503. package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -0
  504. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +10 -4
  505. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +9 -2
  506. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -2
  507. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
  508. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +30 -0
  509. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +34 -0
  510. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
  511. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -2
  512. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +11 -5
  513. package/ReactCommon/react/renderer/runtimescheduler/Task.h +5 -3
  514. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
  515. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +34 -0
  516. package/ReactCommon/react/renderer/{core/Constants.h → scheduler/InspectorData.h} +9 -8
  517. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +44 -29
  518. package/ReactCommon/react/renderer/scheduler/Scheduler.h +14 -0
  519. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +49 -29
  520. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +12 -4
  521. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +1 -0
  522. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
  523. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +22 -0
  524. package/ReactCommon/react/renderer/timeline/BUCK +6 -6
  525. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +34 -30
  526. package/ReactCommon/react/renderer/uimanager/UIManager.h +6 -3
  527. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
  528. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +101 -108
  529. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +4 -7
  530. package/ReactCommon/react/test_utils/BUCK +3 -0
  531. package/ReactCommon/react/test_utils/MockSurfaceHandler.h +25 -0
  532. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +18 -4
  533. package/ReactCommon/react/utils/Android.mk +3 -1
  534. package/ReactCommon/react/utils/BUCK +1 -0
  535. package/ReactCommon/react/utils/ContextContainer.h +0 -27
  536. package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -1
  537. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +1 -1
  538. package/ReactCommon/runtimeexecutor/ReactCommon/RuntimeExecutor.h +12 -0
  539. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar → 0.0.0-18697adec/react-native-0.0.0-18697adec.aar} +0 -0
  540. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.md5 +1 -0
  541. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha1 +1 -0
  542. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha256 +1 -0
  543. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha512 +1 -0
  544. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module → 0.0.0-18697adec/react-native-0.0.0-18697adec.module} +30 -17
  545. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.md5 +1 -0
  546. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha1 +1 -0
  547. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha256 +1 -0
  548. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha512 +1 -0
  549. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom → 0.0.0-18697adec/react-native-0.0.0-18697adec.pom} +8 -2
  550. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.md5 +1 -0
  551. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha1 +1 -0
  552. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha256 +1 -0
  553. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha512 +1 -0
  554. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
  555. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  556. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  557. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
  558. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
  559. package/flow/HermesInternalType.js +114 -0
  560. package/flow/global.js +68 -0
  561. package/index.js +37 -24
  562. package/jest/renderer.js +3 -7
  563. package/jest/setup.js +2 -1
  564. package/package.json +55 -16
  565. package/react.gradle +19 -13
  566. package/scripts/generate-specs-cli.js +20 -2
  567. package/scripts/ios-configure-glog.sh +4 -0
  568. package/scripts/react-native-xcode.sh +1 -1
  569. package/scripts/react_native_pods.rb +195 -38
  570. package/template/_flowconfig +1 -1
  571. package/template/android/app/build.gradle +2 -2
  572. package/template/android/build.gradle +1 -2
  573. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  574. package/template/android/gradle.properties +1 -1
  575. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +2 -0
  576. package/template/ios/Podfile +1 -0
  577. package/template/package.json +3 -4
  578. package/third-party-podspecs/RCT-Folly.podspec +6 -3
  579. package/Libraries/BUCK +0 -26
  580. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
  581. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  582. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  583. package/Libraries/Components/StaticContainer.react.js +0 -51
  584. package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -38
  585. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
  586. package/Libraries/Interaction/InteractionMixin.js +0 -54
  587. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  588. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
  589. package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
  590. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
  591. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
  592. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
  593. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
  594. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
  595. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
  596. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
  597. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
  598. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
  599. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
  600. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
  601. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
  602. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.md5 +0 -1
  603. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha1 +0 -1
  604. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha256 +0 -1
  605. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha512 +0 -1
  606. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.md5 +0 -1
  607. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha1 +0 -1
  608. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha256 +0 -1
  609. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha512 +0 -1
  610. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.md5 +0 -1
  611. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha1 +0 -1
  612. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha256 +0 -1
  613. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha512 +0 -1
  614. package/scripts/generate-specs.sh +0 -100
  615. package/template/_editorconfig +0 -3
  616. package/template/_gitattributes +0 -3
@@ -14,7 +14,8 @@
14
14
  #include <memory>
15
15
  #include <queue>
16
16
 
17
- namespace facebook::react {
17
+ namespace facebook {
18
+ namespace react {
18
19
 
19
20
  class RuntimeScheduler final {
20
21
  public:
@@ -93,6 +94,12 @@ class RuntimeScheduler final {
93
94
  * Default value is false
94
95
  */
95
96
  bool enableYielding_{false};
97
+
98
+ /*
99
+ * This flag is set while performing work, to prevent re-entrancy.
100
+ */
101
+ mutable bool isPerformingWork_{false};
96
102
  };
97
103
 
98
- } // namespace facebook::react
104
+ } // namespace react
105
+ } // namespace facebook
@@ -13,7 +13,8 @@
13
13
  #include <chrono>
14
14
  #include <memory>
15
15
 
16
- namespace facebook::react {
16
+ namespace facebook {
17
+ namespace react {
17
18
 
18
19
  std::shared_ptr<RuntimeSchedulerBinding>
19
20
  RuntimeSchedulerBinding::createAndInstallIfNeeded(
@@ -166,4 +167,5 @@ jsi::Value RuntimeSchedulerBinding::get(
166
167
  return jsi::Value::undefined();
167
168
  }
168
169
 
169
- } // namespace facebook::react
170
+ } // namespace react
171
+ } // namespace facebook
@@ -10,7 +10,8 @@
10
10
  #include <jsi/jsi.h>
11
11
  #include <react/renderer/runtimescheduler/RuntimeScheduler.h>
12
12
 
13
- namespace facebook::react {
13
+ namespace facebook {
14
+ namespace react {
14
15
 
15
16
  /*
16
17
  * Exposes RuntimeScheduler to JavaScript realm.
@@ -39,4 +40,5 @@ class RuntimeSchedulerBinding : public jsi::HostObject {
39
40
  std::shared_ptr<RuntimeScheduler> runtimeScheduler_;
40
41
  };
41
42
 
42
- } // namespace facebook::react
43
+ } // namespace react
44
+ } // namespace facebook
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #include "RuntimeSchedulerCallInvoker.h"
9
+
10
+ namespace facebook::react {
11
+
12
+ RuntimeSchedulerCallInvoker::RuntimeSchedulerCallInvoker(
13
+ std::weak_ptr<RuntimeScheduler> runtimeScheduler)
14
+ : runtimeScheduler_(runtimeScheduler) {}
15
+
16
+ void RuntimeSchedulerCallInvoker::invokeAsync(std::function<void()> &&func) {
17
+ if (auto runtimeScheduler = runtimeScheduler_.lock()) {
18
+ runtimeScheduler->scheduleWork(
19
+ [func = std::move(func)](jsi::Runtime &) { func(); });
20
+ }
21
+ }
22
+
23
+ void RuntimeSchedulerCallInvoker::invokeSync(std::function<void()> &&func) {
24
+ if (auto runtimeScheduler = runtimeScheduler_.lock()) {
25
+ runtimeScheduler->executeNowOnTheSameThread(
26
+ [func = std::move(func)](jsi::Runtime &) { func(); });
27
+ }
28
+ }
29
+
30
+ } // namespace facebook::react
@@ -0,0 +1,34 @@
1
+ /*
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <ReactCommon/CallInvoker.h>
11
+ #include <react/renderer/runtimescheduler/RuntimeScheduler.h>
12
+
13
+ namespace facebook::react {
14
+
15
+ /*
16
+ * Exposes RuntimeScheduler to native modules. All calls invonked on JavaScript
17
+ * queue from native modules will be funneled through RuntimeScheduler.
18
+ */
19
+ class RuntimeSchedulerCallInvoker : public CallInvoker {
20
+ public:
21
+ RuntimeSchedulerCallInvoker(std::weak_ptr<RuntimeScheduler> runtimeScheduler);
22
+
23
+ void invokeAsync(std::function<void()> &&func) override;
24
+ void invokeSync(std::function<void()> &&func) override;
25
+
26
+ private:
27
+ /*
28
+ * RuntimeScheduler is retained by the runtime. It must not be
29
+ * retained by anything beyond the runtime.
30
+ */
31
+ std::weak_ptr<RuntimeScheduler> runtimeScheduler_;
32
+ };
33
+
34
+ } // namespace facebook::react
@@ -9,7 +9,8 @@
9
9
 
10
10
  #include <chrono>
11
11
 
12
- namespace facebook::react {
12
+ namespace facebook {
13
+ namespace react {
13
14
 
14
15
  /*
15
16
  * Represents a monotonic clock suitable for measuring intervals.
@@ -19,4 +20,5 @@ using RuntimeSchedulerClock = std::chrono::steady_clock;
19
20
  using RuntimeSchedulerTimePoint = RuntimeSchedulerClock::time_point;
20
21
  using RuntimeSchedulerDuration = RuntimeSchedulerClock::duration;
21
22
 
22
- } // namespace facebook::react
23
+ } // namespace react
24
+ } // namespace facebook
@@ -10,7 +10,8 @@
10
10
  #include <react/debug/react_native_assert.h>
11
11
  #include <chrono>
12
12
 
13
- namespace facebook::react {
13
+ namespace facebook {
14
+ namespace react {
14
15
 
15
16
  enum class SchedulerPriority : int {
16
17
  ImmediatePriority = 1,
@@ -60,4 +61,5 @@ static inline std::chrono::milliseconds timeoutForSchedulerPriority(
60
61
  }
61
62
  }
62
63
 
63
- } // namespace facebook::react
64
+ } // namespace react
65
+ } // namespace facebook
@@ -7,7 +7,8 @@
7
7
 
8
8
  #include "RuntimeScheduler.h"
9
9
 
10
- namespace facebook::react {
10
+ namespace facebook {
11
+ namespace react {
11
12
 
12
13
  Task::Task(
13
14
  SchedulerPriority priority,
@@ -17,15 +18,20 @@ Task::Task(
17
18
  callback(std::move(callback)),
18
19
  expirationTime(expirationTime) {}
19
20
 
20
- jsi::Value Task::execute(jsi::Runtime &runtime) const {
21
+ jsi::Value Task::execute(jsi::Runtime &runtime) {
22
+ auto result = jsi::Value::undefined();
21
23
  // Cancelled task doesn't have a callback.
22
24
  if (callback) {
23
25
  // Callback in JavaScript is expecting a single bool parameter.
24
26
  // React team plans to remove it and it is safe to pass in
25
27
  // hardcoded false value.
26
- return callback.value().call(runtime, {false});
28
+ result = callback.value().call(runtime, {false});
29
+
30
+ // Destroying callback to prevent calling it twice.
31
+ callback.reset();
27
32
  }
28
- return jsi::Value::undefined();
33
+ return result;
29
34
  }
30
35
 
31
- } // namespace facebook::react
36
+ } // namespace react
37
+ } // namespace facebook
@@ -12,7 +12,8 @@
12
12
  #include <react/renderer/runtimescheduler/RuntimeSchedulerClock.h>
13
13
  #include <react/renderer/runtimescheduler/SchedulerPriority.h>
14
14
 
15
- namespace facebook::react {
15
+ namespace facebook {
16
+ namespace react {
16
17
 
17
18
  class RuntimeScheduler;
18
19
  class TaskPriorityComparer;
@@ -31,7 +32,7 @@ struct Task final {
31
32
  better::optional<jsi::Function> callback;
32
33
  RuntimeSchedulerClock::time_point expirationTime;
33
34
 
34
- jsi::Value execute(jsi::Runtime &runtime) const;
35
+ jsi::Value execute(jsi::Runtime &runtime);
35
36
  };
36
37
 
37
38
  class TaskPriorityComparer {
@@ -43,4 +44,5 @@ class TaskPriorityComparer {
43
44
  }
44
45
  };
45
46
 
46
- } // namespace facebook::react
47
+ } // namespace react
48
+ } // namespace facebook
@@ -11,7 +11,8 @@
11
11
  #include <jsi/jsi.h>
12
12
  #include <react/renderer/runtimescheduler/Task.h>
13
13
 
14
- namespace facebook::react {
14
+ namespace facebook {
15
+ namespace react {
15
16
 
16
17
  struct TaskWrapper : public jsi::HostObject {
17
18
  TaskWrapper(std::shared_ptr<Task> const &task) : task(task) {}
@@ -36,4 +37,5 @@ inline static std::shared_ptr<Task> taskFromValue(
36
37
  return value.getObject(runtime).getHostObject<TaskWrapper>(runtime)->task;
37
38
  }
38
39
 
39
- } // namespace facebook::react
40
+ } // namespace react
41
+ } // namespace facebook
@@ -435,4 +435,38 @@ TEST_F(RuntimeSchedulerTest, immediateTaskDoesntYieldToPlatformEvent) {
435
435
  EXPECT_EQ(stubQueue_->size(), 0);
436
436
  }
437
437
 
438
+ TEST_F(RuntimeSchedulerTest, scheduleTaskFromTask) {
439
+ bool didRunFirstTask = false;
440
+ bool didRunSecondTask = false;
441
+ auto firstCallback = createHostFunctionFromLambda(
442
+ [this, &didRunFirstTask, &didRunSecondTask](bool didUserCallbackTimeout) {
443
+ didRunFirstTask = true;
444
+ EXPECT_FALSE(didUserCallbackTimeout);
445
+
446
+ auto secondCallback = createHostFunctionFromLambda(
447
+ [&didRunSecondTask](bool didUserCallbackTimeout) {
448
+ didRunSecondTask = true;
449
+ EXPECT_FALSE(didUserCallbackTimeout);
450
+ return jsi::Value::undefined();
451
+ });
452
+
453
+ runtimeScheduler_->scheduleTask(
454
+ SchedulerPriority::ImmediatePriority, std::move(secondCallback));
455
+ return jsi::Value::undefined();
456
+ });
457
+
458
+ runtimeScheduler_->scheduleTask(
459
+ SchedulerPriority::NormalPriority, std::move(firstCallback));
460
+
461
+ EXPECT_FALSE(didRunFirstTask);
462
+ EXPECT_FALSE(didRunSecondTask);
463
+ EXPECT_EQ(stubQueue_->size(), 1);
464
+
465
+ stubQueue_->tick();
466
+
467
+ EXPECT_TRUE(didRunFirstTask);
468
+ EXPECT_TRUE(didRunSecondTask);
469
+ EXPECT_EQ(stubQueue_->size(), 0);
470
+ }
471
+
438
472
  } // namespace facebook::react
@@ -5,18 +5,19 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- #pragma once
8
+ #include <vector>
9
9
 
10
10
  namespace facebook {
11
11
  namespace react {
12
12
 
13
- struct Constants {
14
- /*
15
- Flag controling props forwarding when shadow node is cloned on Android.
16
- Has no effect on iOS.
17
- */
18
- static void setPropsForwardingEnabled(bool propsForwardingEnabled);
19
- static bool getPropsForwardingEnabled();
13
+ struct InspectorData {
14
+ std::vector<std::string> hierarchy;
15
+ int selectedIndex;
16
+ std::string fileName;
17
+ int lineNumber;
18
+ int columnNumber;
19
+ // TODO T97216348: remove folly::dynamic from InspectorData struct
20
+ folly::dynamic props;
20
21
  };
21
22
 
22
23
  } // namespace react
@@ -12,7 +12,6 @@
12
12
 
13
13
  #include <react/debug/react_native_assert.h>
14
14
  #include <react/renderer/componentregistry/ComponentDescriptorRegistry.h>
15
- #include <react/renderer/core/Constants.h>
16
15
  #include <react/renderer/core/EventQueueProcessor.h>
17
16
  #include <react/renderer/core/LayoutContext.h>
18
17
  #include <react/renderer/debug/SystraceSection.h>
@@ -36,17 +35,18 @@ Scheduler::Scheduler(
36
35
  UIManagerAnimationDelegate *animationDelegate,
37
36
  SchedulerDelegate *delegate) {
38
37
  runtimeExecutor_ = schedulerToolbox.runtimeExecutor;
38
+ contextContainer_ = schedulerToolbox.contextContainer;
39
39
 
40
40
  reactNativeConfig_ =
41
- schedulerToolbox.contextContainer
42
- ->at<std::shared_ptr<const ReactNativeConfig>>("ReactNativeConfig");
41
+ contextContainer_->at<std::shared_ptr<const ReactNativeConfig>>(
42
+ "ReactNativeConfig");
43
43
 
44
44
  // Creating a container for future `EventDispatcher` instance.
45
45
  eventDispatcher_ =
46
46
  std::make_shared<better::optional<EventDispatcher const>>();
47
47
 
48
48
  auto uiManager = std::make_shared<UIManager>(
49
- runtimeExecutor_, schedulerToolbox.backgroundExecutor);
49
+ runtimeExecutor_, schedulerToolbox.backgroundExecutor, contextContainer_);
50
50
  auto eventOwnerBox = std::make_shared<EventBeat::OwnerBox>();
51
51
  eventOwnerBox->owner = eventDispatcher_;
52
52
 
@@ -68,54 +68,35 @@ Scheduler::Scheduler(
68
68
  uiManager->updateState(stateUpdate);
69
69
  };
70
70
 
71
- #ifdef ANDROID
72
- auto unbatchedQueuesOnly =
73
- reactNativeConfig_->getBool("react_fabric:unbatched_queues_only_android");
74
- #else
75
- auto unbatchedQueuesOnly =
76
- reactNativeConfig_->getBool("react_fabric:unbatched_queues_only_ios");
77
- #endif
78
-
79
71
  // Creating an `EventDispatcher` instance inside the already allocated
80
72
  // container (inside the optional).
81
73
  eventDispatcher_->emplace(
82
74
  EventQueueProcessor(eventPipe, statePipe),
83
75
  schedulerToolbox.synchronousEventBeatFactory,
84
76
  schedulerToolbox.asynchronousEventBeatFactory,
85
- eventOwnerBox,
86
- unbatchedQueuesOnly);
77
+ eventOwnerBox);
87
78
 
88
79
  // Casting to `std::shared_ptr<EventDispatcher const>`.
89
80
  auto eventDispatcher =
90
81
  EventDispatcher::Shared{eventDispatcher_, &eventDispatcher_->value()};
91
82
 
92
83
  componentDescriptorRegistry_ = schedulerToolbox.componentRegistryFactory(
93
- eventDispatcher, schedulerToolbox.contextContainer);
84
+ eventDispatcher, contextContainer_);
94
85
 
95
86
  uiManager->setDelegate(this);
96
87
  uiManager->setComponentDescriptorRegistry(componentDescriptorRegistry_);
97
88
 
98
- #ifdef ANDROID
99
- auto asyncMeasure =
100
- reactNativeConfig_->getBool("react_fabric:enable_async_measure_android");
101
- #else
102
- auto asyncMeasure =
103
- reactNativeConfig_->getBool("react_fabric:enable_async_measure_ios");
104
- #endif
105
-
106
89
  runtimeExecutor_([uiManager,
107
- asyncMeasure,
108
90
  runtimeExecutor = runtimeExecutor_](jsi::Runtime &runtime) {
109
91
  auto uiManagerBinding =
110
92
  UIManagerBinding::createAndInstallIfNeeded(runtime, runtimeExecutor);
111
93
  uiManagerBinding->attach(uiManager);
112
- uiManagerBinding->setEnableAsyncMeasure(asyncMeasure);
113
94
  });
114
95
 
115
96
  auto componentDescriptorRegistryKey =
116
97
  "ComponentDescriptorRegistry_DO_NOT_USE_PRETTY_PLEASE";
117
- schedulerToolbox.contextContainer->erase(componentDescriptorRegistryKey);
118
- schedulerToolbox.contextContainer->insert(
98
+ contextContainer_->erase(componentDescriptorRegistryKey);
99
+ contextContainer_->insert(
119
100
  componentDescriptorRegistryKey,
120
101
  std::weak_ptr<ComponentDescriptorRegistry const>(
121
102
  componentDescriptorRegistry_));
@@ -137,8 +118,6 @@ Scheduler::Scheduler(
137
118
  #ifdef ANDROID
138
119
  removeOutstandingSurfacesOnDestruction_ = reactNativeConfig_->getBool(
139
120
  "react_fabric:remove_outstanding_surfaces_on_destruction_android");
140
- Constants::setPropsForwardingEnabled(reactNativeConfig_->getBool(
141
- "react_fabric:enable_props_forwarding_android"));
142
121
  #else
143
122
  removeOutstandingSurfacesOnDestruction_ = reactNativeConfig_->getBool(
144
123
  "react_fabric:remove_outstanding_surfaces_on_destruction_ios");
@@ -203,9 +182,41 @@ Scheduler::~Scheduler() {
203
182
 
204
183
  void Scheduler::registerSurface(
205
184
  SurfaceHandler const &surfaceHandler) const noexcept {
185
+ surfaceHandler.setContextContainer(getContextContainer());
206
186
  surfaceHandler.setUIManager(uiManager_.get());
207
187
  }
208
188
 
189
+ InspectorData Scheduler::getInspectorDataForInstance(
190
+ SharedEventEmitter eventEmitter) const noexcept {
191
+ return executeSynchronouslyOnSameThread_CAN_DEADLOCK<InspectorData>(
192
+ runtimeExecutor_, [=](jsi::Runtime &runtime) -> InspectorData {
193
+ auto uiManagerBinding = UIManagerBinding::getBinding(runtime);
194
+ auto value = uiManagerBinding->getInspectorDataForInstance(
195
+ runtime, eventEmitter);
196
+
197
+ // TODO T97216348: avoid transforming jsi into folly::dynamic
198
+ auto dynamic = jsi::dynamicFromValue(runtime, value);
199
+ auto source = dynamic["source"];
200
+
201
+ InspectorData result = {};
202
+ result.fileName =
203
+ source["fileName"].isNull() ? "" : source["fileName"].c_str();
204
+ result.lineNumber = (int)source["lineNumber"].getDouble();
205
+ result.columnNumber = (int)source["columnNumber"].getDouble();
206
+ result.selectedIndex = (int)dynamic["selectedIndex"].getDouble();
207
+ // TODO T97216348: remove folly::dynamic from InspectorData struct
208
+ result.props = dynamic["props"];
209
+ auto hierarchy = dynamic["hierarchy"];
210
+ for (size_t i = 0; i < hierarchy.size(); i++) {
211
+ auto viewHierarchyValue = hierarchy[i]["name"];
212
+ if (!viewHierarchyValue.isNull()) {
213
+ result.hierarchy.push_back(viewHierarchyValue.c_str());
214
+ }
215
+ }
216
+ return result;
217
+ });
218
+ }
219
+
209
220
  void Scheduler::unregisterSurface(
210
221
  SurfaceHandler const &surfaceHandler) const noexcept {
211
222
  surfaceHandler.setUIManager(nullptr);
@@ -337,5 +348,9 @@ void Scheduler::uiManagerDidSetIsJSResponder(
337
348
  }
338
349
  }
339
350
 
351
+ ContextContainer::Shared Scheduler::getContextContainer() const {
352
+ return contextContainer_;
353
+ }
354
+
340
355
  } // namespace react
341
356
  } // namespace facebook
@@ -15,8 +15,10 @@
15
15
  #include <react/renderer/componentregistry/ComponentDescriptorFactory.h>
16
16
  #include <react/renderer/components/root/RootComponentDescriptor.h>
17
17
  #include <react/renderer/core/ComponentDescriptor.h>
18
+ #include <react/renderer/core/EventEmitter.h>
18
19
  #include <react/renderer/core/LayoutConstraints.h>
19
20
  #include <react/renderer/mounting/MountingOverrideDelegate.h>
21
+ #include <react/renderer/scheduler/InspectorData.h>
20
22
  #include <react/renderer/scheduler/SchedulerDelegate.h>
21
23
  #include <react/renderer/scheduler/SchedulerToolbox.h>
22
24
  #include <react/renderer/scheduler/SurfaceHandler.h>
@@ -49,6 +51,9 @@ class Scheduler final : public UIManagerDelegate {
49
51
  void registerSurface(SurfaceHandler const &surfaceHandler) const noexcept;
50
52
  void unregisterSurface(SurfaceHandler const &surfaceHandler) const noexcept;
51
53
 
54
+ InspectorData getInspectorDataForInstance(
55
+ SharedEventEmitter eventEmitter) const noexcept;
56
+
52
57
  void renderTemplateToSurface(
53
58
  SurfaceId surfaceId,
54
59
  const std::string &uiTemplate);
@@ -99,6 +104,9 @@ class Scheduler final : public UIManagerDelegate {
99
104
  bool isJSResponder,
100
105
  bool blockNativeResponder) override;
101
106
 
107
+ #pragma mark - ContextContainer
108
+ ContextContainer::Shared getContextContainer() const;
109
+
102
110
  private:
103
111
  friend class SurfaceHandler;
104
112
 
@@ -119,6 +127,12 @@ class Scheduler final : public UIManagerDelegate {
119
127
  */
120
128
  std::shared_ptr<better::optional<EventDispatcher const>> eventDispatcher_;
121
129
 
130
+ /**
131
+ * Hold onto ContextContainer. See SchedulerToolbox.
132
+ * Must not be nullptr.
133
+ */
134
+ ContextContainer::Shared contextContainer_;
135
+
122
136
  /*
123
137
  * Temporary flags.
124
138
  */
@@ -8,6 +8,7 @@
8
8
  #include "SurfaceHandler.h"
9
9
 
10
10
  #include <react/debug/react_native_assert.h>
11
+ #include <react/renderer/debug/SystraceSection.h>
11
12
  #include <react/renderer/scheduler/Scheduler.h>
12
13
  #include <react/renderer/uimanager/UIManager.h>
13
14
 
@@ -42,49 +43,58 @@ SurfaceHandler &SurfaceHandler::operator=(SurfaceHandler &&other) noexcept {
42
43
 
43
44
  other.link_ = Link{};
44
45
  other.parameters_ = Parameters{};
46
+ other.parameters_.contextContainer = parameters_.contextContainer;
45
47
  return *this;
46
48
  }
47
49
 
48
50
  #pragma mark - Surface Life-Cycle Management
49
51
 
52
+ void SurfaceHandler::setContextContainer(
53
+ ContextContainer::Shared contextContainer) const noexcept {
54
+ parameters_.contextContainer = contextContainer;
55
+ }
56
+
50
57
  Status SurfaceHandler::getStatus() const noexcept {
51
58
  std::shared_lock<better::shared_mutex> lock(linkMutex_);
52
59
  return link_.status;
53
60
  }
54
61
 
55
62
  void SurfaceHandler::start() const noexcept {
56
- {
57
- std::unique_lock<better::shared_mutex> lock(linkMutex_);
58
- react_native_assert(
59
- link_.status == Status::Registered && "Surface must be registered.");
60
- react_native_assert(
61
- getLayoutConstraints().layoutDirection != LayoutDirection::Undefined &&
62
- "layoutDirection must be set.");
63
+ SystraceSection s("SurfaceHandler::start");
64
+ std::unique_lock<better::shared_mutex> lock(linkMutex_);
65
+ react_native_assert(
66
+ link_.status == Status::Registered && "Surface must be registered.");
67
+ react_native_assert(
68
+ getLayoutConstraints().layoutDirection != LayoutDirection::Undefined &&
69
+ "layoutDirection must be set.");
70
+ react_native_assert(
71
+ parameters_.contextContainer && "ContextContainer must be set.");
63
72
 
64
- auto parameters = Parameters{};
65
- {
66
- std::shared_lock<better::shared_mutex> parametersLock(parametersMutex_);
67
- parameters = parameters_;
68
- }
73
+ auto parameters = Parameters{};
74
+ {
75
+ SystraceSection s2("SurfaceHandler::start::paramsLock");
76
+ std::shared_lock<better::shared_mutex> parametersLock(parametersMutex_);
77
+ parameters = parameters_;
78
+ }
69
79
 
70
- auto shadowTree = std::make_unique<ShadowTree>(
71
- parameters.surfaceId,
72
- parameters.layoutConstraints,
73
- parameters.layoutContext,
74
- *link_.uiManager);
80
+ auto shadowTree = std::make_unique<ShadowTree>(
81
+ parameters.surfaceId,
82
+ parameters.layoutConstraints,
83
+ parameters.layoutContext,
84
+ *link_.uiManager,
85
+ *parameters.contextContainer);
75
86
 
76
- link_.shadowTree = shadowTree.get();
87
+ link_.shadowTree = shadowTree.get();
77
88
 
78
- link_.uiManager->startSurface(
79
- std::move(shadowTree),
80
- parameters.moduleName,
81
- parameters.props,
82
- parameters_.displayMode);
89
+ link_.uiManager->startSurface(
90
+ std::move(shadowTree),
91
+ parameters.moduleName,
92
+ parameters.props,
93
+ parameters_.displayMode);
83
94
 
84
- link_.status = Status::Running;
95
+ link_.status = Status::Running;
85
96
 
86
- applyDisplayMode(parameters.displayMode);
87
- }
97
+ applyDisplayMode(parameters.displayMode);
88
98
  }
89
99
 
90
100
  void SurfaceHandler::stop() const noexcept {
@@ -156,6 +166,7 @@ std::string SurfaceHandler::getModuleName() const noexcept {
156
166
  }
157
167
 
158
168
  void SurfaceHandler::setProps(folly::dynamic const &props) const noexcept {
169
+ SystraceSection s("SurfaceHandler::setProps");
159
170
  std::unique_lock<better::shared_mutex> lock(parametersMutex_);
160
171
  parameters_.props = props;
161
172
  }
@@ -192,8 +203,11 @@ Size SurfaceHandler::measure(
192
203
  auto currentRootShadowNode =
193
204
  link_.shadowTree->getCurrentRevision().rootShadowNode;
194
205
 
195
- auto rootShadowNode =
196
- currentRootShadowNode->clone(layoutConstraints, layoutContext);
206
+ PropsParserContext propsParserContext{
207
+ parameters_.surfaceId, *parameters_.contextContainer.get()};
208
+
209
+ auto rootShadowNode = currentRootShadowNode->clone(
210
+ propsParserContext, layoutConstraints, layoutContext);
197
211
  rootShadowNode->layoutIfNeeded();
198
212
  return rootShadowNode->getLayoutMetrics().frame.size;
199
213
  }
@@ -201,6 +215,7 @@ Size SurfaceHandler::measure(
201
215
  void SurfaceHandler::constraintLayout(
202
216
  LayoutConstraints const &layoutConstraints,
203
217
  LayoutContext const &layoutContext) const noexcept {
218
+ SystraceSection s("SurfaceHandler::constraintLayout");
204
219
  {
205
220
  std::unique_lock<better::shared_mutex> lock(parametersMutex_);
206
221
 
@@ -220,10 +235,14 @@ void SurfaceHandler::constraintLayout(
220
235
  return;
221
236
  }
222
237
 
238
+ PropsParserContext propsParserContext{
239
+ parameters_.surfaceId, *parameters_.contextContainer.get()};
240
+
223
241
  react_native_assert(
224
242
  link_.shadowTree && "`link_.shadowTree` must not be null.");
225
243
  link_.shadowTree->commit([&](RootShadowNode const &oldRootShadowNode) {
226
- return oldRootShadowNode.clone(layoutConstraints, layoutContext);
244
+ return oldRootShadowNode.clone(
245
+ propsParserContext, layoutConstraints, layoutContext);
227
246
  });
228
247
  }
229
248
  }
@@ -241,6 +260,7 @@ LayoutContext SurfaceHandler::getLayoutContext() const noexcept {
241
260
  #pragma mark - Private
242
261
 
243
262
  void SurfaceHandler::applyDisplayMode(DisplayMode displayMode) const noexcept {
263
+ SystraceSection s("SurfaceHandler::applyDisplayMode");
244
264
  react_native_assert(
245
265
  link_.status == Status::Running && "Surface must be running.");
246
266
  react_native_assert(