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
@@ -24,8 +24,6 @@ using Microsoft::Common::Utilities::CheckedReinterpretCast;
24
24
  using Mso::DispatchQueue;
25
25
 
26
26
  using std::function;
27
- using std::lock_guard;
28
- using std::mutex;
29
27
  using std::string;
30
28
  using std::vector;
31
29
 
@@ -33,8 +31,6 @@ using winrt::fire_and_forget;
33
31
  using winrt::hresult;
34
32
  using winrt::hresult_error;
35
33
  using winrt::hstring;
36
- using winrt::resume_background;
37
- using winrt::resume_on_signal;
38
34
  using winrt::Windows::Foundation::IAsyncAction;
39
35
  using winrt::Windows::Foundation::Uri;
40
36
  using winrt::Windows::Networking::Sockets::IMessageWebSocket;
@@ -93,9 +89,9 @@ DispatchQueue GetCurrentOrSerialQueue() noexcept {
93
89
 
94
90
  namespace Microsoft::React::Networking {
95
91
 
96
- #pragma region WinRTWebSocketResource2
92
+ #pragma region WinRTWebSocketResource
97
93
 
98
- WinRTWebSocketResource2::WinRTWebSocketResource2(
94
+ WinRTWebSocketResource::WinRTWebSocketResource(
99
95
  IMessageWebSocket &&socket,
100
96
  IDataWriter &&writer,
101
97
  vector<ChainValidationResult> &&certExceptions,
@@ -110,22 +106,22 @@ WinRTWebSocketResource2::WinRTWebSocketResource2(
110
106
  }
111
107
 
112
108
  // private
113
- WinRTWebSocketResource2::WinRTWebSocketResource2(
109
+ WinRTWebSocketResource::WinRTWebSocketResource(
114
110
  IMessageWebSocket &&socket,
115
111
  vector<ChainValidationResult> &&certExceptions)
116
- : WinRTWebSocketResource2(
112
+ : WinRTWebSocketResource(
117
113
  std::move(socket),
118
114
  DataWriter{socket.OutputStream()},
119
115
  std::move(certExceptions),
120
116
  GetCurrentOrSerialQueue()) {}
121
117
 
122
- WinRTWebSocketResource2::WinRTWebSocketResource2(vector<ChainValidationResult> &&certExceptions)
123
- : WinRTWebSocketResource2(MessageWebSocket{}, std::move(certExceptions)) {}
118
+ WinRTWebSocketResource::WinRTWebSocketResource(vector<ChainValidationResult> &&certExceptions)
119
+ : WinRTWebSocketResource(MessageWebSocket{}, std::move(certExceptions)) {}
124
120
 
125
- WinRTWebSocketResource2::~WinRTWebSocketResource2() noexcept /*override*/
121
+ WinRTWebSocketResource::~WinRTWebSocketResource() noexcept /*override*/
126
122
  {}
127
123
 
128
- void WinRTWebSocketResource2::Fail(string &&message, ErrorType type) noexcept {
124
+ void WinRTWebSocketResource::Fail(string &&message, ErrorType type) noexcept {
129
125
  auto self = shared_from_this();
130
126
 
131
127
  self->m_backgroundQueue.Post([self, message = std::move(message), type]() {
@@ -138,15 +134,15 @@ void WinRTWebSocketResource2::Fail(string &&message, ErrorType type) noexcept {
138
134
  });
139
135
  }
140
136
 
141
- void WinRTWebSocketResource2::Fail(hresult &&error, ErrorType type) noexcept {
137
+ void WinRTWebSocketResource::Fail(hresult &&error, ErrorType type) noexcept {
142
138
  Fail(Utilities::HResultToString(std::move(error)), type);
143
139
  }
144
140
 
145
- void WinRTWebSocketResource2::Fail(hresult_error const &error, ErrorType type) noexcept {
141
+ void WinRTWebSocketResource::Fail(hresult_error const &error, ErrorType type) noexcept {
146
142
  Fail(Utilities::HResultToString(error), type);
147
143
  }
148
144
 
149
- void WinRTWebSocketResource2::OnMessageReceived(
145
+ void WinRTWebSocketResource::OnMessageReceived(
150
146
  IMessageWebSocket const &,
151
147
  IMessageWebSocketMessageReceivedEventArgs const &args) {
152
148
  auto self = shared_from_this();
@@ -205,7 +201,7 @@ void WinRTWebSocketResource2::OnMessageReceived(
205
201
  });
206
202
  }
207
203
 
208
- void WinRTWebSocketResource2::OnClosed(IWebSocket const &sender, IWebSocketClosedEventArgs const &args) {
204
+ void WinRTWebSocketResource::OnClosed(IWebSocket const &sender, IWebSocketClosedEventArgs const &args) {
209
205
  auto self = shared_from_this();
210
206
 
211
207
  self->m_backgroundQueue.Post([self]() { self->m_readyState = ReadyState::Closed; });
@@ -217,7 +213,7 @@ void WinRTWebSocketResource2::OnClosed(IWebSocket const &sender, IWebSocketClose
217
213
  });
218
214
  }
219
215
 
220
- fire_and_forget WinRTWebSocketResource2::PerformConnect(Uri &&uri) noexcept {
216
+ fire_and_forget WinRTWebSocketResource::PerformConnect(Uri &&uri) noexcept {
221
217
  auto self = shared_from_this();
222
218
  auto movedUri = std::move(uri);
223
219
 
@@ -251,7 +247,7 @@ fire_and_forget WinRTWebSocketResource2::PerformConnect(Uri &&uri) noexcept {
251
247
  });
252
248
  }
253
249
 
254
- fire_and_forget WinRTWebSocketResource2::PerformClose() noexcept {
250
+ fire_and_forget WinRTWebSocketResource::PerformClose() noexcept {
255
251
  auto self = shared_from_this();
256
252
 
257
253
  co_await resume_in_queue(self->m_backgroundQueue);
@@ -274,7 +270,7 @@ fire_and_forget WinRTWebSocketResource2::PerformClose() noexcept {
274
270
  });
275
271
  }
276
272
 
277
- fire_and_forget WinRTWebSocketResource2::EnqueueWrite(string &&message, bool isBinary) noexcept {
273
+ fire_and_forget WinRTWebSocketResource::EnqueueWrite(string &&message, bool isBinary) noexcept {
278
274
  auto self = shared_from_this();
279
275
  string coMessage = std::move(message);
280
276
 
@@ -289,7 +285,7 @@ fire_and_forget WinRTWebSocketResource2::EnqueueWrite(string &&message, bool isB
289
285
  });
290
286
  }
291
287
 
292
- IAsyncAction WinRTWebSocketResource2::PerformWrite(string &&message, bool isBinary) noexcept {
288
+ IAsyncAction WinRTWebSocketResource::PerformWrite(string &&message, bool isBinary) noexcept {
293
289
  auto self = shared_from_this();
294
290
 
295
291
  try {
@@ -331,7 +327,7 @@ IAsyncAction WinRTWebSocketResource2::PerformWrite(string &&message, bool isBina
331
327
 
332
328
  #pragma region IWebSocketResource
333
329
 
334
- void WinRTWebSocketResource2::Connect(string &&url, const Protocols &protocols, const Options &options) noexcept {
330
+ void WinRTWebSocketResource::Connect(string &&url, const Protocols &protocols, const Options &options) noexcept {
335
331
  // Register MessageReceived BEFORE calling Connect
336
332
  // https://learn.microsoft.com/en-us/uwp/api/windows.networking.sockets.messagewebsocket.messagereceived?view=winrt-22621
337
333
  m_socket.MessageReceived([self = shared_from_this()](
@@ -385,394 +381,17 @@ void WinRTWebSocketResource2::Connect(string &&url, const Protocols &protocols,
385
381
  PerformConnect(std::move(uri));
386
382
  }
387
383
 
388
- void WinRTWebSocketResource2::Ping() noexcept {}
389
-
390
- void WinRTWebSocketResource2::Send(string &&message) noexcept {
391
- EnqueueWrite(std::move(message), false);
392
- }
393
-
394
- void WinRTWebSocketResource2::SendBinary(string &&base64String) noexcept {
395
- EnqueueWrite(std::move(base64String), true);
396
- }
397
-
398
- void WinRTWebSocketResource2::Close(CloseCode code, const string &reason) noexcept {
399
- m_closeCode = code;
400
- m_closeReason = reason;
401
- PerformClose();
402
- }
403
-
404
- IWebSocketResource::ReadyState WinRTWebSocketResource2::GetReadyState() const noexcept {
405
- return m_readyState;
406
- }
407
-
408
- void WinRTWebSocketResource2::SetOnConnect(function<void()> &&handler) noexcept {
409
- m_connectHandler = std::move(handler);
410
- }
411
-
412
- void WinRTWebSocketResource2::SetOnPing(function<void()> && /*handler*/) noexcept {}
413
-
414
- void WinRTWebSocketResource2::SetOnSend(function<void(size_t)> && /*handler*/) noexcept {}
415
-
416
- void WinRTWebSocketResource2::SetOnMessage(function<void(size_t, const string &, bool isBinary)> &&handler) noexcept {
417
- m_readHandler = std::move(handler);
418
- }
419
-
420
- void WinRTWebSocketResource2::SetOnClose(function<void(CloseCode, const string &)> &&handler) noexcept {
421
- m_closeHandler = std::move(handler);
422
- }
423
-
424
- void WinRTWebSocketResource2::SetOnError(function<void(Error &&)> &&handler) noexcept {
425
- m_errorHandler = std::move(handler);
426
- }
427
-
428
- #pragma endregion IWebSocketResource
429
-
430
- #pragma endregion WinRTWebSocketResource2
431
-
432
- #pragma region Legacy resource
433
- // private
434
- WinRTWebSocketResource::WinRTWebSocketResource(
435
- IMessageWebSocket &&socket,
436
- vector<ChainValidationResult> &&certExceptions)
437
- : WinRTWebSocketResource(std::move(socket), DataWriter{socket.OutputStream()}, std::move(certExceptions)) {}
438
-
439
- WinRTWebSocketResource::WinRTWebSocketResource(
440
- IMessageWebSocket &&socket,
441
- IDataWriter &&writer,
442
- vector<ChainValidationResult> &&certExceptions)
443
- : m_socket{std::move(socket)}, m_writer{std::move(writer)} {
444
- for (const auto &certException : certExceptions) {
445
- m_socket.Control().IgnorableServerCertificateErrors().Append(certException);
446
- }
447
- }
448
-
449
- WinRTWebSocketResource::WinRTWebSocketResource(vector<ChainValidationResult> &&certExceptions)
450
- : WinRTWebSocketResource(MessageWebSocket{}, std::move(certExceptions)) {}
451
-
452
- WinRTWebSocketResource::~WinRTWebSocketResource() noexcept /*override*/
453
- {
454
- Close(CloseCode::GoingAway, "Disposed");
455
-
456
- m_closePerformed.Wait();
457
- }
458
-
459
- #pragma region Private members
460
-
461
- IAsyncAction WinRTWebSocketResource::PerformConnect(Uri &&uri) noexcept {
462
- auto self = shared_from_this();
463
- auto coUri = std::move(uri);
464
-
465
- co_await resume_background();
466
-
467
- try {
468
- auto async = self->m_socket.ConnectAsync(coUri);
469
-
470
- co_await lessthrow_await_adapter<IAsyncAction>{async};
471
-
472
- auto result = async.ErrorCode();
473
- if (result >= 0) {
474
- self->m_readyState = ReadyState::Open;
475
- if (self->m_connectHandler) {
476
- self->m_connectHandler();
477
- }
478
- } else {
479
- if (self->m_errorHandler) {
480
- self->m_errorHandler({Utilities::HResultToString(std::move(result)), ErrorType::Connection});
481
- }
482
- }
483
- } catch (hresult_error const &e) {
484
- if (self->m_errorHandler) {
485
- self->m_errorHandler({Utilities::HResultToString(e), ErrorType::Connection});
486
- }
487
- }
488
-
489
- SetEvent(self->m_connectPerformed.get());
490
- self->m_connectPerformedPromise.set_value();
491
- self->m_connectRequested = false;
492
- }
493
-
494
- fire_and_forget WinRTWebSocketResource::PerformPing() noexcept {
495
- auto self = shared_from_this();
496
-
497
- co_await resume_background();
498
-
499
- co_await resume_on_signal(self->m_connectPerformed.get());
500
-
501
- if (self->m_readyState != ReadyState::Open) {
502
- self = nullptr;
503
- co_return;
504
- }
505
-
506
- try {
507
- self->m_socket.Control().MessageType(SocketMessageType::Utf8);
508
-
509
- string s{};
510
- winrt::array_view<const uint8_t> arr(
511
- CheckedReinterpretCast<const uint8_t *>(s.c_str()),
512
- CheckedReinterpretCast<const uint8_t *>(s.c_str()) + s.length());
513
- self->m_writer.WriteBytes(arr);
514
-
515
- auto async = self->m_writer.StoreAsync();
516
-
517
- co_await lessthrow_await_adapter<DataWriterStoreOperation>{async};
518
-
519
- auto result = async.ErrorCode();
520
- if (result >= 0) {
521
- if (self->m_pingHandler) {
522
- self->m_pingHandler();
523
- }
524
- } else {
525
- if (self->m_errorHandler) {
526
- self->m_errorHandler({Utilities::HResultToString(std::move(result)), ErrorType::Ping});
527
- }
528
- }
529
- } catch (hresult_error const &e) {
530
- if (self->m_errorHandler) {
531
- self->m_errorHandler({Utilities::HResultToString(e), ErrorType::Ping});
532
- }
533
- }
534
- }
535
-
536
- fire_and_forget WinRTWebSocketResource::PerformWrite(string &&message, bool isBinary) noexcept {
537
- auto self = shared_from_this();
538
- {
539
- auto guard = lock_guard<mutex>{m_writeQueueMutex};
540
- m_writeQueue.emplace(std::move(message), isBinary);
541
- }
542
-
543
- co_await resume_background();
544
-
545
- co_await resume_on_signal(self->m_connectPerformed.get()); // Ensure connection attempt has finished
546
-
547
- co_await resume_in_queue(self->m_dispatchQueue); // Ensure writes happen sequentially
548
-
549
- if (self->m_readyState != ReadyState::Open) {
550
- self = nullptr;
551
- co_return;
552
- }
553
-
554
- try {
555
- size_t length = 0;
556
- string messageLocal;
557
- bool isBinaryLocal;
558
- {
559
- auto guard = lock_guard<mutex>{m_writeQueueMutex};
560
- std::tie(messageLocal, isBinaryLocal) = m_writeQueue.front();
561
- m_writeQueue.pop();
562
- }
563
-
564
- if (isBinaryLocal) {
565
- self->m_socket.Control().MessageType(SocketMessageType::Binary);
566
-
567
- auto buffer = CryptographicBuffer::DecodeFromBase64String(winrt::to_hstring(messageLocal));
568
- if (buffer) {
569
- length = buffer.Length();
570
- self->m_writer.WriteBuffer(buffer);
571
- }
572
- } else {
573
- self->m_socket.Control().MessageType(SocketMessageType::Utf8);
574
-
575
- // TODO: Use char_t instead of uint8_t?
576
- length = messageLocal.size();
577
- winrt::array_view<const uint8_t> view(
578
- CheckedReinterpretCast<const uint8_t *>(messageLocal.c_str()),
579
- CheckedReinterpretCast<const uint8_t *>(messageLocal.c_str()) + messageLocal.length());
580
- self->m_writer.WriteBytes(view);
581
- }
582
-
583
- auto async = self->m_writer.StoreAsync();
584
-
585
- co_await lessthrow_await_adapter<DataWriterStoreOperation>{async};
586
-
587
- auto result = async.ErrorCode();
588
- if (result >= 0) {
589
- if (self->m_writeHandler) {
590
- self->m_writeHandler(length);
591
- }
592
- } else {
593
- if (self->m_errorHandler) {
594
- self->m_errorHandler({Utilities::HResultToString(std::move(result)), ErrorType::Send});
595
- }
596
- }
597
- } catch (std::exception const &e) {
598
- if (self->m_errorHandler) {
599
- self->m_errorHandler({e.what(), ErrorType::Ping});
600
- }
601
- } catch (hresult_error const &e) {
602
- // TODO: Remove after fixing unit tests exceptions.
603
- if (self->m_errorHandler) {
604
- self->m_errorHandler({Utilities::HResultToString(e), ErrorType::Ping});
605
- }
606
- }
607
- }
608
-
609
- fire_and_forget WinRTWebSocketResource::PerformClose() noexcept {
610
- co_await resume_background();
611
-
612
- co_await resume_on_signal(m_connectPerformed.get());
613
-
614
- try {
615
- m_socket.Close(static_cast<uint16_t>(m_closeCode), winrt::to_hstring(m_closeReason));
616
-
617
- if (m_closeHandler) {
618
- m_closeHandler(m_closeCode, m_closeReason);
619
- }
620
- } catch (winrt::hresult_invalid_argument const &e) {
621
- if (m_errorHandler) {
622
- m_errorHandler({winrt::to_string(e.message()), ErrorType::Close});
623
- }
624
- } catch (hresult_error const &e) {
625
- if (m_errorHandler) {
626
- m_errorHandler({Utilities::HResultToString(e), ErrorType::Close});
627
- }
628
- }
629
-
630
- m_readyState = ReadyState::Closed;
631
- m_closePerformed.Set();
632
- }
633
-
634
- void WinRTWebSocketResource::Synchronize() noexcept {
635
- // Ensure sequence of other operations
636
- if (m_connectRequested) {
637
- m_connectPerformedPromise.get_future().wait();
638
- }
639
- }
640
-
641
- #pragma endregion Private members
642
-
643
- #pragma region IWebSocketResource
644
-
645
- void WinRTWebSocketResource::Connect(string &&url, const Protocols &protocols, const Options &options) noexcept {
646
- m_socket.MessageReceived([self = shared_from_this()](
647
- IWebSocket const &sender, IMessageWebSocketMessageReceivedEventArgs const &args) {
648
- try {
649
- string response;
650
-
651
- IDataReader reader{nullptr};
652
- // Use ABI version to avoid throwing exceptions on expected code paths
653
- HRESULT hr =
654
- reinterpret_cast<ABI::Windows::Networking::Sockets::IMessageWebSocketMessageReceivedEventArgs *>(
655
- winrt::get_abi(args))
656
- ->GetDataReader(reinterpret_cast<ABI::Windows::Storage::Streams::IDataReader **>(winrt::put_abi(reader)));
657
-
658
- if (FAILED(hr)) {
659
- // See
660
- // https://docs.microsoft.com/uwp/api/windows.networking.sockets.messagewebsocketmessagereceivedeventargs.getdatareader?view=winrt-22621#remarks
661
- if (hr == WININET_E_CONNECTION_ABORTED) {
662
- string errorMessage{"[0x80072EFE] Underlying TCP connection suddenly terminated"};
663
- self->m_errorHandler({errorMessage, ErrorType::Connection});
664
- // Note: We are not clear whether all read-related errors should close the socket.
665
- self->Close(CloseCode::BadPayload, std::move(errorMessage));
666
- } else {
667
- self->m_errorHandler({Utilities::HResultToString(hr), ErrorType::Receive});
668
- }
669
- return;
670
- }
671
-
672
- auto len = reader.UnconsumedBufferLength();
673
- if (args.MessageType() == SocketMessageType::Utf8) {
674
- reader.UnicodeEncoding(UnicodeEncoding::Utf8);
675
- vector<uint8_t> data(len);
676
- reader.ReadBytes(data);
677
-
678
- response = string(CheckedReinterpretCast<char *>(data.data()), data.size());
679
- } else {
680
- auto buffer = reader.ReadBuffer(len);
681
- hstring data = CryptographicBuffer::EncodeToBase64String(buffer);
682
-
683
- response = winrt::to_string(std::wstring_view(data));
684
- }
685
-
686
- if (self->m_readHandler) {
687
- self->m_readHandler(response.length(), response, args.MessageType() == SocketMessageType::Binary);
688
- }
689
- } catch (hresult_error const &e) {
690
- if (self->m_errorHandler) {
691
- string errorMessage;
692
- ErrorType errorType;
693
- errorMessage = Utilities::HResultToString(e);
694
- errorType = ErrorType::Receive;
695
- self->m_errorHandler({errorMessage, errorType});
696
- }
697
- }
698
- });
699
-
700
- m_readyState = ReadyState::Connecting;
701
-
702
- bool hasOriginHeader = false;
703
- for (const auto &header : options) {
704
- m_socket.SetRequestHeader(header.first, winrt::to_hstring(header.second));
705
- if (boost::iequals(header.first, L"Origin")) {
706
- hasOriginHeader = true;
707
- }
708
- }
709
-
710
- winrt::Windows::Foundation::Collections::IVector<hstring> supportedProtocols =
711
- m_socket.Control().SupportedProtocols();
712
- for (const auto &protocol : protocols) {
713
- supportedProtocols.Append(winrt::to_hstring(protocol));
714
- }
715
-
716
- Uri uri{nullptr};
717
- try {
718
- uri = Uri{winrt::to_hstring(url)};
719
-
720
- // #12626 - If Origin header is not provided, set to connect endpoint.
721
- if (!hasOriginHeader) {
722
- auto scheme = uri.SchemeName();
723
- auto host = uri.Host();
724
- auto port = uri.Port();
725
-
726
- if (scheme == L"ws") {
727
- scheme = L"http";
728
- } else if (scheme == L"wss") {
729
- scheme = L"https";
730
- }
731
-
732
- // Only add a port if a port is defined
733
- hstring originPort = port != 0 ? L":" + winrt::to_hstring(port) : L"";
734
- auto origin = hstring{scheme + L"://" + host + originPort};
735
-
736
- m_socket.SetRequestHeader(L"Origin", std::move(origin));
737
- }
738
-
739
- } catch (hresult_error const &e) {
740
- if (m_errorHandler) {
741
- m_errorHandler({Utilities::HResultToString(e), ErrorType::Connection});
742
- }
743
-
744
- // Abort - Mark connection as concluded.
745
- SetEvent(m_connectPerformed.get());
746
- m_connectPerformedPromise.set_value();
747
- m_connectRequested = false;
748
-
749
- return;
750
- }
751
-
752
- m_connectRequested = true;
753
-
754
- PerformConnect(std::move(uri));
755
- }
756
-
757
- void WinRTWebSocketResource::Ping() noexcept {
758
- PerformPing();
759
- }
384
+ void WinRTWebSocketResource::Ping() noexcept {}
760
385
 
761
386
  void WinRTWebSocketResource::Send(string &&message) noexcept {
762
- PerformWrite(std::move(message), false);
387
+ EnqueueWrite(std::move(message), false);
763
388
  }
764
389
 
765
390
  void WinRTWebSocketResource::SendBinary(string &&base64String) noexcept {
766
- PerformWrite(std::move(base64String), true);
391
+ EnqueueWrite(std::move(base64String), true);
767
392
  }
768
393
 
769
394
  void WinRTWebSocketResource::Close(CloseCode code, const string &reason) noexcept {
770
- if (m_readyState == ReadyState::Closing || m_readyState == ReadyState::Closed)
771
- return;
772
-
773
- Synchronize();
774
-
775
- m_readyState = ReadyState::Closing;
776
395
  m_closeCode = code;
777
396
  m_closeReason = reason;
778
397
  PerformClose();
@@ -786,13 +405,9 @@ void WinRTWebSocketResource::SetOnConnect(function<void()> &&handler) noexcept {
786
405
  m_connectHandler = std::move(handler);
787
406
  }
788
407
 
789
- void WinRTWebSocketResource::SetOnPing(function<void()> &&handler) noexcept {
790
- m_pingHandler = std::move(handler);
791
- }
408
+ void WinRTWebSocketResource::SetOnPing(function<void()> && /*handler*/) noexcept {}
792
409
 
793
- void WinRTWebSocketResource::SetOnSend(function<void(size_t)> &&handler) noexcept {
794
- m_writeHandler = std::move(handler);
795
- }
410
+ void WinRTWebSocketResource::SetOnSend(function<void(size_t)> && /*handler*/) noexcept {}
796
411
 
797
412
  void WinRTWebSocketResource::SetOnMessage(function<void(size_t, const string &, bool isBinary)> &&handler) noexcept {
798
413
  m_readHandler = std::move(handler);
@@ -808,6 +423,6 @@ void WinRTWebSocketResource::SetOnError(function<void(Error &&)> &&handler) noex
808
423
 
809
424
  #pragma endregion IWebSocketResource
810
425
 
811
- #pragma endregion Legacy resource
426
+ #pragma endregion WinRTWebSocketResource
812
427
 
813
428
  } // namespace Microsoft::React::Networking