react-native-windows 0.71.10 → 0.72.0-preview.2
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 +13 -3
- package/Directory.Build.props +19 -19
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
- package/Libraries/Alert/Alert.d.ts +4 -4
- package/Libraries/Alert/Alert.windows.js +2 -0
- package/Libraries/Alert/NativeDialogManagerWindows.js +1 -0
- package/Libraries/Animated/Animated.d.ts +17 -6
- package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
- package/Libraries/Animated/bezier.js +1 -1
- package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
- package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
- package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
- package/Libraries/Animated/createAnimatedComponent.js +26 -239
- package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
- package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
- package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
- package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
- package/Libraries/Animated/useAnimatedProps.js +7 -10
- package/Libraries/AppTheme/AppTheme.js +1 -0
- package/Libraries/AppTheme/AppThemeTypes.d.ts +1 -1
- package/Libraries/BatchedBridge/MessageQueue.js +2 -1
- package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -0
- package/Libraries/Blob/Blob.js +4 -0
- package/Libraries/Blob/FileReader.js +30 -2
- package/Libraries/Blob/URL.js +3 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +2 -3
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
- package/Libraries/Components/Button.js +3 -2
- package/Libraries/Components/Button.windows.js +3 -2
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
- package/Libraries/Components/Flyout/Flyout.d.ts +55 -19
- package/Libraries/Components/Flyout/Flyout.js +110 -51
- package/Libraries/Components/Flyout/FlyoutNativeComponent.js +45 -0
- package/Libraries/Components/Glyph/Glyph.d.ts +29 -12
- package/Libraries/Components/Glyph/Glyph.js +43 -30
- package/Libraries/Components/Glyph/GlyphNativeComponent.js +31 -0
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
- package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +2 -2
- package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
- package/Libraries/Components/Popup/Popup.d.ts +41 -19
- package/Libraries/Components/Popup/Popup.js +86 -52
- package/Libraries/Components/Popup/PopupNativeComponent.js +49 -0
- package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
- package/Libraries/Components/Pressable/Pressable.js +1 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
- package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
- package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +1 -2
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
- package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
- package/Libraries/Components/ScrollView/ScrollView.js +149 -91
- package/Libraries/Components/ScrollView/ScrollView.windows.js +1939 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +175 -0
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +3 -0
- package/Libraries/Components/Switch/Switch.js +3 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
- package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
- package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
- package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
- package/Libraries/Components/TextInput/TextInput.js +130 -103
- package/Libraries/Components/TextInput/TextInput.windows.js +152 -115
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
- package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
- package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
- package/Libraries/Components/Touchable/Touchable.js +6 -3
- package/Libraries/Components/Touchable/Touchable.windows.js +6 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +2 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
- package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -2
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +179 -0
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
- package/Libraries/Components/View/View.js +35 -16
- package/Libraries/Components/View/View.windows.js +40 -16
- package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
- package/Libraries/Components/View/ViewAccessibility.js +10 -1
- package/Libraries/Components/View/ViewAccessibility.windows.js +9 -0
- package/Libraries/Components/View/ViewNativeComponent.js +32 -8
- package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
- package/Libraries/Components/View/ViewPropTypes.js +1 -1
- package/Libraries/Components/View/ViewPropTypes.windows.js +3 -1
- package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
- package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
- package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
- package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/InitializeCore.js +2 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +4 -8
- package/Libraries/Core/Timers/JSTimers.js +1 -1
- package/Libraries/Core/Timers/immediateShim.js +1 -0
- package/Libraries/Core/Timers/queueMicrotask.js +1 -1
- package/Libraries/Core/setUpAlert.js +1 -1
- package/Libraries/Core/setUpDOM.js +18 -0
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpGlobals.js +5 -2
- package/Libraries/Core/setUpNavigator.js +6 -5
- package/Libraries/Core/setUpPerformance.js +23 -13
- package/Libraries/Core/setUpReactDevTools.js +2 -0
- package/Libraries/Core/setUpSegmentFetcher.js +0 -41
- package/Libraries/Core/setUpTimers.js +2 -2
- package/Libraries/DOM/Geometry/DOMRect.js +82 -0
- package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
- package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
- package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
- package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
- package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
- package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
- package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
- package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +35 -0
- package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +24 -0
- package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
- package/Libraries/Events/EventPolyfill.js +1 -1
- package/Libraries/Image/AssetRegistry.js +1 -1
- package/Libraries/Image/AssetSourceResolver.js +3 -3
- package/Libraries/Image/Image.android.js +4 -1
- package/Libraries/Image/Image.d.ts +63 -2
- package/Libraries/Image/Image.ios.js +3 -0
- package/Libraries/Image/Image.windows.js +3 -0
- package/Libraries/Image/ImageBackground.js +1 -0
- package/Libraries/Image/ImageProps.js +1 -1
- package/Libraries/Image/ImageViewNativeComponent.js +4 -4
- package/Libraries/Image/RelativeImageStub.js +1 -1
- package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Inspector/DevtoolsOverlay.js +26 -19
- package/Libraries/Inspector/ElementBox.js +4 -1
- package/Libraries/Inspector/Inspector.js +5 -6
- package/Libraries/Inspector/InspectorOverlay.js +3 -3
- package/Libraries/Inspector/NetworkOverlay.js +1 -1
- package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
- package/Libraries/Interaction/PanResponder.js +5 -6
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
- package/Libraries/Linking/Linking.js +1 -4
- package/Libraries/Lists/FillRateHelper.js +4 -238
- package/Libraries/Lists/FlatList.d.ts +15 -22
- package/Libraries/Lists/FlatList.js +9 -6
- package/Libraries/Lists/SectionList.d.ts +10 -6
- package/Libraries/Lists/SectionList.js +5 -3
- package/Libraries/Lists/SectionListModern.js +3 -3
- package/Libraries/Lists/ViewabilityHelper.js +8 -344
- package/Libraries/Lists/VirtualizeUtils.js +4 -244
- package/Libraries/Lists/VirtualizedList.js +10 -1867
- package/Libraries/Lists/VirtualizedListContext.js +6 -104
- package/Libraries/Lists/VirtualizedSectionList.js +9 -602
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
- package/Libraries/LogBox/LogBox.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +167 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +172 -0
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +193 -0
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +118 -0
- package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
- package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
- package/Libraries/Modal/Modal.js +2 -2
- package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +77 -19
- package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
- package/Libraries/NativeComponent/ViewConfig.js +1 -0
- package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
- package/Libraries/Network/RCTNetworking.android.js +2 -2
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.windows.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/Pressability/Pressability.js +10 -4
- package/Libraries/Pressability/Pressability.windows.js +11 -4
- package/Libraries/ReactNative/AppContainer.js +7 -1
- package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
- package/Libraries/ReactNative/AppRegistry.js +10 -13
- package/Libraries/ReactNative/FabricUIManager.js +24 -8
- package/Libraries/ReactNative/NativeUIManager.js +5 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
- package/Libraries/ReactNative/UIManager.js +168 -1
- package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
- package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
- package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
- package/Libraries/ReactNative/requireNativeComponent.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
- package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
- package/Libraries/Renderer/shims/ReactNativeTypes.js +6 -6
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
- package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
- package/Libraries/StyleSheet/flattenStyle.js +2 -0
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processColor.js +1 -1
- package/Libraries/Text/Text.d.ts +12 -2
- package/Libraries/Text/Text.js +50 -41
- package/Libraries/Text/Text.windows.js +48 -38
- package/Libraries/Text/TextProps.js +3 -4
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
- package/Libraries/Types/CodegenTypes.js +1 -0
- package/Libraries/UTFSequence.js +3 -1
- package/Libraries/Utilities/Appearance.d.ts +10 -0
- package/Libraries/Utilities/Appearance.js +13 -0
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
- package/Libraries/Utilities/HMRClient.js +16 -10
- package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
- package/Libraries/Utilities/IPerformanceLogger.js +49 -0
- package/Libraries/Utilities/LoadingView.android.js +28 -11
- package/Libraries/Utilities/NativeAppearance.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
- package/Libraries/Utilities/PixelRatio.js +2 -2
- package/Libraries/Utilities/Platform.windows.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
- package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +2 -0
- package/Libraries/Utilities/createPerformanceLogger.js +55 -43
- package/Libraries/Utilities/stringifySafe.js +2 -7
- package/Libraries/Utilities/useColorScheme.windows.js +26 -0
- package/Libraries/Utilities/useWindowDimensions.js +3 -3
- package/Libraries/WebPerformance/EventCounts.js +78 -0
- package/Libraries/WebPerformance/MemoryInfo.js +54 -0
- package/Libraries/WebPerformance/NativePerformance.js +38 -0
- package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
- package/Libraries/WebPerformance/Performance.js +312 -0
- package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
- package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
- package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
- package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
- package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
- package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
- package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
- package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
- package/Libraries/platform-types.d.ts +3 -5
- package/Libraries/vendor/core/ErrorUtils.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
- package/Libraries/vendor/emitter/EventEmitter.js +9 -1
- package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +0 -15
- package/Microsoft.ReactNative/CompositionHwndHost.idl +6 -0
- package/Microsoft.ReactNative/CompositionRootView.idl +35 -0
- package/Microsoft.ReactNative/CompositionSwitcher.idl +19 -0
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +174 -0
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +91 -0
- package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +48 -0
- package/Microsoft.ReactNative/Fabric/AbiViewProps.h +48 -0
- package/Microsoft.ReactNative/Fabric/ComponentView.h +19 -2
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +144 -0
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +63 -0
- package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +27 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +97 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +227 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +38 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +112 -95
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +12 -8
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +0 -2
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +27 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +8 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +147 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +46 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +31 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +37 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +255 -50
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +34 -15
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +127 -47
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +11 -7
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +109 -39
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +10 -7
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +106 -0
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +63 -0
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +116 -0
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +43 -0
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +53 -38
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +12 -8
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +262 -0
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +62 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +35 -30
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +11 -9
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +9 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +2 -1
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +72 -0
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +16 -0
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +168 -0
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +49 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +19 -53
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -3
- package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +8 -9
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +100 -0
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +43 -0
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +61 -0
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +34 -0
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +42 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +10 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +248 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +135 -4
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +18 -240
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -17
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +13 -2
- package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +87 -0
- package/Microsoft.ReactNative/IReactContext.cpp +4 -0
- package/Microsoft.ReactNative/IReactContext.h +1 -0
- package/Microsoft.ReactNative/IReactContext.idl +5 -0
- package/Microsoft.ReactNative/IReactDispatcher.cpp +4 -0
- package/Microsoft.ReactNative/IReactDispatcher.h +1 -0
- package/Microsoft.ReactNative/IReactPackageBuilderFabric.idl +23 -0
- package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +23 -0
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -118
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -7
- package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +1 -1
- package/Microsoft.ReactNative/Modules/AlertModule.cpp +100 -4
- package/Microsoft.ReactNative/Modules/AlertModule.h +4 -0
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +9 -0
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +2 -0
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +7 -5
- package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +17 -3
- package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +1 -0
- package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +4 -0
- package/Microsoft.ReactNative/Modules/AppearanceModule.h +3 -0
- package/Microsoft.ReactNative/Modules/ClipboardModule.cpp +4 -4
- package/Microsoft.ReactNative/Modules/ClipboardModule.h +2 -2
- package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +27 -7
- package/Microsoft.ReactNative/Modules/ImageViewManagerModule.h +9 -5
- package/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp +10 -12
- package/Microsoft.ReactNative/Modules/LinkingManagerModule.h +4 -4
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -1
- package/Microsoft.ReactNative/QuirkSettings.cpp +17 -0
- package/Microsoft.ReactNative/QuirkSettings.h +5 -0
- package/Microsoft.ReactNative/QuirkSettings.idl +6 -0
- package/Microsoft.ReactNative/ReactApplication.cpp +8 -0
- package/Microsoft.ReactNative/ReactApplication.h +3 -0
- package/Microsoft.ReactNative/ReactApplication.idl +3 -0
- package/Microsoft.ReactNative/ReactCoreInjection.cpp +29 -0
- package/Microsoft.ReactNative/ReactCoreInjection.h +6 -0
- package/Microsoft.ReactNative/ReactCoreInjection.idl +13 -0
- package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +7 -0
- package/Microsoft.ReactNative/ReactHost/MsoReactContext.h +1 -0
- package/Microsoft.ReactNative/ReactHost/React.h +2 -0
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +57 -16
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -0
- package/Microsoft.ReactNative/ReactInstanceSettings.h +12 -0
- package/Microsoft.ReactNative/ReactInstanceSettings.idl +6 -0
- package/Microsoft.ReactNative/ReactNativeHost.cpp +17 -0
- package/Microsoft.ReactNative/ReactPackageBuilder.cpp +18 -0
- package/Microsoft.ReactNative/ReactPackageBuilder.h +24 -1
- package/Microsoft.ReactNative/ReactRootView.cpp +2 -2
- package/Microsoft.ReactNative/RedBox.cpp +2 -1
- package/Microsoft.ReactNative/Utils/Helpers.cpp +0 -32
- package/Microsoft.ReactNative/Utils/Helpers.h +0 -8
- package/Microsoft.ReactNative/Utils/ImageUtils.cpp +69 -6
- package/Microsoft.ReactNative/Utils/ImageUtils.h +3 -1
- package/Microsoft.ReactNative/Utils/KeyboardUtils.cpp +416 -0
- package/Microsoft.ReactNative/Utils/KeyboardUtils.h +15 -0
- package/Microsoft.ReactNative/Utils/TransformableText.h +1 -0
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -9
- package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -2
- package/Microsoft.ReactNative/ViewProps.idl +30 -0
- package/Microsoft.ReactNative/Views/ControlViewManager.cpp +6 -2
- package/Microsoft.ReactNative/Views/DevMenu.cpp +369 -230
- package/Microsoft.ReactNative/Views/DevMenu.h +3 -15
- package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +6 -3
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +11 -3
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +5 -1
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +29 -22
- package/Microsoft.ReactNative/Views/Image/ReactImage.h +2 -2
- package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +10 -405
- package/Microsoft.ReactNative/Views/KeyboardEventHandler.h +0 -3
- package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -0
- package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +2 -2
- package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +7 -0
- package/Microsoft.ReactNative/Views/ShadowNodeBase.h +3 -0
- package/Microsoft.ReactNative/Views/Text/TextHitTestUtils.cpp +6 -1
- package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -0
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +38 -2
- package/Microsoft.ReactNative/Views/TextViewManager.cpp +3 -0
- package/Microsoft.ReactNative/Views/TouchEventHandler.h +0 -4
- package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +0 -8
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +1 -1
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +12 -3
- package/Microsoft.ReactNative/XamlHelper.cpp +36 -0
- package/Microsoft.ReactNative/XamlHelper.h +27 -0
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +4 -4
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +4 -4
- package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -8
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +4 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +3 -0
- package/Microsoft.ReactNative.Cxx/NativeModules.h +16 -1
- package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +2 -0
- package/Microsoft.ReactNative.Managed/packages.lock.json +5 -5
- package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +3 -0
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/JSEngine.props +1 -2
- package/PropertySheets/Warnings.props +1 -1
- package/ReactCommon/ReactCommon.vcxproj +2 -4
- package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +1 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.cpp +60 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.h +60 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +116 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +63 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +237 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +59 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +159 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +94 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +465 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +116 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +98 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +362 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +326 -0
- package/ReactCommon/Yoga.cpp +60 -127
- package/Scripts/OfficeReact.Win32.nuspec +1 -0
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +1 -0
- package/Scripts/rnw-dependencies.ps1 +14 -6
- package/Shared/Composition/CompositionSwitcher.interop.h +1 -0
- package/Shared/DevServerHelper.h +11 -2
- package/Shared/DevSettings.h +1 -0
- package/Shared/DevSupportManager.cpp +11 -1
- package/Shared/DevSupportManager.h +1 -0
- package/Shared/HermesRuntimeHolder.cpp +53 -30
- package/Shared/HermesRuntimeHolder.h +26 -11
- package/Shared/HermesSamplingProfiler.cpp +61 -8
- package/Shared/HermesSamplingProfiler.h +6 -3
- package/Shared/HermesShim.cpp +86 -82
- package/Shared/HermesShim.h +28 -8
- package/Shared/JSI/ChakraRuntime.cpp +7 -4
- package/Shared/JSI/ChakraRuntime.h +4 -4
- package/Shared/JSI/NapiJsiV8RuntimeHolder.h +2 -0
- package/Shared/JSI/RuntimeHolder.h +2 -2
- package/Shared/Logging.cpp +1 -1
- package/Shared/Modules/BlobModule.cpp +3 -4
- package/Shared/Modules/BlobModule.h +0 -4
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +13 -17
- package/Shared/Networking/OriginPolicyHttpFilter.h +11 -12
- package/Shared/Networking/WinRTWebSocketResource.cpp +59 -45
- package/Shared/OInstance.cpp +9 -2
- package/Shared/Shared.vcxitems +265 -58
- package/Shared/Shared.vcxitems.filters +312 -42
- package/Shared/V8JSIRuntimeHolder.cpp +1 -0
- package/Shared/V8JSIRuntimeHolder.h +7 -2
- package/codegen/NativeAppearanceSpec.g.h +9 -3
- package/codegen/NativeClipboardSpec.g.h +3 -3
- package/codegen/NativeDevSplitBundleLoaderSpec.g.h +3 -3
- package/codegen/NativeDevToolsSettingsManagerSpec.g.h +51 -0
- package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -0
- package/codegen/NativeFileReaderModuleSpec.g.h +6 -6
- package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +3 -3
- package/codegen/NativeImageLoaderAndroidSpec.g.h +25 -9
- package/codegen/NativeImageLoaderIOSSpec.g.h +20 -12
- package/codegen/NativeIntentAndroidSpec.g.h +15 -15
- package/codegen/NativeLinkingManagerSpec.g.h +12 -12
- package/codegen/NativePerformanceObserverSpec.g.h +48 -10
- package/codegen/NativePerformanceSpec.g.h +63 -0
- package/codegen/NativePermissionsAndroidSpec.g.h +9 -9
- package/codegen/NativePlatformConstantsWinSpec.g.h +1 -1
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +6 -6
- package/codegen/NativeSampleTurboModuleSpec.g.h +25 -19
- package/codegen/NativeShareModuleSpec.g.h +9 -3
- package/codegen/NativeUIManagerSpec.g.h +12 -12
- package/codegen/react/components/rnwcore/ComponentDescriptors.h +1 -2
- package/codegen/react/components/rnwcore/EventEmitters.cpp +21 -29
- package/codegen/react/components/rnwcore/EventEmitters.h +30 -30
- package/codegen/react/components/rnwcore/Props.cpp +47 -48
- package/codegen/react/components/rnwcore/Props.h +59 -166
- package/codegen/react/components/rnwcore/ShadowNodes.cpp +1 -2
- package/codegen/react/components/rnwcore/ShadowNodes.h +11 -22
- package/codegen/react/components/rnwcore/States.h +15 -30
- package/codegen/rnwcoreJSI-generated.cpp +87 -17
- package/codegen/rnwcoreJSI.h +1080 -376
- package/generate.js +6 -1
- package/include/Include.vcxitems +0 -1
- package/include/Include.vcxitems.filters +0 -3
- package/index.js +56 -42
- package/index.windows.js +56 -42
- package/interface.js +1 -1
- package/jest/local-setup.js +33 -0
- package/jest/mockComponent.js +4 -2
- package/jest/mockNativeComponent.js +1 -1
- package/jest/mockScrollView.js +2 -1
- package/jest/react-native-env.js +1 -3
- package/jest/setup.js +11 -8
- package/just-task.js +12 -5
- package/package.json +34 -31
- package/rn-get-polyfills.js +1 -1
- package/template/metro.config.js +2 -0
- package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
- package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
- package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
- package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
- package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
- package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
- package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +0 -47
- package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
- package/Libraries/Components/Flyout/Flyout.js.map +0 -1
- package/Libraries/Components/Flyout/FlyoutProps.d.ts +0 -25
- package/Libraries/Components/Flyout/FlyoutProps.js +0 -3
- package/Libraries/Components/Flyout/FlyoutProps.js.map +0 -1
- package/Libraries/Components/Glyph/Glyph.js.map +0 -1
- package/Libraries/Components/Glyph/GlyphProps.d.ts +0 -16
- package/Libraries/Components/Glyph/GlyphProps.js +0 -8
- package/Libraries/Components/Glyph/GlyphProps.js.map +0 -1
- package/Libraries/Components/Popup/Popup.js.map +0 -1
- package/Libraries/Components/Popup/PopupProps.d.ts +0 -27
- package/Libraries/Components/Popup/PopupProps.js +0 -8
- package/Libraries/Components/Popup/PopupProps.js.map +0 -1
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +0 -45
- package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
- package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
- package/Libraries/Components/Slider/Slider.d.ts +0 -132
- package/Libraries/Components/Slider/Slider.js +0 -282
- package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
- package/Libraries/Interaction/Batchinator.js +0 -76
- package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
- package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
- package/Libraries/Interaction/PanResponder.flow.js +0 -257
- package/Libraries/Lists/CellRenderMask.js +0 -155
- package/Libraries/Lists/ChildListCollection.js +0 -72
- package/Libraries/Lists/StateSafePureComponent.js +0 -85
- package/Libraries/Lists/VirtualizedList.d.ts +0 -347
- package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
- package/Libraries/Lists/VirtualizedListProps.js +0 -279
- package/Libraries/Performance/PureComponentDebug.js +0 -74
- package/Libraries/Reliability/UserFlow.js +0 -158
- package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
- package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
- package/Libraries/Utilities/MatrixMath.js +0 -748
- package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
- package/Libraries/Utilities/clamp.js +0 -23
- package/Libraries/Utilities/deprecatedPropType.js +0 -36
- package/Libraries/Utilities/groupByEveryN.js +0 -51
- package/Libraries/Utilities/mergeIntoFast.js +0 -26
- package/Libraries/Utilities/setAndForwardRef.js +0 -71
- package/Libraries/Utilities/truncate.js +0 -51
- package/Microsoft.ReactNative/Fabric/platform/react/components/image/conversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/ConcreteViewShadowNode.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewEventEmitter.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewProps.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/core/ConcreteComponentDescriptor.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/core/PropsParserContext.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/core/propsConversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/graphics/Color.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/imagemanager/primitives.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputEventEmitter.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputProps.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputShadowNode.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputState.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/conversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/primitives.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/propsConversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Float.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +0 -135
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +0 -217
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/graphics/RectangleEdges.h +0 -100
- package/Shared/AsyncStorage/AsyncStorageManager.cpp +0 -149
- package/Shared/AsyncStorage/AsyncStorageManager.h +0 -71
- package/Shared/AsyncStorage/FollyDynamicConverter.cpp +0 -51
- package/Shared/AsyncStorage/FollyDynamicConverter.h +0 -24
- package/Shared/AsyncStorage/KeyValueStorage.cpp +0 -248
- package/Shared/AsyncStorage/KeyValueStorage.h +0 -50
- package/Shared/AsyncStorage/StorageFileIO.cpp +0 -160
- package/Shared/AsyncStorage/StorageFileIO.h +0 -40
- package/Shared/AsyncStorageModule.h +0 -25
- package/Shared/Modules/AsyncStorageModule.cpp +0 -87
- package/Shared/Modules/AsyncStorageModuleWin32.cpp +0 -496
- package/Shared/Modules/AsyncStorageModuleWin32.h +0 -75
- package/codegen/NativeDatePickerAndroidSpec.g.h +0 -33
- package/include/Shared/AsyncStorageModuleWin32Config.h +0 -15
- package/types/index.d.ts +0 -216
- package/types/modules/BatchedBridge.d.ts +0 -32
- package/types/modules/Codegen.d.ts +0 -74
- package/types/modules/Devtools.d.ts +0 -31
- package/types/modules/LaunchScreen.d.ts +0 -18
- package/types/modules/globals.d.ts +0 -577
- package/types/private/TimerMixin.d.ts +0 -19
- package/types/private/Utilities.d.ts +0 -10
- package/types/public/DeprecatedPropertiesAlias.d.ts +0 -205
- package/types/public/Insets.d.ts +0 -15
- package/types/public/ReactNativeRenderer.d.ts +0 -149
- package/types/public/ReactNativeTypes.d.ts +0 -143
|
@@ -7,13 +7,46 @@
|
|
|
7
7
|
#include <chrono>
|
|
8
8
|
#include <future>
|
|
9
9
|
|
|
10
|
+
#include "HermesRuntimeHolder.h"
|
|
10
11
|
#include "HermesSamplingProfiler.h"
|
|
11
12
|
#include "HermesShim.h"
|
|
13
|
+
#include "IReactDispatcher.h"
|
|
14
|
+
#include "ReactPropertyBag.h"
|
|
12
15
|
#include "Utils.h"
|
|
13
16
|
|
|
17
|
+
using namespace winrt::Microsoft::ReactNative;
|
|
18
|
+
using namespace facebook::react;
|
|
19
|
+
|
|
14
20
|
namespace Microsoft::ReactNative {
|
|
15
21
|
|
|
16
22
|
namespace {
|
|
23
|
+
|
|
24
|
+
// Implements an awaiter for Mso::DispatchQueue
|
|
25
|
+
auto resume_in_dispatcher(const IReactDispatcher &dispatcher) noexcept {
|
|
26
|
+
struct awaitable {
|
|
27
|
+
awaitable(const IReactDispatcher &dispatcher) noexcept : dispatcher_(dispatcher) {}
|
|
28
|
+
|
|
29
|
+
bool await_ready() const noexcept {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
void await_resume() const noexcept {}
|
|
34
|
+
|
|
35
|
+
void await_suspend(std::experimental::coroutine_handle<> resume) noexcept {
|
|
36
|
+
callback_ = [context = resume.address()]() noexcept {
|
|
37
|
+
std::experimental::coroutine_handle<>::from_address(context)();
|
|
38
|
+
};
|
|
39
|
+
dispatcher_.Post(std::move(callback_));
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
private:
|
|
43
|
+
IReactDispatcher dispatcher_;
|
|
44
|
+
ReactDispatcherCallback callback_;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
return awaitable{dispatcher};
|
|
48
|
+
}
|
|
49
|
+
|
|
17
50
|
std::future<std::string> getTraceFilePath() noexcept {
|
|
18
51
|
auto hermesDataPath = co_await Microsoft::React::getApplicationDataPath(L"Hermes");
|
|
19
52
|
std::ostringstream os;
|
|
@@ -23,18 +56,27 @@ std::future<std::string> getTraceFilePath() noexcept {
|
|
|
23
56
|
os << hermesDataPath << "\\cpu_" << now << ".cpuprofile";
|
|
24
57
|
co_return os.str();
|
|
25
58
|
}
|
|
59
|
+
|
|
26
60
|
} // namespace
|
|
27
61
|
|
|
28
|
-
|
|
62
|
+
std::atomic_bool HermesSamplingProfiler::s_isStarted{false};
|
|
29
63
|
std::string HermesSamplingProfiler::s_lastTraceFilePath;
|
|
30
64
|
|
|
31
65
|
std::string HermesSamplingProfiler::GetLastTraceFilePath() noexcept {
|
|
32
66
|
return s_lastTraceFilePath;
|
|
33
67
|
}
|
|
34
68
|
|
|
35
|
-
winrt::fire_and_forget HermesSamplingProfiler::Start(
|
|
36
|
-
|
|
37
|
-
|
|
69
|
+
winrt::fire_and_forget HermesSamplingProfiler::Start(
|
|
70
|
+
Mso::CntPtr<Mso::React::IReactContext> const &reactContext) noexcept {
|
|
71
|
+
bool expectedIsStarted = false;
|
|
72
|
+
if (s_isStarted.compare_exchange_strong(expectedIsStarted, true)) {
|
|
73
|
+
IReactDispatcher jsDispatcher = implementation::ReactDispatcher::GetJSDispatcher(reactContext->Properties());
|
|
74
|
+
ReactPropertyBag propertyBag = ReactPropertyBag(reactContext->Properties());
|
|
75
|
+
|
|
76
|
+
co_await resume_in_dispatcher(jsDispatcher);
|
|
77
|
+
std::shared_ptr<HermesRuntimeHolder> hermesRuntimeHolder = HermesRuntimeHolder::loadFrom(propertyBag);
|
|
78
|
+
hermesRuntimeHolder->addToProfiling();
|
|
79
|
+
|
|
38
80
|
co_await winrt::resume_background();
|
|
39
81
|
HermesShim::enableSamplingProfiler();
|
|
40
82
|
}
|
|
@@ -42,20 +84,31 @@ winrt::fire_and_forget HermesSamplingProfiler::Start() noexcept {
|
|
|
42
84
|
co_return;
|
|
43
85
|
}
|
|
44
86
|
|
|
45
|
-
std::future<std::string> HermesSamplingProfiler::Stop(
|
|
46
|
-
|
|
47
|
-
|
|
87
|
+
std::future<std::string> HermesSamplingProfiler::Stop(
|
|
88
|
+
Mso::CntPtr<Mso::React::IReactContext> const &reactContext) noexcept {
|
|
89
|
+
bool expectedIsStarted = true;
|
|
90
|
+
if (s_isStarted.compare_exchange_strong(expectedIsStarted, false)) {
|
|
91
|
+
IReactDispatcher jsDispatcher = implementation::ReactDispatcher::GetJSDispatcher(reactContext->Properties());
|
|
92
|
+
ReactPropertyBag propertyBag = ReactPropertyBag(reactContext->Properties());
|
|
93
|
+
|
|
48
94
|
co_await winrt::resume_background();
|
|
49
95
|
HermesShim::disableSamplingProfiler();
|
|
96
|
+
|
|
50
97
|
s_lastTraceFilePath = co_await getTraceFilePath();
|
|
51
98
|
HermesShim::dumpSampledTraceToFile(s_lastTraceFilePath);
|
|
99
|
+
|
|
100
|
+
co_await resume_in_dispatcher(jsDispatcher);
|
|
101
|
+
std::shared_ptr<HermesRuntimeHolder> hermesRuntimeHolder = HermesRuntimeHolder::loadFrom(propertyBag);
|
|
102
|
+
hermesRuntimeHolder->removeFromProfiling();
|
|
103
|
+
|
|
104
|
+
co_await winrt::resume_background();
|
|
52
105
|
}
|
|
53
106
|
|
|
54
107
|
co_return s_lastTraceFilePath;
|
|
55
108
|
}
|
|
56
109
|
|
|
57
110
|
bool HermesSamplingProfiler::IsStarted() noexcept {
|
|
58
|
-
return s_isStarted;
|
|
111
|
+
return s_isStarted.load();
|
|
59
112
|
}
|
|
60
113
|
|
|
61
114
|
} // namespace Microsoft::ReactNative
|
|
@@ -3,19 +3,22 @@
|
|
|
3
3
|
|
|
4
4
|
#pragma once
|
|
5
5
|
|
|
6
|
+
#include <ReactHost/React.h>
|
|
7
|
+
#include <atomic>
|
|
8
|
+
#include <future>
|
|
6
9
|
#include <string>
|
|
7
10
|
|
|
8
11
|
namespace Microsoft::ReactNative {
|
|
9
12
|
|
|
10
13
|
class HermesSamplingProfiler final {
|
|
11
14
|
public:
|
|
12
|
-
static winrt::fire_and_forget Start() noexcept;
|
|
13
|
-
static std::future<std::string> Stop() noexcept;
|
|
15
|
+
static winrt::fire_and_forget Start(Mso::CntPtr<Mso::React::IReactContext> const &reactContext) noexcept;
|
|
16
|
+
static std::future<std::string> Stop(Mso::CntPtr<Mso::React::IReactContext> const &reactContext) noexcept;
|
|
14
17
|
static std::string GetLastTraceFilePath() noexcept;
|
|
15
18
|
static bool IsStarted() noexcept;
|
|
16
19
|
|
|
17
20
|
private:
|
|
18
|
-
static
|
|
21
|
+
static std::atomic_bool s_isStarted;
|
|
19
22
|
static std::string s_lastTraceFilePath;
|
|
20
23
|
};
|
|
21
24
|
|
package/Shared/HermesShim.cpp
CHANGED
|
@@ -4,115 +4,119 @@
|
|
|
4
4
|
#include "HermesShim.h"
|
|
5
5
|
#include "Crash.h"
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
constexpr const char *makeHermesRuntimeWithWERSymbol =
|
|
37
|
-
"?makeHermesRuntimeWithWER@hermes@facebook@@YA?AV?$unique_ptr@VHermesRuntime@hermes@facebook@@U?$default_delete@VHermesRuntime@hermes@facebook@@@std@@@std@@XZ";
|
|
38
|
-
constexpr const char *hermesCrashHandlerSymbol = "?hermesCrashHandler@hermes@facebook@@YAXAEAVHermesRuntime@12@H@Z";
|
|
39
|
-
#endif
|
|
40
|
-
|
|
41
|
-
#if _M_IX86
|
|
42
|
-
constexpr const char *makeHermesRuntimeSymbol =
|
|
43
|
-
"?makeHermesRuntime@hermes@facebook@@YA?AV?$unique_ptr@VHermesRuntime@hermes@facebook@@U?$default_delete@VHermesRuntime@hermes@facebook@@@std@@@std@@ABVRuntimeConfig@vm@1@@Z";
|
|
44
|
-
constexpr const char *enableSamlingProfilerSymbol = "?enableSamplingProfiler@HermesRuntime@hermes@facebook@@SAXXZ";
|
|
45
|
-
constexpr const char *disableSamlingProfilerSymbol = "?disableSamplingProfiler@HermesRuntime@hermes@facebook@@SAXXZ";
|
|
46
|
-
constexpr const char *dumpSampledTraceToFileSymbol =
|
|
47
|
-
"?dumpSampledTraceToFile@HermesRuntime@hermes@facebook@@SAXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z";
|
|
48
|
-
constexpr const char *makeHermesRuntimeWithWERSymbol =
|
|
49
|
-
"?makeHermesRuntimeWithWER@hermes@facebook@@YA?AV?$unique_ptr@VHermesRuntime@hermes@facebook@@U?$default_delete@VHermesRuntime@hermes@facebook@@@std@@@std@@XZ";
|
|
50
|
-
constexpr const char *hermesCrashHandlerSymbol = "?hermesCrashHandler@hermes@facebook@@YAXAAVHermesRuntime@12@H@Z";
|
|
51
|
-
#endif
|
|
52
|
-
|
|
53
|
-
static std::once_flag s_hermesLoading;
|
|
54
|
-
|
|
55
|
-
static void EnsureHermesLoaded() noexcept {
|
|
7
|
+
#define DECLARE_SYMBOL(symbol, importedSymbol) \
|
|
8
|
+
decltype(&importedSymbol) s_##symbol{}; \
|
|
9
|
+
constexpr const char symbol##Symbol[] = #importedSymbol;
|
|
10
|
+
|
|
11
|
+
#define INIT_SYMBOL(symbol) \
|
|
12
|
+
s_##symbol = reinterpret_cast<decltype(s_##symbol)>(GetProcAddress(s_hermesModule, symbol##Symbol)); \
|
|
13
|
+
VerifyElseCrash(s_##symbol);
|
|
14
|
+
|
|
15
|
+
#define CRASH_ON_ERROR(result) VerifyElseCrash(result == hermes_ok);
|
|
16
|
+
|
|
17
|
+
namespace Microsoft::ReactNative {
|
|
18
|
+
|
|
19
|
+
namespace {
|
|
20
|
+
|
|
21
|
+
DECLARE_SYMBOL(createRuntime, hermes_create_runtime);
|
|
22
|
+
DECLARE_SYMBOL(createRuntimeWithWER, hermes_create_runtime_with_wer);
|
|
23
|
+
DECLARE_SYMBOL(deleteRuntime, hermes_delete_runtime);
|
|
24
|
+
DECLARE_SYMBOL(getNonAbiSafeRuntime, hermes_get_non_abi_safe_runtime);
|
|
25
|
+
DECLARE_SYMBOL(dumpCrashData, hermes_dump_crash_data);
|
|
26
|
+
DECLARE_SYMBOL(samplingProfilerEnable, hermes_sampling_profiler_enable);
|
|
27
|
+
DECLARE_SYMBOL(samplingProfilerDisable, hermes_sampling_profiler_disable);
|
|
28
|
+
DECLARE_SYMBOL(samplingProfilerAdd, hermes_sampling_profiler_add);
|
|
29
|
+
DECLARE_SYMBOL(samplingProfilerRemove, hermes_sampling_profiler_remove);
|
|
30
|
+
DECLARE_SYMBOL(samplingProfilerDumpToFile, hermes_sampling_profiler_dump_to_file);
|
|
31
|
+
|
|
32
|
+
HMODULE s_hermesModule{};
|
|
33
|
+
std::once_flag s_hermesLoading;
|
|
34
|
+
|
|
35
|
+
void EnsureHermesLoaded() noexcept {
|
|
56
36
|
std::call_once(s_hermesLoading, []() {
|
|
57
37
|
VerifyElseCrashSz(!s_hermesModule, "Invalid state: \"hermes.dll\" being loaded again.");
|
|
58
38
|
|
|
59
39
|
s_hermesModule = LoadLibrary(L"hermes.dll");
|
|
60
40
|
VerifyElseCrashSz(s_hermesModule, "Could not load \"hermes.dll\"");
|
|
61
41
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
42
|
+
INIT_SYMBOL(createRuntime);
|
|
43
|
+
INIT_SYMBOL(createRuntimeWithWER);
|
|
44
|
+
INIT_SYMBOL(deleteRuntime);
|
|
45
|
+
INIT_SYMBOL(getNonAbiSafeRuntime);
|
|
46
|
+
INIT_SYMBOL(dumpCrashData);
|
|
47
|
+
INIT_SYMBOL(samplingProfilerEnable);
|
|
48
|
+
INIT_SYMBOL(samplingProfilerDisable);
|
|
49
|
+
INIT_SYMBOL(samplingProfilerAdd);
|
|
50
|
+
INIT_SYMBOL(samplingProfilerRemove);
|
|
51
|
+
INIT_SYMBOL(samplingProfilerDumpToFile);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
struct RuntimeDeleter {
|
|
56
|
+
RuntimeDeleter(std::shared_ptr<const HermesShim> &&hermesShimPtr) noexcept
|
|
57
|
+
: hermesShimPtr_(std::move(hermesShimPtr)) {}
|
|
65
58
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
59
|
+
void operator()(facebook::hermes::HermesRuntime * /*runtime*/) {
|
|
60
|
+
// Do nothing. Instead, we rely on the RuntimeDeleter destructor.
|
|
61
|
+
}
|
|
69
62
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
63
|
+
private:
|
|
64
|
+
std::shared_ptr<const HermesShim> hermesShimPtr_;
|
|
65
|
+
};
|
|
73
66
|
|
|
74
|
-
|
|
75
|
-
GetProcAddress(s_hermesModule, dumpSampledTraceToFileSymbol));
|
|
76
|
-
VerifyElseCrash(s_dumpSampledTraceToFile);
|
|
67
|
+
} // namespace
|
|
77
68
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
69
|
+
HermesShim::HermesShim(hermes_runtime runtime) noexcept : runtime_(runtime) {
|
|
70
|
+
CRASH_ON_ERROR(s_getNonAbiSafeRuntime(runtime_, reinterpret_cast<void **>(&nonAbiSafeRuntime_)));
|
|
71
|
+
}
|
|
81
72
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
VerifyElseCrash(s_hermesCrashHandler);
|
|
85
|
-
});
|
|
73
|
+
HermesShim::~HermesShim() {
|
|
74
|
+
CRASH_ON_ERROR(s_deleteRuntime(runtime_));
|
|
86
75
|
}
|
|
87
76
|
|
|
88
|
-
std::
|
|
77
|
+
/*static*/ std::shared_ptr<HermesShim> HermesShim::make() noexcept {
|
|
89
78
|
EnsureHermesLoaded();
|
|
90
|
-
|
|
79
|
+
hermes_runtime runtime{};
|
|
80
|
+
CRASH_ON_ERROR(s_createRuntime(&runtime));
|
|
81
|
+
return std::make_shared<HermesShim>(runtime);
|
|
91
82
|
}
|
|
92
83
|
|
|
93
|
-
|
|
84
|
+
/*static*/
|
|
85
|
+
std::shared_ptr<HermesShim> HermesShim::makeWithWER() noexcept {
|
|
94
86
|
EnsureHermesLoaded();
|
|
95
|
-
|
|
87
|
+
hermes_runtime runtime{};
|
|
88
|
+
CRASH_ON_ERROR(s_createRuntimeWithWER(&runtime));
|
|
89
|
+
return std::make_shared<HermesShim>(runtime);
|
|
96
90
|
}
|
|
97
91
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
s_disableSamplingProfiler();
|
|
92
|
+
std::shared_ptr<facebook::hermes::HermesRuntime> HermesShim::getRuntime() const noexcept {
|
|
93
|
+
return std::shared_ptr<facebook::hermes::HermesRuntime>(nonAbiSafeRuntime_, RuntimeDeleter(shared_from_this()));
|
|
101
94
|
}
|
|
102
95
|
|
|
103
|
-
void
|
|
96
|
+
void HermesShim::dumpCrashData(int fileDescriptor) const noexcept {
|
|
97
|
+
CRASH_ON_ERROR(s_dumpCrashData(runtime_, fileDescriptor));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/*static*/ void HermesShim::enableSamplingProfiler() noexcept {
|
|
104
101
|
EnsureHermesLoaded();
|
|
105
|
-
|
|
102
|
+
CRASH_ON_ERROR(s_samplingProfilerEnable());
|
|
106
103
|
}
|
|
107
104
|
|
|
108
|
-
|
|
105
|
+
/*static*/ void HermesShim::disableSamplingProfiler() noexcept {
|
|
109
106
|
EnsureHermesLoaded();
|
|
110
|
-
|
|
107
|
+
CRASH_ON_ERROR(s_samplingProfilerDisable());
|
|
111
108
|
}
|
|
112
109
|
|
|
113
|
-
void
|
|
110
|
+
/*static*/ void HermesShim::dumpSampledTraceToFile(const std::string &fileName) noexcept {
|
|
114
111
|
EnsureHermesLoaded();
|
|
115
|
-
|
|
112
|
+
CRASH_ON_ERROR(s_samplingProfilerDumpToFile(fileName.c_str()));
|
|
113
|
+
}
|
|
114
|
+
void HermesShim::addToProfiling() const noexcept {
|
|
115
|
+
CRASH_ON_ERROR(s_samplingProfilerAdd(runtime_));
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
void HermesShim::removeFromProfiling() const noexcept {
|
|
119
|
+
CRASH_ON_ERROR(s_samplingProfilerRemove(runtime_));
|
|
116
120
|
}
|
|
117
121
|
|
|
118
|
-
} // namespace Microsoft::ReactNative
|
|
122
|
+
} // namespace Microsoft::ReactNative
|
package/Shared/HermesShim.h
CHANGED
|
@@ -9,13 +9,33 @@
|
|
|
9
9
|
//! use pure delay-loading to achieve this, since WACK will detect the
|
|
10
10
|
//! non-present DLL. Functions in this namespace shim to the Hermes DLL via
|
|
11
11
|
//! GetProcAddress.
|
|
12
|
-
namespace Microsoft::ReactNative
|
|
12
|
+
namespace Microsoft::ReactNative {
|
|
13
13
|
|
|
14
|
-
std::
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
std::unique_ptr<facebook::hermes::HermesRuntime> makeHermesRuntimeWithWER();
|
|
19
|
-
void hermesCrashHandler(facebook::hermes::HermesRuntime &runtime, int fileDescriptor);
|
|
14
|
+
class HermesShim : public std::enable_shared_from_this<HermesShim> {
|
|
15
|
+
public:
|
|
16
|
+
HermesShim(hermes_runtime runtimeAbiPtr) noexcept;
|
|
17
|
+
~HermesShim();
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
static std::shared_ptr<HermesShim> make() noexcept;
|
|
20
|
+
static std::shared_ptr<HermesShim> makeWithWER() noexcept;
|
|
21
|
+
|
|
22
|
+
std::shared_ptr<facebook::hermes::HermesRuntime> getRuntime() const noexcept;
|
|
23
|
+
|
|
24
|
+
void dumpCrashData(int fileDescriptor) const noexcept;
|
|
25
|
+
|
|
26
|
+
static void enableSamplingProfiler() noexcept;
|
|
27
|
+
static void disableSamplingProfiler() noexcept;
|
|
28
|
+
static void dumpSampledTraceToFile(const std::string &fileName) noexcept;
|
|
29
|
+
void addToProfiling() const noexcept;
|
|
30
|
+
void removeFromProfiling() const noexcept;
|
|
31
|
+
|
|
32
|
+
HermesShim(const HermesShim &) = delete;
|
|
33
|
+
HermesShim &operator=(const HermesShim &) = delete;
|
|
34
|
+
|
|
35
|
+
private:
|
|
36
|
+
// It must be a raw pointer to avoid circular reference.
|
|
37
|
+
facebook::hermes::HermesRuntime *nonAbiSafeRuntime_{};
|
|
38
|
+
hermes_runtime runtime_{};
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
} // namespace Microsoft::ReactNative
|
|
@@ -446,14 +446,14 @@ bool ChakraRuntime::hasProperty(const facebook::jsi::Object &obj, const facebook
|
|
|
446
446
|
}
|
|
447
447
|
|
|
448
448
|
void ChakraRuntime::setPropertyValue(
|
|
449
|
-
facebook::jsi::Object &object,
|
|
449
|
+
const facebook::jsi::Object &object,
|
|
450
450
|
const facebook::jsi::PropNameID &name,
|
|
451
451
|
const facebook::jsi::Value &value) {
|
|
452
452
|
SetProperty(GetJsRef(object), GetJsRef(name), ToJsValueRef(value));
|
|
453
453
|
}
|
|
454
454
|
|
|
455
455
|
void ChakraRuntime::setPropertyValue(
|
|
456
|
-
facebook::jsi::Object &object,
|
|
456
|
+
const facebook::jsi::Object &object,
|
|
457
457
|
const facebook::jsi::String &name,
|
|
458
458
|
const facebook::jsi::Value &value) {
|
|
459
459
|
SetProperty(GetJsRef(object), GetPropertyIdFromString(GetJsRef(name)), ToJsValueRef(value));
|
|
@@ -545,7 +545,7 @@ facebook::jsi::WeakObject ChakraRuntime::createWeakObject(const facebook::jsi::O
|
|
|
545
545
|
return make<facebook::jsi::WeakObject>(CloneChakraPointerValue(getPointerValue(object)));
|
|
546
546
|
}
|
|
547
547
|
|
|
548
|
-
facebook::jsi::Value ChakraRuntime::lockWeakObject(facebook::jsi::WeakObject &weakObject) {
|
|
548
|
+
facebook::jsi::Value ChakraRuntime::lockWeakObject(const facebook::jsi::WeakObject &weakObject) {
|
|
549
549
|
// We need to make a copy of the ChakraObjectRef held within weakObj's
|
|
550
550
|
// member PointerValue for the returned jsi::Value here.
|
|
551
551
|
return ToJsiValue(GetJsRef(weakObject));
|
|
@@ -585,7 +585,10 @@ facebook::jsi::Value ChakraRuntime::getValueAtIndex(const facebook::jsi::Array &
|
|
|
585
585
|
return ToJsiValue(GetIndexedProperty(GetJsRef(arr), static_cast<int>(index)));
|
|
586
586
|
}
|
|
587
587
|
|
|
588
|
-
void ChakraRuntime::setValueAtIndexImpl(
|
|
588
|
+
void ChakraRuntime::setValueAtIndexImpl(
|
|
589
|
+
const facebook::jsi::Array &arr,
|
|
590
|
+
size_t index,
|
|
591
|
+
const facebook::jsi::Value &value) {
|
|
589
592
|
assert(isArray(arr));
|
|
590
593
|
assert(index <= static_cast<size_t>((std::numeric_limits<int>::max)()));
|
|
591
594
|
|
|
@@ -99,11 +99,11 @@ class ChakraRuntime : public facebook::jsi::Runtime, public ChakraApi, ChakraApi
|
|
|
99
99
|
bool hasProperty(const facebook::jsi::Object &obj, const facebook::jsi::PropNameID &name) override;
|
|
100
100
|
bool hasProperty(const facebook::jsi::Object &obj, const facebook::jsi::String &name) override;
|
|
101
101
|
void setPropertyValue(
|
|
102
|
-
facebook::jsi::Object &obj,
|
|
102
|
+
const facebook::jsi::Object &obj,
|
|
103
103
|
const facebook::jsi::PropNameID &name,
|
|
104
104
|
const facebook::jsi::Value &value) override;
|
|
105
105
|
void setPropertyValue(
|
|
106
|
-
facebook::jsi::Object &obj,
|
|
106
|
+
const facebook::jsi::Object &obj,
|
|
107
107
|
const facebook::jsi::String &name,
|
|
108
108
|
const facebook::jsi::Value &value) override;
|
|
109
109
|
|
|
@@ -117,7 +117,7 @@ class ChakraRuntime : public facebook::jsi::Runtime, public ChakraApi, ChakraApi
|
|
|
117
117
|
facebook::jsi::Array getPropertyNames(const facebook::jsi::Object &obj) override;
|
|
118
118
|
|
|
119
119
|
facebook::jsi::WeakObject createWeakObject(const facebook::jsi::Object &obj) override;
|
|
120
|
-
facebook::jsi::Value lockWeakObject(facebook::jsi::WeakObject &weakObj) override;
|
|
120
|
+
facebook::jsi::Value lockWeakObject(const facebook::jsi::WeakObject &weakObj) override;
|
|
121
121
|
|
|
122
122
|
facebook::jsi::Array createArray(size_t length) override;
|
|
123
123
|
size_t size(const facebook::jsi::Array &arr) override;
|
|
@@ -127,7 +127,7 @@ class ChakraRuntime : public facebook::jsi::Runtime, public ChakraApi, ChakraApi
|
|
|
127
127
|
// the ArrayBuffer for the purpose of garbage collection.
|
|
128
128
|
uint8_t *data(const facebook::jsi::ArrayBuffer &arrBuf) override;
|
|
129
129
|
facebook::jsi::Value getValueAtIndex(const facebook::jsi::Array &arr, size_t index) override;
|
|
130
|
-
void setValueAtIndexImpl(facebook::jsi::Array &arr, size_t index, const facebook::jsi::Value &value) override;
|
|
130
|
+
void setValueAtIndexImpl(const facebook::jsi::Array &arr, size_t index, const facebook::jsi::Value &value) override;
|
|
131
131
|
|
|
132
132
|
facebook::jsi::Function createFunctionFromHostFunction(
|
|
133
133
|
const facebook::jsi::PropNameID &name,
|
|
@@ -11,7 +11,7 @@ namespace Microsoft::JSI {
|
|
|
11
11
|
// a. lazily create a JSI Runtime on the first call to getRuntime
|
|
12
12
|
// b. subsequent calls to getRuntime should return the Runtime created in (a)
|
|
13
13
|
|
|
14
|
-
// Note
|
|
14
|
+
// Note: all calls to getRuntime() should happen on the same thread unless you are sure that
|
|
15
15
|
// the underlying Runtime instance is thread safe.
|
|
16
16
|
|
|
17
17
|
struct RuntimeHolderLazyInit {
|
|
@@ -21,7 +21,7 @@ struct RuntimeHolderLazyInit {
|
|
|
21
21
|
virtual void teardown() noexcept {};
|
|
22
22
|
|
|
23
23
|
// You can call this when a crash happens to attempt recording additional data
|
|
24
|
-
// The
|
|
24
|
+
// The fileDescriptor supplied is a raw file stream an implementation might write JSON to.
|
|
25
25
|
virtual void crashHandler(int fileDescriptor) noexcept {};
|
|
26
26
|
};
|
|
27
27
|
|
package/Shared/Logging.cpp
CHANGED
|
@@ -33,7 +33,7 @@ void InitializeLogging(NativeLoggingHook &&hook) {
|
|
|
33
33
|
JSNativeHooks::loggingHook = LogHook;
|
|
34
34
|
JSNativeHooks::nowHook = nativePerformanceNow;
|
|
35
35
|
|
|
36
|
-
ReactMarker::
|
|
36
|
+
ReactMarker::logTaggedMarkerImpl = logMarker;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
} // namespace react
|
|
@@ -12,9 +12,6 @@
|
|
|
12
12
|
// React Native
|
|
13
13
|
#include <cxxreact/JsArgumentHelpers.h>
|
|
14
14
|
|
|
15
|
-
// Boost Libriaries
|
|
16
|
-
#include <boost/uuid/uuid_io.hpp>
|
|
17
|
-
|
|
18
15
|
// Windows API
|
|
19
16
|
#include <winrt/Windows.Foundation.h>
|
|
20
17
|
#include <winrt/Windows.Security.Cryptography.h>
|
|
@@ -36,6 +33,7 @@ using winrt::Microsoft::ReactNative::IReactPropertyBag;
|
|
|
36
33
|
using winrt::Microsoft::ReactNative::ReactNonAbiValue;
|
|
37
34
|
using winrt::Microsoft::ReactNative::ReactPropertyBag;
|
|
38
35
|
using winrt::Microsoft::ReactNative::ReactPropertyId;
|
|
36
|
+
using winrt::Windows::Foundation::GuidHelper;
|
|
39
37
|
using winrt::Windows::Foundation::IInspectable;
|
|
40
38
|
using winrt::Windows::Foundation::Uri;
|
|
41
39
|
using winrt::Windows::Security::Cryptography::CryptographicBuffer;
|
|
@@ -251,7 +249,8 @@ void MemoryBlobPersistor::StoreMessage(vector<uint8_t> &&message, string &&blobI
|
|
|
251
249
|
}
|
|
252
250
|
|
|
253
251
|
string MemoryBlobPersistor::StoreMessage(vector<uint8_t> &&message) noexcept {
|
|
254
|
-
|
|
252
|
+
// substr(1, 36) strips curly braces from a GUID.
|
|
253
|
+
auto blobId = winrt::to_string(winrt::to_hstring(GuidHelper::CreateNewGuid())).substr(1, 36);
|
|
255
254
|
|
|
256
255
|
scoped_lock lock{m_mutex};
|
|
257
256
|
m_blobs.insert_or_assign(blobId, std::move(message));
|
|
@@ -11,9 +11,6 @@
|
|
|
11
11
|
// React Native
|
|
12
12
|
#include <cxxreact/CxxModule.h>
|
|
13
13
|
|
|
14
|
-
// Boost Libraries
|
|
15
|
-
#include <boost/uuid/uuid_generators.hpp>
|
|
16
|
-
|
|
17
14
|
// Windows API
|
|
18
15
|
#include <winrt/base.h>
|
|
19
16
|
|
|
@@ -29,7 +26,6 @@ namespace Microsoft::React {
|
|
|
29
26
|
class MemoryBlobPersistor final : public IBlobPersistor {
|
|
30
27
|
std::unordered_map<std::string, std::vector<uint8_t>> m_blobs;
|
|
31
28
|
std::mutex m_mutex;
|
|
32
|
-
boost::uuids::random_generator m_guidGenerator;
|
|
33
29
|
|
|
34
30
|
public:
|
|
35
31
|
#pragma region IBlobPersistor
|
|
@@ -37,26 +37,22 @@ namespace Microsoft::React::Networking {
|
|
|
37
37
|
|
|
38
38
|
#pragma region OriginPolicyHttpFilter
|
|
39
39
|
|
|
40
|
-
#pragma region
|
|
40
|
+
#pragma region ConstWcharComparer
|
|
41
41
|
|
|
42
|
-
bool OriginPolicyHttpFilter::
|
|
42
|
+
bool OriginPolicyHttpFilter::ConstWcharComparer::operator()(const wchar_t *a, const wchar_t *b) const {
|
|
43
43
|
return _wcsicmp(a, b) < 0;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
return _wcsicmp(a.c_str(), b.c_str()) < 0;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
#pragma endregion CaseInsensitiveComparer
|
|
46
|
+
#pragma endregion ConstWcharComparer
|
|
51
47
|
|
|
52
48
|
// https://fetch.spec.whatwg.org/#forbidden-method
|
|
53
|
-
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::
|
|
54
|
-
|
|
49
|
+
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer> OriginPolicyHttpFilter::s_forbiddenMethods =
|
|
50
|
+
{L"CONNECT", L"TRACE", L"TRACK"};
|
|
55
51
|
|
|
56
|
-
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::
|
|
52
|
+
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer>
|
|
57
53
|
OriginPolicyHttpFilter::s_simpleCorsMethods = {L"GET", L"HEAD", L"POST"};
|
|
58
54
|
|
|
59
|
-
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::
|
|
55
|
+
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer>
|
|
60
56
|
OriginPolicyHttpFilter::s_simpleCorsRequestHeaderNames = {
|
|
61
57
|
L"Accept",
|
|
62
58
|
L"Accept-Language",
|
|
@@ -68,11 +64,11 @@ bool OriginPolicyHttpFilter::CaseInsensitiveComparer::operator()(const wstring &
|
|
|
68
64
|
L"Viewport-Width",
|
|
69
65
|
L"Width"};
|
|
70
66
|
|
|
71
|
-
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::
|
|
67
|
+
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer>
|
|
72
68
|
OriginPolicyHttpFilter::s_simpleCorsResponseHeaderNames =
|
|
73
69
|
{L"Cache-Control", L"Content-Language", L"Content-Type", L"Expires", L"Last-Modified", L"Pragma"};
|
|
74
70
|
|
|
75
|
-
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::
|
|
71
|
+
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer>
|
|
76
72
|
OriginPolicyHttpFilter::s_simpleCorsContentTypeValues = {
|
|
77
73
|
L"application/x-www-form-urlencoded",
|
|
78
74
|
L"multipart/form-data",
|
|
@@ -80,7 +76,7 @@ bool OriginPolicyHttpFilter::CaseInsensitiveComparer::operator()(const wstring &
|
|
|
80
76
|
|
|
81
77
|
// https://fetch.spec.whatwg.org/#forbidden-header-name
|
|
82
78
|
// Chromium still bans "User-Agent" due to https://crbug.com/571722
|
|
83
|
-
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::
|
|
79
|
+
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer>
|
|
84
80
|
OriginPolicyHttpFilter::s_corsForbiddenRequestHeaderNames = {
|
|
85
81
|
L"Accept-Charset",
|
|
86
82
|
L"Accept-Encoding",
|
|
@@ -103,13 +99,13 @@ bool OriginPolicyHttpFilter::CaseInsensitiveComparer::operator()(const wstring &
|
|
|
103
99
|
L"Upgrade",
|
|
104
100
|
L"Via"};
|
|
105
101
|
|
|
106
|
-
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::
|
|
102
|
+
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer>
|
|
107
103
|
OriginPolicyHttpFilter::s_cookieSettingResponseHeaders = {
|
|
108
104
|
L"Set-Cookie",
|
|
109
105
|
L"Set-Cookie2", // Deprecated by the spec, but probably still used
|
|
110
106
|
};
|
|
111
107
|
|
|
112
|
-
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::
|
|
108
|
+
/*static*/ set<const wchar_t *, OriginPolicyHttpFilter::ConstWcharComparer>
|
|
113
109
|
OriginPolicyHttpFilter::s_corsForbiddenRequestHeaderNamePrefixes = {L"Proxy-", L"Sec-"};
|
|
114
110
|
|
|
115
111
|
/*static*/ Uri OriginPolicyHttpFilter::s_origin{nullptr};
|
|
@@ -297,7 +293,7 @@ bool OriginPolicyHttpFilter::CaseInsensitiveComparer::operator()(const wstring &
|
|
|
297
293
|
}
|
|
298
294
|
|
|
299
295
|
/*static*/ OriginPolicyHttpFilter::AccessControlValues OriginPolicyHttpFilter::ExtractAccessControlValues(
|
|
300
|
-
IMap<hstring, hstring> const &headers) {
|
|
296
|
+
winrt::Windows::Foundation::Collections::IMap<hstring, hstring> const &headers) {
|
|
301
297
|
using std::wregex;
|
|
302
298
|
using std::wsregex_token_iterator;
|
|
303
299
|
|