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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/.flowconfig +1 -5
  2. package/Common/unicode.cpp +36 -0
  3. package/Common/unicode.h +8 -0
  4. package/Directory.Build.props +1 -16
  5. package/Directory.Build.targets +12 -4
  6. package/Folly/ThreadNameStub.cpp +4 -6
  7. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
  8. package/Libraries/Animated/Animated.d.ts +8 -1
  9. package/Libraries/Animated/AnimatedEvent.js +4 -4
  10. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  11. package/Libraries/Animated/animations/Animation.js +3 -3
  12. package/Libraries/Animated/animations/DecayAnimation.js +4 -4
  13. package/Libraries/Animated/animations/SpringAnimation.js +5 -5
  14. package/Libraries/Animated/animations/TimingAnimation.js +5 -5
  15. package/Libraries/Animated/createAnimatedComponent.js +7 -7
  16. package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
  17. package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
  18. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  19. package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
  20. package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
  21. package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
  22. package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
  23. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  24. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  25. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  26. package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
  27. package/Libraries/Animated/useAnimatedColor.js +25 -0
  28. package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
  29. package/Libraries/Animated/useAnimatedValueXY.js +26 -0
  30. package/Libraries/AppState/AppState.js +1 -1
  31. package/Libraries/BatchedBridge/MessageQueue.js +3 -3
  32. package/Libraries/BatchedBridge/NativeModules.js +12 -10
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
  34. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +34 -30
  35. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
  36. package/Libraries/Components/Button.js +2 -2
  37. package/Libraries/Components/Button.windows.js +2 -2
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
  39. package/Libraries/Components/Keyboard/Keyboard.js +6 -6
  40. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
  41. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
  42. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
  43. package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
  44. package/Libraries/Components/Pressable/Pressable.js +3 -3
  45. package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
  46. package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
  47. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  48. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
  49. package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
  50. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +5 -5
  51. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
  52. package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
  53. package/Libraries/Components/ScrollView/ScrollView.js +19 -9
  54. package/Libraries/Components/ScrollView/ScrollView.windows.js +19 -9
  55. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
  56. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +8 -18
  57. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
  58. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  59. package/Libraries/Components/StaticRenderer.js +1 -1
  60. package/Libraries/Components/StatusBar/StatusBar.js +8 -8
  61. package/Libraries/Components/Switch/Switch.js +3 -3
  62. package/Libraries/Components/Switch/Switch.windows.js +3 -3
  63. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
  64. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  65. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
  66. package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
  67. package/Libraries/Components/TextInput/TextInput.flow.windows.js +23 -22
  68. package/Libraries/Components/TextInput/TextInput.js +8 -4
  69. package/Libraries/Components/TextInput/TextInput.windows.js +3 -4
  70. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +33 -48
  71. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  72. package/Libraries/Components/Touchable/Touchable.js +2 -2
  73. package/Libraries/Components/Touchable/Touchable.windows.js +2 -2
  74. package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
  75. package/Libraries/Components/Touchable/TouchableBounce.windows.js +4 -4
  76. package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
  77. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +9 -9
  78. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
  79. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +7 -7
  80. package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
  81. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -4
  82. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
  83. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
  84. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  85. package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
  86. package/Libraries/Components/View/View.windows.js +1 -1
  87. package/Libraries/Components/View/ViewAccessibility.js +7 -7
  88. package/Libraries/Components/View/ViewAccessibility.windows.js +7 -7
  89. package/Libraries/Components/View/ViewPropTypes.js +14 -14
  90. package/Libraries/Components/View/ViewPropTypes.windows.js +18 -16
  91. package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
  92. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  93. package/Libraries/Core/ExceptionsManager.js +2 -2
  94. package/Libraries/Core/ExtendedError.js +3 -3
  95. package/Libraries/Core/RawEventEmitter.js +1 -1
  96. package/Libraries/Core/ReactNativeVersion.js +2 -2
  97. package/Libraries/Core/Timers/JSTimers.js +3 -2
  98. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  99. package/Libraries/Core/setUpErrorHandling.js +4 -2
  100. package/Libraries/Core/setUpReactDevTools.js +23 -6
  101. package/Libraries/Core/setUpSegmentFetcher.js +1 -1
  102. package/Libraries/Debugging/DebuggingOverlay.js +2 -2
  103. package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
  104. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
  105. package/Libraries/Image/AssetSourceResolver.js +1 -1
  106. package/Libraries/Image/AssetSourceResolver.windows.js +1 -1
  107. package/Libraries/Image/Image.android.js +172 -306
  108. package/Libraries/Image/ImageProps.js +9 -11
  109. package/Libraries/Image/ImageSource.js +2 -2
  110. package/Libraries/Image/ImageSourceUtils.js +8 -4
  111. package/Libraries/Image/ImageTypes.flow.js +2 -2
  112. package/Libraries/Image/ImageViewNativeComponent.js +7 -16
  113. package/Libraries/Image/nativeImageSource.js +1 -1
  114. package/Libraries/Interaction/InteractionManager.js +5 -4
  115. package/Libraries/Interaction/PanResponder.js +1 -1
  116. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  117. package/Libraries/Linking/Linking.js +1 -1
  118. package/Libraries/Lists/FlatList.js +3 -3
  119. package/Libraries/Lists/SectionList.js +1 -1
  120. package/Libraries/Lists/SectionListModern.js +2 -2
  121. package/Libraries/LogBox/Data/LogBoxData.js +38 -24
  122. package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
  123. package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
  124. package/Libraries/LogBox/LogBox.js +42 -19
  125. package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
  126. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  127. package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
  128. package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
  129. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
  130. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -9
  131. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
  132. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
  133. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  134. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
  135. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
  136. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
  137. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
  138. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +15 -16
  139. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
  140. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
  141. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
  142. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +3 -5
  143. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
  144. package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
  145. package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
  146. package/Libraries/Modal/Modal.d.ts +4 -0
  147. package/Libraries/Modal/Modal.js +3 -3
  148. package/Libraries/Modal/Modal.windows.js +7 -3
  149. package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
  150. package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
  151. package/Libraries/NativeComponent/BaseViewConfig.windows.js +26 -17
  152. package/Libraries/Network/RCTNetworking.android.js +1 -1
  153. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  154. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  155. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  156. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
  157. package/Libraries/Network/XMLHttpRequest.js +1 -1
  158. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  159. package/Libraries/Pressability/Pressability.js +5 -5
  160. package/Libraries/Pressability/Pressability.windows.js +5 -5
  161. package/Libraries/Pressability/PressabilityDebug.js +1 -1
  162. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  163. package/Libraries/Pressability/usePressability.js +3 -14
  164. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
  165. package/Libraries/ReactNative/AppContainer-dev.js +18 -1
  166. package/Libraries/ReactNative/AppContainer.js +1 -1
  167. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  168. package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
  169. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  170. package/Libraries/ReactNative/RendererImplementation.js +4 -4
  171. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  172. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
  173. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
  174. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
  175. package/Libraries/Renderer/shims/ReactFabric.js +1 -3
  176. package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
  177. package/Libraries/Renderer/shims/ReactNative.js +3 -2
  178. package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
  179. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +1 -3
  180. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
  181. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
  182. package/Libraries/StyleSheet/PointPropType.js +1 -1
  183. package/Libraries/StyleSheet/Rect.js +1 -1
  184. package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
  185. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  186. package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
  187. package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
  188. package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
  189. package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
  190. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
  191. package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
  192. package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
  193. package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
  194. package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
  195. package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
  196. package/Libraries/StyleSheet/processBoxShadow.js +44 -4
  197. package/Libraries/StyleSheet/processColorArray.js +2 -2
  198. package/Libraries/StyleSheet/processFilter.js +2 -2
  199. package/Libraries/Text/Text.js +295 -627
  200. package/Libraries/Text/Text.windows.js +342 -717
  201. package/Libraries/Text/TextNativeComponent.js +14 -7
  202. package/Libraries/Text/TextProps.js +4 -4
  203. package/Libraries/Text/TextProps.windows.js +4 -4
  204. package/Libraries/Types/CodegenTypes.js +1 -1
  205. package/Libraries/Types/CoreEventTypes.js +21 -21
  206. package/Libraries/Types/CoreEventTypes.windows.js +21 -21
  207. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  208. package/Libraries/Utilities/Appearance.js +6 -1
  209. package/Libraries/Utilities/Dimensions.js +1 -1
  210. package/Libraries/Utilities/HMRClient.js +32 -5
  211. package/Libraries/Utilities/IPerformanceLogger.js +4 -4
  212. package/Libraries/Utilities/codegenNativeCommands.js +4 -4
  213. package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
  214. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  215. package/Libraries/Utilities/logError.js +1 -1
  216. package/Libraries/Utilities/stringifySafe.js +3 -3
  217. package/Libraries/Utilities/useMergeRefs.js +2 -2
  218. package/Libraries/vendor/core/ErrorUtils.js +4 -4
  219. package/Libraries/vendor/emitter/EventEmitter.js +16 -20
  220. package/Microsoft.ReactNative/CallInvoker.cpp +14 -4
  221. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +1 -1
  222. package/Microsoft.ReactNative/Fabric/AbiPortalShadowNode.cpp +2 -2
  223. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +1 -1
  224. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +73 -97
  225. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +4 -1
  226. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -1
  227. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +5 -0
  228. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +94 -26
  229. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +11 -0
  230. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +135 -18
  231. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +10 -0
  232. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +7 -2
  233. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +2 -0
  234. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +63 -15
  235. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +9 -5
  236. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +28 -6
  237. package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.cpp +1 -1
  238. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1 -1
  239. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -1
  240. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +80 -0
  241. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.h +17 -0
  242. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -0
  243. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +1 -0
  244. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +3 -0
  245. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -3
  246. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +3 -8
  247. package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -0
  248. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -63
  249. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -26
  250. package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -1
  251. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -17
  252. package/Microsoft.ReactNative/Modules/AppStateModule.h +0 -4
  253. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -2
  254. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +16 -15
  255. package/Microsoft.ReactNative/Modules/AppearanceModule.h +5 -1
  256. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +2 -7
  257. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +0 -1
  258. package/Microsoft.ReactNative/Modules/I18nManagerModule.h +4 -4
  259. package/Microsoft.ReactNative/QuirkSettings.cpp +0 -133
  260. package/Microsoft.ReactNative/QuirkSettings.h +0 -43
  261. package/Microsoft.ReactNative/QuirkSettings.idl +0 -41
  262. package/Microsoft.ReactNative/ReactHost/CrashManager.cpp +0 -4
  263. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +0 -2
  264. package/Microsoft.ReactNative/ReactHost/React.h +0 -5
  265. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -1
  266. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +3 -26
  267. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -5
  268. package/Microsoft.ReactNative/ReactHost/React_Win.h +0 -2
  269. package/Microsoft.ReactNative/ReactNativeAppBuilder.idl +3 -0
  270. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +7 -0
  271. package/Microsoft.ReactNative/ReactPackageBuilder.h +1 -0
  272. package/Microsoft.ReactNative/RedBox.cpp +0 -9
  273. package/Microsoft.ReactNative/RedBoxHandler.cpp +0 -4
  274. package/Microsoft.ReactNative/TurboModulesProvider.cpp +5 -10
  275. package/Microsoft.ReactNative/TurboModulesProvider.h +2 -0
  276. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +33 -25
  277. package/Microsoft.ReactNative/Utils/LocalBundleReader.h +5 -3
  278. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  279. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -7
  280. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +0 -22
  281. package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +8 -2
  282. package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +36 -20
  283. package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +0 -3
  284. package/Microsoft.ReactNative.Cxx/NativeModules.h +8 -2
  285. package/Microsoft.ReactNative.Cxx/XamlUtils.h +0 -9
  286. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +3 -3
  287. package/Microsoft.ReactNative.Managed/ReactContext.cs +0 -9
  288. package/Microsoft.ReactNative.Managed.CodeGen/Microsoft.ReactNative.Managed.CodeGen.csproj +10 -10
  289. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Debug.pubxml +1 -1
  290. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Release.pubxml +1 -1
  291. package/PropertySheets/Autolink.props +1 -1
  292. package/PropertySheets/Bundle.props +1 -1
  293. package/PropertySheets/Codegen.props +1 -1
  294. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  295. package/PropertySheets/JSEngine.props +1 -1
  296. package/PropertySheets/NuGet.LockFile.props +8 -0
  297. package/PropertySheets/React.Cpp.props +8 -7
  298. package/PropertySheets/ReactNativeArchitecture.props +6 -24
  299. package/PropertySheets/WinUI.props +2 -2
  300. package/ReactCommon/ReactCommon.vcxproj +5 -6
  301. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1 -1
  302. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +15 -4
  303. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +13 -0
  304. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/defaults/DefaultTurboModules.cpp +69 -0
  305. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/animationbackend/AnimatedPropSerializer.cpp +717 -0
  306. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
  307. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +2 -21
  308. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +151 -0
  309. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +50 -0
  310. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBuffer.cpp +178 -0
  311. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +69 -39
  312. package/Scripts/JustMyXaml.ps1 +8 -8
  313. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  314. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -39
  315. package/Scripts/UnitTest.ps1 +3 -1
  316. package/Scripts/creaternwapp.cmd +1 -9
  317. package/Scripts/creaternwlib.cmd +4 -24
  318. package/Scripts/rnw-dependencies.ps1 +15 -16
  319. package/Shared/DevSettings.h +0 -3
  320. package/Shared/DevSupportManager.cpp +55 -48
  321. package/Shared/DevSupportManager.h +0 -1
  322. package/Shared/Modules/IWebSocketModuleContentHandler.h +15 -0
  323. package/Shared/Modules/WebSocketModule.cpp +8 -3
  324. package/Shared/Networking/DefaultBlobResource.cpp +37 -0
  325. package/Shared/Networking/DefaultBlobResource.h +12 -0
  326. package/Shared/Networking/WinRTWebSocketResource.cpp +23 -408
  327. package/Shared/Networking/WinRTWebSocketResource.h +8 -120
  328. package/Shared/Shared.vcxitems +63 -38
  329. package/Shared/Shared.vcxitems.filters +54 -0
  330. package/Shared/Utils.cpp +0 -88
  331. package/Shared/Utils.h +0 -14
  332. package/Shared/WebSocketResourceFactory.cpp +28 -0
  333. package/Shared/tracing/fbsystrace.h +1 -0
  334. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +172 -160
  335. package/codegen/react/components/rnwcore/ModalHostView.g.h +8 -0
  336. package/codegen/react/components/rnwcore/Props.cpp +17 -7
  337. package/codegen/react/components/rnwcore/Props.h +3 -1
  338. package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +4 -4
  339. package/codegen/rnwcoreJSI.h +93 -77
  340. package/index.js +9 -0
  341. package/index.windows.js +9 -0
  342. package/jest/RefreshControlMock.js +2 -2
  343. package/jest/assetFileTransformer.js +8 -3
  344. package/jest/mockComponent.js +3 -4
  345. package/jest/mockNativeComponent.js +1 -1
  346. package/jest/mocks/ActivityIndicator.js +2 -2
  347. package/jest/mocks/Image.js +2 -2
  348. package/jest/mocks/Modal.js +2 -2
  349. package/jest/mocks/RefreshControl.js +3 -3
  350. package/jest/mocks/RendererProxy.js +2 -2
  351. package/jest/mocks/ScrollView.js +5 -5
  352. package/jest/mocks/Text.js +2 -2
  353. package/jest/mocks/TextInput.js +2 -2
  354. package/jest/mocks/View.js +2 -2
  355. package/jest/mocks/ViewNativeComponent.js +1 -1
  356. package/jest/mocks/requireNativeComponent.js +1 -1
  357. package/jest/mocks/useColorScheme.js +1 -1
  358. package/jest/setup.js +68 -31
  359. package/just-task.js +13 -2
  360. package/package.json +25 -20
  361. package/src/private/animated/NativeAnimatedHelper.js +2 -2
  362. package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
  363. package/src/private/components/virtualview/VirtualView.js +14 -21
  364. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
  365. package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
  366. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
  367. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
  368. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
  369. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  370. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
  371. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
  372. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
  373. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
  374. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  375. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  376. package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
  377. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
  378. package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
  379. package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
  380. package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
  381. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
  382. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
  383. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
  384. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
  385. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
  386. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  387. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  388. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
  389. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
  390. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
  391. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
  392. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
  393. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +7 -3
  394. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
  395. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
  396. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
  397. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
  398. package/src/private/styles/composeStyles.js +1 -1
  399. package/src/private/utilities/toError.js +27 -0
  400. package/src/private/utilities/toExtendedError.js +30 -0
  401. package/src/private/webapis/dom/events/Event.js +1 -1
  402. package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
  403. package/src/private/webapis/dom/events/EventTarget.js +3 -3
  404. package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
  405. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  406. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
  407. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
  408. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  409. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  410. package/src/private/webapis/geometry/DOMRectList.js +2 -2
  411. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
  412. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
  413. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  414. package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
  415. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
  416. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
  417. package/src/private/webapis/performance/LongTasks.js +3 -3
  418. package/src/private/webapis/performance/Performance.js +4 -4
  419. package/src/private/webapis/performance/PerformanceEntry.js +1 -1
  420. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  421. package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
  422. package/src/private/webapis/structuredClone/structuredClone.js +2 -2
  423. package/src/types/globals.d.ts +4 -4
  424. package/template/cpp-lib/proj/MyLib.sln +0 -33
  425. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  426. package/template/cs-lib/proj/MyLib.sln +0 -33
  427. package/template/metro.config.js +12 -2
  428. package/templates/cpp-app/metro.config.js +12 -2
  429. package/templates/cpp-app/windows/MyApp/MyApp.cpp +9 -6
  430. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +2 -2
  431. package/templates/cpp-app/windows/MyApp.sln +0 -33
  432. package/templates/cpp-lib/example/metro.config.js +12 -2
  433. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +2 -2
  434. package/templates/cpp-lib/windows/MyLib.sln +0 -33
  435. package/types/index.d.ts +2 -0
  436. package/Folly/.clang-format +0 -2
  437. package/Folly/Folly.natvis +0 -25
  438. package/Folly/Folly.vcxproj +0 -378
  439. package/Folly/Folly.vcxproj.filters +0 -558
  440. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +0 -978
  441. package/Folly/TEMP_UntilFollyUpdate/Conv.cpp +0 -1205
  442. package/Folly/TEMP_UntilFollyUpdate/chrono/Hardware.h +0 -155
  443. package/Folly/TEMP_UntilFollyUpdate/concurrency/CacheLocality.cpp +0 -633
  444. package/Folly/TEMP_UntilFollyUpdate/json/dynamic-inl.h +0 -1438
  445. package/Folly/TEMP_UntilFollyUpdate/json/json.cpp +0 -1118
  446. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +0 -188
  447. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +0 -348
  448. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +0 -182
  449. package/Folly/TEMP_UntilFollyUpdate/portability/Unistd.cpp +0 -33
  450. package/Folly/cgmanifest.json +0 -25
  451. package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
  452. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +0 -64
  453. package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
  454. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +0 -75
  455. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +0 -27
  456. package/Microsoft.ReactNative/Fabric/Composition/Theme_emptyimpl.cpp +0 -81
  457. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -24
  458. package/Microsoft.ReactNative/ReactSupport.cpp +0 -221
  459. package/Microsoft.ReactNative/ReactSupport.h +0 -13
  460. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.cpp +0 -107
  461. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +0 -62
  462. package/Microsoft.ReactNative/Utils/UwpScriptStore.cpp +0 -56
  463. package/Microsoft.ReactNative/Utils/UwpScriptStore.h +0 -22
  464. package/Microsoft.ReactNative/XamlUIService.cpp +0 -68
  465. package/Microsoft.ReactNative/XamlUIService.h +0 -37
  466. package/Microsoft.ReactNative/XamlUIService.idl +0 -53
  467. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +0 -259
  468. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/Instance.cpp +0 -381
  469. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +0 -145
  470. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/MethodCall.cpp +0 -100
  471. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ModuleRegistry.cpp +0 -256
  472. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -363
  473. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/RAMBundleRegistry.cpp +0 -93
  474. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +0 -148
  475. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +0 -190
  476. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSINativeModules.cpp +0 -123
  477. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.cpp +0 -27
  478. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/webperformance/NativePerformance.cpp +0 -414
  479. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +0 -91
  480. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +0 -80
  481. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +0 -138
  482. package/fmt/.clang-format +0 -2
  483. package/fmt/cgmanifest.json +0 -15
  484. package/fmt/fmt.vcxproj +0 -153
  485. package/fmt/fmt.vcxproj.filters +0 -59
  486. package/fmt/pch.cpp +0 -4
  487. package/fmt/pch.h +0 -2
