react-native-windows 0.84.0-preview.9 → 0.85.0-preview.1

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 (487) hide show
  1. package/.flowconfig +1 -5
  2. package/Common/unicode.cpp +36 -0
  3. package/Common/unicode.h +8 -0
  4. package/Directory.Build.props +1 -16
  5. package/Directory.Build.targets +12 -4
  6. package/Folly/ThreadNameStub.cpp +4 -6
  7. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
  8. package/Libraries/Animated/Animated.d.ts +8 -1
  9. package/Libraries/Animated/AnimatedEvent.js +4 -4
  10. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  11. package/Libraries/Animated/animations/Animation.js +3 -3
  12. package/Libraries/Animated/animations/DecayAnimation.js +4 -4
  13. package/Libraries/Animated/animations/SpringAnimation.js +5 -5
  14. package/Libraries/Animated/animations/TimingAnimation.js +5 -5
  15. package/Libraries/Animated/createAnimatedComponent.js +7 -7
  16. package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
  17. package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
  18. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  19. package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
  20. package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
  21. package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
  22. package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
  23. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  24. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  25. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  26. package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
  27. package/Libraries/Animated/useAnimatedColor.js +25 -0
  28. package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
  29. package/Libraries/Animated/useAnimatedValueXY.js +26 -0
  30. package/Libraries/AppState/AppState.js +1 -1
  31. package/Libraries/BatchedBridge/MessageQueue.js +3 -3
  32. package/Libraries/BatchedBridge/NativeModules.js +12 -10
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
  34. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +34 -30
  35. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
  36. package/Libraries/Components/Button.js +2 -2
  37. package/Libraries/Components/Button.windows.js +2 -2
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
  39. package/Libraries/Components/Keyboard/Keyboard.js +6 -6
  40. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
  41. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
  42. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
  43. package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
  44. package/Libraries/Components/Pressable/Pressable.js +3 -3
  45. package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
  46. package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
  47. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  48. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
  49. package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
  50. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +5 -5
  51. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
  52. package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
  53. package/Libraries/Components/ScrollView/ScrollView.js +19 -9
  54. package/Libraries/Components/ScrollView/ScrollView.windows.js +19 -9
  55. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
  56. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +8 -18
  57. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
  58. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  59. package/Libraries/Components/StaticRenderer.js +1 -1
  60. package/Libraries/Components/StatusBar/StatusBar.js +8 -8
  61. package/Libraries/Components/Switch/Switch.js +3 -3
  62. package/Libraries/Components/Switch/Switch.windows.js +3 -3
  63. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
  64. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  65. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
  66. package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
  67. package/Libraries/Components/TextInput/TextInput.flow.windows.js +23 -22
  68. package/Libraries/Components/TextInput/TextInput.js +8 -4
  69. package/Libraries/Components/TextInput/TextInput.windows.js +3 -4
  70. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +33 -48
  71. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  72. package/Libraries/Components/Touchable/Touchable.js +2 -2
  73. package/Libraries/Components/Touchable/Touchable.windows.js +2 -2
  74. package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
  75. package/Libraries/Components/Touchable/TouchableBounce.windows.js +4 -4
  76. package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
  77. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +9 -9
  78. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
  79. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +7 -7
  80. package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
  81. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -4
  82. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
  83. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
  84. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  85. package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
  86. package/Libraries/Components/View/View.windows.js +1 -1
  87. package/Libraries/Components/View/ViewAccessibility.js +7 -7
  88. package/Libraries/Components/View/ViewAccessibility.windows.js +7 -7
  89. package/Libraries/Components/View/ViewPropTypes.js +14 -14
  90. package/Libraries/Components/View/ViewPropTypes.windows.js +18 -16
  91. package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
  92. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  93. package/Libraries/Core/ExceptionsManager.js +2 -2
  94. package/Libraries/Core/ExtendedError.js +3 -3
  95. package/Libraries/Core/RawEventEmitter.js +1 -1
  96. package/Libraries/Core/ReactNativeVersion.js +2 -2
  97. package/Libraries/Core/Timers/JSTimers.js +3 -2
  98. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  99. package/Libraries/Core/setUpErrorHandling.js +4 -2
  100. package/Libraries/Core/setUpReactDevTools.js +23 -6
  101. package/Libraries/Core/setUpSegmentFetcher.js +1 -1
  102. package/Libraries/Debugging/DebuggingOverlay.js +2 -2
  103. package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
  104. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
  105. package/Libraries/Image/AssetSourceResolver.js +1 -1
  106. package/Libraries/Image/AssetSourceResolver.windows.js +1 -1
  107. package/Libraries/Image/Image.android.js +172 -306
  108. package/Libraries/Image/ImageProps.js +9 -11
  109. package/Libraries/Image/ImageSource.js +2 -2
  110. package/Libraries/Image/ImageSourceUtils.js +8 -4
  111. package/Libraries/Image/ImageTypes.flow.js +2 -2
  112. package/Libraries/Image/ImageViewNativeComponent.js +7 -16
  113. package/Libraries/Image/nativeImageSource.js +1 -1
  114. package/Libraries/Interaction/InteractionManager.js +5 -4
  115. package/Libraries/Interaction/PanResponder.js +1 -1
  116. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  117. package/Libraries/Linking/Linking.js +1 -1
  118. package/Libraries/Lists/FlatList.js +3 -3
  119. package/Libraries/Lists/SectionList.js +1 -1
  120. package/Libraries/Lists/SectionListModern.js +2 -2
  121. package/Libraries/LogBox/Data/LogBoxData.js +38 -24
  122. package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
  123. package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
  124. package/Libraries/LogBox/LogBox.js +42 -19
  125. package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
  126. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  127. package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
  128. package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
  129. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
  130. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -9
  131. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
  132. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
  133. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  134. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
  135. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
  136. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
  137. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
  138. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +15 -16
  139. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
  140. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
  141. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
  142. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +3 -5
  143. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
  144. package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
  145. package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
  146. package/Libraries/Modal/Modal.d.ts +4 -0
  147. package/Libraries/Modal/Modal.js +3 -3
  148. package/Libraries/Modal/Modal.windows.js +7 -3
  149. package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
  150. package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
  151. package/Libraries/NativeComponent/BaseViewConfig.windows.js +26 -17
  152. package/Libraries/Network/RCTNetworking.android.js +1 -1
  153. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  154. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  155. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  156. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
  157. package/Libraries/Network/XMLHttpRequest.js +1 -1
  158. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  159. package/Libraries/Pressability/Pressability.js +5 -5
  160. package/Libraries/Pressability/Pressability.windows.js +5 -5
  161. package/Libraries/Pressability/PressabilityDebug.js +1 -1
  162. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  163. package/Libraries/Pressability/usePressability.js +3 -14
  164. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
  165. package/Libraries/ReactNative/AppContainer-dev.js +18 -1
  166. package/Libraries/ReactNative/AppContainer.js +1 -1
  167. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  168. package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
  169. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  170. package/Libraries/ReactNative/RendererImplementation.js +4 -4
  171. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  172. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
  173. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
  174. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
  175. package/Libraries/Renderer/shims/ReactFabric.js +1 -3
  176. package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
  177. package/Libraries/Renderer/shims/ReactNative.js +3 -2
  178. package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
  179. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +1 -3
  180. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
  181. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
  182. package/Libraries/StyleSheet/PointPropType.js +1 -1
  183. package/Libraries/StyleSheet/Rect.js +1 -1
  184. package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
  185. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  186. package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
  187. package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
  188. package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
  189. package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
  190. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
  191. package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
  192. package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
  193. package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
  194. package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
  195. package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
  196. package/Libraries/StyleSheet/processBoxShadow.js +44 -4
  197. package/Libraries/StyleSheet/processColorArray.js +2 -2
  198. package/Libraries/StyleSheet/processFilter.js +2 -2
  199. package/Libraries/Text/Text.js +295 -627
  200. package/Libraries/Text/Text.windows.js +342 -717
  201. package/Libraries/Text/TextNativeComponent.js +14 -7
  202. package/Libraries/Text/TextProps.js +4 -4
  203. package/Libraries/Text/TextProps.windows.js +4 -4
  204. package/Libraries/Types/CodegenTypes.js +1 -1
  205. package/Libraries/Types/CoreEventTypes.js +21 -21
  206. package/Libraries/Types/CoreEventTypes.windows.js +21 -21
  207. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  208. package/Libraries/Utilities/Appearance.js +6 -1
  209. package/Libraries/Utilities/Dimensions.js +1 -1
  210. package/Libraries/Utilities/HMRClient.js +32 -5
  211. package/Libraries/Utilities/IPerformanceLogger.js +4 -4
  212. package/Libraries/Utilities/codegenNativeCommands.js +4 -4
  213. package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
  214. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  215. package/Libraries/Utilities/logError.js +1 -1
  216. package/Libraries/Utilities/stringifySafe.js +3 -3
  217. package/Libraries/Utilities/useMergeRefs.js +2 -2
  218. package/Libraries/vendor/core/ErrorUtils.js +4 -4
  219. package/Libraries/vendor/emitter/EventEmitter.js +16 -20
  220. package/Microsoft.ReactNative/CallInvoker.cpp +14 -4
  221. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +1 -1
  222. package/Microsoft.ReactNative/Fabric/AbiPortalShadowNode.cpp +2 -2
  223. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +1 -1
  224. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +73 -97
  225. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +4 -1
  226. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -1
  227. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +5 -0
  228. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +94 -26
  229. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +11 -0
  230. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +135 -18
  231. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +10 -0
  232. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +7 -2
  233. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +2 -0
  234. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +63 -15
  235. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +9 -5
  236. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +28 -6
  237. package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.cpp +1 -1
  238. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1 -1
  239. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -1
  240. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +80 -0
  241. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.h +17 -0
  242. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -0
  243. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +1 -0
  244. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +3 -0
  245. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -3
  246. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +3 -8
  247. package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -0
  248. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -63
  249. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -26
  250. package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -1
  251. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -17
  252. package/Microsoft.ReactNative/Modules/AppStateModule.h +0 -4
  253. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -2
  254. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +16 -15
  255. package/Microsoft.ReactNative/Modules/AppearanceModule.h +5 -1
  256. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +2 -7
  257. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +0 -1
  258. package/Microsoft.ReactNative/Modules/I18nManagerModule.h +4 -4
  259. package/Microsoft.ReactNative/QuirkSettings.cpp +0 -133
  260. package/Microsoft.ReactNative/QuirkSettings.h +0 -43
  261. package/Microsoft.ReactNative/QuirkSettings.idl +0 -41
  262. package/Microsoft.ReactNative/ReactHost/CrashManager.cpp +0 -4
  263. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +0 -2
  264. package/Microsoft.ReactNative/ReactHost/React.h +0 -5
  265. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -1
  266. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +3 -26
  267. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -5
  268. package/Microsoft.ReactNative/ReactHost/React_Win.h +0 -2
  269. package/Microsoft.ReactNative/ReactNativeAppBuilder.idl +3 -0
  270. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +7 -0
  271. package/Microsoft.ReactNative/ReactPackageBuilder.h +1 -0
  272. package/Microsoft.ReactNative/RedBox.cpp +0 -9
  273. package/Microsoft.ReactNative/RedBoxHandler.cpp +0 -4
  274. package/Microsoft.ReactNative/TurboModulesProvider.cpp +5 -10
  275. package/Microsoft.ReactNative/TurboModulesProvider.h +2 -0
  276. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +33 -25
  277. package/Microsoft.ReactNative/Utils/LocalBundleReader.h +5 -3
  278. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  279. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -7
  280. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +0 -22
  281. package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +8 -2
  282. package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +36 -20
  283. package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +0 -3
  284. package/Microsoft.ReactNative.Cxx/NativeModules.h +8 -2
  285. package/Microsoft.ReactNative.Cxx/XamlUtils.h +0 -9
  286. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +3 -3
  287. package/Microsoft.ReactNative.Managed/ReactContext.cs +0 -9
  288. package/Microsoft.ReactNative.Managed.CodeGen/Microsoft.ReactNative.Managed.CodeGen.csproj +10 -10
  289. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Debug.pubxml +1 -1
  290. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Release.pubxml +1 -1
  291. package/PropertySheets/Autolink.props +1 -1
  292. package/PropertySheets/Bundle.props +1 -1
  293. package/PropertySheets/Codegen.props +1 -1
  294. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  295. package/PropertySheets/JSEngine.props +1 -1
  296. package/PropertySheets/NuGet.LockFile.props +8 -0
  297. package/PropertySheets/React.Cpp.props +8 -7
  298. package/PropertySheets/ReactNativeArchitecture.props +6 -24
  299. package/PropertySheets/WinUI.props +2 -2
  300. package/ReactCommon/ReactCommon.vcxproj +5 -6
  301. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1 -1
  302. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +15 -4
  303. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +13 -0
  304. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/defaults/DefaultTurboModules.cpp +69 -0
  305. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/animationbackend/AnimatedPropSerializer.cpp +717 -0
  306. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
  307. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +2 -21
  308. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +151 -0
  309. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +50 -0
  310. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBuffer.cpp +178 -0
  311. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +69 -39
  312. package/Scripts/JustMyXaml.ps1 +8 -8
  313. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  314. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -39
  315. package/Scripts/UnitTest.ps1 +3 -1
  316. package/Scripts/creaternwapp.cmd +1 -9
  317. package/Scripts/creaternwlib.cmd +4 -24
  318. package/Scripts/rnw-dependencies.ps1 +15 -16
  319. package/Shared/DevSettings.h +0 -3
  320. package/Shared/DevSupportManager.cpp +55 -48
  321. package/Shared/DevSupportManager.h +0 -1
  322. package/Shared/Modules/IWebSocketModuleContentHandler.h +15 -0
  323. package/Shared/Modules/WebSocketModule.cpp +8 -3
  324. package/Shared/Networking/DefaultBlobResource.cpp +37 -0
  325. package/Shared/Networking/DefaultBlobResource.h +12 -0
  326. package/Shared/Networking/WinRTWebSocketResource.cpp +23 -408
  327. package/Shared/Networking/WinRTWebSocketResource.h +8 -120
  328. package/Shared/Shared.vcxitems +63 -38
  329. package/Shared/Shared.vcxitems.filters +54 -0
  330. package/Shared/Utils.cpp +0 -88
  331. package/Shared/Utils.h +0 -14
  332. package/Shared/WebSocketResourceFactory.cpp +28 -0
  333. package/Shared/tracing/fbsystrace.h +1 -0
  334. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +172 -160
  335. package/codegen/react/components/rnwcore/ModalHostView.g.h +8 -0
  336. package/codegen/react/components/rnwcore/Props.cpp +17 -7
  337. package/codegen/react/components/rnwcore/Props.h +3 -1
  338. package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +4 -4
  339. package/codegen/rnwcoreJSI.h +93 -77
  340. package/index.js +9 -0
  341. package/index.windows.js +9 -0
  342. package/jest/RefreshControlMock.js +2 -2
  343. package/jest/assetFileTransformer.js +8 -3
  344. package/jest/mockComponent.js +3 -4
  345. package/jest/mockNativeComponent.js +1 -1
  346. package/jest/mocks/ActivityIndicator.js +2 -2
  347. package/jest/mocks/Image.js +2 -2
  348. package/jest/mocks/Modal.js +2 -2
  349. package/jest/mocks/RefreshControl.js +3 -3
  350. package/jest/mocks/RendererProxy.js +2 -2
  351. package/jest/mocks/ScrollView.js +5 -5
  352. package/jest/mocks/Text.js +2 -2
  353. package/jest/mocks/TextInput.js +2 -2
  354. package/jest/mocks/View.js +2 -2
  355. package/jest/mocks/ViewNativeComponent.js +1 -1
  356. package/jest/mocks/requireNativeComponent.js +1 -1
  357. package/jest/mocks/useColorScheme.js +1 -1
  358. package/jest/setup.js +68 -31
  359. package/just-task.js +13 -2
  360. package/package.json +25 -20
  361. package/src/private/animated/NativeAnimatedHelper.js +2 -2
  362. package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
  363. package/src/private/components/virtualview/VirtualView.js +14 -21
  364. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
  365. package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
  366. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
  367. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
  368. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
  369. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  370. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
  371. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
  372. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
  373. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
  374. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  375. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  376. package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
  377. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
  378. package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
  379. package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
  380. package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
  381. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
  382. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
  383. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
  384. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
  385. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
  386. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  387. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  388. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
  389. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
  390. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
  391. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
  392. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
  393. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +7 -3
  394. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
  395. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
  396. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
  397. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
  398. package/src/private/styles/composeStyles.js +1 -1
  399. package/src/private/utilities/toError.js +27 -0
  400. package/src/private/utilities/toExtendedError.js +30 -0
  401. package/src/private/webapis/dom/events/Event.js +1 -1
  402. package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
  403. package/src/private/webapis/dom/events/EventTarget.js +3 -3
  404. package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
  405. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  406. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
  407. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
  408. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  409. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  410. package/src/private/webapis/geometry/DOMRectList.js +2 -2
  411. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
  412. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
  413. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  414. package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
  415. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
  416. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
  417. package/src/private/webapis/performance/LongTasks.js +3 -3
  418. package/src/private/webapis/performance/Performance.js +4 -4
  419. package/src/private/webapis/performance/PerformanceEntry.js +1 -1
  420. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  421. package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
  422. package/src/private/webapis/structuredClone/structuredClone.js +2 -2
  423. package/src/types/globals.d.ts +4 -4
  424. package/template/cpp-lib/proj/MyLib.sln +0 -33
  425. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  426. package/template/cs-lib/proj/MyLib.sln +0 -33
  427. package/template/metro.config.js +12 -2
  428. package/templates/cpp-app/metro.config.js +12 -2
  429. package/templates/cpp-app/windows/MyApp/MyApp.cpp +9 -6
  430. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +2 -2
  431. package/templates/cpp-app/windows/MyApp.sln +0 -33
  432. package/templates/cpp-lib/example/metro.config.js +12 -2
  433. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +2 -2
  434. package/templates/cpp-lib/windows/MyLib.sln +0 -33
  435. package/types/index.d.ts +2 -0
  436. package/Folly/.clang-format +0 -2
  437. package/Folly/Folly.natvis +0 -25
  438. package/Folly/Folly.vcxproj +0 -378
  439. package/Folly/Folly.vcxproj.filters +0 -558
  440. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +0 -978
  441. package/Folly/TEMP_UntilFollyUpdate/Conv.cpp +0 -1205
  442. package/Folly/TEMP_UntilFollyUpdate/chrono/Hardware.h +0 -155
  443. package/Folly/TEMP_UntilFollyUpdate/concurrency/CacheLocality.cpp +0 -633
  444. package/Folly/TEMP_UntilFollyUpdate/json/dynamic-inl.h +0 -1438
  445. package/Folly/TEMP_UntilFollyUpdate/json/json.cpp +0 -1118
  446. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +0 -188
  447. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +0 -348
  448. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +0 -182
  449. package/Folly/TEMP_UntilFollyUpdate/portability/Unistd.cpp +0 -33
  450. package/Folly/cgmanifest.json +0 -25
  451. package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
  452. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +0 -64
  453. package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
  454. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +0 -75
  455. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +0 -27
  456. package/Microsoft.ReactNative/Fabric/Composition/Theme_emptyimpl.cpp +0 -81
  457. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -24
  458. package/Microsoft.ReactNative/ReactSupport.cpp +0 -221
  459. package/Microsoft.ReactNative/ReactSupport.h +0 -13
  460. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.cpp +0 -107
  461. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +0 -62
  462. package/Microsoft.ReactNative/Utils/UwpScriptStore.cpp +0 -56
  463. package/Microsoft.ReactNative/Utils/UwpScriptStore.h +0 -22
  464. package/Microsoft.ReactNative/XamlUIService.cpp +0 -68
  465. package/Microsoft.ReactNative/XamlUIService.h +0 -37
  466. package/Microsoft.ReactNative/XamlUIService.idl +0 -53
  467. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +0 -259
  468. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/Instance.cpp +0 -381
  469. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +0 -145
  470. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/MethodCall.cpp +0 -100
  471. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ModuleRegistry.cpp +0 -256
  472. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -363
  473. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/RAMBundleRegistry.cpp +0 -93
  474. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +0 -148
  475. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +0 -190
  476. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSINativeModules.cpp +0 -123
  477. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.cpp +0 -27
  478. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/webperformance/NativePerformance.cpp +0 -414
  479. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +0 -91
  480. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +0 -80
  481. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +0 -138
  482. package/fmt/.clang-format +0 -2
  483. package/fmt/cgmanifest.json +0 -15
  484. package/fmt/fmt.vcxproj +0 -153
  485. package/fmt/fmt.vcxproj.filters +0 -59
  486. package/fmt/pch.cpp +0 -4
  487. package/fmt/pch.h +0 -2
