react-native-windows 0.80.0 → 0.81.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 +10 -5
- package/Directory.Build.props +1 -1
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
- package/Libraries/Alert/Alert.js +3 -3
- package/Libraries/Alert/Alert.windows.js +5 -2
- package/Libraries/Alert/NativeAlertManager.js +1 -0
- package/Libraries/Alert/RCTAlertManager.android.js +19 -13
- package/Libraries/Alert/RCTAlertManager.ios.js +10 -12
- package/Libraries/Alert/RCTAlertManager.js +1 -3
- package/Libraries/Alert/RCTAlertManager.js.flow +5 -7
- package/Libraries/Animated/Animated.js +0 -1
- package/Libraries/Animated/Animated.js.flow +0 -1
- package/Libraries/Animated/AnimatedEvent.js +4 -3
- package/Libraries/Animated/AnimatedExports.js +0 -1
- package/Libraries/Animated/AnimatedExports.js.flow +5 -1
- package/Libraries/Animated/AnimatedImplementation.js +44 -44
- package/Libraries/Animated/AnimatedMock.js +2 -2
- package/Libraries/Animated/Easing.js +1 -1
- package/Libraries/Animated/NativeAnimatedModule.js +1 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
- package/Libraries/Animated/SpringConfig.js +1 -1
- package/Libraries/Animated/animations/Animation.js +10 -2
- package/Libraries/Animated/components/AnimatedScrollView.js +58 -56
- package/Libraries/Animated/components/AnimatedText.js +2 -5
- package/Libraries/Animated/components/AnimatedView.js +2 -1
- package/Libraries/Animated/createAnimatedComponent.js +39 -37
- package/Libraries/Animated/nodes/AnimatedObject.js +2 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +31 -4
- package/Libraries/Animated/nodes/AnimatedStyle.js +35 -34
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +6 -1
- package/Libraries/AppState/NativeAppState.js +1 -0
- package/Libraries/AppTheme/AppTheme.js +1 -1
- package/Libraries/BatchedBridge/BatchedBridge.js +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/BlobManager.js +4 -0
- package/Libraries/Blob/NativeBlobModule.js +1 -0
- package/Libraries/Blob/NativeFileReaderModule.js +1 -0
- package/Libraries/Blob/URL.js +1 -1
- package/Libraries/Blob/URLSearchParams.js +5 -1
- package/Libraries/Blob/URLSearchParams.js.flow +2 -1
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -2
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +1 -2
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.windows.js +1 -1
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +19 -19
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
- package/Libraries/Components/Button.js +10 -7
- package/Libraries/Components/Button.windows.js +4 -4
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/Clipboard/NativeClipboard.js +1 -2
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -3
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -4
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +1 -1
- package/Libraries/Components/Flyout/FlyoutNativeComponent.js +1 -1
- package/Libraries/Components/Glyph/GlyphNativeComponent.js +1 -1
- package/Libraries/Components/Keyboard/Keyboard.js +1 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +3 -2
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -2
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +0 -1
- package/Libraries/Components/Popup/PopupNativeComponent.js +1 -1
- package/Libraries/Components/Pressable/Pressable.js +17 -8
- package/Libraries/Components/Pressable/Pressable.windows.js +17 -14
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +14 -13
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -3
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -3
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -1
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -3
- package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -2
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -3
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +33 -6
- package/Libraries/Components/ScrollView/ScrollView.js +25 -15
- package/Libraries/Components/ScrollView/ScrollView.windows.js +25 -14
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -1
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +19 -6
- package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
- package/Libraries/Components/Sound/NativeSoundManager.js +1 -2
- package/Libraries/Components/Sound/SoundManager.js +1 -1
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -2
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -2
- package/Libraries/Components/StatusBar/StatusBar.d.ts +4 -0
- package/Libraries/Components/StatusBar/StatusBar.js +6 -1
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -3
- package/Libraries/Components/Switch/Switch.js +10 -3
- package/Libraries/Components/Switch/Switch.windows.js +10 -3
- package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -3
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +9 -24
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -3
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +9 -3
- package/Libraries/Components/TextInput/TextInput.flow.js +13 -15
- package/Libraries/Components/TextInput/TextInput.flow.windows.js +12 -15
- package/Libraries/Components/TextInput/TextInput.js +42 -39
- package/Libraries/Components/TextInput/TextInput.windows.js +69 -38
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/TextInput/TextInputState.windows.js +1 -1
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -17
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -2
- package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +1 -1
- package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Position.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +17 -3
- package/Libraries/Components/Touchable/Touchable.windows.js +17 -3
- package/Libraries/Components/Touchable/TouchableBounce.js +9 -3
- package/Libraries/Components/Touchable/TouchableBounce.windows.js +9 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +14 -5
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +14 -5
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +5 -3
- package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +5 -3
- package/Libraries/Components/Touchable/TouchableOpacity.d.ts +1 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +10 -5
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +10 -5
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +3 -3
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -3
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +7 -16
- package/Libraries/Components/View/View.js +114 -29
- package/Libraries/Components/View/View.windows.js +261 -217
- package/Libraries/Components/View/ViewAccessibility.js +1 -8
- package/Libraries/Components/View/ViewAccessibility.windows.js +1 -8
- package/Libraries/Components/View/ViewPropTypes.d.ts +21 -1
- package/Libraries/Components/View/ViewPropTypes.js +9 -1
- package/Libraries/Components/View/ViewPropTypes.windows.js +9 -1
- package/Libraries/Core/Devtools/getDevServer.js +1 -1
- package/Libraries/Core/Devtools/loadBundleFromServer.js +49 -7
- package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +49 -7
- package/Libraries/Core/Devtools/openFileInEditor.js +1 -1
- package/Libraries/Core/Devtools/openURLInBrowser.js +1 -1
- package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
- package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +27 -16
- package/Libraries/Core/InitializeCore.js +2 -23
- package/Libraries/Core/NativeExceptionsManager.js +1 -0
- package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -2
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
- package/Libraries/Core/Timers/JSTimers.js +1 -1
- package/Libraries/Core/Timers/NativeTiming.js +1 -0
- package/Libraries/Core/Timers/immediateShim.js +1 -1
- package/Libraries/Core/Timers/queueMicrotask.js +1 -1
- package/Libraries/Core/checkNativeVersion.js +1 -0
- package/Libraries/Core/setUpDeveloperTools.js +13 -11
- package/Libraries/Core/setUpReactDevTools.js +21 -4
- package/Libraries/Debugging/DebuggingOverlay.js +12 -14
- package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -1
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
- package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
- package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
- package/Libraries/Image/AssetRegistry.js +4 -10
- package/Libraries/Image/Image.android.js +113 -107
- package/Libraries/Image/Image.ios.js +10 -2
- package/Libraries/Image/Image.windows.js +30 -20
- package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
- package/Libraries/Image/ImageInjection.js +1 -1
- package/Libraries/Image/ImageSource.d.ts +5 -0
- package/Libraries/Image/ImageViewNativeComponent.js +3 -3
- package/Libraries/Image/NativeImageEditor.js +1 -0
- package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
- package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
- package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
- package/Libraries/Image/NativeImageStoreIOS.js +1 -0
- package/Libraries/Image/RelativeImageStub.js +2 -1
- package/Libraries/Image/TextInlineImageNativeComponent.js +4 -4
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Image/resolveAssetSource.windows.js +1 -1
- package/Libraries/Interaction/FrameRateLogger.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +64 -54
- package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
- package/Libraries/Interaction/TaskQueue.js +8 -9
- package/Libraries/Interaction/TouchHistoryMath.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -8
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Linking/NativeIntentAndroid.js +1 -0
- package/Libraries/Linking/NativeLinkingManager.js +1 -0
- package/Libraries/Lists/FlatList.d.ts +9 -5
- package/Libraries/Lists/FlatList.js +6 -7
- package/Libraries/Lists/SectionList.js +4 -4
- package/Libraries/Lists/SectionListModern.js +9 -3
- package/Libraries/Lists/VirtualizedList.js +3 -2
- package/Libraries/LogBox/Data/LogBoxData.js +7 -4
- package/Libraries/LogBox/Data/parseLogBoxLog.js +2 -0
- package/Libraries/LogBox/LogBox.js +72 -99
- package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
- package/Libraries/Modal/Modal.d.ts +8 -2
- package/Libraries/Modal/Modal.js +24 -3
- package/Libraries/Modal/Modal.windows.js +24 -3
- package/Libraries/Modal/NativeModalManager.js +1 -0
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +21 -18
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -17
- package/Libraries/NativeComponent/BaseViewConfig.js.flow +1 -1
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +9 -18
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -1
- package/Libraries/NativeComponent/ViewConfigIgnore.js +3 -3
- package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
- package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
- package/Libraries/NativeModules/specs/NativeDialogManagerWindows.js +1 -0
- package/Libraries/NativeModules/specs/NativeLogBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
- package/Libraries/Network/FormData.js +1 -1
- package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
- package/Libraries/Network/NativeNetworkingIOS.js +1 -0
- package/Libraries/Network/RCTNetworking.android.js +2 -2
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.windows.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +3 -3
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -3
- package/Libraries/Pressability/Pressability.js +1 -1
- package/Libraries/Pressability/Pressability.windows.js +1 -1
- package/Libraries/Promise.js +1 -1
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +3 -2
- package/Libraries/ReactNative/AppContainer-dev.js +4 -4
- package/Libraries/ReactNative/AppContainer-prod.js +0 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +2 -13
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
- package/Libraries/ReactNative/NativeI18nManager.js +1 -0
- package/Libraries/ReactNative/NativeUIManager.js +1 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +81 -62
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +1 -1
- package/Libraries/ReactNative/RendererProxy.js +1 -1
- package/Libraries/ReactNative/RootTag.js +2 -2
- package/Libraries/ReactNative/renderApplication.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -36
- package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +261 -0
- package/Libraries/Settings/NativeSettingsManager.js +1 -0
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/Settings/Settings.js +1 -1
- package/Libraries/Settings/SettingsFallback.js +1 -1
- package/Libraries/Share/NativeShareModule.js +1 -0
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/EdgeInsetsPropType.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +1 -1
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +1 -0
- package/Libraries/StyleSheet/StyleSheetTypes.js +0 -1
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processAspectRatio.js +1 -1
- package/Libraries/StyleSheet/processBackgroundImage.js +1 -1
- package/Libraries/StyleSheet/processBoxShadow.js +0 -1
- package/Libraries/StyleSheet/processColor.js +1 -1
- package/Libraries/StyleSheet/processColorArray.js +1 -1
- package/Libraries/StyleSheet/processFilter.js +1 -2
- package/Libraries/StyleSheet/processFontVariant.js +1 -1
- package/Libraries/StyleSheet/processTransform.js +1 -1
- package/Libraries/StyleSheet/processTransformOrigin.js +1 -1
- package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
- package/Libraries/Text/Text.d.ts +1 -2
- package/Libraries/Text/Text.js +255 -246
- package/Libraries/Text/Text.windows.js +282 -301
- package/Libraries/Text/TextAncestor.js +3 -9
- package/Libraries/Text/TextAncestorContext.js +23 -0
- package/Libraries/Text/TextNativeComponent.js +4 -0
- package/Libraries/Text/TextProps.js +2 -5
- package/Libraries/Text/TextProps.windows.js +2 -6
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CodegenTypesNamespace.js +2 -1
- package/Libraries/Types/CoreEventTypes.d.ts +4 -0
- package/Libraries/Types/ReactDevToolsTypes.js +0 -1
- package/Libraries/Utilities/Appearance.js +1 -1
- package/Libraries/Utilities/BackHandler.js.flow +1 -1
- package/Libraries/Utilities/DevLoadingView.js +1 -1
- package/Libraries/Utilities/DeviceInfo.js +1 -1
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/HMRClient.js +13 -3
- package/Libraries/Utilities/HMRClientProdShim.js +1 -1
- package/Libraries/Utilities/NativeAppearance.js +1 -0
- package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
- package/Libraries/Utilities/NativeDeviceInfo.js +1 -2
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
- package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
- package/Libraries/Utilities/PixelRatio.js +1 -1
- package/Libraries/Utilities/Platform.android.js +2 -5
- package/Libraries/Utilities/Platform.ios.js +2 -5
- package/Libraries/Utilities/Platform.js +1 -1
- package/Libraries/Utilities/Platform.js.flow +2 -2
- package/Libraries/Utilities/Platform.windows.js +2 -5
- package/Libraries/Utilities/PlatformTypes.js +2 -2
- package/Libraries/Utilities/RCTLog.js +1 -1
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +5 -3
- package/Libraries/Utilities/codegenNativeComponent.js +4 -4
- package/Libraries/Utilities/createPerformanceLogger.js +27 -20
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
- package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
- package/Libraries/Utilities/differ/deepDiffer.js +1 -1
- package/Libraries/Utilities/differ/insetsDiffer.js +1 -1
- package/Libraries/Utilities/differ/matricesDiffer.js +1 -1
- package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/mapWithSeparator.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +1 -1
- package/Libraries/Utilities/stringifyViewConfig.js +1 -1
- package/Libraries/Utilities/useColorScheme.js +1 -1
- package/Libraries/Utilities/useWindowDimensions.js +1 -1
- package/Libraries/Utilities/warnOnce.js +1 -1
- package/Libraries/Vibration/NativeVibration.js +1 -0
- package/Libraries/Vibration/Vibration.js +1 -2
- package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
- package/Libraries/WebSocket/WebSocket.js +1 -1
- package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
- package/Libraries/promiseRejectionTrackingOptions.js +1 -1
- package/Libraries/vendor/core/ErrorUtils.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.js +6 -6
- package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +3 -3
- package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.h +3 -3
- package/Microsoft.ReactNative/Fabric/AbiShadowNode.cpp +2 -1
- package/Microsoft.ReactNative/Fabric/AbiShadowNode.h +2 -2
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +3 -3
- package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.cpp +2 -1
- package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +18 -7
- package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.cpp +169 -0
- package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.h +42 -0
- package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +68 -1
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +9 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.cpp +5 -37
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +3 -3
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +6 -6
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +21 -17
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -4
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +19 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +76 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -1
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +6 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -17
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.h +0 -3
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +41 -37
- package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.cpp +75 -24
- package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.h +4 -25
- package/Microsoft.ReactNative/JsiApi.cpp +1 -1
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -0
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +3 -0
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +0 -2
- package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -1
- package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -3
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +27 -11
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +19 -2
- package/Microsoft.ReactNative/QuirkSettings.cpp +16 -0
- package/Microsoft.ReactNative/QuirkSettings.h +3 -0
- package/Microsoft.ReactNative/QuirkSettings.idl +5 -0
- package/Microsoft.ReactNative/ReactHost/DebuggerNotifications.h +54 -0
- package/Microsoft.ReactNative/ReactHost/React.h +11 -4
- package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +166 -29
- package/Microsoft.ReactNative/ReactHost/ReactHost.h +22 -4
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +68 -52
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/ReactRootView.cpp +108 -0
- package/Microsoft.ReactNative/ReactRootView.h +6 -0
- package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +1 -0
- package/Microsoft.ReactNative/Views/DevMenu.cpp +1 -1
- package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +36 -8
- package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +6 -2
- package/Microsoft.ReactNative/Views/ViewManager.h +0 -1
- package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +9 -1
- package/Microsoft.ReactNative.Cxx/JSI/decorator.h +41 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +16 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +125 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi.h +167 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +2 -2
- package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +110 -38
- package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +5 -5
- package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +0 -2
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.h +0 -19
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Base.h +45 -34
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +1 -1
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +1 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +36 -33
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Number.h +10 -10
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +14 -8
- package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +44 -31
- package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +13 -14
- package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +19 -4
- package/Microsoft.ReactNative.Cxx/node-api/node_api.h +270 -0
- package/Microsoft.ReactNative.Cxx/node-api/node_api_types.h +52 -0
- package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +13 -4
- package/PropertySheets/External/Microsoft.ReactNative.Cpp.Dependencies.props +10 -0
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/JSEngine.props +1 -1
- package/PropertySheets/React.Cpp.props +6 -4
- package/README.md +1 -1
- package/ReactCommon/ReactCommon.vcxproj +29 -21
- package/ReactCommon/ReactCommon.vcxproj.filters +36 -13
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +5 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +6 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +111 -7
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +57 -4
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +17 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/network/HttpUtils.cpp +175 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +1 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.cpp +69 -56
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +35 -18
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +445 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +92 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +35 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +37 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +250 -80
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ShadowNode.cpp +528 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/css/CSSTokenizer.h +1 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +9 -12
- package/ReactCommon/cgmanifest.json +1 -1
- package/Scripts/Analyze-Crash.ps1 +87 -3
- package/Scripts/OfficeReact.Win32.nuspec +0 -1
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -0
- package/Scripts/Tfs/Start-TestServers.ps1 +2 -1
- package/Scripts/creaternwapp.cmd +10 -6
- package/Scripts/rnw-dependencies.ps1 +33 -4
- package/Shared/CreateModules.h +0 -35
- package/Shared/DevServerHelper.h +13 -3
- package/Shared/DevSettings.h +6 -5
- package/Shared/DevSupportManager.cpp +79 -20
- package/Shared/DevSupportManager.h +7 -19
- package/Shared/Hermes/HermesRuntimeAgentDelegate.cpp +99 -0
- package/Shared/Hermes/HermesRuntimeAgentDelegate.h +81 -0
- package/Shared/Hermes/HermesRuntimeTargetDelegate.cpp +274 -0
- package/Shared/Hermes/HermesRuntimeTargetDelegate.h +77 -0
- package/Shared/HermesRuntimeHolder.cpp +29 -111
- package/Shared/HermesRuntimeHolder.h +214 -32
- package/Shared/IDevSupportManager.h +5 -2
- package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.cpp +108 -0
- package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.h +19 -0
- package/Shared/Inspector/ReactInspectorThread.h +18 -0
- package/Shared/JSI/RuntimeHolder.h +5 -2
- package/Shared/Modules/BlobModule.cpp +0 -90
- package/Shared/Modules/BlobModule.h +0 -40
- package/Shared/Modules/FileReaderModule.cpp +0 -104
- package/Shared/Modules/FileReaderModule.h +0 -38
- package/Shared/Modules/HttpModule.cpp +0 -172
- package/Shared/Modules/HttpModule.h +0 -47
- package/Shared/Modules/WebSocketModule.cpp +0 -287
- package/Shared/Modules/WebSocketModule.h +1 -94
- package/Shared/OInstance.cpp +45 -139
- package/Shared/OInstance.h +0 -1
- package/Shared/Shared.vcxitems +33 -32
- package/Shared/Shared.vcxitems.filters +38 -51
- package/Shared/TurboModuleManager.cpp +0 -1
- package/codegen/NativeDOMSpec.g.h +6 -0
- package/codegen/NativeDeviceInfoSpec.g.h +2 -0
- package/codegen/NativeIntersectionObserverSpec.g.h +19 -5
- package/codegen/NativeMutationObserverSpec.g.h +4 -4
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +159 -93
- package/codegen/react/components/rnwcore/EventEmitters.cpp +25 -0
- package/codegen/react/components/rnwcore/EventEmitters.h +25 -0
- package/codegen/react/components/rnwcore/ModalHostView.g.h +4 -0
- package/codegen/react/components/rnwcore/Props.cpp +535 -24
- package/codegen/react/components/rnwcore/Props.h +138 -0
- package/codegen/react/components/rnwcore/States.h +9 -78
- package/codegen/react/components/rnwcore/VirtualView.g.h +226 -0
- package/codegen/rnwcoreJSI-generated.cpp +101 -31
- package/codegen/rnwcoreJSI.h +169 -88
- package/include/Shared/II18nModule.h +0 -1
- package/index.js +22 -2
- package/index.windows.js +131 -221
- package/interface.js +1 -1
- package/jest/MockNativeMethods.js +9 -3
- package/jest/RefreshControlMock.js +32 -0
- package/jest/assetFileTransformer.js +1 -0
- package/jest/local-setup.js +4 -3
- package/jest/mock.js +39 -0
- package/jest/mockComponent.js +47 -17
- package/jest/mockNativeComponent.js +26 -15
- package/jest/mocks/AccessibilityInfo.js +62 -0
- package/jest/mocks/ActivityIndicator.js +23 -0
- package/jest/mocks/AppState.js +19 -0
- package/jest/mocks/Clipboard.js +16 -0
- package/jest/mocks/Image.js +23 -0
- package/jest/mocks/InitializeCore.js +9 -0
- package/jest/mocks/Linking.js +28 -0
- package/jest/mocks/Modal.js +33 -0
- package/jest/mocks/NativeComponentRegistry.js +30 -0
- package/jest/mocks/NativeModules.js +239 -0
- package/jest/mocks/RefreshControl.js +31 -0
- package/jest/mocks/RendererProxy.js +45 -0
- package/jest/mocks/ScrollView.js +58 -0
- package/jest/mocks/Text.js +27 -0
- package/jest/mocks/TextInput.js +32 -0
- package/jest/mocks/UIManager.js +60 -0
- package/jest/mocks/Vibration.js +16 -0
- package/jest/mocks/View.js +27 -0
- package/jest/mocks/ViewNativeComponent.js +23 -0
- package/jest/mocks/requireNativeComponent.js +22 -0
- package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
- package/jest/react-native-env.js +1 -0
- package/jest/renderer.js +1 -2
- package/jest/resolver.js +1 -0
- package/jest/setup.js +64 -449
- package/package.json +24 -24
- package/src/private/animated/NativeAnimatedHelper.js +8 -1
- package/src/private/animated/createAnimatedPropsHook.js +14 -4
- package/src/private/animated/createAnimatedPropsMemoHook.js +2 -3
- package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
- package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
- package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
- package/src/private/components/virtualview/VirtualView.js +145 -0
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
- package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
- package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
- package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.windows.js +8 -9
- package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
- package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
- package/src/private/featureflags/ReactNativeFeatureFlags.js +88 -8
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -3
- package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
- package/src/private/setup/setUpPerformanceObserver.js +7 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +8 -5
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +10 -7
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +15 -6
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +9 -6
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
- package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
- package/src/private/styles/composeStyles.js +5 -12
- package/src/private/types/HostInstance.js +1 -1
- package/src/private/webapis/dom/events/Event.js +3 -0
- package/src/private/webapis/dom/events/EventTarget.js +3 -0
- package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +7 -24
- package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +4 -2
- package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
- package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/Traversal.js +1 -1
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -1
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +4 -1
- package/src/private/webapis/errors/DOMException.js +166 -0
- package/src/private/webapis/geometry/DOMRect.js +5 -0
- package/src/private/webapis/geometry/DOMRectList.js +4 -1
- package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +83 -18
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
- package/src/private/webapis/mutationobserver/MutationObserver.js +13 -38
- package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +7 -29
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -4
- package/src/private/webapis/performance/EventTiming.js +1 -1
- package/src/private/webapis/performance/LongTasks.js +1 -1
- package/src/private/webapis/performance/MemoryInfo.js +4 -1
- package/src/private/webapis/performance/Performance.js +20 -9
- package/src/private/webapis/performance/PerformanceEntry.js +5 -1
- package/src/private/webapis/performance/PerformanceObserver.js +32 -28
- package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
- package/src/private/webapis/performance/ResourceTiming.js +108 -0
- package/src/private/webapis/performance/UserTiming.js +1 -1
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +50 -33
- package/src/private/webapis/performance/internals/Utilities.js +1 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
- package/src/private/webapis/structuredClone/structuredClone.js +233 -0
- package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
- package/src/private/webapis/webidl/PlatformObjects.js +59 -0
- package/templates/cpp-lib/example/metro.config.js +1 -1
- package/templates/cpp-lib/template.config.js +24 -0
- package/templates/cpp-lib/windows/MyLib/MyLib.h +20 -1
- package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +0 -1
- package/types/modules/Devtools.d.ts +23 -9
- package/Libraries/BugReporting/BugReporting.js +0 -140
- package/Libraries/BugReporting/NativeBugReporting.js +0 -13
- package/Libraries/BugReporting/dumpReactTree.js +0 -151
- package/Libraries/BugReporting/getReactData.js +0 -187
- package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +0 -78
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -196
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jserrorhandler/JsErrorHandler.cpp +0 -429
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.cpp +0 -45
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.h +0 -91
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/CullingContext.cpp +0 -49
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.cpp +0 -191
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +0 -670
- package/Shared/InspectorPackagerConnection.cpp +0 -232
- package/Shared/InspectorPackagerConnection.h +0 -61
- package/Shared/Modules/ExceptionsManagerModule.cpp +0 -209
- package/Shared/Modules/ExceptionsManagerModule.h +0 -32
- package/Shared/Modules/I18nModule.cpp +0 -36
- package/Shared/Modules/I18nModule.h +0 -28
- package/Shared/Modules/NetworkingModule.cpp +0 -432
- package/Shared/Modules/NetworkingModule.h +0 -34
- package/Shared/Modules/PlatformConstantsModule.cpp +0 -60
- package/Shared/Modules/PlatformConstantsModule.h +0 -23
- package/Shared/Modules/SourceCodeModule.cpp +0 -35
- package/Shared/Modules/SourceCodeModule.h +0 -27
- package/Shared/Modules/StatusBarManagerModule.cpp +0 -25
- package/Shared/Modules/StatusBarManagerModule.h +0 -19
- package/codegen/NativeBugReportingSpec.g.h +0 -41
- package/jest/mockModal.js +0 -32
- package/jest/mockScrollView.js +0 -35
- package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
- /package/Shared/{HermesSamplingProfiler.cpp → Hermes/HermesSamplingProfiler.cpp} +0 -0
- /package/Shared/{HermesSamplingProfiler.h → Hermes/HermesSamplingProfiler.h} +0 -0
|
@@ -167,6 +167,9 @@ void FabricUIManager::setProps(facebook::react::SurfaceId surfaceId, const folly
|
|
|
167
167
|
}
|
|
168
168
|
|
|
169
169
|
void FabricUIManager::stopSurface(facebook::react::SurfaceId surfaceId) noexcept {
|
|
170
|
+
if (surfaceId == -1) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
170
173
|
visit(surfaceId, [&](const facebook::react::SurfaceHandler &surfaceHandler) {
|
|
171
174
|
surfaceHandler.stop();
|
|
172
175
|
m_scheduler->unregisterSurface(surfaceHandler);
|
|
@@ -176,7 +179,9 @@ void FabricUIManager::stopSurface(facebook::react::SurfaceId surfaceId) noexcept
|
|
|
176
179
|
std::unique_lock lock(m_handlerMutex);
|
|
177
180
|
|
|
178
181
|
auto iterator = m_handlerRegistry.find(surfaceId);
|
|
179
|
-
m_handlerRegistry.
|
|
182
|
+
if (iterator != m_handlerRegistry.end()) {
|
|
183
|
+
m_handlerRegistry.erase(iterator);
|
|
184
|
+
}
|
|
180
185
|
}
|
|
181
186
|
|
|
182
187
|
auto &rootDescriptor = m_registry.componentViewDescriptorWithTag(surfaceId);
|
|
@@ -477,6 +482,12 @@ void FabricUIManager::schedulerDidSendAccessibilityEvent(
|
|
|
477
482
|
assert(false);
|
|
478
483
|
}
|
|
479
484
|
|
|
485
|
+
void FabricUIManager::schedulerDidUpdateShadowTree(
|
|
486
|
+
const std::unordered_map<facebook::react::Tag, folly::dynamic> &tagToProps) {
|
|
487
|
+
// TODO: Implement shadow tree update handling if needed
|
|
488
|
+
// This method is called when the scheduler updates shadow tree props
|
|
489
|
+
}
|
|
490
|
+
|
|
480
491
|
void FabricUIManager::Initialize(winrt::Microsoft::ReactNative::ReactContext const &reactContext) noexcept {
|
|
481
492
|
m_context = reactContext;
|
|
482
493
|
|
|
@@ -104,6 +104,8 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
|
|
|
104
104
|
virtual void schedulerDidSendAccessibilityEvent(
|
|
105
105
|
const facebook::react::ShadowView &shadowView,
|
|
106
106
|
std::string const &eventType) override;
|
|
107
|
+
virtual void schedulerDidUpdateShadowTree(
|
|
108
|
+
const std::unordered_map<facebook::react::Tag, folly::dynamic> &tagToProps) override;
|
|
107
109
|
};
|
|
108
110
|
|
|
109
111
|
} // namespace Microsoft::ReactNative
|
|
@@ -97,6 +97,12 @@ inline ColorComponents colorComponentsFromHostPlatformColor(Color color) {
|
|
|
97
97
|
(float)windowsColor.A / ratio};
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
+
// windows
|
|
101
|
+
inline bool hostPlatformColorIsColorMeaningful(Color color) noexcept {
|
|
102
|
+
auto windowsColor = color.AsWindowsColor();
|
|
103
|
+
return windowsColor.A > 0;
|
|
104
|
+
}
|
|
105
|
+
|
|
100
106
|
} // namespace facebook::react
|
|
101
107
|
|
|
102
108
|
namespace std {
|
package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp
CHANGED
|
@@ -189,21 +189,4 @@ SharedColor GetTextInputPlaceholderColor(bool isFocused, const winrt::Windows::U
|
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
|
|
192
|
-
SharedColor GetDefaultTextColor() {
|
|
193
|
-
// In high contrast mode, always use system WindowText for accessibility
|
|
194
|
-
auto accessibilitySettings{winrt::Windows::UI::ViewManagement::AccessibilitySettings()};
|
|
195
|
-
if (accessibilitySettings.HighContrast()) {
|
|
196
|
-
auto uiSettings{winrt::Windows::UI::ViewManagement::UISettings()};
|
|
197
|
-
auto windowText = uiSettings.UIElementColor(winrt::Windows::UI::ViewManagement::UIElementType::WindowText);
|
|
198
|
-
return hostPlatformColorFromRGBA(windowText.R, windowText.G, windowText.B, windowText.A);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
// Use Windows 11 design system semantic color TextFillColorPrimary
|
|
202
|
-
// This automatically adapts to light/dark mode themes:
|
|
203
|
-
// - Light mode: rgba(0, 0, 0, 0.894) - nearly black for good contrast
|
|
204
|
-
// - Dark mode: rgba(255, 255, 255, 1.0) - white for readability
|
|
205
|
-
auto color = ResolvePlatformColor({"TextFillColorPrimary"});
|
|
206
|
-
return hostPlatformColorFromRGBA(color.R, color.G, color.B, color.A);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
192
|
} // namespace facebook::react
|
|
@@ -17,7 +17,4 @@ winrt::Windows::UI::Color ResolvePlatformColor(const std::vector<std::string> &s
|
|
|
17
17
|
// Get appropriate placeholder text color for TextInput based on focus state and background
|
|
18
18
|
SharedColor GetTextInputPlaceholderColor(bool isFocused, const winrt::Windows::UI::Color &backgroundColor = {});
|
|
19
19
|
|
|
20
|
-
// Get default text foreground color for Text component (theme-aware)
|
|
21
|
-
SharedColor GetDefaultTextColor();
|
|
22
|
-
|
|
23
20
|
} // namespace facebook::react
|
|
@@ -80,6 +80,12 @@ void WindowsTextLayoutManager::GetTextLayout(
|
|
|
80
80
|
TextMeasurement::Attachments &attachments) noexcept {
|
|
81
81
|
const auto &attributedString = attributedStringBox.getValue();
|
|
82
82
|
auto fragments = attributedString.getFragments();
|
|
83
|
+
|
|
84
|
+
// Check if fragments is empty to avoid out-of-bounds access
|
|
85
|
+
if (fragments.empty()) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
|
|
83
89
|
auto outerFragment = fragments[0];
|
|
84
90
|
|
|
85
91
|
DWRITE_FONT_STYLE style = DWRITE_FONT_STYLE_NORMAL;
|
|
@@ -375,47 +381,45 @@ TextMeasurement TextLayoutManager::measure(
|
|
|
375
381
|
TextMeasurement measurement{};
|
|
376
382
|
auto &attributedString = attributedStringBox.getValue();
|
|
377
383
|
|
|
378
|
-
measurement = textMeasureCache_.get(
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
}
|
|
384
|
+
measurement = textMeasureCache_.get({attributedString, paragraphAttributes, layoutConstraints}, [&]() {
|
|
385
|
+
auto telemetry = TransactionTelemetry::threadLocalTelemetry();
|
|
386
|
+
if (telemetry) {
|
|
387
|
+
telemetry->willMeasureText();
|
|
388
|
+
}
|
|
384
389
|
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
if (spTextLayout) {
|
|
392
|
-
auto maxHeight = std::numeric_limits<float>().max();
|
|
393
|
-
if (paragraphAttributes.maximumNumberOfLines > 0) {
|
|
394
|
-
std::vector<DWRITE_LINE_METRICS> lineMetrics;
|
|
395
|
-
uint32_t actualLineCount;
|
|
396
|
-
spTextLayout->GetLineMetrics(nullptr, 0, &actualLineCount);
|
|
397
|
-
lineMetrics.resize(static_cast<size_t>(actualLineCount));
|
|
398
|
-
winrt::check_hresult(spTextLayout->GetLineMetrics(lineMetrics.data(), actualLineCount, &actualLineCount));
|
|
399
|
-
maxHeight = 0;
|
|
400
|
-
const auto count =
|
|
401
|
-
std::min(static_cast<uint32_t>(paragraphAttributes.maximumNumberOfLines), actualLineCount);
|
|
402
|
-
for (uint32_t i = 0; i < count; ++i) {
|
|
403
|
-
maxHeight += lineMetrics[i].height;
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
DWRITE_TEXT_METRICS dtm{};
|
|
408
|
-
winrt::check_hresult(spTextLayout->GetMetrics(&dtm));
|
|
409
|
-
measurement.size = {dtm.width, std::min(dtm.height, maxHeight)};
|
|
410
|
-
measurement.attachments = attachments;
|
|
411
|
-
}
|
|
390
|
+
winrt::com_ptr<IDWriteTextLayout> spTextLayout;
|
|
391
|
+
|
|
392
|
+
TextMeasurement::Attachments attachments;
|
|
393
|
+
WindowsTextLayoutManager::GetTextLayout(
|
|
394
|
+
attributedStringBox, paragraphAttributes, layoutConstraints.maximumSize, spTextLayout, attachments);
|
|
412
395
|
|
|
413
|
-
|
|
414
|
-
|
|
396
|
+
if (spTextLayout) {
|
|
397
|
+
auto maxHeight = std::numeric_limits<float>().max();
|
|
398
|
+
if (paragraphAttributes.maximumNumberOfLines > 0) {
|
|
399
|
+
std::vector<DWRITE_LINE_METRICS> lineMetrics;
|
|
400
|
+
uint32_t actualLineCount;
|
|
401
|
+
spTextLayout->GetLineMetrics(nullptr, 0, &actualLineCount);
|
|
402
|
+
lineMetrics.resize(static_cast<size_t>(actualLineCount));
|
|
403
|
+
winrt::check_hresult(spTextLayout->GetLineMetrics(lineMetrics.data(), actualLineCount, &actualLineCount));
|
|
404
|
+
maxHeight = 0;
|
|
405
|
+
const auto count = std::min(static_cast<uint32_t>(paragraphAttributes.maximumNumberOfLines), actualLineCount);
|
|
406
|
+
for (uint32_t i = 0; i < count; ++i) {
|
|
407
|
+
maxHeight += lineMetrics[i].height;
|
|
415
408
|
}
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
DWRITE_TEXT_METRICS dtm{};
|
|
412
|
+
winrt::check_hresult(spTextLayout->GetMetrics(&dtm));
|
|
413
|
+
measurement.size = {dtm.width, std::min(dtm.height, maxHeight)};
|
|
414
|
+
measurement.attachments = attachments;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
if (telemetry) {
|
|
418
|
+
telemetry->didMeasureText();
|
|
419
|
+
}
|
|
416
420
|
|
|
417
|
-
|
|
418
|
-
|
|
421
|
+
return measurement;
|
|
422
|
+
});
|
|
419
423
|
return measurement;
|
|
420
424
|
}
|
|
421
425
|
|
|
@@ -12,8 +12,11 @@
|
|
|
12
12
|
|
|
13
13
|
#include <folly/portability/SysResource.h>
|
|
14
14
|
#include <folly/system/ThreadName.h>
|
|
15
|
-
#include <
|
|
15
|
+
#include <condition_variable>
|
|
16
16
|
#include <future>
|
|
17
|
+
#include <mutex>
|
|
18
|
+
#include <queue>
|
|
19
|
+
#include <thread>
|
|
17
20
|
#include <utility>
|
|
18
21
|
|
|
19
22
|
#include <glog/logging.h>
|
|
@@ -25,40 +28,88 @@
|
|
|
25
28
|
|
|
26
29
|
namespace facebook::react {
|
|
27
30
|
|
|
28
|
-
TaskDispatchThread::
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
class TaskDispatchThread::Impl : public std::enable_shared_from_this<TaskDispatchThread::Impl> {
|
|
32
|
+
public:
|
|
33
|
+
Impl(std::string &&threadName) noexcept;
|
|
34
|
+
~Impl() noexcept;
|
|
35
|
+
|
|
36
|
+
void start() noexcept;
|
|
37
|
+
bool isOnThread() noexcept;
|
|
38
|
+
bool isRunning() noexcept;
|
|
39
|
+
void runAsync(TaskFn &&task, std::chrono::milliseconds delayMs = std::chrono::milliseconds::zero()) noexcept;
|
|
40
|
+
void runSync(TaskFn &&task) noexcept;
|
|
41
|
+
void quit() noexcept;
|
|
42
|
+
void loop() noexcept;
|
|
43
|
+
|
|
44
|
+
private:
|
|
45
|
+
struct Task {
|
|
46
|
+
TimePoint dispatchTime;
|
|
47
|
+
TaskFn fn;
|
|
48
|
+
|
|
49
|
+
Task(TimePoint dispatchTime, TaskFn &&fn) : dispatchTime(dispatchTime), fn(std::move(fn)) {}
|
|
50
|
+
|
|
51
|
+
bool operator<(const Task &other) const {
|
|
52
|
+
// Have the earliest tasks be at the front of the queue.
|
|
53
|
+
return dispatchTime > other.dispatchTime;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
std::mutex queueLock_;
|
|
58
|
+
std::condition_variable loopCv_;
|
|
59
|
+
std::priority_queue<Task> queue_;
|
|
60
|
+
std::atomic<bool> running_{true};
|
|
61
|
+
std::string threadName_;
|
|
62
|
+
std::thread thread_;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
TaskDispatchThread::TaskDispatchThread(std::string threadName, int /*priorityOffset*/) noexcept
|
|
66
|
+
: impl_(std::make_shared<Impl>(std::move(threadName))) {
|
|
67
|
+
impl_->start();
|
|
68
|
+
}
|
|
35
69
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
70
|
+
TaskDispatchThread::~TaskDispatchThread() noexcept {
|
|
71
|
+
impl_->quit();
|
|
72
|
+
}
|
|
39
73
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
74
|
+
bool TaskDispatchThread::isOnThread() noexcept {
|
|
75
|
+
return impl_->isOnThread();
|
|
76
|
+
}
|
|
43
77
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
#endif
|
|
78
|
+
bool TaskDispatchThread::isRunning() noexcept {
|
|
79
|
+
return impl_->isRunning();
|
|
47
80
|
}
|
|
48
81
|
|
|
49
|
-
TaskDispatchThread
|
|
82
|
+
void TaskDispatchThread::runAsync(TaskFn &&task, std::chrono::milliseconds delayMs) noexcept {
|
|
83
|
+
impl_->runAsync(std::move(task), delayMs);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
void TaskDispatchThread::runSync(TaskFn &&task) noexcept {
|
|
87
|
+
impl_->runSync(std::move(task));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
void TaskDispatchThread::quit() noexcept {
|
|
91
|
+
impl_->quit();
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
TaskDispatchThread::Impl::Impl(std::string &&threadName) noexcept : threadName_(std::move(threadName)) {}
|
|
95
|
+
|
|
96
|
+
TaskDispatchThread::Impl::~Impl() noexcept {
|
|
50
97
|
quit();
|
|
51
98
|
}
|
|
52
99
|
|
|
53
|
-
|
|
100
|
+
void TaskDispatchThread::Impl::start() noexcept {
|
|
101
|
+
thread_ = std::thread([self = shared_from_this()]() { self->loop(); });
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
bool TaskDispatchThread::Impl::isOnThread() noexcept {
|
|
54
105
|
return std::this_thread::get_id() == thread_.get_id();
|
|
55
106
|
}
|
|
56
107
|
|
|
57
|
-
bool TaskDispatchThread::isRunning() noexcept {
|
|
108
|
+
bool TaskDispatchThread::Impl::isRunning() noexcept {
|
|
58
109
|
return running_;
|
|
59
110
|
}
|
|
60
111
|
|
|
61
|
-
void TaskDispatchThread::runAsync(TaskFn &&task, std::chrono::milliseconds delayMs) noexcept {
|
|
112
|
+
void TaskDispatchThread::Impl::runAsync(TaskFn &&task, std::chrono::milliseconds delayMs) noexcept {
|
|
62
113
|
if (!running_) {
|
|
63
114
|
return;
|
|
64
115
|
}
|
|
@@ -68,7 +119,7 @@ void TaskDispatchThread::runAsync(TaskFn &&task, std::chrono::milliseconds delay
|
|
|
68
119
|
loopCv_.notify_one();
|
|
69
120
|
}
|
|
70
121
|
|
|
71
|
-
void TaskDispatchThread::runSync(TaskFn &&task) noexcept {
|
|
122
|
+
void TaskDispatchThread::Impl::runSync(TaskFn &&task) noexcept {
|
|
72
123
|
std::promise<void> promise;
|
|
73
124
|
runAsync([&]() {
|
|
74
125
|
if (running_) {
|
|
@@ -79,7 +130,7 @@ void TaskDispatchThread::runSync(TaskFn &&task) noexcept {
|
|
|
79
130
|
promise.get_future().wait();
|
|
80
131
|
}
|
|
81
132
|
|
|
82
|
-
void TaskDispatchThread::quit() noexcept {
|
|
133
|
+
void TaskDispatchThread::Impl::quit() noexcept {
|
|
83
134
|
if (!running_) {
|
|
84
135
|
return;
|
|
85
136
|
}
|
|
@@ -94,7 +145,7 @@ void TaskDispatchThread::quit() noexcept {
|
|
|
94
145
|
}
|
|
95
146
|
}
|
|
96
147
|
|
|
97
|
-
void TaskDispatchThread::loop() noexcept {
|
|
148
|
+
void TaskDispatchThread::Impl::loop() noexcept {
|
|
98
149
|
if (!threadName_.empty()) {
|
|
99
150
|
folly::setThreadName(threadName_);
|
|
100
151
|
}
|
|
@@ -11,11 +11,8 @@
|
|
|
11
11
|
#pragma once
|
|
12
12
|
|
|
13
13
|
#include <chrono>
|
|
14
|
-
#include <condition_variable>
|
|
15
14
|
#include <functional>
|
|
16
|
-
#include <
|
|
17
|
-
#include <queue>
|
|
18
|
-
#include <thread>
|
|
15
|
+
#include <memory>
|
|
19
16
|
|
|
20
17
|
namespace facebook::react {
|
|
21
18
|
|
|
@@ -47,27 +44,9 @@ class TaskDispatchThread {
|
|
|
47
44
|
/** Shut down and clean up the thread. */
|
|
48
45
|
void quit() noexcept;
|
|
49
46
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
TaskFn fn;
|
|
54
|
-
|
|
55
|
-
Task(TimePoint dispatchTime, TaskFn &&fn) : dispatchTime(dispatchTime), fn(std::move(fn)) {}
|
|
56
|
-
|
|
57
|
-
bool operator<(const Task &other) const {
|
|
58
|
-
// Have the earliest tasks be at the front of the queue.
|
|
59
|
-
return dispatchTime > other.dispatchTime;
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
void loop() noexcept;
|
|
64
|
-
|
|
65
|
-
std::mutex queueLock_;
|
|
66
|
-
std::condition_variable loopCv_;
|
|
67
|
-
std::priority_queue<Task> queue_;
|
|
68
|
-
std::atomic<bool> running_{true};
|
|
69
|
-
std::string threadName_;
|
|
70
|
-
std::thread thread_;
|
|
47
|
+
private:
|
|
48
|
+
class Impl;
|
|
49
|
+
std::shared_ptr<Impl> impl_;
|
|
71
50
|
};
|
|
72
51
|
|
|
73
52
|
} // namespace facebook::react
|
|
@@ -479,7 +479,7 @@ facebook::jsi::JSError const &jsError) { \
|
|
|
479
479
|
}();
|
|
480
480
|
)JS");
|
|
481
481
|
// TODO: consider implementing this script as a resource file and loading it with the resource URL.
|
|
482
|
-
jsiRuntime->evaluateJavaScript(jsiPalBuffer, "
|
|
482
|
+
jsiRuntime->evaluateJavaScript(jsiPalBuffer, "jsi-internal://host-function-manager.js");
|
|
483
483
|
ReactNative::JsiRuntime abiJsiResult{make<JsiRuntime>(Mso::Copy(jsiRuntimeHolder), Mso::Copy(jsiRuntime))};
|
|
484
484
|
std::scoped_lock lock{s_mutex};
|
|
485
485
|
auto it = s_jsiRuntimeMap.try_emplace(reinterpret_cast<uintptr_t>(jsiRuntime.get()), abiJsiResult);
|
|
@@ -268,6 +268,7 @@
|
|
|
268
268
|
<SubType>Code</SubType>
|
|
269
269
|
</ClInclude>
|
|
270
270
|
<ClInclude Include="ReactHost\AsyncActionQueue.h" />
|
|
271
|
+
<ClInclude Include="ReactHost\DebuggerNotifications.h" />
|
|
271
272
|
<ClInclude Include="ReactHost\InstanceFactory.h" />
|
|
272
273
|
<ClInclude Include="ReactHost\IReactInstanceInternal.h" />
|
|
273
274
|
<ClInclude Include="ReactHost\JSBundle.h" />
|
|
@@ -313,6 +313,9 @@
|
|
|
313
313
|
<ClInclude Include="ReactHost\AsyncActionQueue.h">
|
|
314
314
|
<Filter>ReactHost</Filter>
|
|
315
315
|
</ClInclude>
|
|
316
|
+
<ClInclude Include="ReactHost\DebuggerNotifications.h">
|
|
317
|
+
<Filter>ReactHost</Filter>
|
|
318
|
+
</ClInclude>
|
|
316
319
|
<ClInclude Include="ReactHost\InstanceFactory.h">
|
|
317
320
|
<Filter>ReactHost</Filter>
|
|
318
321
|
</ClInclude>
|
|
@@ -931,8 +931,21 @@ void NativeUIManager::ApplyLayout(int64_t tag, float width, float height) {
|
|
|
931
931
|
}
|
|
932
932
|
|
|
933
933
|
void NativeUIManager::SetLayoutPropsRecursive(int64_t tag) {
|
|
934
|
-
|
|
934
|
+
if (!m_host) {
|
|
935
|
+
return;
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
auto *shadowNodePtr = m_host->FindShadowNodeForTag(tag);
|
|
939
|
+
if (!shadowNodePtr) {
|
|
940
|
+
return;
|
|
941
|
+
}
|
|
942
|
+
|
|
943
|
+
ShadowNodeBase &shadowNode = static_cast<ShadowNodeBase &>(*shadowNodePtr);
|
|
935
944
|
auto *pViewManager = shadowNode.GetViewManager();
|
|
945
|
+
if (!pViewManager) {
|
|
946
|
+
return;
|
|
947
|
+
}
|
|
948
|
+
|
|
936
949
|
if (!pViewManager->IsNativeControlWithSelfLayout()) {
|
|
937
950
|
for (const auto child : shadowNode.m_children) {
|
|
938
951
|
SetLayoutPropsRecursive(child);
|
|
@@ -951,18 +964,21 @@ void NativeUIManager::SetLayoutPropsRecursive(int64_t tag) {
|
|
|
951
964
|
float height = YGNodeLayoutGetHeight(yogaNode);
|
|
952
965
|
auto view = shadowNode.GetView();
|
|
953
966
|
auto pViewManager = shadowNode.GetViewManager();
|
|
954
|
-
|
|
955
|
-
if (
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
967
|
+
|
|
968
|
+
if (pViewManager) {
|
|
969
|
+
pViewManager->SetLayoutProps(shadowNode, view, left, top, width, height);
|
|
970
|
+
if (shadowNode.m_onLayoutRegistered) {
|
|
971
|
+
const auto hasLayoutChanged = !YogaFloatEquals(left, shadowNode.m_layout.Left) ||
|
|
972
|
+
!YogaFloatEquals(top, shadowNode.m_layout.Top) || !YogaFloatEquals(width, shadowNode.m_layout.Width) ||
|
|
973
|
+
!YogaFloatEquals(height, shadowNode.m_layout.Height);
|
|
974
|
+
if (hasLayoutChanged) {
|
|
975
|
+
React::JSValueObject layout{{"x", left}, {"y", top}, {"height", height}, {"width", width}};
|
|
976
|
+
React::JSValueObject eventData{{"target", tag}, {"layout", std::move(layout)}};
|
|
977
|
+
pViewManager->DispatchCoalescingEvent(tag, L"topLayout", MakeJSValueWriter(std::move(eventData)));
|
|
978
|
+
}
|
|
963
979
|
}
|
|
980
|
+
shadowNode.m_layout = {left, top, width, height};
|
|
964
981
|
}
|
|
965
|
-
shadowNode.m_layout = {left, top, width, height};
|
|
966
982
|
}
|
|
967
983
|
}
|
|
968
984
|
|
|
@@ -501,7 +501,15 @@ class UIManagerModule : public std::enable_shared_from_this<UIManagerModule>, pu
|
|
|
501
501
|
}
|
|
502
502
|
|
|
503
503
|
void DropView(int64_t tag, bool removeChildren = true, bool zombieView = false) {
|
|
504
|
+
// Prevent re-entry and double deletion which can cause memory corruption
|
|
505
|
+
if (m_nodesBeingDropped.find(tag) != m_nodesBeingDropped.end()) {
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
|
|
504
509
|
if (auto node = m_nodeRegistry.findNode(tag)) {
|
|
510
|
+
// Mark this node as being dropped
|
|
511
|
+
m_nodesBeingDropped.insert(tag);
|
|
512
|
+
|
|
505
513
|
node->onDropViewInstance();
|
|
506
514
|
|
|
507
515
|
m_nativeUIManager->RemoveView(*node, removeChildren);
|
|
@@ -509,14 +517,21 @@ class UIManagerModule : public std::enable_shared_from_this<UIManagerModule>, pu
|
|
|
509
517
|
if (zombieView)
|
|
510
518
|
node->m_zombie = true;
|
|
511
519
|
|
|
512
|
-
|
|
520
|
+
// Make a copy of children to avoid iterator invalidation
|
|
521
|
+
auto children = node->m_children;
|
|
522
|
+
for (auto childTag : children) {
|
|
513
523
|
DropView(childTag, removeChildren, zombieView);
|
|
524
|
+
}
|
|
514
525
|
|
|
515
526
|
if (removeChildren)
|
|
516
527
|
node->removeAllChildren();
|
|
517
528
|
|
|
518
|
-
if (!zombieView)
|
|
529
|
+
if (!zombieView) {
|
|
519
530
|
m_nodeRegistry.removeNode(tag);
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
// Remove from tracking set
|
|
534
|
+
m_nodesBeingDropped.erase(tag);
|
|
520
535
|
}
|
|
521
536
|
}
|
|
522
537
|
|
|
@@ -525,6 +540,8 @@ class UIManagerModule : public std::enable_shared_from_this<UIManagerModule>, pu
|
|
|
525
540
|
ShadowNodeRegistry m_nodeRegistry;
|
|
526
541
|
std::shared_ptr<NativeUIManager> m_nativeUIManager;
|
|
527
542
|
const React::JSValueObject accessibilityEventTypes = React::JSValueObject{{"typeViewFocused", 8}};
|
|
543
|
+
// Track nodes being dropped to prevent double-deletion and corruption
|
|
544
|
+
std::unordered_set<int64_t> m_nodesBeingDropped;
|
|
528
545
|
};
|
|
529
546
|
|
|
530
547
|
UIManager::UIManager() : m_module(std::make_shared<UIManagerModule>()) {}
|
|
@@ -77,6 +77,12 @@ winrt::Microsoft::ReactNative::ReactPropertyId<bool> UseRuntimeSchedulerProperty
|
|
|
77
77
|
return propId;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
winrt::Microsoft::ReactNative::ReactPropertyId<bool> UseRunOnQueueSyncProperty() noexcept {
|
|
81
|
+
winrt::Microsoft::ReactNative::ReactPropertyId<bool> propId{L"ReactNative.QuirkSettings", L"UseRunOnQueueSync"};
|
|
82
|
+
|
|
83
|
+
return propId;
|
|
84
|
+
}
|
|
85
|
+
|
|
80
86
|
#pragma region IDL interface
|
|
81
87
|
|
|
82
88
|
/*static*/ void QuirkSettings::SetMatchAndroidAndIOSStretchBehavior(
|
|
@@ -121,6 +127,12 @@ winrt::Microsoft::ReactNative::ReactPropertyId<bool> UseRuntimeSchedulerProperty
|
|
|
121
127
|
ReactPropertyBag(settings.Properties()).Set(UseRuntimeSchedulerProperty(), value);
|
|
122
128
|
}
|
|
123
129
|
|
|
130
|
+
/*static*/ void QuirkSettings::SetUseRunOnQueueSync(
|
|
131
|
+
winrt::Microsoft::ReactNative::ReactInstanceSettings settings,
|
|
132
|
+
bool value) noexcept {
|
|
133
|
+
ReactPropertyBag(settings.Properties()).Set(UseRunOnQueueSyncProperty(), value);
|
|
134
|
+
}
|
|
135
|
+
|
|
124
136
|
#pragma endregion IDL interface
|
|
125
137
|
|
|
126
138
|
/*static*/ bool QuirkSettings::GetMatchAndroidAndIOSStretchBehavior(ReactPropertyBag properties) noexcept {
|
|
@@ -153,4 +165,8 @@ winrt::Microsoft::ReactNative::ReactPropertyId<bool> UseRuntimeSchedulerProperty
|
|
|
153
165
|
return properties.Get(UseRuntimeSchedulerProperty()).value_or(true);
|
|
154
166
|
}
|
|
155
167
|
|
|
168
|
+
/*static*/ bool QuirkSettings::GetUseRunOnQueueSync(ReactPropertyBag properties) noexcept {
|
|
169
|
+
return properties.Get(UseRunOnQueueSyncProperty()).value_or(false);
|
|
170
|
+
}
|
|
171
|
+
|
|
156
172
|
} // namespace winrt::Microsoft::ReactNative::implementation
|
|
@@ -30,6 +30,7 @@ struct QuirkSettings : QuirkSettingsT<QuirkSettings> {
|
|
|
30
30
|
winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept;
|
|
31
31
|
static bool GetSuppressWindowFocusOnViewFocus(winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept;
|
|
32
32
|
static bool GetUseRuntimeScheduler(winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept;
|
|
33
|
+
static bool GetUseRunOnQueueSync(winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept;
|
|
33
34
|
|
|
34
35
|
static bool GetEnableFabric(winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept;
|
|
35
36
|
|
|
@@ -65,6 +66,8 @@ struct QuirkSettings : QuirkSettingsT<QuirkSettings> {
|
|
|
65
66
|
winrt::Microsoft::ReactNative::ReactInstanceSettings settings,
|
|
66
67
|
bool value) noexcept;
|
|
67
68
|
|
|
69
|
+
static void SetUseRunOnQueueSync(winrt::Microsoft::ReactNative::ReactInstanceSettings settings, bool value) noexcept;
|
|
70
|
+
|
|
68
71
|
#pragma endregion Public API - part of IDL interface
|
|
69
72
|
};
|
|
70
73
|
|
|
@@ -64,6 +64,11 @@ namespace Microsoft.ReactNative
|
|
|
64
64
|
"By default `react-native-windows` will use the new RuntimeScheduler."
|
|
65
65
|
"Setting this to false will revert the behavior to previous scheduling logic.")
|
|
66
66
|
static void SetUseRuntimeScheduler(ReactInstanceSettings settings, Boolean value);
|
|
67
|
+
|
|
68
|
+
DOC_STRING(
|
|
69
|
+
"By default `react-native-windows` will not call sync JS call: runOnQueueSync."
|
|
70
|
+
"Setting this to true will revert the behavior to previous logic and might result in hang.")
|
|
71
|
+
static void SetUseRunOnQueueSync(ReactInstanceSettings settings, Boolean value);
|
|
67
72
|
}
|
|
68
73
|
|
|
69
74
|
} // namespace Microsoft.ReactNative
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
#pragma once
|
|
5
|
+
|
|
6
|
+
#include <winrt/Microsoft.ReactNative.h>
|
|
7
|
+
|
|
8
|
+
namespace Microsoft::ReactNative {
|
|
9
|
+
|
|
10
|
+
struct DebuggerNotifications {
|
|
11
|
+
static winrt::Microsoft::ReactNative::IReactPropertyName ShowDebuggerPausedOverlayEventName() noexcept {
|
|
12
|
+
static winrt::Microsoft::ReactNative::IReactPropertyName propertyName{
|
|
13
|
+
winrt::Microsoft::ReactNative::ReactPropertyBagHelper::GetName(
|
|
14
|
+
winrt::Microsoft::ReactNative::ReactPropertyBagHelper::GetNamespace(L"ReactNative.Debugger"),
|
|
15
|
+
L"ShowDebuggerPausedOverlay")};
|
|
16
|
+
return propertyName;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
static void OnShowDebuggerPausedOverlay(
|
|
20
|
+
winrt::Microsoft::ReactNative::IReactNotificationService const &service,
|
|
21
|
+
std::string message,
|
|
22
|
+
std::function<void()> onResume) {
|
|
23
|
+
const winrt::Microsoft::ReactNative::ReactNonAbiValue<std::tuple<std::string, std::function<void()>>> nonAbiValue{
|
|
24
|
+
std::in_place, std::tie(message, onResume)};
|
|
25
|
+
service.SendNotification(ShowDebuggerPausedOverlayEventName(), nullptr, nonAbiValue);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static void OnHideDebuggerPausedOverlay(winrt::Microsoft::ReactNative::IReactNotificationService const &service) {
|
|
29
|
+
service.SendNotification(ShowDebuggerPausedOverlayEventName(), nullptr, nullptr);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static winrt::Microsoft::ReactNative::IReactNotificationSubscription SubscribeShowDebuggerPausedOverlay(
|
|
33
|
+
winrt::Microsoft::ReactNative::IReactNotificationService const &service,
|
|
34
|
+
winrt::Microsoft::ReactNative::IReactDispatcher const &dispatcher,
|
|
35
|
+
std::function<void(std::string, std::function<void()>)> showCallback,
|
|
36
|
+
std::function<void()> hideCallback) {
|
|
37
|
+
return service.Subscribe(
|
|
38
|
+
ShowDebuggerPausedOverlayEventName(),
|
|
39
|
+
dispatcher,
|
|
40
|
+
[showCallback, hideCallback](auto &&, winrt::Microsoft::ReactNative::IReactNotificationArgs const &args) {
|
|
41
|
+
if (args.Data()) {
|
|
42
|
+
const auto [message, onResume] = args.Data()
|
|
43
|
+
.as<winrt::Microsoft::ReactNative::ReactNonAbiValue<
|
|
44
|
+
std::tuple<std::string, std::function<void()>>>>()
|
|
45
|
+
.Value();
|
|
46
|
+
showCallback(message, onResume);
|
|
47
|
+
} else {
|
|
48
|
+
hideCallback();
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
} // namespace Microsoft::ReactNative
|