react-native-windows 0.72.13 → 0.73.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.
- package/.flowconfig +16 -5
- package/Chakra/ChakraHelpers.cpp +1 -1
- package/Chakra/ChakraUtils.cpp +1 -1
- package/Chakra/ChakraValue.h +1 -1
- package/Common/packages.lock.json +13 -0
- package/Directory.Build.props +6 -2
- package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1 -10
- package/Folly/TEMP_UntilFollyUpdate/hash/Hash.h +1016 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +1 -1
- package/Folly/cgmanifest.json +1 -1
- package/Folly/packages.lock.json +23 -0
- package/Libraries/Animated/Animated.js +1 -1
- package/Libraries/Animated/AnimatedImplementation.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +14 -10
- package/Libraries/Animated/NativeAnimatedModule.js +6 -2
- package/Libraries/Animated/NativeAnimatedTurboModule.js +7 -4
- package/Libraries/Animated/animations/Animation.js +57 -3
- package/Libraries/Animated/animations/DecayAnimation.js +9 -0
- package/Libraries/Animated/animations/SpringAnimation.js +8 -0
- package/Libraries/Animated/animations/TimingAnimation.js +8 -0
- package/Libraries/Animated/components/AnimatedFlatList.js +2 -1
- package/Libraries/Animated/components/AnimatedScrollView.js +2 -0
- package/Libraries/Animated/components/AnimatedSectionList.js +2 -1
- package/Libraries/Animated/createAnimatedComponent.js +1 -0
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedObject.js +146 -0
- package/Libraries/Animated/nodes/AnimatedProps.js +19 -7
- package/Libraries/Animated/nodes/AnimatedStyle.js +29 -55
- package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -17
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
- package/Libraries/Animated/useAnimatedProps.js +9 -10
- package/Libraries/AppState/AppState.d.ts +1 -1
- package/Libraries/AppState/NativeAppState.js +8 -4
- package/Libraries/AppTheme/AppTheme.js +5 -5
- package/Libraries/BatchedBridge/MessageQueue.js +45 -36
- package/Libraries/Blob/Blob.js +6 -2
- package/Libraries/Blob/BlobManager.js +9 -10
- package/Libraries/Blob/BlobRegistry.js +14 -9
- package/Libraries/Blob/File.js +1 -1
- package/Libraries/Blob/FileReader.js +1 -2
- package/Libraries/Components/Clipboard/Clipboard.d.ts +4 -4
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -1
- package/Libraries/Components/Glyph/Glyph.js +1 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +26 -6
- package/Libraries/Components/Keyboard/KeyboardExt.d.ts +4 -1
- package/Libraries/Components/Keyboard/KeyboardExt.js +3 -0
- package/Libraries/Components/Keyboard/KeyboardExt.js.map +1 -1
- package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +4 -29
- package/Libraries/Components/Keyboard/KeyboardExtProps.js +0 -17
- package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
- package/Libraries/Components/Pressable/Pressable.js +3 -2
- package/Libraries/Components/Pressable/Pressable.windows.js +4 -3
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +20 -0
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.windows.js +7 -1
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +7 -7
- package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +7 -10
- package/Libraries/Components/ScrollView/ScrollView.js +3 -1
- package/Libraries/Components/ScrollView/ScrollView.windows.js +3 -1
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +39 -46
- package/Libraries/Components/Switch/Switch.js +1 -0
- package/Libraries/Components/Switch/Switch.windows.js +259 -0
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
- package/Libraries/Components/TextInput/TextInput.d.ts +49 -7
- package/Libraries/Components/TextInput/TextInput.flow.js +43 -10
- package/Libraries/Components/TextInput/TextInput.js +62 -10
- package/Libraries/Components/TextInput/TextInput.windows.js +100 -14
- package/Libraries/Components/ToastAndroid/{ToastAndroid.ios.js → ToastAndroid.js} +9 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.windows.js +9 -1
- package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +4 -1
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -0
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +16 -6
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +9 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
- package/Libraries/Components/View/View.js +46 -32
- package/Libraries/Components/View/View.windows.js +23 -7
- package/Libraries/Components/View/ViewAccessibility.d.ts +27 -1
- package/Libraries/Components/View/ViewAccessibility.windows.js +3 -0
- package/Libraries/Components/View/ViewNativeComponent.js +1 -0
- package/Libraries/Components/View/ViewPropTypes.d.ts +104 -1
- package/Libraries/Components/View/ViewPropTypes.js +18 -3
- package/Libraries/Components/View/ViewPropTypes.windows.js +33 -3
- package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -1
- package/Libraries/Core/ExceptionsManager.js +16 -7
- package/Libraries/Core/ExtendedError.js +12 -0
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +0 -2
- package/Libraries/Core/__mocks__/NativeExceptionsManager.js +20 -0
- package/Libraries/Core/setUpDeveloperTools.js +5 -1
- package/Libraries/Core/setUpIntersectionObserver.js +16 -0
- package/Libraries/Core/setUpMutationObserver.js +16 -0
- package/Libraries/Core/setUpPerformance.js +6 -13
- package/Libraries/Core/setUpPerformanceObserver.js +16 -0
- package/Libraries/Core/setUpRegeneratorRuntime.js +4 -2
- package/Libraries/DOM/Nodes/ReactNativeElement.js +135 -18
- package/Libraries/DOM/Nodes/ReadOnlyCharacterData.js +72 -0
- package/Libraries/DOM/Nodes/ReadOnlyElement.js +209 -21
- package/Libraries/DOM/Nodes/ReadOnlyNode.js +206 -17
- package/Libraries/DOM/Nodes/ReadOnlyText.js +30 -0
- package/Libraries/DOM/Nodes/Utilities/Traversal.js +54 -0
- package/Libraries/EventEmitter/NativeEventEmitter.d.ts +0 -6
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +15 -4
- package/Libraries/Image/Image.android.js +8 -2
- package/Libraries/Image/Image.d.ts +1 -1
- package/Libraries/Image/Image.ios.js +4 -1
- package/Libraries/Image/Image.windows.js +6 -3
- package/Libraries/Image/ImageBackground.js +3 -0
- package/Libraries/Inspector/DevtoolsOverlay.js +6 -3
- package/Libraries/Inspector/NetworkOverlay.js +2 -2
- package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -5
- package/Libraries/Interaction/PanResponder.js +1 -4
- package/Libraries/IntersectionObserver/IntersectionObserver.js +252 -0
- package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +140 -0
- package/Libraries/IntersectionObserver/IntersectionObserverManager.js +221 -0
- package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +41 -0
- package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +162 -0
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +2 -1
- package/Libraries/Lists/FlatList.js +15 -5
- package/Libraries/Lists/SectionList.js +4 -0
- package/Libraries/LogBox/Data/LogBoxLog.js +4 -1
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +5 -2
- package/Libraries/LogBox/Data/parseLogBoxLog.js +57 -20
- package/Libraries/LogBox/UI/AnsiHighlight.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +24 -31
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxMessage.js +4 -7
- package/Libraries/MutationObserver/MutationObserver.js +184 -0
- package/Libraries/MutationObserver/MutationObserverManager.js +218 -0
- package/Libraries/MutationObserver/MutationRecord.js +82 -0
- package/Libraries/MutationObserver/NativeMutationObserver.js +58 -0
- package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +327 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +18 -3
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +33 -0
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +34 -4
- package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -5
- package/Libraries/NativeModules/specs/NativeSourceCode.js +6 -6
- package/Libraries/Network/RCTNetworking.android.js +2 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -4
- package/Libraries/NewAppScreen/components/DebugInstructions.windows.js +2 -2
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +9 -2
- package/Libraries/Performance/QuickPerformanceLogger.js +1 -1
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -1
- package/Libraries/Pressability/Pressability.js +28 -3
- package/Libraries/Pressability/Pressability.windows.js +30 -5
- package/Libraries/ReactNative/AppContainer.js +2 -3
- package/Libraries/ReactNative/AppRegistry.d.ts +0 -5
- package/Libraries/ReactNative/AppRegistry.js +66 -53
- package/Libraries/ReactNative/BridgelessUIManager.js +38 -9
- package/Libraries/ReactNative/FabricUIManager.js +143 -34
- package/Libraries/ReactNative/I18nManager.js +5 -11
- package/Libraries/ReactNative/NativeI18nManager.js +7 -5
- package/Libraries/ReactNative/PaperUIManager.windows.js +2 -2
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +151 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +81 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +32 -0
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +19 -3
- package/Libraries/ReactNative/UIManager.js +8 -0
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +648 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +38 -2
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +27 -27
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +27 -27
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -3
- package/Libraries/Renderer/shims/ReactFabric.js +5 -6
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -3
- package/Libraries/Renderer/shims/ReactNative.js +2 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.js +35 -17
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -3
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -3
- package/Libraries/Settings/{Settings.android.js → Settings.js} +4 -4
- package/Libraries/Share/Share.d.ts +3 -9
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +9 -4
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +28 -13
- package/Libraries/StyleSheet/PlatformColorValueTypes.windows.js +10 -6
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +10 -1
- package/Libraries/StyleSheet/StyleSheet.js +3 -0
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +31 -17
- package/Libraries/StyleSheet/StyleSheetTypes.js +90 -6
- package/Libraries/StyleSheet/flattenStyle.js +4 -0
- package/Libraries/StyleSheet/private/_TransformStyle.js +16 -2
- package/Libraries/StyleSheet/processColor.js +1 -2
- package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
- package/Libraries/StyleSheet/splitLayoutProps.js +1 -0
- package/Libraries/Text/Text.d.ts +5 -5
- package/Libraries/Text/Text.js +17 -10
- package/Libraries/Text/Text.windows.js +53 -20
- package/Libraries/Text/TextProps.windows.js +275 -0
- package/Libraries/TurboModule/TurboModuleRegistry.js +47 -7
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
- package/Libraries/Types/CoreEventTypes.d.ts +5 -2
- package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -12
- package/Libraries/Utilities/NativeDeviceInfo.js +8 -9
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +23 -18
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +16 -13
- package/Libraries/Utilities/NativePlatformConstantsWin.js +13 -10
- package/Libraries/Utilities/PerformanceLoggerContext.js +1 -1
- package/Libraries/Utilities/Platform.android.js +12 -8
- package/Libraries/Utilities/Platform.d.ts +1 -0
- package/Libraries/Utilities/Platform.flow.js +84 -0
- package/Libraries/Utilities/Platform.flow.windows.js +111 -0
- package/Libraries/Utilities/Platform.ios.js +12 -8
- package/Libraries/Utilities/Platform.windows.js +12 -8
- package/Libraries/Utilities/PolyfillFunctions.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -2
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/createPerformanceLogger.js +63 -32
- package/Libraries/Utilities/useColorScheme.js +7 -8
- package/Libraries/WebPerformance/MemoryInfo.js +1 -1
- package/Libraries/WebPerformance/NativePerformance.js +3 -8
- package/Libraries/WebPerformance/NativePerformanceObserver.js +4 -0
- package/Libraries/WebPerformance/Performance.js +42 -15
- package/Libraries/WebPerformance/PerformanceEntry.js +14 -6
- package/Libraries/WebPerformance/PerformanceEventTiming.js +18 -1
- package/Libraries/WebPerformance/ReactNativeStartupTiming.js +40 -14
- package/Libraries/WebPerformance/__mocks__/NativePerformance.js +4 -2
- package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +21 -3
- package/Libraries/__tests__/ViewWindows-test.js +3 -3
- package/Libraries/platform-types.d.ts +6 -2
- package/Libraries/promiseRejectionTrackingOptions.js +1 -3
- package/Libraries/vendor/emitter/EventEmitter.js +20 -18
- package/Microsoft.ReactNative/Composition.Input.idl +103 -0
- package/Microsoft.ReactNative/CompositionContext.idl +31 -8
- package/Microsoft.ReactNative/CompositionRootView.idl +8 -4
- package/Microsoft.ReactNative/CompositionSwitcher.idl +28 -17
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +15 -28
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +7 -10
- package/Microsoft.ReactNative/Fabric/ComponentView.h +42 -4
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +57 -4
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +22 -1
- package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.cpp +137 -0
- package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.h +59 -0
- package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +8 -2
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +575 -0
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +170 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +890 -226
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +38 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +79 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +130 -27
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +6 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +382 -228
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +35 -8
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +46 -8
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +5 -21
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +232 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +36 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +51 -14
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +15 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView_emptyimpl.cpp +123 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +18 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +333 -137
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +52 -8
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +32 -26
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +5 -3
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +183 -175
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +7 -4
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +101 -2
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +46 -2
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +36 -9
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +8 -2
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +247 -42
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +25 -8
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +78 -50
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +12 -4
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +26 -28
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +429 -89
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +24 -3
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +1 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -2
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +5 -7
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -6
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -7
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +1 -17
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +74 -3
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +12 -0
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +53 -59
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +3 -2
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +5 -4
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -1
- package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +1 -1
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +3 -4
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformTouch.h +10 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +59 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.h +31 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +69 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +25 -2
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +23 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/KeyEvent.h +113 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/WindowsViewEvents.h +75 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +18 -21
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +158 -7
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +15 -17
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +1 -1
- package/Microsoft.ReactNative/GlyphViewManager.cpp +1 -1
- package/Microsoft.ReactNative/IJSValueReader.idl +2 -2
- package/Microsoft.ReactNative/IJSValueWriter.idl +2 -2
- package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +23 -1
- package/Microsoft.ReactNative/IReactContext.cpp +1 -1
- package/Microsoft.ReactNative/IReactNotificationService.cpp +4 -3
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -4
- package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +1 -2
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +1 -1
- package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +3 -4
- package/Microsoft.ReactNative/Modules/AppStateModule.cpp +1 -1
- package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -2
- package/Microsoft.ReactNative/Modules/AppearanceModule.h +1 -1
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +4 -2
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +1 -1
- package/Microsoft.ReactNative/Modules/I18nManagerModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/I18nManagerModule.h +1 -1
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -15
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +10 -6
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +4 -1
- package/Microsoft.ReactNative/QuirkSettings.idl +1 -1
- package/Microsoft.ReactNative/ReactApplication.cpp +13 -11
- package/Microsoft.ReactNative/ReactApplication.h +4 -4
- package/Microsoft.ReactNative/ReactCoreInjection.h +6 -5
- package/Microsoft.ReactNative/ReactHost/JSCallInvokerScheduler.cpp +2 -2
- package/Microsoft.ReactNative/ReactHost/MsoUtils.cpp +1 -1
- package/Microsoft.ReactNative/ReactHost/React.h +3 -6
- package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -16
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +8 -16
- package/Microsoft.ReactNative/ReactInstanceSettings.cpp +6 -5
- package/Microsoft.ReactNative/ReactInstanceSettings.h +7 -7
- package/Microsoft.ReactNative/ReactNativeHost.h +4 -4
- package/Microsoft.ReactNative/ReactRootView.cpp +5 -4
- package/Microsoft.ReactNative/ReactRootView.h +2 -2
- package/Microsoft.ReactNative/ReactSupport.h +1 -1
- package/Microsoft.ReactNative/RedBox.cpp +1 -1
- package/Microsoft.ReactNative/RedBoxHandler.idl +1 -1
- package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +1 -1
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +49 -21
- package/Microsoft.ReactNative/Utils/ValueUtils.h +2 -1
- package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +31 -59
- package/Microsoft.ReactNative/Views/DynamicAutomationPeer.h +3 -4
- package/Microsoft.ReactNative/Views/DynamicAutomationProperties.cpp +15 -46
- package/Microsoft.ReactNative/Views/DynamicAutomationProperties.h +5 -13
- package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +4 -4
- package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +2 -8
- package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +127 -86
- package/Microsoft.ReactNative/Views/ICompositionRootView.h +1 -1
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +2 -2
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +1 -1
- package/Microsoft.ReactNative/Views/SIPEventHandler.cpp +5 -5
- package/Microsoft.ReactNative/Views/SIPEventHandler.h +1 -1
- package/Microsoft.ReactNative/Views/ShadowNodeBase.h +8 -5
- package/Microsoft.ReactNative/Views/SwitchViewManager.cpp +2 -2
- package/Microsoft.ReactNative/Views/Text/TextTransformVisitor.cpp +1 -1
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +32 -14
- package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +1 -1
- package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +14 -2
- package/Microsoft.ReactNative/Views/ViewManagerBase.h +1 -1
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +20 -219
- package/Microsoft.ReactNative/Views/ViewPanel.h +0 -30
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +17 -158
- package/Microsoft.ReactNative/Views/cppwinrt/DynamicAutomationPeer.idl +9 -12
- package/Microsoft.ReactNative/Views/cppwinrt/ViewPanel.idl +1 -9
- package/Microsoft.ReactNative/XamlHelper.cpp +1 -1
- package/Microsoft.ReactNative/XamlHelper.h +1 -1
- package/Microsoft.ReactNative/packages.lock.json +128 -0
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiApiContext.cpp +2 -2
- package/Microsoft.ReactNative.Cxx/JSValue.h +2 -2
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +0 -1
- package/Microsoft.ReactNative.Cxx/NativeModules.h +4 -4
- package/Microsoft.ReactNative.Cxx/ReactHandleHelper.h +1 -1
- package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +2 -2
- package/Microsoft.ReactNative.Cxx/ReactNotificationService.h +10 -9
- package/Microsoft.ReactNative.Cxx/ReactPropertyBag.h +13 -12
- package/Microsoft.ReactNative.Managed/JSValueReaderGenerator.cs +5 -5
- package/Microsoft.ReactNative.Managed/JSValueWriterGenerator.cs +5 -5
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +8 -2
- package/Microsoft.ReactNative.Managed/ReactPackageBuilderExtensions.cs +1 -1
- package/Microsoft.ReactNative.Managed/ReflectionReactPackageProvider.cs +1 -1
- package/Microsoft.ReactNative.Managed/packages.lock.json +9 -9
- package/Microsoft.ReactNative.Managed.CodeGen/CodeAnalyzer.cs +2 -0
- package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Module.cs +4 -2
- package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.ViewManager.cs +1 -1
- package/Microsoft.ReactNative.Managed.CodeGen/DiagnosticDescriptors.cs +1 -1
- package/Microsoft.ReactNative.Managed.CodeGen/packages.lock.json +3197 -0
- package/Mso/compilerAdapters/compilerFeatures.h +1 -1
- package/Mso/compilerAdapters/functionDecorations.h +6 -6
- package/Mso/debugAssertApi/debugAssertDetails.h +1 -1
- package/Mso/dispatchQueue/dispatchQueue.h +3 -3
- package/Mso/motifCpp/motifCppTest.h +1 -1
- package/Mso/motifCpp/testCheck.h +1 -1
- package/Mso/oacr/oacr.h +1 -1
- package/Mso/smartPtr/smartPointerBase.h +1 -1
- package/Mso/src/dispatchQueue/looperScheduler.cpp +2 -2
- package/Mso/src/dispatchQueue/queueService.cpp +1 -1
- package/Mso/src/dispatchQueue/taskQueue.h +1 -1
- package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +2 -2
- package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +122 -45
- package/Mso/src/eventWaitHandle/eventWaitHandleImpl_win.cpp +2 -2
- package/Mso/src/future/futureImpl.cpp +5 -5
- package/Mso/src/future/futureImpl.h +1 -1
- package/PropertySheets/External/Microsoft.ReactNative.Common.props +3 -0
- package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.Common.props → Microsoft.ReactNative.Composition.Common.props} +2 -2
- package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.CSharpApp.props → Microsoft.ReactNative.Composition.CppApp.props} +7 -10
- package/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.targets +19 -0
- package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.props +14 -0
- package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.targets +18 -0
- package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +1 -1
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/HybridCRT.props +34 -0
- package/PropertySheets/JSEngine.props +1 -2
- package/PropertySheets/React.Cpp.props +0 -1
- package/PropertySheets/Warnings.props +1 -1
- package/PropertySheets/WinUI.props +1 -1
- package/ReactCommon/ReactCommon.vcxproj +15 -9
- package/ReactCommon/ReactCommon.vcxproj.filters +0 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +32 -5
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +20 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaLayoutableShadowNode.cpp +1038 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +228 -38
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +895 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/ShadowTree.cpp +543 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManagerBinding.cpp +1509 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/bits/NumericBitfield.h +67 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +93 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +88 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +606 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.h +344 -0
- package/ReactCommon/Yoga.cpp +497 -3895
- package/ReactCommon/packages.lock.json +30 -0
- package/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 +22 -0
- package/Scripts/OfficeReact.Win32.nuspec +1 -0
- package/Scripts/rnw-dependencies.ps1 +79 -26
- package/Shared/BaseScriptStoreImpl.cpp +42 -13
- package/Shared/BaseScriptStoreImpl.h +1 -1
- package/Shared/Composition/AutoDraw.h +36 -0
- package/Shared/CxxMessageQueue.cpp +1 -1
- package/Shared/DevSettings.h +3 -0
- package/Shared/DevSupportManager.h +1 -1
- package/Shared/Hasher.cpp +64 -0
- package/Shared/Hasher.h +24 -0
- package/Shared/HermesRuntimeHolder.cpp +6 -6
- package/Shared/IDevSupportManager.h +1 -1
- package/Shared/JSI/ChakraApi.cpp +1 -1
- package/Shared/JSI/ChakraRuntime.cpp +10 -10
- package/Shared/JSI/ChakraRuntime.h +6 -6
- package/Shared/JSI/V8RuntimeHolder.cpp +1 -1
- package/Shared/Modules/IRequestBodyHandler.h +1 -1
- package/Shared/Modules/IUriHandler.h +1 -1
- package/Shared/Modules/PlatformConstantsModule.cpp +1 -1
- package/Shared/Modules/WebSocketModule.cpp +1 -1
- package/Shared/Networking/DefaultBlobResource.cpp +2 -2
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +22 -16
- package/Shared/Networking/OriginPolicyHttpFilter.h +12 -11
- package/Shared/OInstance.cpp +9 -23
- package/Shared/OInstance.h +1 -1
- package/Shared/PackagerConnection.h +1 -1
- package/Shared/SafeLoadLibrary.cpp +8 -44
- package/Shared/SafeLoadLibrary.h +1 -5
- package/Shared/Shared.vcxitems +50 -20
- package/Shared/Shared.vcxitems.filters +26 -17
- package/Shared/Threading/BatchingQueueThread.cpp +5 -5
- package/Shared/Threading/BatchingQueueThread.h +4 -4
- package/Shared/TurboModuleManager.cpp +1 -1
- package/Shared/Utils.cpp +1 -1
- package/Shared/tracing/fbsystrace.h +1 -1
- package/codegen/NativeAnimatedModuleSpec.g.h +2 -0
- package/codegen/NativeAnimatedTurboModuleSpec.g.h +2 -0
- package/codegen/NativeAppStateSpec.g.h +11 -21
- package/codegen/NativeDeviceInfoSpec.g.h +4 -14
- package/codegen/NativeI18nManagerSpec.g.h +6 -16
- package/codegen/NativeIntersectionObserverSpec.g.h +96 -0
- package/codegen/NativeMutationObserverSpec.g.h +90 -0
- package/codegen/NativePerformanceObserverSpec.g.h +19 -13
- package/codegen/NativePerformanceSpec.g.h +6 -23
- package/codegen/NativePlatformConstantsAndroidSpec.g.h +22 -30
- package/codegen/NativePlatformConstantsIOSSpec.g.h +17 -25
- package/codegen/NativePlatformConstantsWinSpec.g.h +14 -22
- package/codegen/NativeSampleTurboModuleSpec.g.h +36 -0
- package/codegen/NativeSourceCodeSpec.g.h +3 -13
- package/codegen/react/components/rnwcore/EventEmitters.cpp +85 -58
- package/codegen/react/components/rnwcore/EventEmitters.h +17 -35
- package/codegen/react/components/rnwcore/Props.h +16 -17
- package/codegen/rnwcoreJSI-generated.cpp +1462 -319
- package/codegen/rnwcoreJSI.h +1609 -462
- package/fmt/packages.lock.json +13 -0
- package/index.windows.js +3 -3
- package/{Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js → jest/ReactNativeInternalFeatureFlagsMock.js} +2 -1
- package/jest/__tests__/setup-test.js +18 -0
- package/jest/mockModal.js +6 -4
- package/jest/setup.js +61 -30
- package/just-task.js +1 -0
- package/package.json +37 -42
- package/template/cs-app/proj/MyApp.csproj +0 -1
- package/template/cs-lib/proj/MyLib.csproj +0 -1
- package/templates/.clang-format +4 -0
- package/templates/cpp-app/metro.config.js +51 -0
- package/templates/cpp-app/template.config.js +119 -0
- package/templates/cpp-app/windows/ExperimentalFeatures.props +12 -0
- package/templates/cpp-app/windows/MyApp/MyApp.cpp +284 -0
- package/templates/cpp-app/windows/MyApp/MyApp.h +3 -0
- package/templates/cpp-app/windows/MyApp/MyApp.ico +0 -0
- package/templates/cpp-app/windows/MyApp/MyApp.rc +0 -0
- package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +142 -0
- package/templates/cpp-app/windows/MyApp/MyApp.vcxproj.filters +55 -0
- package/templates/cpp-app/windows/MyApp/_gitignore +1 -0
- package/templates/cpp-app/windows/MyApp/pch.cpp +1 -0
- package/templates/cpp-app/windows/MyApp/pch.h +35 -0
- package/templates/cpp-app/windows/MyApp/resource.h +18 -0
- package/templates/cpp-app/windows/MyApp/small.ico +0 -0
- package/templates/cpp-app/windows/MyApp/targetver.h +8 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/LockScreenLogo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/SplashScreen.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Square150x150Logo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/StoreLogo.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Wide310x150Logo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/MyApp.Package.wapproj +78 -0
- package/{template/cs-app-WinAppSDK/MyApp → templates/cpp-app/windows/MyApp.Package}/Package.appxmanifest +9 -8
- package/templates/cpp-app/windows/MyApp.sln +176 -0
- package/templates/cpp-app/windows/_gitignore +41 -0
- package/templates/old/generateWrapper.js +67 -0
- package/templates/old/uwp-cpp-app/template.config.js +15 -0
- package/templates/old/uwp-cpp-lib/template.config.js +15 -0
- package/templates/old/uwp-cs-app/template.config.js +15 -0
- package/templates/old/uwp-cs-lib/template.config.js +15 -0
- package/types/experimental.d.ts +44 -0
- package/types/index.d.ts +2 -1
- package/types/modules/Devtools.d.ts +1 -0
- package/types/modules/globals.d.ts +16 -1
- package/Libraries/Components/View/ViewWindows.d.ts +0 -19
- package/Libraries/Components/View/ViewWindows.js +0 -22
- package/Libraries/Components/View/ViewWindows.js.map +0 -1
- package/Libraries/Components/View/ViewWindowsProps.d.ts +0 -69
- package/Libraries/Components/View/ViewWindowsProps.js +0 -8
- package/Libraries/Components/View/ViewWindowsProps.js.map +0 -1
- package/Libraries/Utilities/AcessibilityMapping.js +0 -154
- package/Libraries/Utilities/NativeDevSplitBundleLoader.js +0 -19
- package/Libraries/Utilities/useColorScheme.windows.js +0 -26
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +0 -61
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +0 -34
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +0 -42
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharp.PackageReferences.props +0 -11
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.targets +0 -51
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +0 -237
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +0 -59
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +0 -159
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +0 -94
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +0 -465
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +0 -116
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +0 -98
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +0 -326
- package/Scripts/Microsoft.ReactNative.WindowsAppSDK.nuspec +0 -30
- package/Shared/V8JSIRuntimeHolder.cpp +0 -71
- package/Shared/V8JSIRuntimeHolder.h +0 -56
- package/codegen/NativeDevSplitBundleLoaderSpec.g.h +0 -34
- package/template/cs-app-WinAppSDK/MyApp/App.xaml +0 -16
- package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +0 -70
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +0 -14
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +0 -38
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +0 -19
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +0 -19
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +0 -19
- package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +0 -10
- package/template/cs-app-WinAppSDK/MyApp/app.manifest +0 -15
- package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +0 -24
- package/template/cs-app-WinAppSDK/proj/MyApp.csproj +0 -53
- package/template/cs-app-WinAppSDK/proj/MyApp.sln +0 -43
- package/template/cs-app-WinAppSDK/proj/NuGet_Config +0 -19
- /package/Libraries/Components/DrawerAndroid/{DrawerLayoutAndroid.ios.js → DrawerLayoutAndroid.js} +0 -0
- /package/Libraries/{Renderer/public → ReactNative/ReactFabricPublicInstance}/ReactFabricPublicInstanceUtils.js +0 -0
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
// Check if compiler supports UUID
|
|
22
22
|
#ifndef COMPILER_SUPPORTS_UUID
|
|
23
|
-
#if defined(__clang__) || defined(__GNUC__)
|
|
23
|
+
#if (defined(__APPLE__) && defined(__clang__)) || defined(__GNUC__)
|
|
24
24
|
#define COMPILER_SUPPORTS_UUID 0
|
|
25
25
|
#elif defined(_MSC_VER)
|
|
26
26
|
#define COMPILER_SUPPORTS_UUID 1
|
|
@@ -91,13 +91,13 @@
|
|
|
91
91
|
|
|
92
92
|
struct IBank
|
|
93
93
|
{
|
|
94
|
-
// Generate
|
|
95
|
-
LIBLET_MOCKNAME("
|
|
96
|
-
virtual bool
|
|
94
|
+
// Generate mock_TryWithdrawalUint32
|
|
95
|
+
LIBLET_MOCKNAME("TryWithdrawalUint32")
|
|
96
|
+
virtual bool TryWithdrawal(uint32_t amount) = 0;
|
|
97
97
|
|
|
98
|
-
// Generate
|
|
99
|
-
LIBLET_MOCKNAME("
|
|
100
|
-
virtual bool
|
|
98
|
+
// Generate mock_TryWithdrawalFloat
|
|
99
|
+
LIBLET_MOCKNAME("TryWithdrawalFloat")
|
|
100
|
+
virtual bool TryWithdrawal(float amount) = 0;
|
|
101
101
|
};
|
|
102
102
|
*/
|
|
103
103
|
#if defined(__clangpluginrunner__)
|
|
@@ -97,7 +97,7 @@ static
|
|
|
97
97
|
|
|
98
98
|
Converts variable arguments into the arg list format
|
|
99
99
|
|
|
100
|
-
Use a
|
|
100
|
+
Use a lambda function to generate a unique function providing storage of
|
|
101
101
|
_fIgnore_ (for in-proc based assert management) and unique break address.
|
|
102
102
|
*/
|
|
103
103
|
#define MsoAssertSzTagProcInline2(dwTag, szFile, iLine, wzAnnotation, szFmt, ...) \
|
|
@@ -308,7 +308,7 @@ struct IDispatchQueue : IUnknown {
|
|
|
308
308
|
MSO_GUID(IDispatchQueueScheduler, "fd98f3c9-1343-4cbe-8758-a0322ffd253a")
|
|
309
309
|
struct IDispatchQueueScheduler : IUnknown {
|
|
310
310
|
//! Initializes scheduler by providing the dispatch queue service.
|
|
311
|
-
virtual void
|
|
311
|
+
virtual void InitializeScheduler(Mso::WeakPtr<IDispatchQueueService> &&queue) noexcept = 0;
|
|
312
312
|
|
|
313
313
|
//! True if the scheduler does processing in a serial order.
|
|
314
314
|
virtual bool IsSerial() noexcept = 0;
|
|
@@ -376,8 +376,8 @@ struct IDispatchQueueService : IUnknown {
|
|
|
376
376
|
virtual void UnlockLocalValue(void **tlsValue) noexcept = 0;
|
|
377
377
|
|
|
378
378
|
//! Suspend task invocation and increment internal suspend count by one.
|
|
379
|
-
//! Note that we do not expose
|
|
380
|
-
//! methods can be called from different threads and using
|
|
379
|
+
//! Note that we do not expose IsSuspended() method because the Suspend/Resume
|
|
380
|
+
//! methods can be called from different threads and using IsSuspended()
|
|
381
381
|
//! could lead to errors because the status can be changed any time right after the check.
|
|
382
382
|
virtual void Suspend() noexcept = 0;
|
|
383
383
|
|
|
@@ -203,7 +203,7 @@ inline uint32_t FilterCrashExceptions(uint32_t exceptionCode) noexcept {
|
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
#pragma warning(push)
|
|
206
|
-
#pragma warning(disable : 4702) // unreachable code might be hit if the linker determines the lambda is
|
|
206
|
+
#pragma warning(disable : 4702) // unreachable code might be hit if the linker determines the lambda is guaranteed to
|
|
207
207
|
// throw an exception
|
|
208
208
|
template <class TLambda>
|
|
209
209
|
inline bool ExpectCrashCore(TLambda const &lambda) {
|
package/Mso/motifCpp/testCheck.h
CHANGED
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
// It is useful to check when a noexcept function throws, or std::terminate is called directly.
|
|
74
74
|
// The implementation uses setjmp and longjmp which stops the termination sequence.
|
|
75
75
|
// In case if TestCheckTerminate succeeds we may end up with leaked memory because
|
|
76
|
-
// the call stack is not
|
|
76
|
+
// the call stack is not unwound correctly.
|
|
77
77
|
// You should disable memory leak detection in tests that use TestCheckTerminate.
|
|
78
78
|
//=============================================================================
|
|
79
79
|
#define TestCheckTerminateAtInternal(file, line, expr, exprStr, ...) \
|
package/Mso/oacr/oacr.h
CHANGED
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
#endif // _Intl_deprecated_
|
|
99
99
|
|
|
100
100
|
#if !defined(_Oleo_deprecated_)
|
|
101
|
-
// Office
|
|
101
|
+
// Office specific annotation used by the OLEO effort
|
|
102
102
|
#define _Oleo_deprecated_(NewFunctionName) __oacr_oleo_deprecated(NewFunctionName)
|
|
103
103
|
#endif // _Oleo_deprecated_
|
|
104
104
|
|
|
@@ -74,7 +74,7 @@ class THolder {
|
|
|
74
74
|
} // equivalent to std::string::clear()
|
|
75
75
|
void reset() noexcept {
|
|
76
76
|
this->Clear();
|
|
77
|
-
} // equivalent to std::unique_ptr::reset(),
|
|
77
|
+
} // equivalent to std::unique_ptr::reset(), except for not supporting (yet) passing a new pointer in (like Attach
|
|
78
78
|
// here).
|
|
79
79
|
|
|
80
80
|
/**
|
|
@@ -14,7 +14,7 @@ struct LooperScheduler : Mso::UnknownObject<Mso::RefCountStrategy::WeakRef, IDis
|
|
|
14
14
|
static void RunLoop(const Mso::WeakPtr<LooperScheduler> &weakSelf) noexcept;
|
|
15
15
|
|
|
16
16
|
public: // IDispatchQueueScheduler
|
|
17
|
-
void
|
|
17
|
+
void InitializeScheduler(Mso::WeakPtr<IDispatchQueueService> &&queue) noexcept override;
|
|
18
18
|
bool HasThreadAccess() noexcept override;
|
|
19
19
|
bool IsSerial() noexcept override;
|
|
20
20
|
void Post() noexcept override;
|
|
@@ -88,7 +88,7 @@ LooperScheduler::~LooperScheduler() noexcept {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
void LooperScheduler::
|
|
91
|
+
void LooperScheduler::InitializeScheduler(Mso::WeakPtr<IDispatchQueueService> &&queue) noexcept {
|
|
92
92
|
m_queue = std::move(queue);
|
|
93
93
|
}
|
|
94
94
|
|
|
@@ -13,7 +13,7 @@ namespace Mso {
|
|
|
13
13
|
|
|
14
14
|
QueueService::QueueService(Mso::CntPtr<IDispatchQueueScheduler> &&scheduler) noexcept
|
|
15
15
|
: m_scheduler{std::move(scheduler)} {
|
|
16
|
-
m_scheduler->
|
|
16
|
+
m_scheduler->InitializeScheduler(this);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
QueueService::~QueueService() noexcept {
|
|
@@ -52,7 +52,7 @@ struct TaskQueue {
|
|
|
52
52
|
std::vector<DispatchTask> m_writeBuffer; // To enqueue items.
|
|
53
53
|
TaskReadBuffer m_readBuffer; // To dequeue items.
|
|
54
54
|
Mso::WeakPtr<IUnknown> m_weakOwnerPtr;
|
|
55
|
-
Mso::CntPtr<IUnknown> m_strongOwnerPtr; // Keep strong reference to the owner when
|
|
55
|
+
Mso::CntPtr<IUnknown> m_strongOwnerPtr; // Keep strong reference to the owner when queue is not empty;
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
} // namespace Mso
|
|
@@ -23,7 +23,7 @@ struct ThreadPoolSchedulerWin : Mso::UnknownObject<IDispatchQueueScheduler> {
|
|
|
23
23
|
_Inout_ PTP_WORK work);
|
|
24
24
|
|
|
25
25
|
public: // IDispatchQueueScheduler
|
|
26
|
-
void
|
|
26
|
+
void InitializeScheduler(Mso::WeakPtr<IDispatchQueueService> &&queue) noexcept override;
|
|
27
27
|
bool HasThreadAccess() noexcept override;
|
|
28
28
|
bool IsSerial() noexcept override;
|
|
29
29
|
void Post() noexcept override;
|
|
@@ -131,7 +131,7 @@ ThreadPoolSchedulerWin::~ThreadPoolSchedulerWin() noexcept {
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
-
void ThreadPoolSchedulerWin::
|
|
134
|
+
void ThreadPoolSchedulerWin::InitializeScheduler(Mso::WeakPtr<IDispatchQueueService> &&queue) noexcept {
|
|
135
135
|
m_queue = std::move(queue);
|
|
136
136
|
}
|
|
137
137
|
|
|
@@ -9,12 +9,10 @@
|
|
|
9
9
|
|
|
10
10
|
using namespace winrt;
|
|
11
11
|
using namespace Windows::Foundation;
|
|
12
|
-
#ifndef USE_WINUI3
|
|
13
12
|
#include "winrt/Windows.System.h"
|
|
14
|
-
|
|
15
|
-
#
|
|
13
|
+
|
|
14
|
+
#ifdef USE_WINUI3
|
|
16
15
|
#include "winrt/Microsoft.UI.Dispatching.h"
|
|
17
|
-
using namespace Microsoft::UI::Dispatching;
|
|
18
16
|
#endif
|
|
19
17
|
|
|
20
18
|
namespace Mso {
|
|
@@ -67,29 +65,68 @@ struct ThreadSafeMap {
|
|
|
67
65
|
|
|
68
66
|
} // namespace
|
|
69
67
|
|
|
68
|
+
template <typename TDispatcherTraits>
|
|
70
69
|
struct UISchedulerWinRT;
|
|
71
70
|
|
|
71
|
+
template <typename TDispatcherTraits>
|
|
72
|
+
struct DispatcherTraits {};
|
|
73
|
+
|
|
74
|
+
template <typename TDispatcherTraits>
|
|
75
|
+
struct TaskDispatcherHandler;
|
|
76
|
+
|
|
77
|
+
struct WindowsTypeTag;
|
|
78
|
+
using WindowsTaskDispatcherHandler = TaskDispatcherHandler<DispatcherTraits<WindowsTypeTag>>;
|
|
79
|
+
|
|
80
|
+
template <>
|
|
81
|
+
struct DispatcherTraits<WindowsTypeTag> {
|
|
82
|
+
using DispatcherQueueHandler = Windows::System::DispatcherQueueHandler;
|
|
83
|
+
using DispatcherQueue = Windows::System::DispatcherQueue;
|
|
84
|
+
using DispatcherQueue_ShutdownCompleted_revoker = Windows::System::DispatcherQueue::ShutdownCompleted_revoker;
|
|
85
|
+
using TaskDispatcherHandler = WindowsTaskDispatcherHandler;
|
|
86
|
+
};
|
|
87
|
+
using WindowsDispatcherTraits = DispatcherTraits<WindowsTypeTag>;
|
|
88
|
+
|
|
89
|
+
#ifdef USE_WINUI3
|
|
90
|
+
struct MicrosoftTypeTag;
|
|
91
|
+
using MicrosoftTaskDispatcherHandler = TaskDispatcherHandler<DispatcherTraits<MicrosoftTypeTag>>;
|
|
92
|
+
|
|
93
|
+
template <>
|
|
94
|
+
struct DispatcherTraits<MicrosoftTypeTag> {
|
|
95
|
+
using DispatcherQueueHandler = Microsoft::UI::Dispatching::DispatcherQueueHandler;
|
|
96
|
+
using DispatcherQueue = Microsoft::UI::Dispatching::DispatcherQueue;
|
|
97
|
+
using DispatcherQueue_ShutdownCompleted_revoker =
|
|
98
|
+
Microsoft::UI::Dispatching::DispatcherQueue::ShutdownCompleted_revoker;
|
|
99
|
+
using TaskDispatcherHandler = MicrosoftTaskDispatcherHandler;
|
|
100
|
+
};
|
|
101
|
+
using MicrosoftDispatcherTraits = DispatcherTraits<MicrosoftTypeTag>;
|
|
102
|
+
|
|
103
|
+
#endif
|
|
104
|
+
|
|
72
105
|
//! TaskDispatcherHandler is a DispatcherQueueHandler delegate that we pass to DispatcherQueue.
|
|
73
106
|
//! We use custom ref counting to avoid extra memory allocations and to handle reference to DispatchTask.
|
|
74
|
-
|
|
75
|
-
|
|
107
|
+
template <typename TDispatcherTraits>
|
|
108
|
+
struct TaskDispatcherHandler final : impl::abi_t<typename TDispatcherTraits::DispatcherQueueHandler> {
|
|
109
|
+
TaskDispatcherHandler(UISchedulerWinRT<TDispatcherTraits> *scheduler) noexcept;
|
|
76
110
|
int32_t __stdcall QueryInterface(guid const &id, void **result) noexcept final;
|
|
77
111
|
uint32_t __stdcall AddRef() noexcept final;
|
|
78
112
|
uint32_t __stdcall Release() noexcept final;
|
|
79
113
|
int32_t __stdcall Invoke() noexcept final;
|
|
80
114
|
|
|
81
115
|
private:
|
|
82
|
-
UISchedulerWinRT *m_scheduler;
|
|
116
|
+
UISchedulerWinRT<TDispatcherTraits> *m_scheduler;
|
|
83
117
|
};
|
|
84
118
|
|
|
119
|
+
using WindowsTaskDispatcherHandler = TaskDispatcherHandler<DispatcherTraits<WindowsTypeTag>>;
|
|
120
|
+
|
|
121
|
+
template <typename TDispatcherTraits>
|
|
85
122
|
struct UISchedulerWinRT : Mso::UnknownObject<Mso::RefCountStrategy::WeakRef, IDispatchQueueScheduler> {
|
|
86
|
-
UISchedulerWinRT(DispatcherQueue &&dispatcher) noexcept;
|
|
123
|
+
UISchedulerWinRT(typename TDispatcherTraits::DispatcherQueue &&dispatcher) noexcept;
|
|
87
124
|
~UISchedulerWinRT() noexcept override;
|
|
88
125
|
|
|
89
126
|
uint32_t AddHandlerRef() noexcept;
|
|
90
127
|
uint32_t ReleaseHandlerRef() noexcept;
|
|
91
128
|
|
|
92
|
-
DispatcherQueueHandler MakeDispatcherQueueHandler() noexcept;
|
|
129
|
+
typename TDispatcherTraits::DispatcherQueueHandler MakeDispatcherQueueHandler() noexcept;
|
|
93
130
|
bool TryTakeTask(Mso::CntPtr<IDispatchQueueService> &queue, DispatchTask &task) noexcept;
|
|
94
131
|
|
|
95
132
|
static DispatchQueue GetOrCreateUIThreadQueue() noexcept;
|
|
@@ -97,7 +134,7 @@ struct UISchedulerWinRT : Mso::UnknownObject<Mso::RefCountStrategy::WeakRef, IDi
|
|
|
97
134
|
static DispatchQueueRegistry &GetDispatchQueueRegistry() noexcept;
|
|
98
135
|
|
|
99
136
|
public: // IDispatchQueueScheduler
|
|
100
|
-
void
|
|
137
|
+
void InitializeScheduler(Mso::WeakPtr<IDispatchQueueService> &&queue) noexcept override;
|
|
101
138
|
bool HasThreadAccess() noexcept override;
|
|
102
139
|
bool IsSerial() noexcept override;
|
|
103
140
|
void Post() noexcept override;
|
|
@@ -120,8 +157,8 @@ struct UISchedulerWinRT : Mso::UnknownObject<Mso::RefCountStrategy::WeakRef, IDi
|
|
|
120
157
|
};
|
|
121
158
|
|
|
122
159
|
private:
|
|
123
|
-
DispatcherQueue m_dispatcher{nullptr};
|
|
124
|
-
TaskDispatcherHandler m_dispatcherHandler{this};
|
|
160
|
+
typename TDispatcherTraits::DispatcherQueue m_dispatcher{nullptr};
|
|
161
|
+
typename TDispatcherTraits::TaskDispatcherHandler m_dispatcherHandler{this};
|
|
125
162
|
ManualResetEvent m_terminationEvent;
|
|
126
163
|
ThreadMutex m_mutex;
|
|
127
164
|
Mso::WeakPtr<IDispatchQueueService> m_queue;
|
|
@@ -130,19 +167,22 @@ struct UISchedulerWinRT : Mso::UnknownObject<Mso::RefCountStrategy::WeakRef, IDi
|
|
|
130
167
|
uint32_t m_taskCount{0};
|
|
131
168
|
bool m_isShutdown{false};
|
|
132
169
|
std::thread::id m_threadId{std::this_thread::get_id()};
|
|
133
|
-
|
|
170
|
+
typename TDispatcherTraits::DispatcherQueue_ShutdownCompleted_revoker m_shutdownCompletedRevoker;
|
|
134
171
|
};
|
|
135
172
|
|
|
136
173
|
//=============================================================================
|
|
137
174
|
// TaskDispatcherHandler implementation
|
|
138
175
|
//=============================================================================
|
|
139
176
|
|
|
140
|
-
|
|
177
|
+
template <typename TDispatcherTraits>
|
|
178
|
+
TaskDispatcherHandler<TDispatcherTraits>::TaskDispatcherHandler(UISchedulerWinRT<TDispatcherTraits> *scheduler) noexcept
|
|
179
|
+
: m_scheduler{scheduler} {}
|
|
141
180
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
181
|
+
template <typename TDispatcherTraits>
|
|
182
|
+
int32_t __stdcall TaskDispatcherHandler<TDispatcherTraits>::QueryInterface(guid const &id, void **result) noexcept {
|
|
183
|
+
if (is_guid_of<typename TDispatcherTraits::DispatcherQueueHandler>(id) ||
|
|
184
|
+
is_guid_of<Windows::Foundation::IUnknown>(id) || is_guid_of<IAgileObject>(id)) {
|
|
185
|
+
*result = static_cast<impl::abi_t<typename TDispatcherTraits::DispatcherQueueHandler> *>(this);
|
|
146
186
|
AddRef();
|
|
147
187
|
return impl::error_ok;
|
|
148
188
|
}
|
|
@@ -155,15 +195,18 @@ int32_t __stdcall TaskDispatcherHandler::QueryInterface(guid const &id, void **r
|
|
|
155
195
|
return impl::error_no_interface;
|
|
156
196
|
}
|
|
157
197
|
|
|
158
|
-
|
|
198
|
+
template <typename TDispatcherTraits>
|
|
199
|
+
uint32_t __stdcall TaskDispatcherHandler<TDispatcherTraits>::AddRef() noexcept {
|
|
159
200
|
return m_scheduler->AddHandlerRef();
|
|
160
201
|
}
|
|
161
202
|
|
|
162
|
-
|
|
203
|
+
template <typename TDispatcherTraits>
|
|
204
|
+
uint32_t __stdcall TaskDispatcherHandler<TDispatcherTraits>::Release() noexcept {
|
|
163
205
|
return m_scheduler->ReleaseHandlerRef();
|
|
164
206
|
}
|
|
165
207
|
|
|
166
|
-
|
|
208
|
+
template <typename TDispatcherTraits>
|
|
209
|
+
int32_t __stdcall TaskDispatcherHandler<TDispatcherTraits>::Invoke() noexcept {
|
|
167
210
|
Mso::CntPtr<IDispatchQueueService> queue;
|
|
168
211
|
DispatchTask task;
|
|
169
212
|
if (m_scheduler->TryTakeTask(queue, task)) {
|
|
@@ -177,24 +220,29 @@ int32_t __stdcall TaskDispatcherHandler::Invoke() noexcept {
|
|
|
177
220
|
// UISchedulerWinRT implementation
|
|
178
221
|
//=============================================================================
|
|
179
222
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
223
|
+
template <typename TDispatcherTraits>
|
|
224
|
+
UISchedulerWinRT<TDispatcherTraits>::UISchedulerWinRT(typename TDispatcherTraits::DispatcherQueue &&dispatcher) noexcept
|
|
225
|
+
: m_dispatcher{std::move(dispatcher)} {
|
|
226
|
+
m_shutdownCompletedRevoker = m_dispatcher.ShutdownCompleted(
|
|
227
|
+
winrt::auto_revoke, [](typename TDispatcherTraits::DispatcherQueue const &, IInspectable const &) noexcept {
|
|
183
228
|
GetDispatchQueueRegistry().Remove(std::this_thread::get_id());
|
|
184
229
|
});
|
|
185
230
|
}
|
|
186
231
|
|
|
187
|
-
|
|
232
|
+
template <typename TDispatcherTraits>
|
|
233
|
+
UISchedulerWinRT<TDispatcherTraits>::~UISchedulerWinRT() noexcept {
|
|
188
234
|
GetDispatchQueueRegistry().Remove(m_threadId);
|
|
189
235
|
AwaitTermination();
|
|
190
236
|
}
|
|
191
237
|
|
|
192
|
-
|
|
238
|
+
template <typename TDispatcherTraits>
|
|
239
|
+
uint32_t UISchedulerWinRT<TDispatcherTraits>::AddHandlerRef() noexcept {
|
|
193
240
|
std::lock_guard lock{m_mutex};
|
|
194
241
|
return ++m_handlerRefCount;
|
|
195
242
|
}
|
|
196
243
|
|
|
197
|
-
|
|
244
|
+
template <typename TDispatcherTraits>
|
|
245
|
+
uint32_t UISchedulerWinRT<TDispatcherTraits>::ReleaseHandlerRef() noexcept {
|
|
198
246
|
Mso::CntPtr<UISchedulerWinRT> self;
|
|
199
247
|
CleanupContext context{this};
|
|
200
248
|
|
|
@@ -213,7 +261,10 @@ uint32_t UISchedulerWinRT::ReleaseHandlerRef() noexcept {
|
|
|
213
261
|
}
|
|
214
262
|
}
|
|
215
263
|
|
|
216
|
-
|
|
264
|
+
template <typename TDispatcherTraits>
|
|
265
|
+
bool UISchedulerWinRT<TDispatcherTraits>::TryTakeTask(
|
|
266
|
+
Mso::CntPtr<IDispatchQueueService> &queue,
|
|
267
|
+
DispatchTask &task) noexcept {
|
|
217
268
|
{
|
|
218
269
|
std::lock_guard lock{m_mutex};
|
|
219
270
|
VerifyElseCrashSz(m_taskCount, "Task count cannot be negative");
|
|
@@ -227,7 +278,9 @@ bool UISchedulerWinRT::TryTakeTask(Mso::CntPtr<IDispatchQueueService> &queue, Di
|
|
|
227
278
|
return false;
|
|
228
279
|
}
|
|
229
280
|
|
|
230
|
-
|
|
281
|
+
template <typename TDispatcherTraits>
|
|
282
|
+
typename TDispatcherTraits::DispatcherQueueHandler
|
|
283
|
+
UISchedulerWinRT<TDispatcherTraits>::MakeDispatcherQueueHandler() noexcept {
|
|
231
284
|
VerifyElseCrash(m_mutex.IsLockedByMe());
|
|
232
285
|
|
|
233
286
|
if (m_handlerRefCount == 0) {
|
|
@@ -238,22 +291,26 @@ DispatcherQueueHandler UISchedulerWinRT::MakeDispatcherQueueHandler() noexcept {
|
|
|
238
291
|
return {static_cast<void *>(&m_dispatcherHandler), take_ownership_from_abi};
|
|
239
292
|
}
|
|
240
293
|
|
|
241
|
-
|
|
294
|
+
template <typename TDispatcherTraits>
|
|
295
|
+
void UISchedulerWinRT<TDispatcherTraits>::InitializeScheduler(Mso::WeakPtr<IDispatchQueueService> &&queue) noexcept {
|
|
242
296
|
m_queue = std::move(queue);
|
|
243
297
|
}
|
|
244
298
|
|
|
245
|
-
|
|
299
|
+
template <typename TDispatcherTraits>
|
|
300
|
+
bool UISchedulerWinRT<TDispatcherTraits>::HasThreadAccess() noexcept {
|
|
246
301
|
// m_dispatcher.HasThreadAccess() is implemented only in Windows 19H1.
|
|
247
302
|
// We must use an alternative implementation.
|
|
248
303
|
return m_threadId == std::this_thread::get_id();
|
|
249
304
|
}
|
|
250
305
|
|
|
251
|
-
|
|
306
|
+
template <typename TDispatcherTraits>
|
|
307
|
+
bool UISchedulerWinRT<TDispatcherTraits>::IsSerial() noexcept {
|
|
252
308
|
return true;
|
|
253
309
|
}
|
|
254
310
|
|
|
255
|
-
|
|
256
|
-
|
|
311
|
+
template <typename TDispatcherTraits>
|
|
312
|
+
void UISchedulerWinRT<TDispatcherTraits>::Post() noexcept {
|
|
313
|
+
typename TDispatcherTraits::DispatcherQueueHandler handler;
|
|
257
314
|
{
|
|
258
315
|
std::lock_guard lock{m_mutex};
|
|
259
316
|
if (!m_isShutdown) {
|
|
@@ -267,7 +324,8 @@ void UISchedulerWinRT::Post() noexcept {
|
|
|
267
324
|
}
|
|
268
325
|
}
|
|
269
326
|
|
|
270
|
-
|
|
327
|
+
template <typename TDispatcherTraits>
|
|
328
|
+
void UISchedulerWinRT<TDispatcherTraits>::Shutdown() noexcept {
|
|
271
329
|
CleanupContext context{this};
|
|
272
330
|
{
|
|
273
331
|
std::lock_guard lock{m_mutex};
|
|
@@ -276,12 +334,14 @@ void UISchedulerWinRT::Shutdown() noexcept {
|
|
|
276
334
|
}
|
|
277
335
|
}
|
|
278
336
|
|
|
279
|
-
|
|
337
|
+
template <typename TDispatcherTraits>
|
|
338
|
+
void UISchedulerWinRT<TDispatcherTraits>::AwaitTermination() noexcept {
|
|
280
339
|
Shutdown();
|
|
281
340
|
m_terminationEvent.Wait();
|
|
282
341
|
}
|
|
283
342
|
|
|
284
|
-
|
|
343
|
+
template <typename TDispatcherTraits>
|
|
344
|
+
/*static*/ DispatchQueue UISchedulerWinRT<TDispatcherTraits>::GetOrCreateUIThreadQueue() noexcept {
|
|
285
345
|
std::thread::id threadId{std::this_thread::get_id()};
|
|
286
346
|
std::optional<Mso::WeakPtr<IDispatchQueueService>> weakQueue = GetDispatchQueueRegistry().Get(threadId);
|
|
287
347
|
DispatchQueue queue{weakQueue.value_or(nullptr).GetStrongPtr()};
|
|
@@ -289,9 +349,9 @@ void UISchedulerWinRT::AwaitTermination() noexcept {
|
|
|
289
349
|
return queue;
|
|
290
350
|
}
|
|
291
351
|
|
|
292
|
-
decltype(DispatcherQueue::GetForCurrentThread()) dispatcher{nullptr};
|
|
352
|
+
decltype(TDispatcherTraits::DispatcherQueue::GetForCurrentThread()) dispatcher{nullptr};
|
|
293
353
|
try {
|
|
294
|
-
dispatcher = DispatcherQueue::GetForCurrentThread();
|
|
354
|
+
dispatcher = TDispatcherTraits::DispatcherQueue::GetForCurrentThread();
|
|
295
355
|
} catch (winrt::hresult_error const &) {
|
|
296
356
|
}
|
|
297
357
|
|
|
@@ -305,7 +365,9 @@ void UISchedulerWinRT::AwaitTermination() noexcept {
|
|
|
305
365
|
return queue;
|
|
306
366
|
}
|
|
307
367
|
|
|
308
|
-
|
|
368
|
+
template <typename TDispatcherTraits>
|
|
369
|
+
/*static*/ typename UISchedulerWinRT<TDispatcherTraits>::DispatchQueueRegistry &
|
|
370
|
+
UISchedulerWinRT<TDispatcherTraits>::GetDispatchQueueRegistry() noexcept {
|
|
309
371
|
static std::recursive_mutex mutex;
|
|
310
372
|
static DispatchQueueRegistry registry{mutex};
|
|
311
373
|
return registry;
|
|
@@ -315,9 +377,13 @@ void UISchedulerWinRT::AwaitTermination() noexcept {
|
|
|
315
377
|
// UISchedulerWinRT::CleanupContext implementation
|
|
316
378
|
//=============================================================================
|
|
317
379
|
|
|
318
|
-
|
|
380
|
+
template <typename TDispatcherTraits>
|
|
381
|
+
UISchedulerWinRT<TDispatcherTraits>::CleanupContext::CleanupContext(
|
|
382
|
+
UISchedulerWinRT<TDispatcherTraits> *scheduler) noexcept
|
|
383
|
+
: m_scheduler{scheduler} {}
|
|
319
384
|
|
|
320
|
-
|
|
385
|
+
template <typename TDispatcherTraits>
|
|
386
|
+
UISchedulerWinRT<TDispatcherTraits>::CleanupContext::~CleanupContext() noexcept {
|
|
321
387
|
if (m_isTerminated) {
|
|
322
388
|
m_scheduler->m_terminationEvent.Set();
|
|
323
389
|
}
|
|
@@ -329,7 +395,8 @@ UISchedulerWinRT::CleanupContext::~CleanupContext() noexcept {
|
|
|
329
395
|
}
|
|
330
396
|
}
|
|
331
397
|
|
|
332
|
-
|
|
398
|
+
template <typename TDispatcherTraits>
|
|
399
|
+
void UISchedulerWinRT<TDispatcherTraits>::CleanupContext::CheckShutdown() noexcept {
|
|
333
400
|
// See if dispatcher queue released all handlers without invoking them.
|
|
334
401
|
if (m_scheduler->m_taskCount != 0 && m_scheduler->m_handlerRefCount == 0) {
|
|
335
402
|
m_isShutdown = true;
|
|
@@ -338,7 +405,8 @@ void UISchedulerWinRT::CleanupContext::CheckShutdown() noexcept {
|
|
|
338
405
|
}
|
|
339
406
|
}
|
|
340
407
|
|
|
341
|
-
|
|
408
|
+
template <typename TDispatcherTraits>
|
|
409
|
+
void UISchedulerWinRT<TDispatcherTraits>::CleanupContext::CheckTermination() noexcept {
|
|
342
410
|
m_isTerminated = m_scheduler->m_isShutdown && (m_scheduler->m_handlerRefCount == 0);
|
|
343
411
|
}
|
|
344
412
|
|
|
@@ -347,7 +415,16 @@ void UISchedulerWinRT::CleanupContext::CheckTermination() noexcept {
|
|
|
347
415
|
//=============================================================================
|
|
348
416
|
|
|
349
417
|
DispatchQueue DispatchQueueStatic::GetCurrentUIThreadQueue() noexcept {
|
|
350
|
-
|
|
418
|
+
DispatchQueue queue{nullptr};
|
|
419
|
+
#if USE_WINUI3
|
|
420
|
+
queue = UISchedulerWinRT<MicrosoftDispatcherTraits>::GetOrCreateUIThreadQueue();
|
|
421
|
+
if (!queue) {
|
|
422
|
+
#endif
|
|
423
|
+
queue = UISchedulerWinRT<WindowsDispatcherTraits>::GetOrCreateUIThreadQueue();
|
|
424
|
+
#if USE_WINUI3
|
|
425
|
+
}
|
|
426
|
+
#endif
|
|
427
|
+
return queue;
|
|
351
428
|
}
|
|
352
429
|
|
|
353
430
|
} // namespace Mso
|
|
@@ -53,12 +53,12 @@ struct ConditionVariable {
|
|
|
53
53
|
|
|
54
54
|
// For the very first time here we use duration provided by user.
|
|
55
55
|
// If we get here again, then it means that the condition_variable was woken up
|
|
56
|
-
// due to
|
|
56
|
+
// due to sporadic wakeups, and we have to recalculate the wait duration.
|
|
57
57
|
if (waitTimePoint.ShouldUpdateWaitDuration) {
|
|
58
58
|
using namespace std::chrono;
|
|
59
59
|
auto timeLeft = duration_cast<milliseconds>(waitTimePoint.WaitUntil - system_clock::now());
|
|
60
60
|
// Make sure that we do not have negative duration because we waited beyond the target time point,
|
|
61
|
-
// or because system_clock::now() gave
|
|
61
|
+
// or because system_clock::now() gave inaccurate time due to internal implementation.
|
|
62
62
|
waitTimePoint.WaitDuration = std::max(timeLeft, milliseconds{0});
|
|
63
63
|
}
|
|
64
64
|
|
|
@@ -144,7 +144,7 @@ bool FuturePackedData::IsDone() const noexcept {
|
|
|
144
144
|
return (state == FutureState::Succeeded || state == FutureState::Failed);
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
bool FuturePackedData::
|
|
147
|
+
bool FuturePackedData::IsSucceeded() const noexcept {
|
|
148
148
|
return (GetState() == FutureState::Succeeded);
|
|
149
149
|
}
|
|
150
150
|
|
|
@@ -218,7 +218,7 @@ FutureImpl::~FutureImpl() noexcept {
|
|
|
218
218
|
}
|
|
219
219
|
|
|
220
220
|
// Destroy value if it was set. The value exists only if future succeeded.
|
|
221
|
-
if (m_traits.ValueDestroy && data.
|
|
221
|
+
if (m_traits.ValueDestroy && data.IsSucceeded()) {
|
|
222
222
|
m_traits.ValueDestroy(GetValueInternal());
|
|
223
223
|
}
|
|
224
224
|
|
|
@@ -291,7 +291,7 @@ const FutureTraits &FutureImpl::GetTraits() const noexcept {
|
|
|
291
291
|
|
|
292
292
|
ByteArrayView FutureImpl::GetValue() noexcept {
|
|
293
293
|
FuturePackedData data = m_stateAndContinuation.load(std::memory_order_acquire);
|
|
294
|
-
if (data.
|
|
294
|
+
if (data.IsSucceeded()) {
|
|
295
295
|
if (IsSet(m_traits.Options, FutureOptions::UseParentValue)) {
|
|
296
296
|
return m_link->GetValue();
|
|
297
297
|
}
|
|
@@ -352,7 +352,7 @@ void FutureImpl::AddContinuation(Mso::CntPtr<IFuture> &&continuation) noexcept {
|
|
|
352
352
|
// Do not change ref count when assigning previous continuation. It could be already deleted by now.
|
|
353
353
|
// So, we treat it just as a raw pointer until compare_exchange_weak succeeds.
|
|
354
354
|
// Initially it is owned by this FutureImpl instance, and if compare_exchange_weak succeeds then the
|
|
355
|
-
// ownership is
|
|
355
|
+
// ownership is transferred to the new continuation contFuture. No ref count should be changed during that
|
|
356
356
|
// ownership transition.
|
|
357
357
|
//
|
|
358
358
|
contFuture->m_link = Mso::CntPtr<FutureImpl>{currentContinuation, AttachTag};
|
|
@@ -809,7 +809,7 @@ bool FutureImpl::IsDone() const noexcept {
|
|
|
809
809
|
}
|
|
810
810
|
|
|
811
811
|
bool FutureImpl::IsSucceeded() const noexcept {
|
|
812
|
-
return m_stateAndContinuation.load(std::memory_order_acquire).
|
|
812
|
+
return m_stateAndContinuation.load(std::memory_order_acquire).IsSucceeded();
|
|
813
813
|
}
|
|
814
814
|
|
|
815
815
|
bool FutureImpl::IsFailed() const noexcept {
|
|
@@ -159,7 +159,7 @@ struct FuturePackedData {
|
|
|
159
159
|
FutureState GetState() const noexcept;
|
|
160
160
|
FutureImpl *GetContinuation() noexcept;
|
|
161
161
|
bool IsDone() const noexcept;
|
|
162
|
-
bool
|
|
162
|
+
bool IsSucceeded() const noexcept;
|
|
163
163
|
bool IsFailed() const noexcept;
|
|
164
164
|
|
|
165
165
|
static FuturePackedData Make(FutureState state) noexcept;
|
|
@@ -36,6 +36,9 @@
|
|
|
36
36
|
<ProjectDir Condition="'$(ProjectDir)' == ''">$(MSBuildProjectDirectory)\</ProjectDir>
|
|
37
37
|
<UseExperimentalNuget Condition="'$(UseExperimentalNuget)' == ''">false</UseExperimentalNuget>
|
|
38
38
|
<HermesNoDLLCopy Condition="'$(UseHermes)' != 'true'">true</HermesNoDLLCopy>
|
|
39
|
+
|
|
40
|
+
<RestorePackagesWithLockFile Condition="'$(RestorePackagesWithLockFile)' == ''">true</RestorePackagesWithLockFile>
|
|
41
|
+
<RestoreForceEvaluate Condition="'$(RestoreForceEvaluate)' == ''">false</RestoreForceEvaluate>
|
|
39
42
|
</PropertyGroup>
|
|
40
43
|
|
|
41
44
|
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\NewAPIDeclarations.props" />
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
4
|
Licensed under the MIT License.
|
|
5
5
|
|
|
6
|
-
This file will be consumed by ALL
|
|
6
|
+
This file will be consumed by ALL Win32 app and module projects (both inside
|
|
7
7
|
and outside of this repo) that build on top of Microsoft.ReactNative.
|
|
8
8
|
Do not make any changes here unless it applies to ALL such projects.
|
|
9
9
|
-->
|
|
10
10
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
11
11
|
<Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Common.props" />
|
|
12
|
-
</Project>
|
|
12
|
+
</Project>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Copyright (c) Microsoft Corporation.
|
|
4
4
|
Licensed under the MIT License.
|
|
5
5
|
|
|
6
|
-
This file will be consumed by ALL
|
|
6
|
+
This file will be consumed by ALL Win32 C++ app projects (both inside
|
|
7
7
|
and outside of this repo) that build on top of Microsoft.ReactNative.
|
|
8
8
|
Do not make any changes here unless it applies to ALL such projects.
|
|
9
9
|
-->
|
|
@@ -13,16 +13,13 @@
|
|
|
13
13
|
<Import Project="$(ProjectDir)\AutolinkedNativeModules.g.props"
|
|
14
14
|
Condition="Exists('$(ProjectDir)\AutolinkedNativeModules.g.props')" />
|
|
15
15
|
|
|
16
|
-
<
|
|
17
|
-
<!--https://github.com/microsoft/react-native-windows/pull/9177#discussion_r827643823-->
|
|
18
|
-
<UseDocString>false</UseDocString>
|
|
19
|
-
<ReactNativeCodeGenEnabled Condition="'$(ReactNativeCodeGenEnabled)' == ''">true</ReactNativeCodeGenEnabled>
|
|
20
|
-
</PropertyGroup>
|
|
21
|
-
|
|
22
|
-
<Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.WinAppSDK.Common.props" />
|
|
16
|
+
<Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Composition.Common.props" />
|
|
23
17
|
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Appx.props" />
|
|
24
18
|
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Autolink.props" />
|
|
25
19
|
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Codegen.props" />
|
|
26
|
-
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\
|
|
20
|
+
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\HybridCRT.props" Condition="'$(UseWinUI3)'=='true'"/>
|
|
21
|
+
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\NuGet.Cpp.props" />
|
|
27
22
|
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\WinUI.props" />
|
|
28
|
-
|
|
23
|
+
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\CppAppConsumeCSharpModule.props" />
|
|
24
|
+
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\PackageVersionDefinitions.props" />
|
|
25
|
+
</Project>
|