@@ -1,363 +0,0 @@
1
- /*
2
- * Copyright (c) Meta Platforms, Inc. and 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
- #if _MSC_VER
9
- #pragma warning(push)
10
- #pragma warning(disable : 4996) // deprecated APIs
11
- #endif
12
-
13
- #include "NativeToJsBridge.h"
14
-
15
- #ifndef RCT_REMOVE_LEGACY_ARCH
16
-
17
- #include <ReactCommon/CallInvoker.h>
18
- #include <folly/json.h>
19
- #include <glog/logging.h>
20
- #include <jsi/jsi.h>
21
- #include <reactperflogger/BridgeNativeModulePerfLogger.h>
22
-
23
- #include "ErrorUtils.h"
24
- #include "Instance.h"
25
- #include "JSBigString.h"
26
- #include "MessageQueueThread.h"
27
- #include "MethodCall.h"
28
- #include "ModuleRegistry.h"
29
- #include "MoveWrapper.h"
30
- #include "RAMBundleRegistry.h"
31
- #include "TraceSection.h"
32
-
33
- #include <memory>
34
- #include <utility>
35
-
36
- #ifdef WITH_FBSYSTRACE
37
- #include <fbsystrace.h>
38
-
39
- using fbsystrace::FbSystraceAsyncFlow;
40
- #endif
41
-
42
- namespace facebook::react {
43
-
44
- // This class manages calls from JS to native code.
45
- class [[deprecated(
46
- "This API will be removed along with the legacy architecture.")]]
47
- JsToNativeBridge : public react::ExecutorDelegate {
48
- public:
49
- JsToNativeBridge(
50
- std::shared_ptr<ModuleRegistry> registry,
51
- std::shared_ptr<InstanceCallback> callback)
52
- : m_registry(std::move(registry)), m_callback(std::move(callback)) {}
53
-
54
- std::shared_ptr<ModuleRegistry> getModuleRegistry() override {
55
- return m_registry;
56
- }
57
-
58
- bool isBatchActive() {
59
- return m_batchHadNativeModuleOrTurboModuleCalls;
60
- }
61
-
62
- void callNativeModules(
63
- [[maybe_unused]] JSExecutor& executor,
64
- folly::dynamic&& calls,
65
- bool isEndOfBatch) override {
66
- CHECK(m_registry || calls.empty())
67
- << "native module calls cannot be completed with no native modules";
68
- m_batchHadNativeModuleOrTurboModuleCalls =
69
- m_batchHadNativeModuleOrTurboModuleCalls || !calls.empty();
70
-
71
- std::vector<MethodCall> methodCalls = parseMethodCalls(std::move(calls));
72
- BridgeNativeModulePerfLogger::asyncMethodCallBatchPreprocessEnd(
73
- (int)methodCalls.size());
74
-
75
- // An exception anywhere in here stops processing of the batch. This
76
- // was the behavior of the Android bridge, and since exception handling
77
- // terminates the whole bridge, there's not much point in continuing.
78
- for (auto& call : methodCalls) {
79
- m_registry->callNativeMethod(
80
- call.moduleId, call.methodId, std::move(call.arguments), call.callId);
81
- }
82
- if (isEndOfBatch) {
83
- // onBatchComplete will be called on the native (module) queue, but
84
- // decrementPendingJSCalls will be called sync. Be aware that the bridge
85
- // may still be processing native calls when the bridge idle signaler
86
- // fires.
87
- if (m_batchHadNativeModuleOrTurboModuleCalls) {
88
- m_callback->onBatchComplete();
89
- m_batchHadNativeModuleOrTurboModuleCalls = false;
90
- }
91
- m_callback->decrementPendingJSCalls();
92
- }
93
- }
94
-
95
- MethodCallResult callSerializableNativeHook(
96
- [[maybe_unused]] JSExecutor& executor,
97
- unsigned int moduleId,
98
- unsigned int methodId,
99
- folly::dynamic&& args) override {
100
- return m_registry->callSerializableNativeHook(
101
- moduleId, methodId, std::move(args));
102
- }
103
-
104
- void recordTurboModuleAsyncMethodCall() noexcept {
105
- m_batchHadNativeModuleOrTurboModuleCalls = true;
106
- }
107
-
108
- private:
109
- // These methods are always invoked from an Executor. The NativeToJsBridge
110
- // keeps a reference to the executor, and when destroy() is called, the
111
- // executor is destroyed synchronously on its queue.
112
- std::shared_ptr<ModuleRegistry> m_registry;
113
- std::shared_ptr<InstanceCallback> m_callback;
114
- std::atomic<bool> m_batchHadNativeModuleOrTurboModuleCalls{false};
115
- };
116
-
117
- NativeToJsBridge::NativeToJsBridge(
118
- JSExecutorFactory* jsExecutorFactory,
119
- std::shared_ptr<ModuleRegistry> registry,
120
- std::shared_ptr<MessageQueueThread> jsQueue,
121
- std::shared_ptr<InstanceCallback> callback)
122
- : m_destroyed(std::make_shared<bool>(false)),
123
- m_delegate(std::make_shared<JsToNativeBridge>(registry, callback)),
124
- m_executor(jsExecutorFactory->createJSExecutor(m_delegate, jsQueue)),
125
- m_executorMessageQueueThread(std::move(jsQueue)),
126
- m_inspectable(m_executor->isInspectable()) {}
127
-
128
- // This must be called on the same thread on which the constructor was called.
129
- NativeToJsBridge::~NativeToJsBridge() {
130
- CHECK(*m_destroyed)
131
- << "NativeToJsBridge::destroy() must be called before deallocating the NativeToJsBridge!";
132
- }
133
-
134
- void NativeToJsBridge::initializeRuntime() {
135
- runOnExecutorQueue(
136
- [](JSExecutor* executor) mutable { executor->initializeRuntime(); });
137
- }
138
-
139
- void NativeToJsBridge::loadBundle(
140
- std::unique_ptr<RAMBundleRegistry> bundleRegistry,
141
- std::unique_ptr<const JSBigString> startupScript,
142
- std::string startupScriptSourceURL) {
143
- runOnExecutorQueue(
144
- [this,
145
- bundleRegistryWrap = makeMoveWrapper(std::move(bundleRegistry)),
146
- startupScript = makeMoveWrapper(std::move(startupScript)),
147
- startupScriptSourceURL =
148
- std::move(startupScriptSourceURL)](JSExecutor* executor) mutable {
149
- auto bundleRegistry = bundleRegistryWrap.move();
150
- if (bundleRegistry) {
151
- executor->setBundleRegistry(std::move(bundleRegistry));
152
- }
153
- try {
154
- executor->loadBundle(
155
- std::move(*startupScript), std::move(startupScriptSourceURL));
156
- } catch (...) {
157
- m_applicationScriptHasFailure = true;
158
- throw;
159
- }
160
- });
161
- }
162
-
163
- void NativeToJsBridge::loadBundleSync(
164
- std::unique_ptr<RAMBundleRegistry> bundleRegistry,
165
- std::unique_ptr<const JSBigString> startupScript,
166
- std::string startupScriptSourceURL) {
167
- if (bundleRegistry) {
168
- m_executor->setBundleRegistry(std::move(bundleRegistry));
169
- }
170
- try {
171
- m_executor->loadBundle(
172
- std::move(startupScript), std::move(startupScriptSourceURL));
173
- } catch (...) {
174
- m_applicationScriptHasFailure = true;
175
- throw;
176
- }
177
- }
178
-
179
- void NativeToJsBridge::callFunction(
180
- std::string&& module,
181
- std::string&& method,
182
- folly::dynamic&& arguments) {
183
- int systraceCookie = -1;
184
- #ifdef WITH_FBSYSTRACE
185
- systraceCookie = m_systraceCookie++;
186
- FbSystraceAsyncFlow::begin(TRACE_TAG_REACT_CXX_BRIDGE, "JSCall", systraceCookie); // [Windows] [issue #14819]
187
- #endif
188
-
189
- runOnExecutorQueue([this,
190
- module = std::move(module),
191
- method = std::move(method),
192
- arguments = std::move(arguments),
193
- systraceCookie](JSExecutor* executor) {
194
- if (m_applicationScriptHasFailure) {
195
- LOG(ERROR)
196
- << "Attempting to call JS function on a bad application bundle: "
197
- << module.c_str() << "." << method.c_str() << "()";
198
- throw std::runtime_error(
199
- "Attempting to call JS function on a bad application bundle: " +
200
- module + "." + method + "()");
201
- }
202
-
203
- #ifdef WITH_FBSYSTRACE
204
- FbSystraceAsyncFlow::end(TRACE_TAG_REACT_CXX_BRIDGE, "JSCall", systraceCookie); // [Windows] [issue #14819]
205
- TraceSection s(
206
- "NativeToJsBridge::callFunction", "module", module, "method", method);
207
- #else
208
- (void)(systraceCookie);
209
- #endif
210
- // This is safe because we are running on the executor's thread: it won't
211
- // destruct until after it's been unregistered (which we check above) and
212
- // that will happen on this thread
213
- executor->callFunction(module, method, arguments);
214
- });
215
- }
216
-
217
- void NativeToJsBridge::invokeCallback(
218
- double callbackId,
219
- folly::dynamic&& arguments) {
220
- int systraceCookie = -1;
221
- #ifdef WITH_FBSYSTRACE
222
- systraceCookie = m_systraceCookie++;
223
- FbSystraceAsyncFlow::begin(TRACE_TAG_REACT_CXX_BRIDGE, "<callback>", systraceCookie); // [Windows] [issue #14819]
224
- #endif
225
-
226
- runOnExecutorQueue(
227
- [this, callbackId, arguments = std::move(arguments), systraceCookie](
228
- JSExecutor* executor) {
229
- if (m_applicationScriptHasFailure) {
230
- LOG(ERROR)
231
- << "Attempting to call JS callback on a bad application bundle: "
232
- << callbackId;
233
- throw std::runtime_error(
234
- "Attempting to invoke JS callback on a bad application bundle.");
235
- }
236
- #ifdef WITH_FBSYSTRACE
237
- FbSystraceAsyncFlow::end(TRACE_TAG_REACT_CXX_BRIDGE, "<callback>", systraceCookie); // [Windows] [issue #14819]
238
- TraceSection s("NativeToJsBridge::invokeCallback");
239
- #else
240
- (void)(systraceCookie);
241
- #endif
242
- executor->invokeCallback(callbackId, arguments);
243
- });
244
- }
245
-
246
- void NativeToJsBridge::registerBundle(
247
- uint32_t bundleId,
248
- const std::string& bundlePath) {
249
- runOnExecutorQueue([bundleId, bundlePath](JSExecutor* executor) {
250
- executor->registerBundle(bundleId, bundlePath);
251
- });
252
- }
253
-
254
- void NativeToJsBridge::setGlobalVariable(
255
- std::string propName,
256
- std::unique_ptr<const JSBigString> jsonValue) {
257
- runOnExecutorQueue([propName = std::move(propName),
258
- jsonValue = makeMoveWrapper(std::move(jsonValue))](
259
- JSExecutor* executor) mutable {
260
- executor->setGlobalVariable(propName, jsonValue.move());
261
- });
262
- }
263
-
264
- void* NativeToJsBridge::getJavaScriptContext() {
265
- // TODO(cjhopman): this seems unsafe unless we require that it is only called
266
- // on the main js queue.
267
- return m_executor->getJavaScriptContext();
268
- }
269
-
270
- bool NativeToJsBridge::isInspectable() {
271
- return m_inspectable;
272
- }
273
-
274
- bool NativeToJsBridge::isBatchActive() {
275
- return m_delegate->isBatchActive();
276
- }
277
-
278
- void NativeToJsBridge::handleMemoryPressure(int pressureLevel) {
279
- runOnExecutorQueue([=](JSExecutor* executor) {
280
- executor->handleMemoryPressure(pressureLevel);
281
- });
282
- }
283
-
284
- void NativeToJsBridge::destroy() {
285
- // All calls made through runOnExecutorQueue have an early exit if
286
- // m_destroyed is true. Setting this before the runOnQueueSync will cause
287
- // pending work to be cancelled and we won't have to wait for it.
288
- *m_destroyed = true;
289
- m_executorMessageQueueThread->runOnQueueSync([this] {
290
- m_executor->destroy();
291
- m_executorMessageQueueThread->quitSynchronous();
292
- m_executor = nullptr;
293
- });
294
- }
295
-
296
- void NativeToJsBridge::runOnExecutorQueue(
297
- std::function<void(JSExecutor*)>&& task) noexcept {
298
- if (*m_destroyed) {
299
- return;
300
- }
301
-
302
- std::shared_ptr<bool> isDestroyed = m_destroyed;
303
- m_executorMessageQueueThread->runOnQueue(
304
- [this, isDestroyed, task = std::move(task)] {
305
- if (*isDestroyed) {
306
- return;
307
- }
308
-
309
- // The executor is guaranteed to be valid for the duration of the task
310
- // because:
311
- // 1. the executor is only destroyed after it is unregistered
312
- // 2. the executor is unregistered on this queue
313
- // 3. we just confirmed that the executor hasn't been unregistered above
314
- task(m_executor.get());
315
- });
316
- }
317
-
318
- std::shared_ptr<NativeMethodCallInvoker>
319
- NativeToJsBridge::getDecoratedNativeMethodCallInvoker(
320
- std::shared_ptr<NativeMethodCallInvoker> nativeMethodCallInvoker) const {
321
- class NativeMethodCallInvokerImpl : public NativeMethodCallInvoker {
322
- private:
323
- std::weak_ptr<JsToNativeBridge> m_jsToNativeBridge;
324
- std::shared_ptr<NativeMethodCallInvoker> m_nativeInvoker;
325
-
326
- public:
327
- NativeMethodCallInvokerImpl(
328
- std::weak_ptr<JsToNativeBridge> jsToNativeBridge,
329
- std::shared_ptr<NativeMethodCallInvoker> nativeInvoker)
330
- : m_jsToNativeBridge(std::move(jsToNativeBridge)),
331
- m_nativeInvoker(std::move(nativeInvoker)) {}
332
-
333
- void invokeAsync(
334
- const std::string& methodName,
335
- NativeMethodCallFunc&& func) noexcept override {
336
- if (auto strongJsToNativeBridge = m_jsToNativeBridge.lock()) {
337
- strongJsToNativeBridge->recordTurboModuleAsyncMethodCall();
338
- }
339
- m_nativeInvoker->invokeAsync(methodName, std::move(func));
340
- }
341
-
342
- void invokeSync(const std::string& methodName, NativeMethodCallFunc&& func)
343
- override {
344
- m_nativeInvoker->invokeSync(methodName, std::move(func));
345
- }
346
- };
347
-
348
- return std::make_shared<NativeMethodCallInvokerImpl>(
349
- m_delegate, std::move(nativeMethodCallInvoker));
350
- }
351
-
352
- jsinspector_modern::RuntimeTargetDelegate&
353
- NativeToJsBridge::getInspectorTargetDelegate() {
354
- return m_executor->getRuntimeTargetDelegate();
355
- }
356
-
357
- } // namespace facebook::react
358
-
359
- #endif // RCT_REMOVE_LEGACY_ARCH
360
-
361
- #if _MSC_VER
362
- #pragma warning(pop)
363
- #endif
@@ -1,93 +0,0 @@
1
- /*
2
- * Copyright (c) Meta Platforms, Inc. and 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
-
9
- #if _MSC_VER
10
- #pragma warning(push)
11
- #pragma warning(disable : 4996) // deprecated APIs
12
- #endif
13
- #include "RAMBundleRegistry.h"
14
-
15
- #ifndef RCT_REMOVE_LEGACY_ARCH
16
-
17
- #include <folly/String.h>
18
-
19
- #include <memory>
20
-
21
- namespace facebook::react {
22
-
23
- #pragma clang diagnostic push
24
- #pragma clang diagnostic ignored "-Wdeprecated"
25
- constexpr uint32_t RAMBundleRegistry::MAIN_BUNDLE_ID;
26
- #pragma clang diagnostic pop
27
-
28
- std::unique_ptr<RAMBundleRegistry> RAMBundleRegistry::singleBundleRegistry(
29
- std::unique_ptr<JSModulesUnbundle> mainBundle) {
30
- return std::make_unique<RAMBundleRegistry>(std::move(mainBundle));
31
- }
32
-
33
- std::unique_ptr<RAMBundleRegistry> RAMBundleRegistry::multipleBundlesRegistry(
34
- std::unique_ptr<JSModulesUnbundle> mainBundle,
35
- std::function<std::unique_ptr<JSModulesUnbundle>(std::string)> factory) {
36
- return std::make_unique<RAMBundleRegistry>(
37
- std::move(mainBundle), std::move(factory));
38
- }
39
-
40
- RAMBundleRegistry::RAMBundleRegistry(
41
- std::unique_ptr<JSModulesUnbundle> mainBundle,
42
- std::function<std::unique_ptr<JSModulesUnbundle>(std::string)> factory)
43
- : m_factory(std::move(factory)) {
44
- m_bundles.emplace(MAIN_BUNDLE_ID, std::move(mainBundle));
45
- }
46
-
47
- void RAMBundleRegistry::registerBundle(
48
- uint32_t bundleId,
49
- std::string bundlePath) {
50
- m_bundlePaths.emplace(bundleId, std::move(bundlePath));
51
- }
52
-
53
- JSModulesUnbundle::Module RAMBundleRegistry::getModule(
54
- uint32_t bundleId,
55
- uint32_t moduleId) {
56
- if (m_bundles.find(bundleId) == m_bundles.end()) {
57
- if (!m_factory) {
58
- throw std::runtime_error(
59
- "You need to register factory function in order to "
60
- "support multiple RAM bundles.");
61
- }
62
-
63
- auto bundlePath = m_bundlePaths.find(bundleId);
64
- if (bundlePath == m_bundlePaths.end()) {
65
- throw std::runtime_error(
66
- "In order to fetch RAM bundle from the registry, its file "
67
- "path needs to be registered first.");
68
- }
69
- m_bundles.emplace(bundleId, m_factory(bundlePath->second));
70
- }
71
-
72
- auto module = getBundle(bundleId)->getModule(moduleId);
73
- if (bundleId == MAIN_BUNDLE_ID) {
74
- return module;
75
- }
76
-
77
- return {
78
- .name = "seg-" + std::to_string(bundleId) + '_' + module.name,
79
- .code = std::move(module.code),
80
- };
81
- }
82
-
83
- JSModulesUnbundle* RAMBundleRegistry::getBundle(uint32_t bundleId) const {
84
- return m_bundles.at(bundleId).get();
85
- }
86
-
87
- } // namespace facebook::react
88
-
89
- #endif // RCT_REMOVE_LEGACY_ARCH
90
-
91
- #if _MSC_VER
92
- #pragma warning(pop)
93
- #endif
@@ -1,148 +0,0 @@
1
- /*
2
- * Copyright (c) Meta Platforms, Inc. and 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
-
9
- #if _MSC_VER
10
- #pragma warning(push)
11
- #pragma warning(disable : 4996) // deprecated APIs
12
- #endif
13
- #include "ReactMarker.h"
14
-
15
- namespace facebook::react::ReactMarker {
16
-
17
- #if __clang__
18
- #pragma clang diagnostic push
19
- #pragma clang diagnostic ignored "-Wglobal-constructors"
20
- #endif
21
-
22
- LogTaggedMarker logTaggedMarkerBridgelessImpl = nullptr;
23
- LogTaggedMarker logTaggedMarkerImpl = nullptr;
24
- std::shared_mutex logTaggedMarkerImplMutex;
25
-
26
- #if __clang__
27
- #pragma clang diagnostic pop
28
- #endif
29
-
30
- void logMarker(const ReactMarkerId markerId) {
31
- logTaggedMarker(markerId, nullptr);
32
- }
33
-
34
- void logTaggedMarker(const ReactMarkerId markerId, const char* tag) {
35
- LogTaggedMarker marker = nullptr;
36
- {
37
- std::shared_lock lock(logTaggedMarkerImplMutex);
38
- marker = logTaggedMarkerImpl;
39
- }
40
- if (marker != nullptr) {
41
- marker(markerId, tag);
42
- }
43
- }
44
-
45
- void logMarkerBridgeless(const ReactMarkerId markerId) {
46
- logTaggedMarkerBridgeless(markerId, nullptr);
47
- }
48
-
49
- void logTaggedMarkerBridgeless(const ReactMarkerId markerId, const char* tag) {
50
- logTaggedMarkerBridgelessImpl(markerId, tag);
51
- }
52
-
53
- void logMarkerDone(const ReactMarkerId markerId, double markerTime) {
54
- StartupLogger::getInstance().logStartupEvent(markerId, markerTime);
55
- }
56
-
57
- StartupLogger& StartupLogger::getInstance() {
58
- static StartupLogger instance;
59
- return instance;
60
- }
61
-
62
- void StartupLogger::logStartupEvent(
63
- const ReactMarkerId markerId,
64
- double markerTime) {
65
- switch (markerId) {
66
- case ReactMarkerId::APP_STARTUP_START:
67
- if (!std::isnan(appStartupStartTime)) {
68
- // We had a startup start time, which indicates a warm start (user
69
- // closed the app and start again). In this case we need to invalidate
70
- // all other startup timings.
71
- reset();
72
- }
73
- appStartupStartTime = markerTime;
74
- return;
75
-
76
- case ReactMarkerId::APP_STARTUP_STOP:
77
- if (std::isnan(appStartupEndTime)) {
78
- appStartupEndTime = markerTime;
79
- }
80
- return;
81
-
82
- case ReactMarkerId::INIT_REACT_RUNTIME_START:
83
- if (std::isnan(initReactRuntimeStartTime)) {
84
- initReactRuntimeStartTime = markerTime;
85
- }
86
- return;
87
-
88
- case ReactMarkerId::INIT_REACT_RUNTIME_STOP:
89
- if (std::isnan(initReactRuntimeEndTime)) {
90
- initReactRuntimeEndTime = markerTime;
91
- }
92
- return;
93
-
94
- case ReactMarkerId::RUN_JS_BUNDLE_START:
95
- if (std::isnan(runJSBundleStartTime)) {
96
- runJSBundleStartTime = markerTime;
97
- }
98
- return;
99
-
100
- case ReactMarkerId::RUN_JS_BUNDLE_STOP:
101
- if (std::isnan(runJSBundleEndTime)) {
102
- runJSBundleEndTime = markerTime;
103
- }
104
- return;
105
-
106
- default:
107
- return;
108
- }
109
- }
110
-
111
- void StartupLogger::reset() {
112
- appStartupStartTime = std::nan("");
113
- appStartupEndTime = std::nan("");
114
- initReactRuntimeStartTime = std::nan("");
115
- initReactRuntimeEndTime = std::nan("");
116
- runJSBundleStartTime = std::nan("");
117
- runJSBundleEndTime = std::nan("");
118
- }
119
-
120
- double StartupLogger::getAppStartupStartTime() {
121
- return appStartupStartTime;
122
- }
123
-
124
- double StartupLogger::getInitReactRuntimeStartTime() {
125
- return initReactRuntimeStartTime;
126
- }
127
-
128
- double StartupLogger::getInitReactRuntimeEndTime() {
129
- return initReactRuntimeEndTime;
130
- }
131
-
132
- double StartupLogger::getRunJSBundleStartTime() {
133
- return runJSBundleStartTime;
134
- }
135
-
136
- double StartupLogger::getRunJSBundleEndTime() {
137
- return runJSBundleEndTime;
138
- }
139
-
140
- double StartupLogger::getAppStartupEndTime() {
141
- return appStartupEndTime;
142
- }
143
-
144
- } // namespace facebook::react::ReactMarker
145
-
146
- #if _MSC_VER
147
- #pragma warning(pop)
148
- #endif