react-native-windows 0.80.1 → 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/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/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 +4 -4
- 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
|
@@ -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
|
|
@@ -33,6 +33,10 @@
|
|
|
33
33
|
#include <Fabric/Composition/UriImageManager.h>
|
|
34
34
|
#endif
|
|
35
35
|
|
|
36
|
+
namespace facebook::react::jsinspector_modern {
|
|
37
|
+
class HostTarget;
|
|
38
|
+
} // namespace facebook::react::jsinspector_modern
|
|
39
|
+
|
|
36
40
|
namespace Mso::React {
|
|
37
41
|
|
|
38
42
|
// Forward declarations
|
|
@@ -216,9 +220,9 @@ struct ReactOptions {
|
|
|
216
220
|
//! Base path of the SDX. The absolute path of the SDX can be constructed from this and the Identity.
|
|
217
221
|
std::string BundleRootPath;
|
|
218
222
|
|
|
219
|
-
//!
|
|
220
|
-
//! This List includes both Platform and User
|
|
221
|
-
//! Bundles are loaded into
|
|
223
|
+
//! JavaScript Bundles
|
|
224
|
+
//! This List includes both Platform and User JavaScript Bundles
|
|
225
|
+
//! Bundles are loaded into JavaScript engine in the same order
|
|
222
226
|
//! as they are specified in this list.
|
|
223
227
|
std::vector<Mso::CntPtr<IJSBundle>> JSBundles;
|
|
224
228
|
|
|
@@ -237,7 +241,7 @@ struct ReactOptions {
|
|
|
237
241
|
//! during development to report JavaScript errors to users
|
|
238
242
|
std::shared_ptr<Mso::React::IRedBoxHandler> RedBoxHandler;
|
|
239
243
|
|
|
240
|
-
//! Flag to suggest sdx owner's preference on enabling Bytecode caching in
|
|
244
|
+
//! Flag to suggest sdx owner's preference on enabling Bytecode caching in JavaScript Engine for corresponding SDX.
|
|
241
245
|
bool EnableBytecode{true};
|
|
242
246
|
|
|
243
247
|
//! Flag controlling whether the JavaScript engine uses JIT compilation.
|
|
@@ -347,6 +351,9 @@ struct ReactOptions {
|
|
|
347
351
|
//! The callback is called when IReactInstance is destroyed and must not be used anymore.
|
|
348
352
|
//! It is called from the native queue.
|
|
349
353
|
OnReactInstanceDestroyedCallback OnInstanceDestroyed;
|
|
354
|
+
|
|
355
|
+
//! The HostTarget instance for modern inspector integration.
|
|
356
|
+
facebook::react::jsinspector_modern::HostTarget *InspectorHostTarget;
|
|
350
357
|
};
|
|
351
358
|
|
|
352
359
|
//! IReactHost manages a ReactNative instance.
|