react-native-windows 0.71.7 → 0.72.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 (620) hide show
  1. package/.flowconfig +13 -3
  2. package/Directory.Build.props +19 -19
  3. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
  4. package/Libraries/Alert/Alert.d.ts +4 -4
  5. package/Libraries/Alert/Alert.windows.js +2 -0
  6. package/Libraries/Alert/NativeDialogManagerWindows.js +1 -0
  7. package/Libraries/Animated/Animated.d.ts +17 -6
  8. package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
  9. package/Libraries/Animated/bezier.js +1 -1
  10. package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
  11. package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
  12. package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
  13. package/Libraries/Animated/createAnimatedComponent.js +26 -239
  14. package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
  15. package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
  16. package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
  17. package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
  18. package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
  19. package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
  20. package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
  21. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  22. package/Libraries/Animated/useAnimatedProps.js +7 -10
  23. package/Libraries/AppTheme/AppTheme.js +1 -0
  24. package/Libraries/AppTheme/AppThemeTypes.d.ts +1 -1
  25. package/Libraries/BatchedBridge/MessageQueue.js +2 -1
  26. package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
  27. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  28. package/Libraries/Blob/Blob.js +4 -0
  29. package/Libraries/Blob/FileReader.js +30 -2
  30. package/Libraries/Blob/URL.js +3 -1
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
  32. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +2 -3
  34. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
  35. package/Libraries/Components/Button.js +3 -2
  36. package/Libraries/Components/Button.windows.js +3 -2
  37. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
  39. package/Libraries/Components/Flyout/Flyout.d.ts +55 -19
  40. package/Libraries/Components/Flyout/Flyout.js +110 -51
  41. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +45 -0
  42. package/Libraries/Components/Glyph/Glyph.d.ts +29 -12
  43. package/Libraries/Components/Glyph/Glyph.js +43 -30
  44. package/Libraries/Components/Glyph/GlyphNativeComponent.js +31 -0
  45. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
  46. package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +2 -2
  47. package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
  48. package/Libraries/Components/Popup/Popup.d.ts +41 -19
  49. package/Libraries/Components/Popup/Popup.js +86 -52
  50. package/Libraries/Components/Popup/PopupNativeComponent.js +49 -0
  51. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  52. package/Libraries/Components/Pressable/Pressable.js +1 -1
  53. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
  54. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -0
  55. package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
  56. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +1 -2
  57. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
  58. package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
  59. package/Libraries/Components/ScrollView/ScrollView.js +149 -91
  60. package/Libraries/Components/ScrollView/ScrollView.windows.js +1939 -0
  61. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
  62. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +175 -0
  63. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
  64. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
  65. package/Libraries/Components/StatusBar/StatusBar.js +3 -0
  66. package/Libraries/Components/Switch/Switch.js +3 -1
  67. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
  68. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
  69. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
  70. package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
  71. package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
  72. package/Libraries/Components/TextInput/TextInput.js +130 -103
  73. package/Libraries/Components/TextInput/TextInput.windows.js +152 -115
  74. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
  75. package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
  76. package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
  77. package/Libraries/Components/Touchable/Touchable.js +6 -3
  78. package/Libraries/Components/Touchable/Touchable.windows.js +6 -3
  79. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  80. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +2 -1
  81. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
  82. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
  83. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -0
  84. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
  85. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  86. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -2
  87. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +189 -0
  88. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
  89. package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
  90. package/Libraries/Components/View/View.js +71 -45
  91. package/Libraries/Components/View/View.windows.js +40 -16
  92. package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
  93. package/Libraries/Components/View/ViewAccessibility.js +10 -1
  94. package/Libraries/Components/View/ViewAccessibility.windows.js +9 -0
  95. package/Libraries/Components/View/ViewNativeComponent.js +32 -8
  96. package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
  97. package/Libraries/Components/View/ViewPropTypes.js +1 -1
  98. package/Libraries/Components/View/ViewPropTypes.windows.js +3 -1
  99. package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
  100. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
  101. package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
  102. package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
  103. package/Libraries/Core/ExceptionsManager.js +2 -2
  104. package/Libraries/Core/InitializeCore.js +2 -1
  105. package/Libraries/Core/ReactNativeVersion.js +3 -3
  106. package/Libraries/Core/ReactNativeVersionCheck.js +1 -9
  107. package/Libraries/Core/Timers/JSTimers.js +1 -1
  108. package/Libraries/Core/Timers/immediateShim.js +1 -0
  109. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  110. package/Libraries/Core/setUpAlert.js +1 -1
  111. package/Libraries/Core/setUpDOM.js +18 -0
  112. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  113. package/Libraries/Core/setUpGlobals.js +5 -2
  114. package/Libraries/Core/setUpNavigator.js +6 -5
  115. package/Libraries/Core/setUpPerformance.js +23 -13
  116. package/Libraries/Core/setUpReactDevTools.js +2 -0
  117. package/Libraries/Core/setUpSegmentFetcher.js +0 -41
  118. package/Libraries/Core/setUpTimers.js +2 -2
  119. package/Libraries/DOM/Geometry/DOMRect.js +82 -0
  120. package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
  121. package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
  122. package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
  123. package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
  124. package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
  125. package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
  126. package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
  127. package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
  128. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
  129. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
  130. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
  131. package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +35 -0
  132. package/Libraries/{Utilities/NativeDevSplitBundleLoader.js → DevToolsSettings/NativeDevToolsSettingsManager.js} +7 -2
  133. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
  134. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
  135. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
  136. package/Libraries/Events/EventPolyfill.js +1 -1
  137. package/Libraries/Image/AssetRegistry.js +1 -1
  138. package/Libraries/Image/AssetSourceResolver.js +3 -3
  139. package/Libraries/Image/Image.android.js +4 -1
  140. package/Libraries/Image/Image.d.ts +63 -2
  141. package/Libraries/Image/Image.ios.js +3 -0
  142. package/Libraries/Image/Image.windows.js +3 -0
  143. package/Libraries/Image/ImageBackground.js +1 -0
  144. package/Libraries/Image/ImageProps.js +1 -1
  145. package/Libraries/Image/ImageViewNativeComponent.js +4 -4
  146. package/Libraries/Image/RelativeImageStub.js +1 -1
  147. package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
  148. package/Libraries/Image/resolveAssetSource.js +1 -1
  149. package/Libraries/Inspector/DevtoolsOverlay.js +29 -19
  150. package/Libraries/Inspector/ElementBox.js +4 -1
  151. package/Libraries/Inspector/Inspector.js +5 -6
  152. package/Libraries/Inspector/InspectorOverlay.js +3 -3
  153. package/Libraries/Inspector/NetworkOverlay.js +1 -1
  154. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  155. package/Libraries/Interaction/PanResponder.js +5 -6
  156. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
  157. package/Libraries/Linking/Linking.js +1 -4
  158. package/Libraries/Lists/FillRateHelper.js +4 -238
  159. package/Libraries/Lists/FlatList.d.ts +15 -22
  160. package/Libraries/Lists/FlatList.js +9 -6
  161. package/Libraries/Lists/SectionList.d.ts +10 -6
  162. package/Libraries/Lists/SectionList.js +5 -3
  163. package/Libraries/Lists/SectionListModern.js +3 -3
  164. package/Libraries/Lists/ViewabilityHelper.js +8 -344
  165. package/Libraries/Lists/VirtualizeUtils.js +4 -244
  166. package/Libraries/Lists/VirtualizedList.js +10 -1867
  167. package/Libraries/Lists/VirtualizedListContext.js +6 -104
  168. package/Libraries/Lists/VirtualizedSectionList.js +9 -602
  169. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
  170. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  171. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  172. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  173. package/Libraries/LogBox/LogBox.js +1 -1
  174. package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
  175. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +167 -0
  176. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +172 -0
  177. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +193 -0
  178. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
  179. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
  180. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +118 -0
  181. package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
  182. package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
  183. package/Libraries/Modal/Modal.js +2 -2
  184. package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
  185. package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
  186. package/Libraries/NativeComponent/BaseViewConfig.windows.js +77 -19
  187. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
  188. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  189. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
  190. package/Libraries/Network/RCTNetworking.android.js +2 -2
  191. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  192. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  193. package/Libraries/Network/XMLHttpRequest.js +1 -1
  194. package/Libraries/Pressability/Pressability.js +11 -5
  195. package/Libraries/Pressability/Pressability.windows.js +11 -4
  196. package/Libraries/ReactNative/AppContainer.js +7 -1
  197. package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
  198. package/Libraries/ReactNative/AppRegistry.js +10 -13
  199. package/Libraries/ReactNative/FabricUIManager.js +24 -8
  200. package/Libraries/ReactNative/NativeUIManager.js +5 -5
  201. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
  202. package/Libraries/ReactNative/UIManager.js +142 -1
  203. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
  204. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  205. package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
  206. package/Libraries/ReactNative/requireNativeComponent.js +1 -1
  207. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
  208. package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
  209. package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
  210. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
  211. package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
  212. package/Libraries/Renderer/shims/ReactNativeTypes.js +38 -20
  213. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
  214. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  215. package/Libraries/Share/Share.js +1 -1
  216. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  217. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  218. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
  219. package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
  220. package/Libraries/StyleSheet/flattenStyle.js +2 -0
  221. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  222. package/Libraries/StyleSheet/processColor.js +1 -1
  223. package/Libraries/Text/Text.d.ts +12 -2
  224. package/Libraries/Text/Text.js +50 -41
  225. package/Libraries/Text/Text.windows.js +48 -38
  226. package/Libraries/Text/TextProps.js +3 -4
  227. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  228. package/Libraries/Types/CodegenTypes.js +1 -0
  229. package/Libraries/UTFSequence.js +3 -1
  230. package/Libraries/Utilities/Appearance.d.ts +10 -0
  231. package/Libraries/Utilities/Appearance.js +13 -0
  232. package/Libraries/Utilities/Dimensions.js +1 -1
  233. package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
  234. package/Libraries/Utilities/HMRClient.js +16 -10
  235. package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
  236. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  237. package/Libraries/Utilities/LoadingView.android.js +28 -11
  238. package/Libraries/Utilities/NativeAppearance.js +1 -0
  239. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
  240. package/Libraries/Utilities/PixelRatio.js +2 -2
  241. package/Libraries/Utilities/Platform.windows.js +1 -1
  242. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  243. package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
  244. package/Libraries/Utilities/codegenNativeCommands.js +2 -0
  245. package/Libraries/Utilities/createPerformanceLogger.js +55 -43
  246. package/Libraries/Utilities/stringifySafe.js +2 -7
  247. package/Libraries/Utilities/useColorScheme.js +1 -1
  248. package/Libraries/Utilities/useWindowDimensions.js +3 -3
  249. package/Libraries/WebPerformance/EventCounts.js +78 -0
  250. package/Libraries/WebPerformance/MemoryInfo.js +54 -0
  251. package/Libraries/WebPerformance/NativePerformance.js +38 -0
  252. package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
  253. package/Libraries/WebPerformance/Performance.js +312 -0
  254. package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
  255. package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
  256. package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
  257. package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
  258. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
  259. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
  260. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
  261. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  262. package/Libraries/platform-types.d.ts +3 -5
  263. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  264. package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
  265. package/Libraries/vendor/emitter/EventEmitter.js +9 -1
  266. package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +0 -15
  267. package/Microsoft.ReactNative/CompositionHwndHost.idl +6 -0
  268. package/Microsoft.ReactNative/CompositionRootView.idl +35 -0
  269. package/Microsoft.ReactNative/CompositionSwitcher.idl +19 -0
  270. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +174 -0
  271. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +91 -0
  272. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +48 -0
  273. package/Microsoft.ReactNative/Fabric/AbiViewProps.h +48 -0
  274. package/Microsoft.ReactNative/Fabric/ComponentView.h +19 -2
  275. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +144 -0
  276. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +63 -0
  277. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +27 -6
  278. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +97 -0
  279. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +227 -0
  280. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +38 -0
  281. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +112 -95
  282. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +12 -8
  283. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +0 -2
  284. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +27 -6
  285. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +8 -0
  286. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +147 -0
  287. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +46 -0
  288. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +31 -4
  289. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +37 -0
  290. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +255 -50
  291. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +34 -15
  292. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +127 -47
  293. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +11 -7
  294. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +109 -39
  295. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +10 -7
  296. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +106 -0
  297. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +63 -0
  298. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +116 -0
  299. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +43 -0
  300. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +53 -38
  301. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +12 -8
  302. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +262 -0
  303. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +62 -0
  304. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +35 -30
  305. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +11 -9
  306. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +9 -0
  307. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -0
  308. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +2 -1
  309. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +72 -0
  310. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +16 -0
  311. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +168 -0
  312. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +49 -0
  313. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +19 -53
  314. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -3
  315. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +8 -9
  316. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +100 -0
  317. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +43 -0
  318. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +61 -0
  319. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +34 -0
  320. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +42 -0
  321. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +10 -0
  322. package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +248 -0
  323. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +5 -0
  324. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +135 -4
  325. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +18 -240
  326. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -17
  327. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +13 -2
  328. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +87 -0
  329. package/Microsoft.ReactNative/IReactContext.cpp +4 -0
  330. package/Microsoft.ReactNative/IReactContext.h +1 -0
  331. package/Microsoft.ReactNative/IReactContext.idl +5 -0
  332. package/Microsoft.ReactNative/IReactDispatcher.cpp +4 -0
  333. package/Microsoft.ReactNative/IReactDispatcher.h +1 -0
  334. package/Microsoft.ReactNative/IReactPackageBuilderFabric.idl +23 -0
  335. package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +23 -0
  336. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -118
  337. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -7
  338. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +2 -2
  339. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +1 -1
  340. package/Microsoft.ReactNative/Modules/AlertModule.cpp +100 -4
  341. package/Microsoft.ReactNative/Modules/AlertModule.h +4 -0
  342. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +9 -0
  343. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +2 -0
  344. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +7 -5
  345. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +17 -3
  346. package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +1 -0
  347. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +4 -0
  348. package/Microsoft.ReactNative/Modules/AppearanceModule.h +3 -0
  349. package/Microsoft.ReactNative/Modules/ClipboardModule.cpp +4 -4
  350. package/Microsoft.ReactNative/Modules/ClipboardModule.h +2 -2
  351. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +27 -7
  352. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.h +9 -5
  353. package/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp +10 -12
  354. package/Microsoft.ReactNative/Modules/LinkingManagerModule.h +4 -4
  355. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -1
  356. package/Microsoft.ReactNative/QuirkSettings.cpp +17 -0
  357. package/Microsoft.ReactNative/QuirkSettings.h +5 -0
  358. package/Microsoft.ReactNative/QuirkSettings.idl +6 -0
  359. package/Microsoft.ReactNative/ReactApplication.cpp +8 -0
  360. package/Microsoft.ReactNative/ReactApplication.h +3 -0
  361. package/Microsoft.ReactNative/ReactApplication.idl +3 -0
  362. package/Microsoft.ReactNative/ReactCoreInjection.cpp +29 -0
  363. package/Microsoft.ReactNative/ReactCoreInjection.h +6 -0
  364. package/Microsoft.ReactNative/ReactCoreInjection.idl +13 -0
  365. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +7 -0
  366. package/Microsoft.ReactNative/ReactHost/MsoReactContext.h +1 -0
  367. package/Microsoft.ReactNative/ReactHost/React.h +2 -0
  368. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +57 -16
  369. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -0
  370. package/Microsoft.ReactNative/ReactInstanceSettings.h +12 -0
  371. package/Microsoft.ReactNative/ReactInstanceSettings.idl +6 -0
  372. package/Microsoft.ReactNative/ReactNativeHost.cpp +17 -0
  373. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +18 -0
  374. package/Microsoft.ReactNative/ReactPackageBuilder.h +24 -1
  375. package/Microsoft.ReactNative/ReactRootView.cpp +2 -2
  376. package/Microsoft.ReactNative/RedBox.cpp +2 -1
  377. package/Microsoft.ReactNative/Utils/Helpers.cpp +0 -32
  378. package/Microsoft.ReactNative/Utils/Helpers.h +0 -8
  379. package/Microsoft.ReactNative/Utils/ImageUtils.cpp +69 -6
  380. package/Microsoft.ReactNative/Utils/ImageUtils.h +3 -1
  381. package/Microsoft.ReactNative/Utils/KeyboardUtils.cpp +416 -0
  382. package/Microsoft.ReactNative/Utils/KeyboardUtils.h +15 -0
  383. package/Microsoft.ReactNative/Utils/TransformableText.h +1 -0
  384. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -9
  385. package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -2
  386. package/Microsoft.ReactNative/ViewProps.idl +30 -0
  387. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +6 -2
  388. package/Microsoft.ReactNative/Views/DevMenu.cpp +369 -230
  389. package/Microsoft.ReactNative/Views/DevMenu.h +3 -15
  390. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +6 -3
  391. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +11 -3
  392. package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +5 -1
  393. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +29 -22
  394. package/Microsoft.ReactNative/Views/Image/ReactImage.h +2 -2
  395. package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +10 -405
  396. package/Microsoft.ReactNative/Views/KeyboardEventHandler.h +0 -3
  397. package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -0
  398. package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +2 -2
  399. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +7 -0
  400. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +3 -0
  401. package/Microsoft.ReactNative/Views/Text/TextHitTestUtils.cpp +6 -1
  402. package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -0
  403. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +38 -2
  404. package/Microsoft.ReactNative/Views/TextViewManager.cpp +3 -0
  405. package/Microsoft.ReactNative/Views/TouchEventHandler.h +0 -4
  406. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +0 -8
  407. package/Microsoft.ReactNative/Views/ViewPanel.cpp +1 -1
  408. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +12 -3
  409. package/Microsoft.ReactNative/XamlHelper.cpp +36 -0
  410. package/Microsoft.ReactNative/XamlHelper.h +27 -0
  411. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +4 -4
  412. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +4 -4
  413. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  414. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -8
  415. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
  416. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +4 -1
  417. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +3 -0
  418. package/Microsoft.ReactNative.Cxx/NativeModules.h +16 -1
  419. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +2 -0
  420. package/Microsoft.ReactNative.Managed/packages.lock.json +5 -5
  421. package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +3 -0
  422. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  423. package/PropertySheets/JSEngine.props +2 -3
  424. package/PropertySheets/Warnings.props +1 -1
  425. package/ReactCommon/ReactCommon.vcxproj +2 -4
  426. package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
  427. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +1 -1
  428. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.cpp +60 -0
  429. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.h +60 -0
  430. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +116 -0
  431. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +63 -0
  432. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -2
  433. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +237 -0
  434. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +59 -0
  435. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +159 -0
  436. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +94 -0
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +465 -0
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +116 -0
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +98 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +362 -0
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +326 -0
  442. package/ReactCommon/Yoga.cpp +60 -127
  443. package/Scripts/OfficeReact.Win32.nuspec +1 -0
  444. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +1 -0
  445. package/Scripts/rnw-dependencies.ps1 +12 -4
  446. package/Shared/Composition/CompositionSwitcher.interop.h +1 -0
  447. package/Shared/DevServerHelper.h +11 -2
  448. package/Shared/DevSettings.h +1 -0
  449. package/Shared/DevSupportManager.cpp +11 -1
  450. package/Shared/DevSupportManager.h +1 -0
  451. package/Shared/HermesRuntimeHolder.cpp +53 -30
  452. package/Shared/HermesRuntimeHolder.h +26 -11
  453. package/Shared/HermesSamplingProfiler.cpp +61 -8
  454. package/Shared/HermesSamplingProfiler.h +6 -3
  455. package/Shared/HermesShim.cpp +86 -82
  456. package/Shared/HermesShim.h +28 -8
  457. package/Shared/JSI/ChakraRuntime.cpp +7 -4
  458. package/Shared/JSI/ChakraRuntime.h +4 -4
  459. package/Shared/JSI/NapiJsiV8RuntimeHolder.h +2 -0
  460. package/Shared/JSI/RuntimeHolder.h +2 -2
  461. package/Shared/Logging.cpp +1 -1
  462. package/Shared/Modules/BlobModule.cpp +3 -4
  463. package/Shared/Modules/BlobModule.h +0 -4
  464. package/Shared/Networking/OriginPolicyHttpFilter.cpp +13 -17
  465. package/Shared/Networking/OriginPolicyHttpFilter.h +11 -12
  466. package/Shared/Networking/WinRTWebSocketResource.cpp +59 -45
  467. package/Shared/OInstance.cpp +9 -2
  468. package/Shared/Shared.vcxitems +265 -58
  469. package/Shared/Shared.vcxitems.filters +312 -42
  470. package/Shared/V8JSIRuntimeHolder.cpp +1 -0
  471. package/Shared/V8JSIRuntimeHolder.h +7 -2
  472. package/codegen/NativeAppearanceSpec.g.h +9 -3
  473. package/codegen/NativeClipboardSpec.g.h +3 -3
  474. package/codegen/NativeDevToolsSettingsManagerSpec.g.h +51 -0
  475. package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -0
  476. package/codegen/NativeFileReaderModuleSpec.g.h +6 -6
  477. package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +3 -3
  478. package/codegen/NativeImageLoaderAndroidSpec.g.h +25 -9
  479. package/codegen/NativeImageLoaderIOSSpec.g.h +20 -12
  480. package/codegen/NativeIntentAndroidSpec.g.h +15 -15
  481. package/codegen/NativeLinkingManagerSpec.g.h +12 -12
  482. package/codegen/NativePerformanceObserverSpec.g.h +48 -10
  483. package/codegen/NativePerformanceSpec.g.h +63 -0
  484. package/codegen/NativePermissionsAndroidSpec.g.h +9 -9
  485. package/codegen/NativePlatformConstantsWinSpec.g.h +1 -1
  486. package/codegen/NativePushNotificationManagerIOSSpec.g.h +6 -6
  487. package/codegen/NativeSampleTurboModuleSpec.g.h +25 -19
  488. package/codegen/NativeShareModuleSpec.g.h +9 -3
  489. package/codegen/NativeUIManagerSpec.g.h +12 -12
  490. package/codegen/react/components/rnwcore/ComponentDescriptors.h +1 -2
  491. package/codegen/react/components/rnwcore/EventEmitters.cpp +21 -29
  492. package/codegen/react/components/rnwcore/EventEmitters.h +30 -30
  493. package/codegen/react/components/rnwcore/Props.cpp +47 -48
  494. package/codegen/react/components/rnwcore/Props.h +59 -166
  495. package/codegen/react/components/rnwcore/ShadowNodes.cpp +1 -2
  496. package/codegen/react/components/rnwcore/ShadowNodes.h +11 -22
  497. package/codegen/react/components/rnwcore/States.h +15 -30
  498. package/codegen/rnwcoreJSI-generated.cpp +87 -25
  499. package/codegen/rnwcoreJSI.h +1077 -417
  500. package/generate.js +6 -1
  501. package/include/Include.vcxitems +0 -1
  502. package/include/Include.vcxitems.filters +0 -3
  503. package/index.js +56 -42
  504. package/index.windows.js +56 -42
  505. package/interface.js +1 -1
  506. package/jest/local-setup.js +33 -0
  507. package/jest/mockComponent.js +4 -2
  508. package/jest/mockNativeComponent.js +1 -1
  509. package/jest/mockScrollView.js +2 -1
  510. package/jest/react-native-env.js +1 -3
  511. package/jest/setup.js +11 -8
  512. package/just-task.js +12 -5
  513. package/package.json +32 -29
  514. package/rn-get-polyfills.js +1 -1
  515. package/template/metro.config.js +2 -0
  516. package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
  517. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
  518. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
  519. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
  520. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
  521. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
  522. package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
  523. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
  524. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
  525. package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +0 -47
  526. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  527. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
  528. package/Libraries/Components/Flyout/Flyout.js.map +0 -1
  529. package/Libraries/Components/Flyout/FlyoutProps.d.ts +0 -25
  530. package/Libraries/Components/Flyout/FlyoutProps.js +0 -3
  531. package/Libraries/Components/Flyout/FlyoutProps.js.map +0 -1
  532. package/Libraries/Components/Glyph/Glyph.js.map +0 -1
  533. package/Libraries/Components/Glyph/GlyphProps.d.ts +0 -16
  534. package/Libraries/Components/Glyph/GlyphProps.js +0 -8
  535. package/Libraries/Components/Glyph/GlyphProps.js.map +0 -1
  536. package/Libraries/Components/Popup/Popup.js.map +0 -1
  537. package/Libraries/Components/Popup/PopupProps.d.ts +0 -27
  538. package/Libraries/Components/Popup/PopupProps.js +0 -8
  539. package/Libraries/Components/Popup/PopupProps.js.map +0 -1
  540. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
  541. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
  542. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
  543. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +0 -45
  544. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
  545. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
  546. package/Libraries/Components/Slider/Slider.d.ts +0 -132
  547. package/Libraries/Components/Slider/Slider.js +0 -282
  548. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
  549. package/Libraries/Interaction/Batchinator.js +0 -76
  550. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
  551. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  552. package/Libraries/Interaction/PanResponder.flow.js +0 -257
  553. package/Libraries/Lists/CellRenderMask.js +0 -155
  554. package/Libraries/Lists/ChildListCollection.js +0 -72
  555. package/Libraries/Lists/StateSafePureComponent.js +0 -85
  556. package/Libraries/Lists/VirtualizedList.d.ts +0 -347
  557. package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
  558. package/Libraries/Lists/VirtualizedListProps.js +0 -279
  559. package/Libraries/Performance/PureComponentDebug.js +0 -74
  560. package/Libraries/Reliability/UserFlow.js +0 -158
  561. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
  562. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
  563. package/Libraries/Utilities/MatrixMath.js +0 -748
  564. package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
  565. package/Libraries/Utilities/clamp.js +0 -23
  566. package/Libraries/Utilities/deprecatedPropType.js +0 -36
  567. package/Libraries/Utilities/groupByEveryN.js +0 -51
  568. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  569. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  570. package/Libraries/Utilities/truncate.js +0 -51
  571. package/Microsoft.ReactNative/Fabric/platform/react/components/image/conversions.h +0 -5
  572. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ConcreteViewShadowNode.h +0 -5
  573. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewEventEmitter.h +0 -5
  574. package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewProps.h +0 -5
  575. package/Microsoft.ReactNative/Fabric/platform/react/core/ConcreteComponentDescriptor.h +0 -5
  576. package/Microsoft.ReactNative/Fabric/platform/react/core/PropsParserContext.h +0 -5
  577. package/Microsoft.ReactNative/Fabric/platform/react/core/propsConversions.h +0 -5
  578. package/Microsoft.ReactNative/Fabric/platform/react/graphics/Color.h +0 -5
  579. package/Microsoft.ReactNative/Fabric/platform/react/imagemanager/primitives.h +0 -5
  580. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputEventEmitter.h +0 -5
  581. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputProps.h +0 -5
  582. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputShadowNode.h +0 -5
  583. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputState.h +0 -5
  584. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/conversions.h +0 -5
  585. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/primitives.h +0 -5
  586. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/propsConversions.h +0 -5
  587. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +0 -5
  588. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +0 -5
  589. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +0 -5
  590. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Float.h +0 -5
  591. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +0 -135
  592. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +0 -217
  593. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/graphics/RectangleEdges.h +0 -100
  594. package/Shared/AsyncStorage/AsyncStorageManager.cpp +0 -149
  595. package/Shared/AsyncStorage/AsyncStorageManager.h +0 -71
  596. package/Shared/AsyncStorage/FollyDynamicConverter.cpp +0 -51
  597. package/Shared/AsyncStorage/FollyDynamicConverter.h +0 -24
  598. package/Shared/AsyncStorage/KeyValueStorage.cpp +0 -248
  599. package/Shared/AsyncStorage/KeyValueStorage.h +0 -50
  600. package/Shared/AsyncStorage/StorageFileIO.cpp +0 -160
  601. package/Shared/AsyncStorage/StorageFileIO.h +0 -40
  602. package/Shared/AsyncStorageModule.h +0 -25
  603. package/Shared/Modules/AsyncStorageModule.cpp +0 -87
  604. package/Shared/Modules/AsyncStorageModuleWin32.cpp +0 -496
  605. package/Shared/Modules/AsyncStorageModuleWin32.h +0 -75
  606. package/codegen/NativeDatePickerAndroidSpec.g.h +0 -33
  607. package/codegen/NativeDevSplitBundleLoaderSpec.g.h +0 -33
  608. package/include/Shared/AsyncStorageModuleWin32Config.h +0 -15
  609. package/types/index.d.ts +0 -216
  610. package/types/modules/BatchedBridge.d.ts +0 -32
  611. package/types/modules/Codegen.d.ts +0 -74
  612. package/types/modules/Devtools.d.ts +0 -31
  613. package/types/modules/LaunchScreen.d.ts +0 -18
  614. package/types/modules/globals.d.ts +0 -577
  615. package/types/private/TimerMixin.d.ts +0 -19
  616. package/types/private/Utilities.d.ts +0 -10
  617. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -205
  618. package/types/public/Insets.d.ts +0 -15
  619. package/types/public/ReactNativeRenderer.d.ts +0 -149
  620. package/types/public/ReactNativeTypes.d.ts +0 -143
