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
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"dependencies": {
|
|
4
|
+
"native,Version=v0.0": {
|
|
5
|
+
"boost": {
|
|
6
|
+
"type": "Direct",
|
|
7
|
+
"requested": "[1.76.0, )",
|
|
8
|
+
"resolved": "1.76.0",
|
|
9
|
+
"contentHash": "p+w3YvNdXL8Cu9Fzrmexssu0tZbWxuf6ywsQqHjDlKFE5ojXHof1HIyMC3zDLfLnh80dIeFcEUAuR2Asg/XHRA=="
|
|
10
|
+
},
|
|
11
|
+
"fmt": {
|
|
12
|
+
"type": "Project"
|
|
13
|
+
},
|
|
14
|
+
"folly": {
|
|
15
|
+
"type": "Project",
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"boost": "[1.76.0, )",
|
|
18
|
+
"fmt": "[1.0.0, )"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"native,Version=v0.0/win10-arm": {},
|
|
23
|
+
"native,Version=v0.0/win10-arm-aot": {},
|
|
24
|
+
"native,Version=v0.0/win10-arm64-aot": {},
|
|
25
|
+
"native,Version=v0.0/win10-x64": {},
|
|
26
|
+
"native,Version=v0.0/win10-x64-aot": {},
|
|
27
|
+
"native,Version=v0.0/win10-x86": {},
|
|
28
|
+
"native,Version=v0.0/win10-x86-aot": {}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
param(
|
|
2
|
+
)
|
|
3
|
+
|
|
4
|
+
[string] $RepoRoot = Resolve-Path "$PSScriptRoot\..\.."
|
|
5
|
+
|
|
6
|
+
$StartingLocation = Get-Location
|
|
7
|
+
Set-Location -Path $RepoRoot
|
|
8
|
+
|
|
9
|
+
try
|
|
10
|
+
{
|
|
11
|
+
$packagesSolutions = Get-ChildItem -File -Recurse -Path packages *.sln | Where-Object { !$_.FullName.Contains('node_modules') -and !$_.FullName.Contains('e2etest') }
|
|
12
|
+
$vnextSolutions = Get-ChildItem -File -Path vnext *.sln
|
|
13
|
+
|
|
14
|
+
$($packagesSolutions; $vnextSolutions) | Foreach {
|
|
15
|
+
Write-Host Restoring $_.FullName
|
|
16
|
+
& msbuild /t:Restore /p:RestoreForceEvaluate=true $_.FullName
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
finally
|
|
20
|
+
{
|
|
21
|
+
Set-Location -Path "$StartingLocation"
|
|
22
|
+
}
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
<file src="$nugetroot$\inc\stubs\**\*.*" target="inc" />
|
|
47
47
|
|
|
48
48
|
<file src="$nugetroot$\inc\Shared\AbiSafe.h" target="inc"/>
|
|
49
|
+
<file src="$nugetroot$\inc\Shared\Composition\AutoDraw.h" target="inc"/>
|
|
49
50
|
<file src="$nugetroot$\inc\Shared\Composition\CompositionSwitcher.interop.h" target="inc"/>
|
|
50
51
|
<file src="$nugetroot$\inc\Shared\DevSettings.h" target="inc"/>
|
|
51
52
|
<file src="$nugetroot$\inc\ReactWin32\INativeUIManagerLegacy.h" target="inc"/>
|
|
@@ -81,6 +81,8 @@ $vsWorkloads = @('Microsoft.VisualStudio.Workload.ManagedDesktop',
|
|
|
81
81
|
$vsAll = ($vsComponents + $vsWorkloads);
|
|
82
82
|
|
|
83
83
|
# The minimum VS version to check for
|
|
84
|
+
# Note: For install to work, whatever min version you specify here must be met by the current package available on choco.
|
|
85
|
+
# I.E. Do NOT specify a Preview version here because choco doesn't have VS Preview packages.
|
|
84
86
|
$vsver = "17.3";
|
|
85
87
|
|
|
86
88
|
# The exact .NET SDK version to check for
|
|
@@ -177,30 +179,52 @@ function CheckVS {
|
|
|
177
179
|
return $result;
|
|
178
180
|
}
|
|
179
181
|
|
|
182
|
+
function GetVSChannelAndProduct {
|
|
183
|
+
param(
|
|
184
|
+
[string]$VsWhere
|
|
185
|
+
)
|
|
186
|
+
|
|
187
|
+
if ($VsWhere -ne $null) {
|
|
188
|
+
$channelId = & $VsWhere -version $vsver -property channelId;
|
|
189
|
+
$productId = & $VsWhere -version $vsver -property productId;
|
|
190
|
+
|
|
191
|
+
# Channel/product not found, check one more time for pre-release
|
|
192
|
+
if (($channelId -eq $null) -or ($productId -eq $null)) {
|
|
193
|
+
$channelId = & $VsWhere -version $vsver -property channelId -prerelease;
|
|
194
|
+
$productId = & $VsWhere -version $vsver -property productId -prerelease;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
return $channelId, $productId;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
return $null, $null;
|
|
201
|
+
}
|
|
202
|
+
|
|
180
203
|
function InstallVS {
|
|
181
204
|
$vsWhere = Get-VSWhere;
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
$channelId = & $vsWhere -version $vsver -property channelId;
|
|
185
|
-
$productId = & $vsWhere -version $vsver -property productId;
|
|
186
|
-
}
|
|
205
|
+
|
|
206
|
+
$channelId, $productId = GetVSChannelAndProduct -VsWhere $vsWhere
|
|
187
207
|
|
|
188
208
|
if (($vsWhere -eq $null) -or ($channelId -eq $null) -or ($productId -eq $null)) {
|
|
189
|
-
# No VSWhere / VS_Installer
|
|
209
|
+
# No VSWhere / VS_Installer, try to install
|
|
190
210
|
|
|
191
211
|
EnsureChocoForInstall;
|
|
192
212
|
|
|
193
213
|
if ($Enterprise) {
|
|
194
214
|
# The CI machines need the enterprise version of VS as that is what is hardcoded in all the scripts
|
|
195
|
-
|
|
215
|
+
ChocoInstall visualstudio2022enterprise;
|
|
196
216
|
} else {
|
|
197
|
-
|
|
217
|
+
ChocoInstall visualstudio2022community;
|
|
198
218
|
}
|
|
199
219
|
|
|
200
220
|
$vsWhere = Get-VSWhere;
|
|
201
221
|
|
|
202
|
-
$channelId =
|
|
203
|
-
|
|
222
|
+
$channelId, $productId = GetVSChannelAndProduct -VsWhere $vsWhere
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
# Final check before attempting install
|
|
226
|
+
if (($vsWhere -eq $null) -or ($channelId -eq $null) -or ($productId -eq $null)) {
|
|
227
|
+
throw "Unable to find or install a compatible version of Visual Studio >= ($vsver).";
|
|
204
228
|
}
|
|
205
229
|
|
|
206
230
|
$vsInstaller = Join-Path -Path (Split-Path -Parent $vsWhere) -ChildPath "vs_installer.exe";
|
|
@@ -215,7 +239,7 @@ function CheckNode {
|
|
|
215
239
|
$nodeVersion = (Get-Command node -ErrorAction Stop).Version;
|
|
216
240
|
Write-Verbose "Node version found: $nodeVersion";
|
|
217
241
|
$v = $nodeVersion.Major;
|
|
218
|
-
return ($v -ge
|
|
242
|
+
return ($v -ge 18) -and (($v % 2) -eq 0);
|
|
219
243
|
} catch { Write-Debug $_ }
|
|
220
244
|
|
|
221
245
|
Write-Verbose "Node not found.";
|
|
@@ -399,7 +423,7 @@ $requirements = @(
|
|
|
399
423
|
Name = 'Git';
|
|
400
424
|
Tags = @('rnwDev');
|
|
401
425
|
Valid = { try { (Get-Command git.exe -ErrorAction Stop) -ne $null } catch { $false }; }
|
|
402
|
-
Install = {
|
|
426
|
+
Install = { ChocoInstall git };
|
|
403
427
|
InstallsWithChoco = $true;
|
|
404
428
|
},
|
|
405
429
|
@{
|
|
@@ -412,10 +436,10 @@ $requirements = @(
|
|
|
412
436
|
},
|
|
413
437
|
@{
|
|
414
438
|
Id=[CheckId]::Node;
|
|
415
|
-
Name = 'Node.js (LTS, >=
|
|
439
|
+
Name = 'Node.js (LTS, >= 18.0)';
|
|
416
440
|
Tags = @('appDev');
|
|
417
441
|
Valid = { CheckNode; }
|
|
418
|
-
Install = {
|
|
442
|
+
Install = { ChocoInstall nodejs-lts };
|
|
419
443
|
InstallsWithChoco = $true;
|
|
420
444
|
HasVerboseOutput = $true;
|
|
421
445
|
},
|
|
@@ -424,7 +448,7 @@ $requirements = @(
|
|
|
424
448
|
Name = 'Yarn';
|
|
425
449
|
Tags = @('appDev');
|
|
426
450
|
Valid = { CheckYarn }
|
|
427
|
-
Install = {
|
|
451
|
+
Install = { ChocoInstall yarn };
|
|
428
452
|
InstallsWithChoco = $true;
|
|
429
453
|
HasVerboseOutput = $true;
|
|
430
454
|
},
|
|
@@ -449,7 +473,7 @@ $requirements = @(
|
|
|
449
473
|
Tags = @('rnwDev');
|
|
450
474
|
Valid = { ( cmd "/c assoc .binlog 2>nul" ) -ne $null; }
|
|
451
475
|
Install = {
|
|
452
|
-
|
|
476
|
+
ChocoInstall msbuild-structured-log-viewer;
|
|
453
477
|
$slv = gci ${env:LocalAppData}\MSBuildStructuredLogViewer\StructuredLogViewer.exe -Recurse | select FullName | Sort-Object -Property FullName -Descending | Select-Object -First 1
|
|
454
478
|
cmd /c "assoc .binlog=MSBuildLog >nul";
|
|
455
479
|
cmd /c "ftype MSBuildLog=$($slv.FullName) %1 >nul";
|
|
@@ -463,7 +487,7 @@ $requirements = @(
|
|
|
463
487
|
Name = 'Windows ADK';
|
|
464
488
|
Tags = @('buildLab');
|
|
465
489
|
Valid = { (Test-Path "${env:ProgramFiles(x86)}\Windows Kits\10\Windows Performance Toolkit\wpr.exe"); };
|
|
466
|
-
Install = {
|
|
490
|
+
Install = { ChocoInstall windows-adk };
|
|
467
491
|
InstallsWithChoco = $true;
|
|
468
492
|
Optional = $true;
|
|
469
493
|
},
|
|
@@ -491,32 +515,61 @@ $requirements = @(
|
|
|
491
515
|
Name = ".NET SDK (LTS, = $dotnetver)";
|
|
492
516
|
Tags = @('appDev');
|
|
493
517
|
Valid = { CheckDotNetCore; };
|
|
494
|
-
Install = {
|
|
518
|
+
Install = { ChocoInstall dotnet-$dotnetver-sdk };
|
|
495
519
|
InstallsWithChoco = $true;
|
|
496
520
|
HasVerboseOutput = $true;
|
|
497
521
|
}
|
|
498
522
|
);
|
|
499
523
|
|
|
524
|
+
$ChocoCmd = ""; # This should get set when EnsureChocoForInstall is called
|
|
525
|
+
|
|
500
526
|
function EnsureChocoForInstall {
|
|
501
|
-
Write-Verbose "Checking for
|
|
527
|
+
Write-Verbose "Checking for Chocolatey...";
|
|
502
528
|
try {
|
|
503
|
-
|
|
504
|
-
if (
|
|
505
|
-
|
|
529
|
+
# Check if choco.exe is in PATH
|
|
530
|
+
if (Get-Command "choco.exe" -CommandType Application -ErrorAction Ignore) {
|
|
531
|
+
Set-Variable -Name "ChocoCmd" -Value "choco.exe" -Scope Script
|
|
532
|
+
Write-Verbose "Chocolatey found in PATH.";
|
|
533
|
+
return;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
# Check for choco.exe in usual install location (taken from https://chocolatey.org/install.ps1)
|
|
537
|
+
$checkPath = if ($env:ChocolateyInstall) { $env:ChocolateyInstall } else { "$env:PROGRAMDATA\chocolatey" }
|
|
538
|
+
|
|
539
|
+
$FullPath = Join-Path $checkPath "bin\choco.exe";
|
|
540
|
+
|
|
541
|
+
if (Test-Path $FullPath) {
|
|
542
|
+
Set-Variable -Name "ChocoCmd" -Value $FullPath -Scope Script
|
|
543
|
+
Write-Verbose "Chocolatey found at $ChocoCmd.";
|
|
506
544
|
return;
|
|
507
545
|
}
|
|
546
|
+
|
|
508
547
|
} catch { Write-Debug $_ }
|
|
509
548
|
|
|
510
|
-
Write-Verbose "
|
|
549
|
+
Write-Verbose "Chocolatey not found.";
|
|
511
550
|
|
|
512
|
-
if (!$NoPrompt -and (Read-Host "
|
|
513
|
-
Write-Host "Installing
|
|
551
|
+
if (!$NoPrompt -and (Read-Host "This script uses Chocolatey to install this component. Do you want to install Chocolatey? [y/N]").ToUpperInvariant() -eq 'Y') {
|
|
552
|
+
Write-Host "Installing Chocolatey...";
|
|
514
553
|
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
|
|
515
554
|
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'));
|
|
555
|
+
EnsureChocoForInstall;
|
|
516
556
|
return;
|
|
517
557
|
}
|
|
518
558
|
|
|
519
|
-
throw "
|
|
559
|
+
throw "Chocolatey needed to install.";
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
function ChocoInstall {
|
|
563
|
+
param(
|
|
564
|
+
[string]$ChocoPackage
|
|
565
|
+
)
|
|
566
|
+
|
|
567
|
+
if ($ChocoCmd -eq "") {
|
|
568
|
+
throw "`$ChocoCmd is not set, did you call EnsureChocoForInstall?";
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
Write-Verbose "Executing `"$ChocoCmd`" install -y `"$ChocoPackage`"";
|
|
572
|
+
& "$ChocoCmd" install -y "$ChocoPackage"
|
|
520
573
|
}
|
|
521
574
|
|
|
522
575
|
function IsElevated {
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
#include "pch.h"
|
|
5
5
|
|
|
6
6
|
#include "BaseScriptStoreImpl.h"
|
|
7
|
+
#include "Hasher.h"
|
|
7
8
|
#include "MemoryMappedBuffer.h"
|
|
8
9
|
|
|
9
10
|
#include <CppRuntimeOptions.h>
|
|
@@ -92,6 +93,7 @@ struct PreparedScriptPrefix {
|
|
|
92
93
|
jsi::ScriptVersion_t scriptVersion;
|
|
93
94
|
jsi::JSRuntimeVersion_t runtimeVersion;
|
|
94
95
|
uint64_t sizeInBytes;
|
|
96
|
+
std::uint8_t hash[32];
|
|
95
97
|
};
|
|
96
98
|
|
|
97
99
|
struct PreparedScriptSuffix {
|
|
@@ -197,40 +199,40 @@ std::string BasePreparedScriptStoreImpl::getPreparedScriptFileName(
|
|
|
197
199
|
// Essentially, we are trying to construct,
|
|
198
200
|
// prep_<source_url>_<runtime_id>_<preparation_tag>.cache
|
|
199
201
|
|
|
200
|
-
std::string
|
|
202
|
+
std::string preparedScriptFileName("prep_");
|
|
201
203
|
|
|
202
204
|
const std::string &scriptUrl = scriptSignature.url;
|
|
203
205
|
|
|
204
206
|
// As a crude heuristic we choose the last 64 characters of the source url.
|
|
205
207
|
constexpr int MAXLENGTH = 64;
|
|
206
|
-
|
|
208
|
+
preparedScriptFileName.append(
|
|
207
209
|
scriptUrl.begin() + ((scriptUrl.size() < MAXLENGTH) ? 0 : (scriptUrl.size() - MAXLENGTH)), scriptUrl.end());
|
|
208
210
|
|
|
209
211
|
// Make a valid file name.
|
|
210
|
-
std::replace(
|
|
211
|
-
std::replace(
|
|
212
|
-
std::replace(
|
|
213
|
-
std::replace(
|
|
212
|
+
std::replace(preparedScriptFileName.begin(), preparedScriptFileName.end(), '\\', '_');
|
|
213
|
+
std::replace(preparedScriptFileName.begin(), preparedScriptFileName.end(), '/', '_');
|
|
214
|
+
std::replace(preparedScriptFileName.begin(), preparedScriptFileName.end(), ':', '_');
|
|
215
|
+
std::replace(preparedScriptFileName.begin(), preparedScriptFileName.end(), '.', '_');
|
|
214
216
|
|
|
215
217
|
if (runtimeSignature.runtimeName.empty()) {
|
|
216
218
|
std::terminate();
|
|
217
219
|
}
|
|
218
220
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
+
preparedScriptFileName.append("_");
|
|
222
|
+
preparedScriptFileName.append(runtimeSignature.runtimeName);
|
|
221
223
|
|
|
222
224
|
if (prepareTag) {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
+
preparedScriptFileName.append("_");
|
|
226
|
+
preparedScriptFileName.append(prepareTag);
|
|
225
227
|
}
|
|
226
228
|
|
|
227
|
-
// TODO :: Need to
|
|
229
|
+
// TODO :: Need to construct a hash. ref:
|
|
228
230
|
// https://en.wikipedia.org/wiki/Base64#Filenames
|
|
229
231
|
|
|
230
232
|
// extension
|
|
231
|
-
|
|
233
|
+
preparedScriptFileName.append(".cache");
|
|
232
234
|
|
|
233
|
-
return
|
|
235
|
+
return preparedScriptFileName;
|
|
234
236
|
}
|
|
235
237
|
|
|
236
238
|
std::shared_ptr<const jsi::Buffer> BasePreparedScriptStoreImpl::tryGetPreparedScript(
|
|
@@ -269,6 +271,24 @@ std::shared_ptr<const jsi::Buffer> BasePreparedScriptStoreImpl::tryGetPreparedSc
|
|
|
269
271
|
return nullptr;
|
|
270
272
|
}
|
|
271
273
|
|
|
274
|
+
std::optional<std::vector<std::uint8_t>> hashBuffer = Microsoft::ReactNative::GetSHA256Hash(
|
|
275
|
+
reinterpret_cast<const std::uint8_t *>(buffer->data()) + sizeof(PreparedScriptPrefix),
|
|
276
|
+
static_cast<size_t>(prefix->sizeInBytes));
|
|
277
|
+
if (!hashBuffer) {
|
|
278
|
+
// Hashing failed.
|
|
279
|
+
return nullptr;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
if (hashBuffer.value().size() < sizeof(prefix->hash)) {
|
|
283
|
+
// Unexpected hash size.
|
|
284
|
+
return nullptr;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
if (memcmp(hashBuffer.value().data(), prefix->hash, sizeof(prefix->hash)) != 0) {
|
|
288
|
+
// Hash doesn't match. Store is possibly corrupted. It is safer to bail out.
|
|
289
|
+
return nullptr;
|
|
290
|
+
}
|
|
291
|
+
|
|
272
292
|
const PreparedScriptSuffix *suffix = reinterpret_cast<const PreparedScriptSuffix *>(
|
|
273
293
|
buffer->data() + sizeof(PreparedScriptPrefix) + prefix->sizeInBytes);
|
|
274
294
|
if (strncmp(suffix->eof, PERSIST_EOF, sizeof(suffix->eof)) != 0) {
|
|
@@ -297,6 +317,15 @@ void BasePreparedScriptStoreImpl::persistPreparedScript(
|
|
|
297
317
|
prefix->runtimeVersion = runtimeMetadata.version;
|
|
298
318
|
prefix->sizeInBytes = preparedScript->size();
|
|
299
319
|
|
|
320
|
+
std::optional<std::vector<std::uint8_t>> hashBuffer =
|
|
321
|
+
Microsoft::ReactNative::GetSHA256Hash(preparedScript->data(), preparedScript->size());
|
|
322
|
+
if (!hashBuffer) {
|
|
323
|
+
// Hashing failed.
|
|
324
|
+
std::terminate();
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
memcpy_s(prefix->hash, sizeof(prefix->hash), hashBuffer.value().data(), hashBuffer.value().size());
|
|
328
|
+
|
|
300
329
|
memcpy_s(
|
|
301
330
|
newBuffer->data() + sizeof(PreparedScriptPrefix),
|
|
302
331
|
newBuffer->size() - sizeof(PreparedScriptPrefix),
|
|
@@ -73,7 +73,7 @@ class BasePreparedScriptStoreImpl : public facebook::jsi::PreparedScriptStore {
|
|
|
73
73
|
};
|
|
74
74
|
|
|
75
75
|
// Dead simple script store implementation assuming that the script url is a
|
|
76
|
-
// local
|
|
76
|
+
// local filesystem path and assuming the script version is the script size, but
|
|
77
77
|
// with extension point to provide custom version provider.
|
|
78
78
|
class BaseScriptStoreImpl : public facebook::jsi::ScriptStore {
|
|
79
79
|
public:
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
#include <winrt/Microsoft.ReactNative.Composition.h>
|
|
5
|
+
|
|
6
|
+
namespace Microsoft::ReactNative::Composition {
|
|
7
|
+
|
|
8
|
+
class AutoDrawDrawingSurface {
|
|
9
|
+
public:
|
|
10
|
+
AutoDrawDrawingSurface(
|
|
11
|
+
winrt::Microsoft::ReactNative::Composition::IDrawingSurfaceBrush &drawingSurface,
|
|
12
|
+
POINT *offset) noexcept {
|
|
13
|
+
drawingSurface.as(m_drawingSurfaceInterop);
|
|
14
|
+
m_drawingSurfaceInterop->BeginDraw(m_d2dDeviceContext.put(), offset);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
~AutoDrawDrawingSurface() noexcept {
|
|
18
|
+
if (m_d2dDeviceContext) {
|
|
19
|
+
m_drawingSurfaceInterop->EndDraw();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
operator ID2D1DeviceContext *() noexcept {
|
|
24
|
+
return m_d2dDeviceContext.get();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
ID2D1DeviceContext *GetRenderTarget() noexcept {
|
|
28
|
+
return m_d2dDeviceContext.get();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
private:
|
|
32
|
+
winrt::com_ptr<ICompositionDrawingSurfaceInterop> m_drawingSurfaceInterop;
|
|
33
|
+
winrt::com_ptr<ID2D1DeviceContext> m_d2dDeviceContext;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
} // namespace Microsoft::ReactNative::Composition
|
|
@@ -223,7 +223,7 @@ class CxxMessageQueue::QueueRunner {
|
|
|
223
223
|
CxxMessageQueue::CxxMessageQueue() : qr_(new QueueRunner()) {}
|
|
224
224
|
|
|
225
225
|
CxxMessageQueue::~CxxMessageQueue() {
|
|
226
|
-
// TODO(cjhopman): Add detach() so that the queue doesn't have to be
|
|
226
|
+
// TODO(@cjhopman): Add detach() so that the queue doesn't have to be
|
|
227
227
|
// explicitly stopped.
|
|
228
228
|
if (!qr_->isStopped()) {
|
|
229
229
|
LOG(FATAL) << "Queue not stopped.";
|
package/Shared/DevSettings.h
CHANGED
|
@@ -102,6 +102,9 @@ struct DevSettings {
|
|
|
102
102
|
|
|
103
103
|
// Transitory. Used to indicate whether or not to load networking types in the default Cxx module registry.
|
|
104
104
|
bool omitNetworkingCxxModules{false};
|
|
105
|
+
|
|
106
|
+
// OC:8368383 - Memory leak under investigation.
|
|
107
|
+
bool useWebSocketTurboModule{false};
|
|
105
108
|
};
|
|
106
109
|
|
|
107
110
|
} // namespace react
|
|
@@ -50,7 +50,7 @@ class DevSupportManager final : public facebook::react::IDevSupportManager {
|
|
|
50
50
|
virtual void StopPollingLiveReload() override;
|
|
51
51
|
|
|
52
52
|
virtual void EnsureHermesInspector(const std::string &packagerHost, const uint16_t packagerPort) noexcept override;
|
|
53
|
-
virtual void UpdateBundleStatus(bool
|
|
53
|
+
virtual void UpdateBundleStatus(bool isLastDownloadSuccess, int64_t updateTimestamp) noexcept override;
|
|
54
54
|
|
|
55
55
|
private:
|
|
56
56
|
std::atomic_bool m_cancellation_token;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#include "pch.h"
|
|
2
|
+
#include "Hasher.h"
|
|
3
|
+
|
|
4
|
+
#ifndef NT_SUCCESS
|
|
5
|
+
#define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)
|
|
6
|
+
#endif // NT_SUCCESS
|
|
7
|
+
|
|
8
|
+
#define CheckNTSuccess(s) \
|
|
9
|
+
do { \
|
|
10
|
+
NTSTATUS status = (s); \
|
|
11
|
+
if (!NT_SUCCESS(status)) { \
|
|
12
|
+
throw status; \
|
|
13
|
+
} \
|
|
14
|
+
} while (false)
|
|
15
|
+
|
|
16
|
+
namespace Microsoft::ReactNative {
|
|
17
|
+
|
|
18
|
+
std::optional<std::vector<std::uint8_t>> GetSHA256Hash(const void *pb, size_t cb) {
|
|
19
|
+
try {
|
|
20
|
+
SHA256Hasher hasher;
|
|
21
|
+
hasher.HashData(pb, cb);
|
|
22
|
+
return hasher.GetHashValue();
|
|
23
|
+
} catch (...) {
|
|
24
|
+
return std::nullopt;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
SHA256Hasher::SHA256Hasher() {
|
|
29
|
+
CheckNTSuccess(BCryptOpenAlgorithmProvider(&m_hAlg, BCRYPT_SHA256_ALGORITHM, NULL, 0));
|
|
30
|
+
|
|
31
|
+
DWORD cbObject;
|
|
32
|
+
DWORD cbData;
|
|
33
|
+
CheckNTSuccess(BCryptGetProperty(m_hAlg, BCRYPT_OBJECT_LENGTH, (PBYTE)&cbObject, sizeof(DWORD), &cbData, 0));
|
|
34
|
+
|
|
35
|
+
m_hashObject.resize(cbObject);
|
|
36
|
+
CheckNTSuccess(
|
|
37
|
+
BCryptCreateHash(m_hAlg, &m_hHash, m_hashObject.data(), static_cast<ULONG>(m_hashObject.size()), NULL, 0, 0));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
SHA256Hasher::~SHA256Hasher() {
|
|
41
|
+
BCryptDestroyHash(m_hHash);
|
|
42
|
+
BCryptCloseAlgorithmProvider(m_hAlg, 0);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
void SHA256Hasher::HashData(const void *pb, size_t cb) {
|
|
46
|
+
if (cb > LONG_MAX) {
|
|
47
|
+
// Input too large
|
|
48
|
+
throw E_INVALIDARG;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
CheckNTSuccess(BCryptHashData(m_hHash, (PBYTE)pb, (DWORD)cb, 0));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
std::vector<std::uint8_t> SHA256Hasher::GetHashValue() {
|
|
55
|
+
DWORD hashLength;
|
|
56
|
+
DWORD cbData;
|
|
57
|
+
CheckNTSuccess(BCryptGetProperty(m_hAlg, BCRYPT_HASH_LENGTH, (PBYTE)&hashLength, sizeof(DWORD), &cbData, 0));
|
|
58
|
+
|
|
59
|
+
std::vector<uint8_t> hashValue(hashLength, 0);
|
|
60
|
+
CheckNTSuccess(BCryptFinishHash(m_hHash, &hashValue[0], static_cast<ULONG>(hashValue.size()), 0));
|
|
61
|
+
|
|
62
|
+
return hashValue;
|
|
63
|
+
}
|
|
64
|
+
} // namespace Microsoft::ReactNative
|
package/Shared/Hasher.h
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#include <bcrypt.h>
|
|
2
|
+
#include <optional>
|
|
3
|
+
#include <vector>
|
|
4
|
+
|
|
5
|
+
namespace Microsoft::ReactNative {
|
|
6
|
+
std::optional<std::vector<std::uint8_t>> GetSHA256Hash(const void *pb, size_t cb);
|
|
7
|
+
|
|
8
|
+
class SHA256Hasher {
|
|
9
|
+
public:
|
|
10
|
+
SHA256Hasher();
|
|
11
|
+
~SHA256Hasher();
|
|
12
|
+
|
|
13
|
+
SHA256Hasher(const SHA256Hasher &) = delete;
|
|
14
|
+
SHA256Hasher &operator=(const SHA256Hasher &) = delete;
|
|
15
|
+
|
|
16
|
+
std::vector<std::uint8_t> GetHashValue();
|
|
17
|
+
void HashData(const void *pb, size_t cb);
|
|
18
|
+
|
|
19
|
+
private:
|
|
20
|
+
BCRYPT_ALG_HANDLE m_hAlg;
|
|
21
|
+
BCRYPT_HASH_HANDLE m_hHash;
|
|
22
|
+
std::vector<std::uint8_t> m_hashObject;
|
|
23
|
+
};
|
|
24
|
+
} // namespace Microsoft::ReactNative
|
|
@@ -38,7 +38,7 @@ void NAPI_CDECL removeInspectorPage(int32_t pageId) noexcept;
|
|
|
38
38
|
|
|
39
39
|
class HermesFuncResolver : public IFuncResolver {
|
|
40
40
|
public:
|
|
41
|
-
HermesFuncResolver() : libHandle_(
|
|
41
|
+
HermesFuncResolver() : libHandle_(SafeLoadLibrary(L"hermes.dll")) {}
|
|
42
42
|
|
|
43
43
|
FuncPtr getFuncPtr(const char *funcName) override {
|
|
44
44
|
return reinterpret_cast<FuncPtr>(GetProcAddress(libHandle_, funcName));
|
|
@@ -233,11 +233,11 @@ class HermesScriptCache {
|
|
|
233
233
|
class HermesLocalConnection : public facebook::react::ILocalConnection {
|
|
234
234
|
public:
|
|
235
235
|
HermesLocalConnection(
|
|
236
|
-
std::unique_ptr<facebook::react::IRemoteConnection>
|
|
236
|
+
std::unique_ptr<facebook::react::IRemoteConnection> remoteConnection,
|
|
237
237
|
void *connectFunc) noexcept {
|
|
238
238
|
CRASH_ON_ERROR(getHermesApi().hermes_create_local_connection(
|
|
239
239
|
connectFunc,
|
|
240
|
-
reinterpret_cast<hermes_remote_connection>(
|
|
240
|
+
reinterpret_cast<hermes_remote_connection>(remoteConnection.release()),
|
|
241
241
|
&OnRemoteConnectionSendMessage,
|
|
242
242
|
&OnRemoteConnectionDisconnect,
|
|
243
243
|
&OnRemoteConnectionDelete,
|
|
@@ -279,9 +279,9 @@ int32_t NAPI_CDECL addInspectorPage(const char *title, const char *vm, void *con
|
|
|
279
279
|
title,
|
|
280
280
|
vm,
|
|
281
281
|
[connectFunc,
|
|
282
|
-
hermesApi = HermesApi::current()](std::unique_ptr<facebook::react::IRemoteConnection>
|
|
282
|
+
hermesApi = HermesApi::current()](std::unique_ptr<facebook::react::IRemoteConnection> remoteConnection) {
|
|
283
283
|
HermesApi::Scope apiScope(hermesApi);
|
|
284
|
-
return std::make_unique<HermesLocalConnection>(std::move(
|
|
284
|
+
return std::make_unique<HermesLocalConnection>(std::move(remoteConnection), connectFunc);
|
|
285
285
|
});
|
|
286
286
|
}
|
|
287
287
|
|
|
@@ -359,7 +359,7 @@ void HermesRuntimeHolder::crashHandler(int fileDescriptor) noexcept {
|
|
|
359
359
|
}
|
|
360
360
|
|
|
361
361
|
void HermesRuntimeHolder::teardown() noexcept {
|
|
362
|
-
// TODO: (vmoroz) Implement
|
|
362
|
+
// TODO: (@vmoroz) Implement
|
|
363
363
|
}
|
|
364
364
|
|
|
365
365
|
std::shared_ptr<HermesRuntimeHolder> HermesRuntimeHolder::loadFrom(
|
|
@@ -23,7 +23,7 @@ struct IDevSupportManager {
|
|
|
23
23
|
virtual void StopPollingLiveReload() = 0;
|
|
24
24
|
|
|
25
25
|
virtual void EnsureHermesInspector(const std::string &packagerHost, const uint16_t packagerPort) noexcept = 0;
|
|
26
|
-
virtual void UpdateBundleStatus(bool
|
|
26
|
+
virtual void UpdateBundleStatus(bool isLastDownloadSuccess, int64_t updateTimestamp) noexcept = 0;
|
|
27
27
|
};
|
|
28
28
|
|
|
29
29
|
std::shared_ptr<IDevSupportManager> CreateDevSupportManager();
|
package/Shared/JSI/ChakraApi.cpp
CHANGED
|
@@ -96,7 +96,7 @@ ChakraApi::JsRefHolder::~JsRefHolder() noexcept {
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
/*static*/ void ChakraApi::DisposeRuntime(JsRuntimeHandle runtime) {
|
|
99
|
-
ChakraVerifyElseThrow(JsDisposeRuntime(runtime) == JsErrorCode::JsNoError, "Cannot
|
|
99
|
+
ChakraVerifyElseThrow(JsDisposeRuntime(runtime) == JsErrorCode::JsNoError, "Cannot dispose Chakra runtime.");
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
/*static*/ uint32_t ChakraApi::AddRef(JsRef ref) {
|
|
@@ -124,16 +124,16 @@ void ChakraRuntime::PromiseContinuation(JsValueRef funcRef) noexcept {
|
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
-
JsValueRef ChakraRuntime::CreatePropertyDescriptor(JsValueRef value,
|
|
127
|
+
JsValueRef ChakraRuntime::CreatePropertyDescriptor(JsValueRef value, PropertyAttributes attrs) {
|
|
128
128
|
JsValueRef descriptor = CreateObject();
|
|
129
129
|
SetProperty(descriptor, m_propertyId.value, value);
|
|
130
|
-
if (!(attrs &
|
|
130
|
+
if (!(attrs & PropertyAttributes::ReadOnly)) {
|
|
131
131
|
SetProperty(descriptor, m_propertyId.writable, BoolToBoolean(true));
|
|
132
132
|
}
|
|
133
|
-
if (!(attrs &
|
|
133
|
+
if (!(attrs & PropertyAttributes::DontEnum)) {
|
|
134
134
|
SetProperty(descriptor, m_propertyId.enumerable, BoolToBoolean(true));
|
|
135
135
|
}
|
|
136
|
-
if (!(attrs &
|
|
136
|
+
if (!(attrs & PropertyAttributes::DontDelete)) {
|
|
137
137
|
// The JavaScript 'configurable=true' allows property to be deleted.
|
|
138
138
|
SetProperty(descriptor, m_propertyId.configurable, BoolToBoolean(true));
|
|
139
139
|
}
|
|
@@ -607,7 +607,7 @@ facebook::jsi::Function ChakraRuntime::createFunctionFromHostFunction(
|
|
|
607
607
|
DefineProperty(
|
|
608
608
|
function,
|
|
609
609
|
m_propertyId.hostFunctionSymbol,
|
|
610
|
-
CreatePropertyDescriptor(hostFunctionHolder,
|
|
610
|
+
CreatePropertyDescriptor(hostFunctionHolder, PropertyAttributes::DontEnumAndFrozen));
|
|
611
611
|
|
|
612
612
|
return MakePointer<facebook::jsi::Object>(function).getFunction(*this);
|
|
613
613
|
}
|
|
@@ -763,7 +763,7 @@ JsValueRef ChakraRuntime::CreateExternalFunction(
|
|
|
763
763
|
DefineProperty(
|
|
764
764
|
function,
|
|
765
765
|
m_propertyId.length,
|
|
766
|
-
CreatePropertyDescriptor(IntToNumber(paramCount),
|
|
766
|
+
CreatePropertyDescriptor(IntToNumber(paramCount), PropertyAttributes::DontEnumAndFrozen));
|
|
767
767
|
return function;
|
|
768
768
|
}
|
|
769
769
|
|
|
@@ -773,14 +773,14 @@ JsValueRef CALLBACK ChakraRuntime::HostFunctionCall(
|
|
|
773
773
|
JsValueRef *args,
|
|
774
774
|
unsigned short argCount,
|
|
775
775
|
void *callbackState) {
|
|
776
|
-
HostFunctionWrapper *
|
|
777
|
-
ChakraRuntime &chakraRuntime =
|
|
776
|
+
HostFunctionWrapper *hostFuncWrapper = static_cast<HostFunctionWrapper *>(callbackState);
|
|
777
|
+
ChakraRuntime &chakraRuntime = hostFuncWrapper->GetRuntime();
|
|
778
778
|
return chakraRuntime.HandleCallbackExceptions([&]() {
|
|
779
779
|
ChakraVerifyElseThrow(argCount > 0, "There must be at least 'this' argument.");
|
|
780
780
|
const JsiValueView jsiThisArg{*args};
|
|
781
781
|
const JsiValueViewArgs jsiArgs{args + 1, argCount - 1u};
|
|
782
782
|
|
|
783
|
-
const facebook::jsi::HostFunctionType &hostFunc =
|
|
783
|
+
const facebook::jsi::HostFunctionType &hostFunc = hostFuncWrapper->GetHostFunction();
|
|
784
784
|
return RunInMethodContext("HostFunction", [&]() {
|
|
785
785
|
return chakraRuntime.ToJsValueRef(hostFunc(chakraRuntime, jsiThisArg, jsiArgs.Data(), jsiArgs.Size()));
|
|
786
786
|
});
|
|
@@ -913,7 +913,7 @@ JsValueRef CALLBACK ChakraRuntime::HostFunctionCall(
|
|
|
913
913
|
const PropNameIDView propertyId{GetPropertyIdFromName(StringToPointer(propertyName).data())};
|
|
914
914
|
return RunInMethodContext("HostObject::getOwnPropertyDescriptor", [&]() {
|
|
915
915
|
auto value = chakraRuntime->ToJsValueRef(hostObject->get(*chakraRuntime, propertyId));
|
|
916
|
-
auto descriptor = chakraRuntime->CreatePropertyDescriptor(value,
|
|
916
|
+
auto descriptor = chakraRuntime->CreatePropertyDescriptor(value, PropertyAttributes::None);
|
|
917
917
|
return descriptor;
|
|
918
918
|
});
|
|
919
919
|
}
|