@@ -1,414 +0,0 @@
1
- /*
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
-
9
- #if _MSC_VER
10
- #pragma warning(push)
11
- #pragma warning(disable : 4996) // deprecated APIs
12
- #endif
13
- #include "NativePerformance.h"
14
-
15
- #include <memory>
16
- #include <unordered_map>
17
- #include <variant>
18
-
19
- #include <cxxreact/JSExecutor.h>
20
- #include <cxxreact/ReactMarker.h>
21
- #include <jsi/JSIDynamic.h>
22
- #include <jsi/instrumentation.h>
23
- #include <react/performance/timeline/PerformanceEntryReporter.h>
24
- #include <react/performance/timeline/PerformanceObserver.h>
25
-
26
- #include "NativePerformance.h"
27
-
28
- #ifdef RN_DISABLE_OSS_PLUGIN_HEADER
29
- #include "Plugins.h"
30
- #endif
31
-
32
- std::shared_ptr<facebook::react::TurboModule> NativePerformanceModuleProvider(
33
- std::shared_ptr<facebook::react::CallInvoker> jsInvoker) {
34
- return std::make_shared<facebook::react::NativePerformance>(
35
- std::move(jsInvoker));
36
- }
37
-
38
- namespace facebook::react {
39
-
40
- namespace {
41
-
42
- class PerformanceObserverWrapper : public jsi::NativeState {
43
- public:
44
- explicit PerformanceObserverWrapper(
45
- const std::shared_ptr<PerformanceObserver> observer)
46
- : observer(observer) {}
47
-
48
- const std::shared_ptr<PerformanceObserver> observer;
49
- };
50
-
51
- void sortEntries(std::vector<PerformanceEntry>& entries) {
52
- return std::stable_sort(
53
- entries.begin(), entries.end(), PerformanceEntrySorter{});
54
- }
55
-
56
- NativePerformanceEntry toNativePerformanceEntry(const PerformanceEntry& entry) {
57
- auto nativeEntry = std::visit(
58
- [](const auto& entryData) -> NativePerformanceEntry {
59
- return {
60
- .name = entryData.name,
61
- .entryType = entryData.entryType,
62
- .startTime = entryData.startTime,
63
- .duration = entryData.duration,
64
- };
65
- },
66
- entry);
67
-
68
- if (std::holds_alternative<PerformanceEventTiming>(entry)) {
69
- auto eventEntry = std::get<PerformanceEventTiming>(entry);
70
- nativeEntry.processingStart = eventEntry.processingStart;
71
- nativeEntry.processingEnd = eventEntry.processingEnd;
72
- nativeEntry.interactionId = eventEntry.interactionId;
73
- }
74
- if (std::holds_alternative<PerformanceResourceTiming>(entry)) {
75
- auto resourceEntry = std::get<PerformanceResourceTiming>(entry);
76
- nativeEntry.fetchStart = resourceEntry.fetchStart;
77
- nativeEntry.requestStart = resourceEntry.requestStart;
78
- nativeEntry.connectStart = resourceEntry.connectStart;
79
- nativeEntry.connectEnd = resourceEntry.connectEnd;
80
- nativeEntry.responseStart = resourceEntry.responseStart;
81
- nativeEntry.responseEnd = resourceEntry.responseEnd;
82
- nativeEntry.responseStatus = resourceEntry.responseStatus;
83
- nativeEntry.contentType = resourceEntry.contentType;
84
- nativeEntry.encodedBodySize = resourceEntry.encodedBodySize;
85
- nativeEntry.decodedBodySize = resourceEntry.decodedBodySize;
86
- }
87
-
88
- return nativeEntry;
89
- }
90
-
91
- std::vector<NativePerformanceEntry> toNativePerformanceEntries(
92
- std::vector<PerformanceEntry>& entries) {
93
- std::vector<NativePerformanceEntry> result;
94
- result.reserve(entries.size());
95
-
96
- for (auto& entry : entries) {
97
- result.emplace_back(toNativePerformanceEntry(entry));
98
- }
99
-
100
- return result;
101
- }
102
-
103
- const std::array<PerformanceEntryType, 2> ENTRY_TYPES_AVAILABLE_FROM_TIMELINE{
104
- {PerformanceEntryType::MARK, PerformanceEntryType::MEASURE}};
105
-
106
- bool isAvailableFromTimeline(PerformanceEntryType entryType) {
107
- return entryType == PerformanceEntryType::MARK ||
108
- entryType == PerformanceEntryType::MEASURE;
109
- }
110
-
111
- std::shared_ptr<PerformanceObserver> tryGetObserver(
112
- jsi::Runtime& rt,
113
- jsi::Object& observerObj) {
114
- if (!observerObj.hasNativeState(rt)) {
115
- return nullptr;
116
- }
117
-
118
- auto observerWrapper = std::dynamic_pointer_cast<PerformanceObserverWrapper>(
119
- observerObj.getNativeState(rt));
120
- return observerWrapper ? observerWrapper->observer : nullptr;
121
- }
122
-
123
- PerformanceEntryReporter::UserTimingDetailProvider getDetailProviderFromEntry(
124
- jsi::Runtime& rt,
125
- jsi::Value& entry) {
126
- return [&rt, &entry]() -> folly::dynamic {
127
- try {
128
- auto detail = entry.asObject(rt).getProperty(rt, "detail");
129
- return jsi::dynamicFromValue(rt, detail);
130
- } catch (jsi::JSIException&) {
131
- return nullptr;
132
- }
133
- };
134
- }
135
-
136
- } // namespace
137
-
138
- NativePerformance::NativePerformance(std::shared_ptr<CallInvoker> jsInvoker)
139
- : NativePerformanceCxxSpec(std::move(jsInvoker)) {}
140
-
141
- HighResTimeStamp NativePerformance::now(jsi::Runtime& /*rt*/) {
142
- // This is not spec-compliant, as this is the duration from system boot to
143
- // now, instead of from app startup to now.
144
- // This should be carefully changed eventually.
145
- return HighResTimeStamp::now();
146
- }
147
-
148
- HighResDuration NativePerformance::timeOrigin(jsi::Runtime& /*rt*/) {
149
- // This is not spec-compliant, as this is an approximation from Unix epoch to
150
- // system boot, instead of a precise duration from Unix epoch to app startup.
151
- return HighResTimeStamp::unsafeOriginFromUnixTimeStamp();
152
- }
153
-
154
- void NativePerformance::reportMark(
155
- jsi::Runtime& rt,
156
- const std::string& name,
157
- HighResTimeStamp startTime,
158
- jsi::Value entry) {
159
- PerformanceEntryReporter::getInstance()->reportMark(
160
- name, startTime, getDetailProviderFromEntry(rt, entry));
161
- }
162
-
163
- void NativePerformance::reportMeasure(
164
- jsi::Runtime& rt,
165
- const std::string& name,
166
- HighResTimeStamp startTime,
167
- HighResDuration duration,
168
- jsi::Value entry) {
169
- PerformanceEntryReporter::getInstance()->reportMeasure(
170
- name, startTime, duration, getDetailProviderFromEntry(rt, entry));
171
- }
172
-
173
- std::optional<double> NativePerformance::getMarkTime(
174
- jsi::Runtime& /*rt*/,
175
- const std::string& name) {
176
- auto markTime = PerformanceEntryReporter::getInstance()->getMarkTime(name);
177
- return markTime ? std::optional{(*markTime).toDOMHighResTimeStamp()}
178
- : std::nullopt;
179
- }
180
-
181
- void NativePerformance::clearMarks(
182
- jsi::Runtime& /*rt*/,
183
- std::optional<std::string> entryName) {
184
- if (entryName) {
185
- PerformanceEntryReporter::getInstance()->clearEntries(
186
- PerformanceEntryType::MARK, *entryName);
187
- } else {
188
- PerformanceEntryReporter::getInstance()->clearEntries(
189
- PerformanceEntryType::MARK);
190
- }
191
- }
192
-
193
- void NativePerformance::clearMeasures(
194
- jsi::Runtime& /*rt*/,
195
- std::optional<std::string> entryName) {
196
- if (entryName) {
197
- PerformanceEntryReporter::getInstance()->clearEntries(
198
- PerformanceEntryType::MEASURE, *entryName);
199
- } else {
200
- PerformanceEntryReporter::getInstance()->clearEntries(
201
- PerformanceEntryType::MEASURE);
202
- }
203
- }
204
-
205
- std::vector<NativePerformanceEntry> NativePerformance::getEntries(
206
- jsi::Runtime& /*rt*/) {
207
- std::vector<PerformanceEntry> entries;
208
-
209
- for (auto entryType : ENTRY_TYPES_AVAILABLE_FROM_TIMELINE) {
210
- PerformanceEntryReporter::getInstance()->getEntries(entries, entryType);
211
- }
212
-
213
- sortEntries(entries);
214
-
215
- return toNativePerformanceEntries(entries);
216
- }
217
-
218
- std::vector<NativePerformanceEntry> NativePerformance::getEntriesByName(
219
- jsi::Runtime& /*rt*/,
220
- const std::string& entryName,
221
- std::optional<PerformanceEntryType> entryType) {
222
- std::vector<PerformanceEntry> entries;
223
-
224
- if (entryType) {
225
- if (isAvailableFromTimeline(*entryType)) {
226
- PerformanceEntryReporter::getInstance()->getEntries(
227
- entries, *entryType, entryName);
228
- }
229
- } else {
230
- for (auto type : ENTRY_TYPES_AVAILABLE_FROM_TIMELINE) {
231
- PerformanceEntryReporter::getInstance()->getEntries(
232
- entries, type, entryName);
233
- }
234
- }
235
-
236
- sortEntries(entries);
237
-
238
- return toNativePerformanceEntries(entries);
239
- }
240
-
241
- std::vector<NativePerformanceEntry> NativePerformance::getEntriesByType(
242
- jsi::Runtime& /*rt*/,
243
- PerformanceEntryType entryType) {
244
- std::vector<PerformanceEntry> entries;
245
-
246
- if (isAvailableFromTimeline(entryType)) {
247
- PerformanceEntryReporter::getInstance()->getEntries(entries, entryType);
248
- }
249
-
250
- sortEntries(entries);
251
-
252
- return toNativePerformanceEntries(entries);
253
- }
254
-
255
- std::vector<std::pair<std::string, uint32_t>> NativePerformance::getEventCounts(
256
- jsi::Runtime& /*rt*/) {
257
- const auto& eventCounts =
258
- PerformanceEntryReporter::getInstance()->getEventCounts();
259
- return {eventCounts.begin(), eventCounts.end()};
260
- }
261
-
262
- std::unordered_map<std::string, double> NativePerformance::getSimpleMemoryInfo(
263
- jsi::Runtime& rt) {
264
- auto heapInfo = rt.instrumentation().getHeapInfo(false);
265
- std::unordered_map<std::string, double> heapInfoToJs;
266
- for (auto& entry : heapInfo) {
267
- heapInfoToJs[entry.first] = static_cast<double>(entry.second);
268
- }
269
- return heapInfoToJs;
270
- }
271
-
272
- std::unordered_map<std::string, double>
273
- NativePerformance::getReactNativeStartupTiming(jsi::Runtime& /*rt*/) {
274
- std::unordered_map<std::string, double> result;
275
-
276
- ReactMarker::StartupLogger& startupLogger =
277
- ReactMarker::StartupLogger::getInstance();
278
- if (!std::isnan(startupLogger.getAppStartupStartTime())) {
279
- result["startTime"] = startupLogger.getAppStartupStartTime();
280
- } else if (!std::isnan(startupLogger.getInitReactRuntimeStartTime())) {
281
- result["startTime"] = startupLogger.getInitReactRuntimeStartTime();
282
- }
283
-
284
- if (!std::isnan(startupLogger.getInitReactRuntimeStartTime())) {
285
- result["initializeRuntimeStart"] =
286
- startupLogger.getInitReactRuntimeStartTime();
287
- }
288
-
289
- if (!std::isnan(startupLogger.getRunJSBundleStartTime())) {
290
- result["executeJavaScriptBundleEntryPointStart"] =
291
- startupLogger.getRunJSBundleStartTime();
292
- }
293
-
294
- if (!std::isnan(startupLogger.getAppStartupEndTime())) {
295
- result["endTime"] = startupLogger.getAppStartupEndTime();
296
- }
297
-
298
- return result;
299
- }
300
-
301
- jsi::Object NativePerformance::createObserver(
302
- jsi::Runtime& rt,
303
- NativePerformancePerformanceObserverCallback callback) {
304
- // The way we dispatch performance observer callbacks is a bit different from
305
- // the spec. The specification requires us to queue a single task that
306
- // dispatches observer callbacks. Instead, we are queuing all callbacks as
307
- // separate tasks in the scheduler.
308
- PerformanceObserverCallback cb = [callback = std::move(callback)]() {
309
- callback.callWithPriority(SchedulerPriority::IdlePriority);
310
- };
311
-
312
- auto& registry =
313
- PerformanceEntryReporter::getInstance()->getObserverRegistry();
314
-
315
- auto observer = PerformanceObserver::create(registry, std::move(cb));
316
- auto observerWrapper = std::make_shared<PerformanceObserverWrapper>(observer);
317
- jsi::Object observerObj{rt};
318
- observerObj.setNativeState(rt, observerWrapper);
319
- return observerObj;
320
- }
321
-
322
- double NativePerformance::getDroppedEntriesCount(
323
- jsi::Runtime& rt,
324
- jsi::Object observerObj) {
325
- auto observer = tryGetObserver(rt, observerObj);
326
-
327
- if (!observer) {
328
- return 0;
329
- }
330
-
331
- return observer->getDroppedEntriesCount();
332
- }
333
-
334
- void NativePerformance::observe(
335
- jsi::Runtime& rt,
336
- jsi::Object observerObj,
337
- NativePerformancePerformanceObserverObserveOptions options) {
338
- auto observer = tryGetObserver(rt, observerObj);
339
-
340
- if (!observer) {
341
- return;
342
- }
343
-
344
- auto durationThreshold =
345
- options.durationThreshold.value_or(HighResDuration::zero());
346
-
347
- // observer of type multiple
348
- if (options.entryTypes.has_value()) {
349
- std::unordered_set<PerformanceEntryType> entryTypes;
350
- auto rawTypes = options.entryTypes.value();
351
-
352
- for (auto rawType : rawTypes) {
353
- entryTypes.insert(Bridging<PerformanceEntryType>::fromJs(rt, rawType));
354
- }
355
-
356
- observer->observe(entryTypes);
357
- } else { // single
358
- auto buffered = options.buffered.value_or(false);
359
- if (options.type.has_value()) {
360
- observer->observe(
361
- static_cast<PerformanceEntryType>(options.type.value()),
362
- {.buffered = buffered, .durationThreshold = durationThreshold});
363
- }
364
- }
365
- }
366
-
367
- void NativePerformance::disconnect(jsi::Runtime& rt, jsi::Object observerObj) {
368
- auto observerWrapper = std::dynamic_pointer_cast<PerformanceObserverWrapper>(
369
- observerObj.getNativeState(rt));
370
-
371
- if (!observerWrapper) {
372
- return;
373
- }
374
-
375
- auto observer = observerWrapper->observer;
376
- observer->disconnect();
377
- }
378
-
379
- std::vector<NativePerformanceEntry> NativePerformance::takeRecords(
380
- jsi::Runtime& rt,
381
- jsi::Object observerObj,
382
- bool sort) {
383
- auto observerWrapper = std::dynamic_pointer_cast<PerformanceObserverWrapper>(
384
- observerObj.getNativeState(rt));
385
-
386
- if (!observerWrapper) {
387
- return {};
388
- }
389
-
390
- auto observer = observerWrapper->observer;
391
- auto records = observer->takeRecords();
392
- if (sort) {
393
- sortEntries(records);
394
- }
395
- return toNativePerformanceEntries(records);
396
- }
397
-
398
- std::vector<PerformanceEntryType>
399
- NativePerformance::getSupportedPerformanceEntryTypes(jsi::Runtime& /*rt*/) {
400
- auto supportedEntryTypes = PerformanceEntryReporter::getSupportedEntryTypes();
401
- return {supportedEntryTypes.begin(), supportedEntryTypes.end()};
402
- }
403
-
404
- #pragma mark - Testing
405
-
406
- void NativePerformance::clearEventCountsForTesting(jsi::Runtime& /*rt*/) {
407
- PerformanceEntryReporter::getInstance()->clearEventCounts();
408
- }
409
-
410
- } // namespace facebook::react
411
-
412
- #if _MSC_VER
413
- #pragma warning(pop)
414
- #endif
@@ -1,91 +0,0 @@
1
- /*
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- #pragma once
9
-
10
- #include <react/debug/react_native_assert.h>
11
- #include <react/renderer/attributedstring/AttributedString.h>
12
- #include <react/renderer/attributedstring/ParagraphAttributes.h>
13
- #include <react/renderer/textlayoutmanager/TextLayoutManager.h>
14
- #include <react/renderer/textlayoutmanager/TextLayoutManagerExtended.h>
15
-
16
- //#include <fbjni/fbjni.h> // [windows #15020]
17
- #include <folly/dynamic.h>
18
- #include <react/renderer/mapbuffer/MapBuffer.h>
19
-
20
- #include <utility>
21
-
22
- namespace facebook::react {
23
-
24
- // constants for Text State serialization
25
- constexpr static MapBuffer::Key TX_STATE_KEY_ATTRIBUTED_STRING = 0;
26
- constexpr static MapBuffer::Key TX_STATE_KEY_PARAGRAPH_ATTRIBUTES = 1;
27
- // Used for TextInput only
28
- constexpr static MapBuffer::Key TX_STATE_KEY_HASH = 2;
29
- constexpr static MapBuffer::Key TX_STATE_KEY_MOST_RECENT_EVENT_COUNT = 3;
30
-
31
- /*
32
- * State for <Paragraph> component.
33
- * Represents what to render and how to render.
34
- */
35
- class ParagraphState final {
36
- public:
37
- /*
38
- * All content of <Paragraph> component represented as an `AttributedString`.
39
- */
40
- AttributedString attributedString;
41
-
42
- /*
43
- * Represents all visual attributes of a paragraph of text represented as
44
- * a ParagraphAttributes.
45
- */
46
- ParagraphAttributes paragraphAttributes;
47
-
48
- /*
49
- * `TextLayoutManager` provides a connection to platform-specific
50
- * text rendering infrastructure which is capable to render the
51
- * `AttributedString`.
52
- */
53
- std::weak_ptr<const TextLayoutManager> layoutManager;
54
-
55
- /**
56
- * A fully prepared representation of a text layout to mount
57
- */
58
- MeasuredPreparedLayout measuredLayout;
59
-
60
- ParagraphState(
61
- AttributedString attributedString,
62
- ParagraphAttributes paragraphAttributes,
63
- std::weak_ptr<const TextLayoutManager> layoutManager,
64
- MeasuredPreparedLayout measuredLayout)
65
- : attributedString(std::move(attributedString)),
66
- paragraphAttributes(std::move(paragraphAttributes)),
67
- layoutManager(std::move(layoutManager)),
68
- measuredLayout(std::move(measuredLayout))
69
- {
70
- }
71
-
72
- ParagraphState(
73
- AttributedString attributedString,
74
- ParagraphAttributes paragraphAttributes,
75
- std::weak_ptr<const TextLayoutManager> layoutManager)
76
- : ParagraphState(std::move(attributedString), std::move(paragraphAttributes), std::move(layoutManager), {})
77
- {
78
- }
79
-
80
- ParagraphState() = default;
81
- ParagraphState(const ParagraphState & /*previousState*/, const folly::dynamic & /*data*/)
82
- {
83
- react_native_assert(false && "Not supported");
84
- };
85
-
86
- folly::dynamic getDynamic() const;
87
- MapBuffer getMapBuffer() const;
88
- //jni::local_ref<jobject> getJNIReference() const; // [windows #15020]
89
- };
90
-
91
- } // namespace facebook::react
@@ -1,80 +0,0 @@
1
- /*
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
-
9
- #if _MSC_VER
10
- #pragma warning(push)
11
- #pragma warning(disable : 4996) // deprecated APIs
12
- #endif
13
- #include "EventDispatcher.h"
14
- #include <react/renderer/core/StateUpdate.h>
15
-
16
- #include "EventQueue.h"
17
- #include "RawEvent.h"
18
-
19
- namespace facebook::react {
20
-
21
- EventDispatcher::EventDispatcher(
22
- const EventQueueProcessor& eventProcessor,
23
- std::unique_ptr<EventBeat> eventBeat,
24
- StatePipe statePipe,
25
- std::weak_ptr<EventLogger> eventLogger)
26
- : eventQueue_(EventQueue(eventProcessor, std::move(eventBeat))),
27
- statePipe_(std::move(statePipe)),
28
- eventLogger_(std::move(eventLogger)) {}
29
-
30
- void EventDispatcher::dispatchEvent(RawEvent&& rawEvent) const {
31
- // Allows the event listener to interrupt default event dispatch
32
- if (eventListeners_.willDispatchEvent(rawEvent)) {
33
- return;
34
- }
35
-
36
- auto eventLogger = eventLogger_.lock();
37
- if (eventLogger != nullptr) {
38
- rawEvent.loggingTag = eventLogger->onEventStart(
39
- rawEvent.type, rawEvent.eventTarget, rawEvent.eventStartTimeStamp);
40
- }
41
- eventQueue_.enqueueEvent(std::move(rawEvent));
42
- }
43
-
44
- void EventDispatcher::experimental_flushSync() const {
45
- eventQueue_.experimental_flushSync();
46
- }
47
-
48
- void EventDispatcher::dispatchStateUpdate(
49
- StateUpdate&& stateUpdate,
50
- EventQueue::UpdateMode updateMode) const {
51
- eventQueue_.enqueueStateUpdate(std::move(stateUpdate), updateMode);
52
- }
53
-
54
- void EventDispatcher::dispatchUniqueEvent(RawEvent&& rawEvent) const {
55
- // Allows the event listener to interrupt default event dispatch
56
- if (eventListeners_.willDispatchEvent(rawEvent)) {
57
- return;
58
- }
59
-
60
- eventQueue_.enqueueUniqueEvent(std::move(rawEvent));
61
- }
62
-
63
- void EventDispatcher::addListener(
64
- std::shared_ptr<const EventListener> listener) const {
65
- eventListeners_.addListener(std::move(listener));
66
- }
67
-
68
- /*
69
- * Removes provided event listener to the event dispatcher.
70
- */
71
- void EventDispatcher::removeListener(
72
- const std::shared_ptr<const EventListener>& listener) const {
73
- eventListeners_.removeListener(listener);
74
- }
75
-
76
- } // namespace facebook::react
77
-
78
- #if _MSC_VER
79
- #pragma warning(pop)
80
- #endif