@@ -7,13 +7,46 @@
7
7
  #include <chrono>
8
8
  #include <future>
9
9
 
10
+ #include "HermesRuntimeHolder.h"
10
11
  #include "HermesSamplingProfiler.h"
11
12
  #include "HermesShim.h"
13
+ #include "IReactDispatcher.h"
14
+ #include "ReactPropertyBag.h"
12
15
  #include "Utils.h"
13
16
 
17
+ using namespace winrt::Microsoft::ReactNative;
18
+ using namespace facebook::react;
19
+
14
20
  namespace Microsoft::ReactNative {
15
21
 
16
22
  namespace {
23
+
24
+ // Implements an awaiter for Mso::DispatchQueue
25
+ auto resume_in_dispatcher(const IReactDispatcher &dispatcher) noexcept {
26
+ struct awaitable {
27
+ awaitable(const IReactDispatcher &dispatcher) noexcept : dispatcher_(dispatcher) {}
28
+
29
+ bool await_ready() const noexcept {
30
+ return false;
31
+ }
32
+
33
+ void await_resume() const noexcept {}
34
+
35
+ void await_suspend(std::experimental::coroutine_handle<> resume) noexcept {
36
+ callback_ = [context = resume.address()]() noexcept {
37
+ std::experimental::coroutine_handle<>::from_address(context)();
38
+ };
39
+ dispatcher_.Post(std::move(callback_));
40
+ }
41
+
42
+ private:
43
+ IReactDispatcher dispatcher_;
44
+ ReactDispatcherCallback callback_;
45
+ };
46
+
47
+ return awaitable{dispatcher};
48
+ }
49
+
17
50
  std::future<std::string> getTraceFilePath() noexcept {
18
51
  auto hermesDataPath = co_await Microsoft::React::getApplicationDataPath(L"Hermes");
19
52
  std::ostringstream os;
@@ -23,18 +56,27 @@ std::future<std::string> getTraceFilePath() noexcept {
23
56
  os << hermesDataPath << "\\cpu_" << now << ".cpuprofile";
24
57
  co_return os.str();
25
58
  }
59
+
26
60
  } // namespace
27
61
 
28
- bool HermesSamplingProfiler::s_isStarted = false;
62
+ std::atomic_bool HermesSamplingProfiler::s_isStarted{false};
29
63
  std::string HermesSamplingProfiler::s_lastTraceFilePath;
30
64
 
31
65
  std::string HermesSamplingProfiler::GetLastTraceFilePath() noexcept {
32
66
  return s_lastTraceFilePath;
33
67
  }
34
68
 
35
- winrt::fire_and_forget HermesSamplingProfiler::Start() noexcept {
36
- if (!s_isStarted) {
37
- s_isStarted = true;
69
+ winrt::fire_and_forget HermesSamplingProfiler::Start(
70
+ Mso::CntPtr<Mso::React::IReactContext> const &reactContext) noexcept {
71
+ bool expectedIsStarted = false;
72
+ if (s_isStarted.compare_exchange_strong(expectedIsStarted, true)) {
73
+ IReactDispatcher jsDispatcher = implementation::ReactDispatcher::GetJSDispatcher(reactContext->Properties());
74
+ ReactPropertyBag propertyBag = ReactPropertyBag(reactContext->Properties());
75
+
76
+ co_await resume_in_dispatcher(jsDispatcher);
77
+ std::shared_ptr<HermesRuntimeHolder> hermesRuntimeHolder = HermesRuntimeHolder::loadFrom(propertyBag);
78
+ hermesRuntimeHolder->addToProfiling();
79
+
38
80
  co_await winrt::resume_background();
39
81
  HermesShim::enableSamplingProfiler();
40
82
  }
@@ -42,20 +84,31 @@ winrt::fire_and_forget HermesSamplingProfiler::Start() noexcept {
42
84
  co_return;
43
85
  }
44
86
 
45
- std::future<std::string> HermesSamplingProfiler::Stop() noexcept {
46
- if (s_isStarted) {
47
- s_isStarted = false;
87
+ std::future<std::string> HermesSamplingProfiler::Stop(
88
+ Mso::CntPtr<Mso::React::IReactContext> const &reactContext) noexcept {
89
+ bool expectedIsStarted = true;
90
+ if (s_isStarted.compare_exchange_strong(expectedIsStarted, false)) {
91
+ IReactDispatcher jsDispatcher = implementation::ReactDispatcher::GetJSDispatcher(reactContext->Properties());
92
+ ReactPropertyBag propertyBag = ReactPropertyBag(reactContext->Properties());
93
+
48
94
  co_await winrt::resume_background();
49
95
  HermesShim::disableSamplingProfiler();
96
+
50
97
  s_lastTraceFilePath = co_await getTraceFilePath();
51
98
  HermesShim::dumpSampledTraceToFile(s_lastTraceFilePath);
99
+
100
+ co_await resume_in_dispatcher(jsDispatcher);
101
+ std::shared_ptr<HermesRuntimeHolder> hermesRuntimeHolder = HermesRuntimeHolder::loadFrom(propertyBag);
102
+ hermesRuntimeHolder->removeFromProfiling();
103
+
104
+ co_await winrt::resume_background();
52
105
  }
53
106
 
54
107
  co_return s_lastTraceFilePath;
55
108
  }
56
109
 
57
110
  bool HermesSamplingProfiler::IsStarted() noexcept {
58
- return s_isStarted;
111
+ return s_isStarted.load();
59
112
  }
60
113
 
61
114
  } // namespace Microsoft::ReactNative
@@ -3,19 +3,22 @@
3
3
 
4
4
  #pragma once
5
5
 
6
+ #include <ReactHost/React.h>
7
+ #include <atomic>
8
+ #include <future>
6
9
  #include <string>
7
10
 
8
11
  namespace Microsoft::ReactNative {
9
12
 
10
13
  class HermesSamplingProfiler final {
11
14
  public:
12
- static winrt::fire_and_forget Start() noexcept;
13
- static std::future<std::string> Stop() noexcept;
15
+ static winrt::fire_and_forget Start(Mso::CntPtr<Mso::React::IReactContext> const &reactContext) noexcept;
16
+ static std::future<std::string> Stop(Mso::CntPtr<Mso::React::IReactContext> const &reactContext) noexcept;
14
17
  static std::string GetLastTraceFilePath() noexcept;
15
18
  static bool IsStarted() noexcept;
16
19
 
17
20
  private:
18
- static bool s_isStarted;
21
+ static std::atomic_bool s_isStarted;
19
22
  static std::string s_lastTraceFilePath;
20
23
  };
21
24
 
@@ -4,115 +4,119 @@
4
4
  #include "HermesShim.h"
5
5
  #include "Crash.h"
6
6
 
7
- namespace Microsoft::ReactNative::HermesShim {
8
-
9
- static HMODULE s_hermesModule{nullptr};
10
- static decltype(&facebook::hermes::makeHermesRuntime) s_makeHermesRuntime{nullptr};
11
- static decltype(&facebook::hermes::HermesRuntime::enableSamplingProfiler) s_enableSamplingProfiler{nullptr};
12
- static decltype(&facebook::hermes::HermesRuntime::disableSamplingProfiler) s_disableSamplingProfiler{nullptr};
13
- static decltype(&facebook::hermes::HermesRuntime::dumpSampledTraceToFile) s_dumpSampledTraceToFile{nullptr};
14
- static decltype(&facebook::hermes::makeHermesRuntimeWithWER) s_makeHermesRuntimeWithWER{nullptr};
15
- static decltype(&facebook::hermes::hermesCrashHandler) s_hermesCrashHandler{nullptr};
16
-
17
- #if _M_X64
18
- constexpr const char *makeHermesRuntimeSymbol =
19
- "?makeHermesRuntime@hermes@facebook@@YA?AV?$unique_ptr@VHermesRuntime@hermes@facebook@@U?$default_delete@VHermesRuntime@hermes@facebook@@@std@@@std@@AEBVRuntimeConfig@vm@1@@Z";
20
- constexpr const char *enableSamlingProfilerSymbol = "?enableSamplingProfiler@HermesRuntime@hermes@facebook@@SAXXZ";
21
- constexpr const char *disableSamlingProfilerSymbol = "?disableSamplingProfiler@HermesRuntime@hermes@facebook@@SAXXZ";
22
- constexpr const char *dumpSampledTraceToFileSymbol =
23
- "?dumpSampledTraceToFile@HermesRuntime@hermes@facebook@@SAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z";
24
- constexpr const char *makeHermesRuntimeWithWERSymbol =
25
- "?makeHermesRuntimeWithWER@hermes@facebook@@YA?AV?$unique_ptr@VHermesRuntime@hermes@facebook@@U?$default_delete@VHermesRuntime@hermes@facebook@@@std@@@std@@XZ";
26
- constexpr const char *hermesCrashHandlerSymbol = "?hermesCrashHandler@hermes@facebook@@YAXAEAVHermesRuntime@12@H@Z";
27
- #endif
28
-
29
- #if _M_ARM64
30
- constexpr const char *makeHermesRuntimeSymbol =
31
- "?makeHermesRuntime@hermes@facebook@@YA?AV?$unique_ptr@VHermesRuntime@hermes@facebook@@U?$default_delete@VHermesRuntime@hermes@facebook@@@std@@@std@@AEBVRuntimeConfig@vm@1@@Z";
32
- constexpr const char *enableSamlingProfilerSymbol = "?enableSamplingProfiler@HermesRuntime@hermes@facebook@@SAXXZ";
33
- constexpr const char *disableSamlingProfilerSymbol = "?disableSamplingProfiler@HermesRuntime@hermes@facebook@@SAXXZ";
34
- constexpr const char *dumpSampledTraceToFileSymbol =
35
- "?dumpSampledTraceToFile@HermesRuntime@hermes@facebook@@SAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z";
36
- constexpr const char *makeHermesRuntimeWithWERSymbol =
37
- "?makeHermesRuntimeWithWER@hermes@facebook@@YA?AV?$unique_ptr@VHermesRuntime@hermes@facebook@@U?$default_delete@VHermesRuntime@hermes@facebook@@@std@@@std@@XZ";
38
- constexpr const char *hermesCrashHandlerSymbol = "?hermesCrashHandler@hermes@facebook@@YAXAEAVHermesRuntime@12@H@Z";
39
- #endif
40
-
41
- #if _M_IX86
42
- constexpr const char *makeHermesRuntimeSymbol =
43
- "?makeHermesRuntime@hermes@facebook@@YA?AV?$unique_ptr@VHermesRuntime@hermes@facebook@@U?$default_delete@VHermesRuntime@hermes@facebook@@@std@@@std@@ABVRuntimeConfig@vm@1@@Z";
44
- constexpr const char *enableSamlingProfilerSymbol = "?enableSamplingProfiler@HermesRuntime@hermes@facebook@@SAXXZ";
45
- constexpr const char *disableSamlingProfilerSymbol = "?disableSamplingProfiler@HermesRuntime@hermes@facebook@@SAXXZ";
46
- constexpr const char *dumpSampledTraceToFileSymbol =
47
- "?dumpSampledTraceToFile@HermesRuntime@hermes@facebook@@SAXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z";
48
- constexpr const char *makeHermesRuntimeWithWERSymbol =
49
- "?makeHermesRuntimeWithWER@hermes@facebook@@YA?AV?$unique_ptr@VHermesRuntime@hermes@facebook@@U?$default_delete@VHermesRuntime@hermes@facebook@@@std@@@std@@XZ";
50
- constexpr const char *hermesCrashHandlerSymbol = "?hermesCrashHandler@hermes@facebook@@YAXAAVHermesRuntime@12@H@Z";
51
- #endif
52
-
53
- static std::once_flag s_hermesLoading;
54
-
55
- static void EnsureHermesLoaded() noexcept {
7
+ #define DECLARE_SYMBOL(symbol, importedSymbol) \
8
+ decltype(&importedSymbol) s_##symbol{}; \
9
+ constexpr const char symbol##Symbol[] = #importedSymbol;
10
+
11
+ #define INIT_SYMBOL(symbol) \
12
+ s_##symbol = reinterpret_cast<decltype(s_##symbol)>(GetProcAddress(s_hermesModule, symbol##Symbol)); \
13
+ VerifyElseCrash(s_##symbol);
14
+
15
+ #define CRASH_ON_ERROR(result) VerifyElseCrash(result == hermes_ok);
16
+
17
+ namespace Microsoft::ReactNative {
18
+
19
+ namespace {
20
+
21
+ DECLARE_SYMBOL(createRuntime, hermes_create_runtime);
22
+ DECLARE_SYMBOL(createRuntimeWithWER, hermes_create_runtime_with_wer);
23
+ DECLARE_SYMBOL(deleteRuntime, hermes_delete_runtime);
24
+ DECLARE_SYMBOL(getNonAbiSafeRuntime, hermes_get_non_abi_safe_runtime);
25
+ DECLARE_SYMBOL(dumpCrashData, hermes_dump_crash_data);
26
+ DECLARE_SYMBOL(samplingProfilerEnable, hermes_sampling_profiler_enable);
27
+ DECLARE_SYMBOL(samplingProfilerDisable, hermes_sampling_profiler_disable);
28
+ DECLARE_SYMBOL(samplingProfilerAdd, hermes_sampling_profiler_add);
29
+ DECLARE_SYMBOL(samplingProfilerRemove, hermes_sampling_profiler_remove);
30
+ DECLARE_SYMBOL(samplingProfilerDumpToFile, hermes_sampling_profiler_dump_to_file);
31
+
32
+ HMODULE s_hermesModule{};
33
+ std::once_flag s_hermesLoading;
34
+
35
+ void EnsureHermesLoaded() noexcept {
56
36
  std::call_once(s_hermesLoading, []() {
57
37
  VerifyElseCrashSz(!s_hermesModule, "Invalid state: \"hermes.dll\" being loaded again.");
58
38
 
59
39
  s_hermesModule = LoadLibrary(L"hermes.dll");
60
40
  VerifyElseCrashSz(s_hermesModule, "Could not load \"hermes.dll\"");
61
41
 
62
- s_makeHermesRuntime =
63
- reinterpret_cast<decltype(s_makeHermesRuntime)>(GetProcAddress(s_hermesModule, makeHermesRuntimeSymbol));
64
- VerifyElseCrash(s_makeHermesRuntime);
42
+ INIT_SYMBOL(createRuntime);
43
+ INIT_SYMBOL(createRuntimeWithWER);
44
+ INIT_SYMBOL(deleteRuntime);
45
+ INIT_SYMBOL(getNonAbiSafeRuntime);
46
+ INIT_SYMBOL(dumpCrashData);
47
+ INIT_SYMBOL(samplingProfilerEnable);
48
+ INIT_SYMBOL(samplingProfilerDisable);
49
+ INIT_SYMBOL(samplingProfilerAdd);
50
+ INIT_SYMBOL(samplingProfilerRemove);
51
+ INIT_SYMBOL(samplingProfilerDumpToFile);
52
+ });
53
+ }
54
+
55
+ struct RuntimeDeleter {
56
+ RuntimeDeleter(std::shared_ptr<const HermesShim> &&hermesShimPtr) noexcept
57
+ : hermesShimPtr_(std::move(hermesShimPtr)) {}
65
58
 
66
- s_enableSamplingProfiler = reinterpret_cast<decltype(s_enableSamplingProfiler)>(
67
- GetProcAddress(s_hermesModule, enableSamlingProfilerSymbol));
68
- VerifyElseCrash(s_enableSamplingProfiler);
59
+ void operator()(facebook::hermes::HermesRuntime * /*runtime*/) {
60
+ // Do nothing. Instead, we rely on the RuntimeDeleter destructor.
61
+ }
69
62
 
70
- s_disableSamplingProfiler = reinterpret_cast<decltype(s_disableSamplingProfiler)>(
71
- GetProcAddress(s_hermesModule, disableSamlingProfilerSymbol));
72
- VerifyElseCrash(s_disableSamplingProfiler);
63
+ private:
64
+ std::shared_ptr<const HermesShim> hermesShimPtr_;
65
+ };
73
66
 
74
- s_dumpSampledTraceToFile = reinterpret_cast<decltype(s_dumpSampledTraceToFile)>(
75
- GetProcAddress(s_hermesModule, dumpSampledTraceToFileSymbol));
76
- VerifyElseCrash(s_dumpSampledTraceToFile);
67
+ } // namespace
77
68
 
78
- s_makeHermesRuntimeWithWER = reinterpret_cast<decltype(s_makeHermesRuntimeWithWER)>(
79
- GetProcAddress(s_hermesModule, makeHermesRuntimeWithWERSymbol));
80
- VerifyElseCrash(s_makeHermesRuntimeWithWER);
69
+ HermesShim::HermesShim(hermes_runtime runtime) noexcept : runtime_(runtime) {
70
+ CRASH_ON_ERROR(s_getNonAbiSafeRuntime(runtime_, reinterpret_cast<void **>(&nonAbiSafeRuntime_)));
71
+ }
81
72
 
82
- s_hermesCrashHandler =
83
- reinterpret_cast<decltype(s_hermesCrashHandler)>(GetProcAddress(s_hermesModule, hermesCrashHandlerSymbol));
84
- VerifyElseCrash(s_hermesCrashHandler);
85
- });
73
+ HermesShim::~HermesShim() {
74
+ CRASH_ON_ERROR(s_deleteRuntime(runtime_));
86
75
  }
87
76
 
88
- std::unique_ptr<facebook::hermes::HermesRuntime> makeHermesRuntime(const hermes::vm::RuntimeConfig &runtimeConfig) {
77
+ /*static*/ std::shared_ptr<HermesShim> HermesShim::make() noexcept {
89
78
  EnsureHermesLoaded();
90
- return s_makeHermesRuntime(runtimeConfig);
79
+ hermes_runtime runtime{};
80
+ CRASH_ON_ERROR(s_createRuntime(&runtime));
81
+ return std::make_shared<HermesShim>(runtime);
91
82
  }
92
83
 
93
- void enableSamplingProfiler() {
84
+ /*static*/
85
+ std::shared_ptr<HermesShim> HermesShim::makeWithWER() noexcept {
94
86
  EnsureHermesLoaded();
95
- s_enableSamplingProfiler();
87
+ hermes_runtime runtime{};
88
+ CRASH_ON_ERROR(s_createRuntimeWithWER(&runtime));
89
+ return std::make_shared<HermesShim>(runtime);
96
90
  }
97
91
 
98
- void disableSamplingProfiler() {
99
- EnsureHermesLoaded();
100
- s_disableSamplingProfiler();
92
+ std::shared_ptr<facebook::hermes::HermesRuntime> HermesShim::getRuntime() const noexcept {
93
+ return std::shared_ptr<facebook::hermes::HermesRuntime>(nonAbiSafeRuntime_, RuntimeDeleter(shared_from_this()));
101
94
  }
102
95
 
103
- void dumpSampledTraceToFile(const std::string &fileName) {
96
+ void HermesShim::dumpCrashData(int fileDescriptor) const noexcept {
97
+ CRASH_ON_ERROR(s_dumpCrashData(runtime_, fileDescriptor));
98
+ }
99
+
100
+ /*static*/ void HermesShim::enableSamplingProfiler() noexcept {
104
101
  EnsureHermesLoaded();
105
- s_dumpSampledTraceToFile(fileName);
102
+ CRASH_ON_ERROR(s_samplingProfilerEnable());
106
103
  }
107
104
 
108
- std::unique_ptr<facebook::hermes::HermesRuntime> makeHermesRuntimeWithWER() {
105
+ /*static*/ void HermesShim::disableSamplingProfiler() noexcept {
109
106
  EnsureHermesLoaded();
110
- return s_makeHermesRuntimeWithWER();
107
+ CRASH_ON_ERROR(s_samplingProfilerDisable());
111
108
  }
112
109
 
113
- void hermesCrashHandler(facebook::hermes::HermesRuntime &runtime, int fileDescriptor) {
110
+ /*static*/ void HermesShim::dumpSampledTraceToFile(const std::string &fileName) noexcept {
114
111
  EnsureHermesLoaded();
115
- s_hermesCrashHandler(runtime, fileDescriptor);
112
+ CRASH_ON_ERROR(s_samplingProfilerDumpToFile(fileName.c_str()));
113
+ }
114
+ void HermesShim::addToProfiling() const noexcept {
115
+ CRASH_ON_ERROR(s_samplingProfilerAdd(runtime_));
116
+ }
117
+
118
+ void HermesShim::removeFromProfiling() const noexcept {
119
+ CRASH_ON_ERROR(s_samplingProfilerRemove(runtime_));
116
120
  }
117
121
 
118
- } // namespace Microsoft::ReactNative::HermesShim
122
+ } // namespace Microsoft::ReactNative
@@ -9,13 +9,33 @@
9
9
  //! use pure delay-loading to achieve this, since WACK will detect the
10
10
  //! non-present DLL. Functions in this namespace shim to the Hermes DLL via
11
11
  //! GetProcAddress.
12
- namespace Microsoft::ReactNative::HermesShim {
12
+ namespace Microsoft::ReactNative {
13
13
 
14
- std::unique_ptr<facebook::hermes::HermesRuntime> makeHermesRuntime(const hermes::vm::RuntimeConfig &runtimeConfig);
15
- void enableSamplingProfiler();
16
- void disableSamplingProfiler();
17
- void dumpSampledTraceToFile(const std::string &fileName);
18
- std::unique_ptr<facebook::hermes::HermesRuntime> makeHermesRuntimeWithWER();
19
- void hermesCrashHandler(facebook::hermes::HermesRuntime &runtime, int fileDescriptor);
14
+ class HermesShim : public std::enable_shared_from_this<HermesShim> {
15
+ public:
16
+ HermesShim(hermes_runtime runtimeAbiPtr) noexcept;
17
+ ~HermesShim();
20
18
 
21
- } // namespace Microsoft::ReactNative::HermesShim
19
+ static std::shared_ptr<HermesShim> make() noexcept;
20
+ static std::shared_ptr<HermesShim> makeWithWER() noexcept;
21
+
22
+ std::shared_ptr<facebook::hermes::HermesRuntime> getRuntime() const noexcept;
23
+
24
+ void dumpCrashData(int fileDescriptor) const noexcept;
25
+
26
+ static void enableSamplingProfiler() noexcept;
27
+ static void disableSamplingProfiler() noexcept;
28
+ static void dumpSampledTraceToFile(const std::string &fileName) noexcept;
29
+ void addToProfiling() const noexcept;
30
+ void removeFromProfiling() const noexcept;
31
+
32
+ HermesShim(const HermesShim &) = delete;
33
+ HermesShim &operator=(const HermesShim &) = delete;
34
+
35
+ private:
36
+ // It must be a raw pointer to avoid circular reference.
37
+ facebook::hermes::HermesRuntime *nonAbiSafeRuntime_{};
38
+ hermes_runtime runtime_{};
39
+ };
40
+
41
+ } // namespace Microsoft::ReactNative
@@ -446,14 +446,14 @@ bool ChakraRuntime::hasProperty(const facebook::jsi::Object &obj, const facebook
446
446
  }
447
447
 
448
448
  void ChakraRuntime::setPropertyValue(
449
- facebook::jsi::Object &object,
449
+ const facebook::jsi::Object &object,
450
450
  const facebook::jsi::PropNameID &name,
451
451
  const facebook::jsi::Value &value) {
452
452
  SetProperty(GetJsRef(object), GetJsRef(name), ToJsValueRef(value));
453
453
  }
454
454
 
455
455
  void ChakraRuntime::setPropertyValue(
456
- facebook::jsi::Object &object,
456
+ const facebook::jsi::Object &object,
457
457
  const facebook::jsi::String &name,
458
458
  const facebook::jsi::Value &value) {
459
459
  SetProperty(GetJsRef(object), GetPropertyIdFromString(GetJsRef(name)), ToJsValueRef(value));
@@ -545,7 +545,7 @@ facebook::jsi::WeakObject ChakraRuntime::createWeakObject(const facebook::jsi::O
545
545
  return make<facebook::jsi::WeakObject>(CloneChakraPointerValue(getPointerValue(object)));
546
546
  }
547
547
 
548
- facebook::jsi::Value ChakraRuntime::lockWeakObject(facebook::jsi::WeakObject &weakObject) {
548
+ facebook::jsi::Value ChakraRuntime::lockWeakObject(const facebook::jsi::WeakObject &weakObject) {
549
549
  // We need to make a copy of the ChakraObjectRef held within weakObj's
550
550
  // member PointerValue for the returned jsi::Value here.
551
551
  return ToJsiValue(GetJsRef(weakObject));
@@ -585,7 +585,10 @@ facebook::jsi::Value ChakraRuntime::getValueAtIndex(const facebook::jsi::Array &
585
585
  return ToJsiValue(GetIndexedProperty(GetJsRef(arr), static_cast<int>(index)));
586
586
  }
587
587
 
588
- void ChakraRuntime::setValueAtIndexImpl(facebook::jsi::Array &arr, size_t index, const facebook::jsi::Value &value) {
588
+ void ChakraRuntime::setValueAtIndexImpl(
589
+ const facebook::jsi::Array &arr,
590
+ size_t index,
591
+ const facebook::jsi::Value &value) {
589
592
  assert(isArray(arr));
590
593
  assert(index <= static_cast<size_t>((std::numeric_limits<int>::max)()));
591
594
 
@@ -99,11 +99,11 @@ class ChakraRuntime : public facebook::jsi::Runtime, public ChakraApi, ChakraApi
99
99
  bool hasProperty(const facebook::jsi::Object &obj, const facebook::jsi::PropNameID &name) override;
100
100
  bool hasProperty(const facebook::jsi::Object &obj, const facebook::jsi::String &name) override;
101
101
  void setPropertyValue(
102
- facebook::jsi::Object &obj,
102
+ const facebook::jsi::Object &obj,
103
103
  const facebook::jsi::PropNameID &name,
104
104
  const facebook::jsi::Value &value) override;
105
105
  void setPropertyValue(
106
- facebook::jsi::Object &obj,
106
+ const facebook::jsi::Object &obj,
107
107
  const facebook::jsi::String &name,
108
108
  const facebook::jsi::Value &value) override;
109
109
 
@@ -117,7 +117,7 @@ class ChakraRuntime : public facebook::jsi::Runtime, public ChakraApi, ChakraApi
117
117
  facebook::jsi::Array getPropertyNames(const facebook::jsi::Object &obj) override;
118
118
 
119
119
  facebook::jsi::WeakObject createWeakObject(const facebook::jsi::Object &obj) override;
120
- facebook::jsi::Value lockWeakObject(facebook::jsi::WeakObject &weakObj) override;
120
+ facebook::jsi::Value lockWeakObject(const facebook::jsi::WeakObject &weakObj) override;
121
121
 
122
122
  facebook::jsi::Array createArray(size_t length) override;
123
123
  size_t size(const facebook::jsi::Array &arr) override;
@@ -127,7 +127,7 @@ class ChakraRuntime : public facebook::jsi::Runtime, public ChakraApi, ChakraApi
127
127
  // the ArrayBuffer for the purpose of garbage collection.
128
128
  uint8_t *data(const facebook::jsi::ArrayBuffer &arrBuf) override;
129
129
  facebook::jsi::Value getValueAtIndex(const facebook::jsi::Array &arr, size_t index) override;
130
- void setValueAtIndexImpl(facebook::jsi::Array &arr, size_t index, const facebook::jsi::Value &value) override;
130
+ void setValueAtIndexImpl(const facebook::jsi::Array &arr, size_t index, const facebook::jsi::Value &value) override;
131
131
 
132
132
  facebook::jsi::Function createFunctionFromHostFunction(
133
133
  const facebook::jsi::PropNameID &name,
@@ -8,6 +8,8 @@
8
8
  #include "RuntimeHolder.h"
9
9
  #include "ScriptStore.h"
10
10
 
11
+ #include <cxxreact/MessageQueueThread.h>
12
+
11
13
  namespace Microsoft::JSI {
12
14
 
13
15
  class NapiJsiV8RuntimeHolder : public Microsoft::JSI::RuntimeHolderLazyInit {
@@ -11,7 +11,7 @@ namespace Microsoft::JSI {
11
11
  // a. lazily create a JSI Runtime on the first call to getRuntime
12
12
  // b. subsequent calls to getRuntime should return the Runtime created in (a)
13
13
 
14
- // Note :: All calls to getRuntime() should happen on the same thread unless you are sure that
14
+ // Note: all calls to getRuntime() should happen on the same thread unless you are sure that
15
15
  // the underlying Runtime instance is thread safe.
16
16
 
17
17
  struct RuntimeHolderLazyInit {
@@ -21,7 +21,7 @@ struct RuntimeHolderLazyInit {
21
21
  virtual void teardown() noexcept {};
22
22
 
23
23
  // You can call this when a crash happens to attempt recording additional data
24
- // The fd supplied is a raw file stream an implementation might write JSON to
24
+ // The fileDescriptor supplied is a raw file stream an implementation might write JSON to.
25
25
  virtual void crashHandler(int fileDescriptor) noexcept {};
26
26
  };
27
27
 
@@ -33,7 +33,7 @@ void InitializeLogging(NativeLoggingHook &&hook) {
33
33
  JSNativeHooks::loggingHook = LogHook;
34
34
  JSNativeHooks::nowHook = nativePerformanceNow;
35
35
 
36
- ReactMarker::logTaggedMarker = logMarker;
36
+ ReactMarker::logTaggedMarkerImpl = logMarker;
37
37
  }
38
38
 
39
39
  } // namespace react
@@ -12,9 +12,6 @@
12
12
  // React Native
13
13
  #include <cxxreact/JsArgumentHelpers.h>
14
14
 
15
- // Boost Libriaries
16
- #include <boost/uuid/uuid_io.hpp>
17
-
18
15
  // Windows API
19
16
  #include <winrt/Windows.Foundation.h>
20
17
  #include <winrt/Windows.Security.Cryptography.h>
@@ -36,6 +33,7 @@ using winrt::Microsoft::ReactNative::IReactPropertyBag;
36
33
  using winrt::Microsoft::ReactNative::ReactNonAbiValue;
37
34
  using winrt::Microsoft::ReactNative::ReactPropertyBag;
38
35
  using winrt::Microsoft::ReactNative::ReactPropertyId;
36
+ using winrt::Windows::Foundation::GuidHelper;
39
37
  using winrt::Windows::Foundation::IInspectable;
40
38
  using winrt::Windows::Foundation::Uri;
41
39
  using winrt::Windows::Security::Cryptography::CryptographicBuffer;
@@ -251,7 +249,8 @@ void MemoryBlobPersistor::StoreMessage(vector<uint8_t> &&message, string &&blobI
251
249
  }
252
250
 
253
251
  string MemoryBlobPersistor::StoreMessage(vector<uint8_t> &&message) noexcept {
254
- auto blobId = boost::uuids::to_string(m_guidGenerator());
252
+ // substr(1, 36) strips curly braces from a GUID.
253
+ auto blobId = winrt::to_string(winrt::to_hstring(GuidHelper::CreateNewGuid())).substr(1, 36);
255
254
 
256
255
  scoped_lock lock{m_mutex};
257
256
  m_blobs.insert_or_assign(blobId, std::move(message));
@@ -11,9 +11,6 @@
11
11
  // React Native
12
12
  #include <cxxreact/CxxModule.h>
13
13
 
14
- // Boost Libraries
15
- #include <boost/uuid/uuid_generators.hpp>
16
-
17
14
  // Windows API
18
15
  #include <winrt/base.h>
19
16
 
@@ -29,7 +26,6 @@ namespace Microsoft::React {
29
26
  class MemoryBlobPersistor final : public IBlobPersistor {
30
27
  std::unordered_map<std::string, std::vector<uint8_t>> m_blobs;
31
28
  std::mutex m_mutex;
32
- boost::uuids::random_generator m_guidGenerator;
33
29
 
34
30
  public:
35
31
  #pragma region IBlobPersistor
@@ -37,26 +37,22 @@ namespace Microsoft::React::Networking {
37
37
 
38
38
  #pragma region OriginPolicyHttpFilter
39
39
 
40
- #pragma region CaseInsensitiveComparer
40
+ #pragma region ConstWcharComparer
41
41
 
42
- bool OriginPolicyHttpFilter::CaseInsensitiveComparer::operator()(const wchar_t *a, const wchar_t *b) const {
42
+ bool OriginPolicyHttpFilter::ConstWcharComparer::operator()(const wchar_t *a, const wchar_t *b) const {
43
43
  return _wcsicmp(a, b) < 0;
44
44
  }
45
45
 
46
- bool OriginPolicyHttpFilter::CaseInsensitiveComparer::operator()(const wstring &a, const wstring &b) const {
47
- return _wcsicmp(a.c_str(), b.c_str()) < 0;
48
- }
49
-
50
- #pragma endregion CaseInsensitiveComparer
46
+ #pragma endregion ConstWcharComparer
51
47
 
52
48
  // https://fetch.spec.whatwg.org/#forbidden-method
53
- /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::CaseInsensitiveComparer>
54
- OriginPolicyHttpFilter::s_forbiddenMethods = {L"CONNECT", L"TRACE", L"TRACK"};
49
+ /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer> OriginPolicyHttpFilter::s_forbiddenMethods =
50
+ {L"CONNECT", L"TRACE", L"TRACK"};
55
51
 
56
- /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::CaseInsensitiveComparer>
52
+ /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer>
57
53
  OriginPolicyHttpFilter::s_simpleCorsMethods = {L"GET", L"HEAD", L"POST"};
58
54
 
59
- /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::CaseInsensitiveComparer>
55
+ /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer>
60
56
  OriginPolicyHttpFilter::s_simpleCorsRequestHeaderNames = {
61
57
  L"Accept",
62
58
  L"Accept-Language",
@@ -68,11 +64,11 @@ bool OriginPolicyHttpFilter::CaseInsensitiveComparer::operator()(const wstring &
68
64
  L"Viewport-Width",
69
65
  L"Width"};
70
66
 
71
- /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::CaseInsensitiveComparer>
67
+ /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer>
72
68
  OriginPolicyHttpFilter::s_simpleCorsResponseHeaderNames =
73
69
  {L"Cache-Control", L"Content-Language", L"Content-Type", L"Expires", L"Last-Modified", L"Pragma"};
74
70
 
75
- /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::CaseInsensitiveComparer>
71
+ /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer>
76
72
  OriginPolicyHttpFilter::s_simpleCorsContentTypeValues = {
77
73
  L"application/x-www-form-urlencoded",
78
74
  L"multipart/form-data",
@@ -80,7 +76,7 @@ bool OriginPolicyHttpFilter::CaseInsensitiveComparer::operator()(const wstring &
80
76
 
81
77
  // https://fetch.spec.whatwg.org/#forbidden-header-name
82
78
  // Chromium still bans "User-Agent" due to https://crbug.com/571722
83
- /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::CaseInsensitiveComparer>
79
+ /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer>
84
80
  OriginPolicyHttpFilter::s_corsForbiddenRequestHeaderNames = {
85
81
  L"Accept-Charset",
86
82
  L"Accept-Encoding",
@@ -103,13 +99,13 @@ bool OriginPolicyHttpFilter::CaseInsensitiveComparer::operator()(const wstring &
103
99
  L"Upgrade",
104
100
  L"Via"};
105
101
 
106
- /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::CaseInsensitiveComparer>
102
+ /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer>
107
103
  OriginPolicyHttpFilter::s_cookieSettingResponseHeaders = {
108
104
  L"Set-Cookie",
109
105
  L"Set-Cookie2", // Deprecated by the spec, but probably still used
110
106
  };
111
107
 
112
- /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::CaseInsensitiveComparer>
108
+ /*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer>
113
109
  OriginPolicyHttpFilter::s_corsForbiddenRequestHeaderNamePrefixes = {L"Proxy-", L"Sec-"};
114
110
 
115
111
  /*static*/ Uri OriginPolicyHttpFilter::s_origin{nullptr};
@@ -297,7 +293,7 @@ bool OriginPolicyHttpFilter::CaseInsensitiveComparer::operator()(const wstring &
297
293
  }
298
294
 
299
295
  /*static*/ OriginPolicyHttpFilter::AccessControlValues OriginPolicyHttpFilter::ExtractAccessControlValues(
300
- IMap<hstring, hstring> const &headers) {
296
+ winrt::Windows::Foundation::Collections::IMap<hstring, hstring> const &headers) {
301
297
  using std::wregex;
302
298
  using std::wsregex_token_iterator;
303
299