react-native-windows 0.84.0-preview.9 → 0.85.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 +1 -5
- package/Common/unicode.cpp +36 -0
- package/Common/unicode.h +8 -0
- package/Directory.Build.props +1 -16
- package/Directory.Build.targets +12 -4
- package/Folly/ThreadNameStub.cpp +4 -6
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
- package/Libraries/Animated/Animated.d.ts +8 -1
- package/Libraries/Animated/AnimatedEvent.js +4 -4
- package/Libraries/Animated/AnimatedImplementation.js +2 -2
- package/Libraries/Animated/animations/Animation.js +3 -3
- package/Libraries/Animated/animations/DecayAnimation.js +4 -4
- package/Libraries/Animated/animations/SpringAnimation.js +5 -5
- package/Libraries/Animated/animations/TimingAnimation.js +5 -5
- package/Libraries/Animated/createAnimatedComponent.js +7 -7
- package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
- package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
- package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
- package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
- package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
- package/Libraries/Animated/useAnimatedColor.js +25 -0
- package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
- package/Libraries/Animated/useAnimatedValueXY.js +26 -0
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/BatchedBridge/MessageQueue.js +3 -3
- package/Libraries/BatchedBridge/NativeModules.js +12 -10
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +34 -30
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
- package/Libraries/Components/Button.js +2 -2
- package/Libraries/Components/Button.windows.js +2 -2
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
- package/Libraries/Components/Keyboard/Keyboard.js +6 -6
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
- package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
- package/Libraries/Components/Pressable/Pressable.js +3 -3
- package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
- package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
- package/Libraries/Components/RefreshControl/RefreshControl.windows.js +5 -5
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
- package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
- package/Libraries/Components/ScrollView/ScrollView.js +19 -9
- package/Libraries/Components/ScrollView/ScrollView.windows.js +19 -9
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +8 -18
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +8 -8
- package/Libraries/Components/Switch/Switch.js +3 -3
- package/Libraries/Components/Switch/Switch.windows.js +3 -3
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
- package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
- package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
- package/Libraries/Components/TextInput/TextInput.flow.windows.js +23 -22
- package/Libraries/Components/TextInput/TextInput.js +8 -4
- package/Libraries/Components/TextInput/TextInput.windows.js +3 -4
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +33 -48
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +2 -2
- package/Libraries/Components/Touchable/Touchable.windows.js +2 -2
- package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
- package/Libraries/Components/Touchable/TouchableBounce.windows.js +4 -4
- package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +9 -9
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
- package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +7 -7
- package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -4
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
- package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
- package/Libraries/Components/View/View.windows.js +1 -1
- package/Libraries/Components/View/ViewAccessibility.js +7 -7
- package/Libraries/Components/View/ViewAccessibility.windows.js +7 -7
- package/Libraries/Components/View/ViewPropTypes.js +14 -14
- package/Libraries/Components/View/ViewPropTypes.windows.js +18 -16
- package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/ExtendedError.js +3 -3
- package/Libraries/Core/RawEventEmitter.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/Timers/JSTimers.js +3 -2
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpErrorHandling.js +4 -2
- package/Libraries/Core/setUpReactDevTools.js +23 -6
- package/Libraries/Core/setUpSegmentFetcher.js +1 -1
- package/Libraries/Debugging/DebuggingOverlay.js +2 -2
- package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
- package/Libraries/Image/AssetSourceResolver.js +1 -1
- package/Libraries/Image/AssetSourceResolver.windows.js +1 -1
- package/Libraries/Image/Image.android.js +172 -306
- package/Libraries/Image/ImageProps.js +9 -11
- package/Libraries/Image/ImageSource.js +2 -2
- package/Libraries/Image/ImageSourceUtils.js +8 -4
- package/Libraries/Image/ImageTypes.flow.js +2 -2
- package/Libraries/Image/ImageViewNativeComponent.js +7 -16
- package/Libraries/Image/nativeImageSource.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +5 -4
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +3 -3
- package/Libraries/Lists/SectionList.js +1 -1
- package/Libraries/Lists/SectionListModern.js +2 -2
- package/Libraries/LogBox/Data/LogBoxData.js +38 -24
- package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
- package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
- package/Libraries/LogBox/LogBox.js +42 -19
- package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
- package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
- package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
- package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -9
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +15 -16
- package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +3 -5
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
- package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
- package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
- package/Libraries/Modal/Modal.d.ts +4 -0
- package/Libraries/Modal/Modal.js +3 -3
- package/Libraries/Modal/Modal.windows.js +7 -3
- package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +26 -17
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- 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/RCTNetworkingEventDefinitions.flow.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
- package/Libraries/Pressability/Pressability.js +5 -5
- package/Libraries/Pressability/Pressability.windows.js +5 -5
- package/Libraries/Pressability/PressabilityDebug.js +1 -1
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
- package/Libraries/Pressability/usePressability.js +3 -14
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
- package/Libraries/ReactNative/AppContainer-dev.js +18 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
- package/Libraries/ReactNative/FabricUIManager.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +4 -4
- package/Libraries/ReactNative/UIManagerProperties.js +1 -1
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
- package/Libraries/Renderer/shims/ReactFabric.js +1 -3
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
- package/Libraries/Renderer/shims/ReactNative.js +3 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +1 -3
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
- package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
- package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
- package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
- package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
- package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
- package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
- package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
- package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
- package/Libraries/StyleSheet/processBoxShadow.js +44 -4
- package/Libraries/StyleSheet/processColorArray.js +2 -2
- package/Libraries/StyleSheet/processFilter.js +2 -2
- package/Libraries/Text/Text.js +295 -627
- package/Libraries/Text/Text.windows.js +342 -717
- package/Libraries/Text/TextNativeComponent.js +14 -7
- package/Libraries/Text/TextProps.js +4 -4
- package/Libraries/Text/TextProps.windows.js +4 -4
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.js +21 -21
- package/Libraries/Types/CoreEventTypes.windows.js +21 -21
- package/Libraries/Types/ReactDevToolsTypes.js +2 -2
- package/Libraries/Utilities/Appearance.js +6 -1
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/HMRClient.js +32 -5
- package/Libraries/Utilities/IPerformanceLogger.js +4 -4
- package/Libraries/Utilities/codegenNativeCommands.js +4 -4
- package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
- package/Libraries/Utilities/codegenNativeComponent.js +2 -2
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +3 -3
- package/Libraries/Utilities/useMergeRefs.js +2 -2
- package/Libraries/vendor/core/ErrorUtils.js +4 -4
- package/Libraries/vendor/emitter/EventEmitter.js +16 -20
- package/Microsoft.ReactNative/CallInvoker.cpp +14 -4
- package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/AbiPortalShadowNode.cpp +2 -2
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +73 -97
- package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +4 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +5 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +94 -26
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +11 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +135 -18
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +10 -0
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +7 -2
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +2 -0
- package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +63 -15
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +9 -5
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +28 -6
- package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +80 -0
- package/Microsoft.ReactNative/Fabric/Composition/TooltipService.h +17 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +1 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +3 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -3
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +3 -8
- package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -0
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -63
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -26
- package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -1
- package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -17
- package/Microsoft.ReactNative/Modules/AppStateModule.h +0 -4
- package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -2
- package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +16 -15
- package/Microsoft.ReactNative/Modules/AppearanceModule.h +5 -1
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +2 -7
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +0 -1
- package/Microsoft.ReactNative/Modules/I18nManagerModule.h +4 -4
- package/Microsoft.ReactNative/QuirkSettings.cpp +0 -133
- package/Microsoft.ReactNative/QuirkSettings.h +0 -43
- package/Microsoft.ReactNative/QuirkSettings.idl +0 -41
- package/Microsoft.ReactNative/ReactHost/CrashManager.cpp +0 -4
- package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +0 -2
- package/Microsoft.ReactNative/ReactHost/React.h +0 -5
- package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -1
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +3 -26
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -5
- package/Microsoft.ReactNative/ReactHost/React_Win.h +0 -2
- package/Microsoft.ReactNative/ReactNativeAppBuilder.idl +3 -0
- package/Microsoft.ReactNative/ReactPackageBuilder.cpp +7 -0
- package/Microsoft.ReactNative/ReactPackageBuilder.h +1 -0
- package/Microsoft.ReactNative/RedBox.cpp +0 -9
- package/Microsoft.ReactNative/RedBoxHandler.cpp +0 -4
- package/Microsoft.ReactNative/TurboModulesProvider.cpp +5 -10
- package/Microsoft.ReactNative/TurboModulesProvider.h +2 -0
- package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +33 -25
- package/Microsoft.ReactNative/Utils/LocalBundleReader.h +5 -3
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
- package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -7
- package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +0 -22
- package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +8 -2
- package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +36 -20
- package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +0 -3
- package/Microsoft.ReactNative.Cxx/NativeModules.h +8 -2
- package/Microsoft.ReactNative.Cxx/XamlUtils.h +0 -9
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +3 -3
- package/Microsoft.ReactNative.Managed/ReactContext.cs +0 -9
- package/Microsoft.ReactNative.Managed.CodeGen/Microsoft.ReactNative.Managed.CodeGen.csproj +10 -10
- package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Debug.pubxml +1 -1
- package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Release.pubxml +1 -1
- package/PropertySheets/Autolink.props +1 -1
- package/PropertySheets/Bundle.props +1 -1
- package/PropertySheets/Codegen.props +1 -1
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/JSEngine.props +1 -1
- package/PropertySheets/NuGet.LockFile.props +8 -0
- package/PropertySheets/React.Cpp.props +8 -7
- package/PropertySheets/ReactNativeArchitecture.props +6 -24
- package/PropertySheets/WinUI.props +2 -2
- package/ReactCommon/ReactCommon.vcxproj +5 -6
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +15 -4
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +13 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/defaults/DefaultTurboModules.cpp +69 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/animationbackend/AnimatedPropSerializer.cpp +717 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +2 -21
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +151 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +50 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBuffer.cpp +178 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +69 -39
- package/Scripts/JustMyXaml.ps1 +8 -8
- package/Scripts/OfficeReact.Win32.nuspec +0 -1
- package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -39
- package/Scripts/UnitTest.ps1 +3 -1
- package/Scripts/creaternwapp.cmd +1 -9
- package/Scripts/creaternwlib.cmd +4 -24
- package/Scripts/rnw-dependencies.ps1 +15 -16
- package/Shared/DevSettings.h +0 -3
- package/Shared/DevSupportManager.cpp +55 -48
- package/Shared/DevSupportManager.h +0 -1
- package/Shared/Modules/IWebSocketModuleContentHandler.h +15 -0
- package/Shared/Modules/WebSocketModule.cpp +8 -3
- package/Shared/Networking/DefaultBlobResource.cpp +37 -0
- package/Shared/Networking/DefaultBlobResource.h +12 -0
- package/Shared/Networking/WinRTWebSocketResource.cpp +23 -408
- package/Shared/Networking/WinRTWebSocketResource.h +8 -120
- package/Shared/Shared.vcxitems +63 -38
- package/Shared/Shared.vcxitems.filters +54 -0
- package/Shared/Utils.cpp +0 -88
- package/Shared/Utils.h +0 -14
- package/Shared/WebSocketResourceFactory.cpp +28 -0
- package/Shared/tracing/fbsystrace.h +1 -0
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +172 -160
- package/codegen/react/components/rnwcore/ModalHostView.g.h +8 -0
- package/codegen/react/components/rnwcore/Props.cpp +17 -7
- package/codegen/react/components/rnwcore/Props.h +3 -1
- package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +4 -4
- package/codegen/rnwcoreJSI.h +93 -77
- package/index.js +9 -0
- package/index.windows.js +9 -0
- package/jest/RefreshControlMock.js +2 -2
- package/jest/assetFileTransformer.js +8 -3
- package/jest/mockComponent.js +3 -4
- package/jest/mockNativeComponent.js +1 -1
- package/jest/mocks/ActivityIndicator.js +2 -2
- package/jest/mocks/Image.js +2 -2
- package/jest/mocks/Modal.js +2 -2
- package/jest/mocks/RefreshControl.js +3 -3
- package/jest/mocks/RendererProxy.js +2 -2
- package/jest/mocks/ScrollView.js +5 -5
- package/jest/mocks/Text.js +2 -2
- package/jest/mocks/TextInput.js +2 -2
- package/jest/mocks/View.js +2 -2
- package/jest/mocks/ViewNativeComponent.js +1 -1
- package/jest/mocks/requireNativeComponent.js +1 -1
- package/jest/mocks/useColorScheme.js +1 -1
- package/jest/setup.js +68 -31
- package/just-task.js +13 -2
- package/package.json +25 -20
- package/src/private/animated/NativeAnimatedHelper.js +2 -2
- package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
- package/src/private/components/virtualview/VirtualView.js +14 -21
- package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
- package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
- package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
- package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
- package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
- package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
- package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +7 -3
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
- package/src/private/styles/composeStyles.js +1 -1
- package/src/private/utilities/toError.js +27 -0
- package/src/private/utilities/toExtendedError.js +30 -0
- package/src/private/webapis/dom/events/Event.js +1 -1
- package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
- package/src/private/webapis/dom/events/EventTarget.js +3 -3
- package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
- package/src/private/webapis/geometry/DOMRectList.js +2 -2
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
- package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
- package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
- package/src/private/webapis/performance/LongTasks.js +3 -3
- package/src/private/webapis/performance/Performance.js +4 -4
- package/src/private/webapis/performance/PerformanceEntry.js +1 -1
- package/src/private/webapis/performance/PerformanceObserver.js +2 -2
- package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
- package/src/private/webapis/structuredClone/structuredClone.js +2 -2
- package/src/types/globals.d.ts +4 -4
- package/template/cpp-lib/proj/MyLib.sln +0 -33
- package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
- package/template/cs-lib/proj/MyLib.sln +0 -33
- package/template/metro.config.js +12 -2
- package/templates/cpp-app/metro.config.js +12 -2
- package/templates/cpp-app/windows/MyApp/MyApp.cpp +9 -6
- package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +2 -2
- package/templates/cpp-app/windows/MyApp.sln +0 -33
- package/templates/cpp-lib/example/metro.config.js +12 -2
- package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +2 -2
- package/templates/cpp-lib/windows/MyLib.sln +0 -33
- package/types/index.d.ts +2 -0
- package/Folly/.clang-format +0 -2
- package/Folly/Folly.natvis +0 -25
- package/Folly/Folly.vcxproj +0 -378
- package/Folly/Folly.vcxproj.filters +0 -558
- package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +0 -978
- package/Folly/TEMP_UntilFollyUpdate/Conv.cpp +0 -1205
- package/Folly/TEMP_UntilFollyUpdate/chrono/Hardware.h +0 -155
- package/Folly/TEMP_UntilFollyUpdate/concurrency/CacheLocality.cpp +0 -633
- package/Folly/TEMP_UntilFollyUpdate/json/dynamic-inl.h +0 -1438
- package/Folly/TEMP_UntilFollyUpdate/json/json.cpp +0 -1118
- package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +0 -188
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +0 -348
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +0 -182
- package/Folly/TEMP_UntilFollyUpdate/portability/Unistd.cpp +0 -33
- package/Folly/cgmanifest.json +0 -25
- package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +0 -64
- package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +0 -75
- package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +0 -27
- package/Microsoft.ReactNative/Fabric/Composition/Theme_emptyimpl.cpp +0 -81
- package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -24
- package/Microsoft.ReactNative/ReactSupport.cpp +0 -221
- package/Microsoft.ReactNative/ReactSupport.h +0 -13
- package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.cpp +0 -107
- package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +0 -62
- package/Microsoft.ReactNative/Utils/UwpScriptStore.cpp +0 -56
- package/Microsoft.ReactNative/Utils/UwpScriptStore.h +0 -22
- package/Microsoft.ReactNative/XamlUIService.cpp +0 -68
- package/Microsoft.ReactNative/XamlUIService.h +0 -37
- package/Microsoft.ReactNative/XamlUIService.idl +0 -53
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +0 -259
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/Instance.cpp +0 -381
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +0 -145
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/MethodCall.cpp +0 -100
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ModuleRegistry.cpp +0 -256
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -363
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/RAMBundleRegistry.cpp +0 -93
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +0 -148
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +0 -190
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSINativeModules.cpp +0 -123
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.cpp +0 -27
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/webperformance/NativePerformance.cpp +0 -414
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +0 -91
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +0 -80
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +0 -138
- package/fmt/.clang-format +0 -2
- package/fmt/cgmanifest.json +0 -15
- package/fmt/fmt.vcxproj +0 -153
- package/fmt/fmt.vcxproj.filters +0 -59
- package/fmt/pch.cpp +0 -4
- package/fmt/pch.h +0 -2
|
@@ -1,363 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the MIT license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
#if _MSC_VER
|
|
9
|
-
#pragma warning(push)
|
|
10
|
-
#pragma warning(disable : 4996) // deprecated APIs
|
|
11
|
-
#endif
|
|
12
|
-
|
|
13
|
-
#include "NativeToJsBridge.h"
|
|
14
|
-
|
|
15
|
-
#ifndef RCT_REMOVE_LEGACY_ARCH
|
|
16
|
-
|
|
17
|
-
#include <ReactCommon/CallInvoker.h>
|
|
18
|
-
#include <folly/json.h>
|
|
19
|
-
#include <glog/logging.h>
|
|
20
|
-
#include <jsi/jsi.h>
|
|
21
|
-
#include <reactperflogger/BridgeNativeModulePerfLogger.h>
|
|
22
|
-
|
|
23
|
-
#include "ErrorUtils.h"
|
|
24
|
-
#include "Instance.h"
|
|
25
|
-
#include "JSBigString.h"
|
|
26
|
-
#include "MessageQueueThread.h"
|
|
27
|
-
#include "MethodCall.h"
|
|
28
|
-
#include "ModuleRegistry.h"
|
|
29
|
-
#include "MoveWrapper.h"
|
|
30
|
-
#include "RAMBundleRegistry.h"
|
|
31
|
-
#include "TraceSection.h"
|
|
32
|
-
|
|
33
|
-
#include <memory>
|
|
34
|
-
#include <utility>
|
|
35
|
-
|
|
36
|
-
#ifdef WITH_FBSYSTRACE
|
|
37
|
-
#include <fbsystrace.h>
|
|
38
|
-
|
|
39
|
-
using fbsystrace::FbSystraceAsyncFlow;
|
|
40
|
-
#endif
|
|
41
|
-
|
|
42
|
-
namespace facebook::react {
|
|
43
|
-
|
|
44
|
-
// This class manages calls from JS to native code.
|
|
45
|
-
class [[deprecated(
|
|
46
|
-
"This API will be removed along with the legacy architecture.")]]
|
|
47
|
-
JsToNativeBridge : public react::ExecutorDelegate {
|
|
48
|
-
public:
|
|
49
|
-
JsToNativeBridge(
|
|
50
|
-
std::shared_ptr<ModuleRegistry> registry,
|
|
51
|
-
std::shared_ptr<InstanceCallback> callback)
|
|
52
|
-
: m_registry(std::move(registry)), m_callback(std::move(callback)) {}
|
|
53
|
-
|
|
54
|
-
std::shared_ptr<ModuleRegistry> getModuleRegistry() override {
|
|
55
|
-
return m_registry;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
bool isBatchActive() {
|
|
59
|
-
return m_batchHadNativeModuleOrTurboModuleCalls;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
void callNativeModules(
|
|
63
|
-
[[maybe_unused]] JSExecutor& executor,
|
|
64
|
-
folly::dynamic&& calls,
|
|
65
|
-
bool isEndOfBatch) override {
|
|
66
|
-
CHECK(m_registry || calls.empty())
|
|
67
|
-
<< "native module calls cannot be completed with no native modules";
|
|
68
|
-
m_batchHadNativeModuleOrTurboModuleCalls =
|
|
69
|
-
m_batchHadNativeModuleOrTurboModuleCalls || !calls.empty();
|
|
70
|
-
|
|
71
|
-
std::vector<MethodCall> methodCalls = parseMethodCalls(std::move(calls));
|
|
72
|
-
BridgeNativeModulePerfLogger::asyncMethodCallBatchPreprocessEnd(
|
|
73
|
-
(int)methodCalls.size());
|
|
74
|
-
|
|
75
|
-
// An exception anywhere in here stops processing of the batch. This
|
|
76
|
-
// was the behavior of the Android bridge, and since exception handling
|
|
77
|
-
// terminates the whole bridge, there's not much point in continuing.
|
|
78
|
-
for (auto& call : methodCalls) {
|
|
79
|
-
m_registry->callNativeMethod(
|
|
80
|
-
call.moduleId, call.methodId, std::move(call.arguments), call.callId);
|
|
81
|
-
}
|
|
82
|
-
if (isEndOfBatch) {
|
|
83
|
-
// onBatchComplete will be called on the native (module) queue, but
|
|
84
|
-
// decrementPendingJSCalls will be called sync. Be aware that the bridge
|
|
85
|
-
// may still be processing native calls when the bridge idle signaler
|
|
86
|
-
// fires.
|
|
87
|
-
if (m_batchHadNativeModuleOrTurboModuleCalls) {
|
|
88
|
-
m_callback->onBatchComplete();
|
|
89
|
-
m_batchHadNativeModuleOrTurboModuleCalls = false;
|
|
90
|
-
}
|
|
91
|
-
m_callback->decrementPendingJSCalls();
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
MethodCallResult callSerializableNativeHook(
|
|
96
|
-
[[maybe_unused]] JSExecutor& executor,
|
|
97
|
-
unsigned int moduleId,
|
|
98
|
-
unsigned int methodId,
|
|
99
|
-
folly::dynamic&& args) override {
|
|
100
|
-
return m_registry->callSerializableNativeHook(
|
|
101
|
-
moduleId, methodId, std::move(args));
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
void recordTurboModuleAsyncMethodCall() noexcept {
|
|
105
|
-
m_batchHadNativeModuleOrTurboModuleCalls = true;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
private:
|
|
109
|
-
// These methods are always invoked from an Executor. The NativeToJsBridge
|
|
110
|
-
// keeps a reference to the executor, and when destroy() is called, the
|
|
111
|
-
// executor is destroyed synchronously on its queue.
|
|
112
|
-
std::shared_ptr<ModuleRegistry> m_registry;
|
|
113
|
-
std::shared_ptr<InstanceCallback> m_callback;
|
|
114
|
-
std::atomic<bool> m_batchHadNativeModuleOrTurboModuleCalls{false};
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
NativeToJsBridge::NativeToJsBridge(
|
|
118
|
-
JSExecutorFactory* jsExecutorFactory,
|
|
119
|
-
std::shared_ptr<ModuleRegistry> registry,
|
|
120
|
-
std::shared_ptr<MessageQueueThread> jsQueue,
|
|
121
|
-
std::shared_ptr<InstanceCallback> callback)
|
|
122
|
-
: m_destroyed(std::make_shared<bool>(false)),
|
|
123
|
-
m_delegate(std::make_shared<JsToNativeBridge>(registry, callback)),
|
|
124
|
-
m_executor(jsExecutorFactory->createJSExecutor(m_delegate, jsQueue)),
|
|
125
|
-
m_executorMessageQueueThread(std::move(jsQueue)),
|
|
126
|
-
m_inspectable(m_executor->isInspectable()) {}
|
|
127
|
-
|
|
128
|
-
// This must be called on the same thread on which the constructor was called.
|
|
129
|
-
NativeToJsBridge::~NativeToJsBridge() {
|
|
130
|
-
CHECK(*m_destroyed)
|
|
131
|
-
<< "NativeToJsBridge::destroy() must be called before deallocating the NativeToJsBridge!";
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
void NativeToJsBridge::initializeRuntime() {
|
|
135
|
-
runOnExecutorQueue(
|
|
136
|
-
[](JSExecutor* executor) mutable { executor->initializeRuntime(); });
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
void NativeToJsBridge::loadBundle(
|
|
140
|
-
std::unique_ptr<RAMBundleRegistry> bundleRegistry,
|
|
141
|
-
std::unique_ptr<const JSBigString> startupScript,
|
|
142
|
-
std::string startupScriptSourceURL) {
|
|
143
|
-
runOnExecutorQueue(
|
|
144
|
-
[this,
|
|
145
|
-
bundleRegistryWrap = makeMoveWrapper(std::move(bundleRegistry)),
|
|
146
|
-
startupScript = makeMoveWrapper(std::move(startupScript)),
|
|
147
|
-
startupScriptSourceURL =
|
|
148
|
-
std::move(startupScriptSourceURL)](JSExecutor* executor) mutable {
|
|
149
|
-
auto bundleRegistry = bundleRegistryWrap.move();
|
|
150
|
-
if (bundleRegistry) {
|
|
151
|
-
executor->setBundleRegistry(std::move(bundleRegistry));
|
|
152
|
-
}
|
|
153
|
-
try {
|
|
154
|
-
executor->loadBundle(
|
|
155
|
-
std::move(*startupScript), std::move(startupScriptSourceURL));
|
|
156
|
-
} catch (...) {
|
|
157
|
-
m_applicationScriptHasFailure = true;
|
|
158
|
-
throw;
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
void NativeToJsBridge::loadBundleSync(
|
|
164
|
-
std::unique_ptr<RAMBundleRegistry> bundleRegistry,
|
|
165
|
-
std::unique_ptr<const JSBigString> startupScript,
|
|
166
|
-
std::string startupScriptSourceURL) {
|
|
167
|
-
if (bundleRegistry) {
|
|
168
|
-
m_executor->setBundleRegistry(std::move(bundleRegistry));
|
|
169
|
-
}
|
|
170
|
-
try {
|
|
171
|
-
m_executor->loadBundle(
|
|
172
|
-
std::move(startupScript), std::move(startupScriptSourceURL));
|
|
173
|
-
} catch (...) {
|
|
174
|
-
m_applicationScriptHasFailure = true;
|
|
175
|
-
throw;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
void NativeToJsBridge::callFunction(
|
|
180
|
-
std::string&& module,
|
|
181
|
-
std::string&& method,
|
|
182
|
-
folly::dynamic&& arguments) {
|
|
183
|
-
int systraceCookie = -1;
|
|
184
|
-
#ifdef WITH_FBSYSTRACE
|
|
185
|
-
systraceCookie = m_systraceCookie++;
|
|
186
|
-
FbSystraceAsyncFlow::begin(TRACE_TAG_REACT_CXX_BRIDGE, "JSCall", systraceCookie); // [Windows] [issue #14819]
|
|
187
|
-
#endif
|
|
188
|
-
|
|
189
|
-
runOnExecutorQueue([this,
|
|
190
|
-
module = std::move(module),
|
|
191
|
-
method = std::move(method),
|
|
192
|
-
arguments = std::move(arguments),
|
|
193
|
-
systraceCookie](JSExecutor* executor) {
|
|
194
|
-
if (m_applicationScriptHasFailure) {
|
|
195
|
-
LOG(ERROR)
|
|
196
|
-
<< "Attempting to call JS function on a bad application bundle: "
|
|
197
|
-
<< module.c_str() << "." << method.c_str() << "()";
|
|
198
|
-
throw std::runtime_error(
|
|
199
|
-
"Attempting to call JS function on a bad application bundle: " +
|
|
200
|
-
module + "." + method + "()");
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
#ifdef WITH_FBSYSTRACE
|
|
204
|
-
FbSystraceAsyncFlow::end(TRACE_TAG_REACT_CXX_BRIDGE, "JSCall", systraceCookie); // [Windows] [issue #14819]
|
|
205
|
-
TraceSection s(
|
|
206
|
-
"NativeToJsBridge::callFunction", "module", module, "method", method);
|
|
207
|
-
#else
|
|
208
|
-
(void)(systraceCookie);
|
|
209
|
-
#endif
|
|
210
|
-
// This is safe because we are running on the executor's thread: it won't
|
|
211
|
-
// destruct until after it's been unregistered (which we check above) and
|
|
212
|
-
// that will happen on this thread
|
|
213
|
-
executor->callFunction(module, method, arguments);
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
void NativeToJsBridge::invokeCallback(
|
|
218
|
-
double callbackId,
|
|
219
|
-
folly::dynamic&& arguments) {
|
|
220
|
-
int systraceCookie = -1;
|
|
221
|
-
#ifdef WITH_FBSYSTRACE
|
|
222
|
-
systraceCookie = m_systraceCookie++;
|
|
223
|
-
FbSystraceAsyncFlow::begin(TRACE_TAG_REACT_CXX_BRIDGE, "<callback>", systraceCookie); // [Windows] [issue #14819]
|
|
224
|
-
#endif
|
|
225
|
-
|
|
226
|
-
runOnExecutorQueue(
|
|
227
|
-
[this, callbackId, arguments = std::move(arguments), systraceCookie](
|
|
228
|
-
JSExecutor* executor) {
|
|
229
|
-
if (m_applicationScriptHasFailure) {
|
|
230
|
-
LOG(ERROR)
|
|
231
|
-
<< "Attempting to call JS callback on a bad application bundle: "
|
|
232
|
-
<< callbackId;
|
|
233
|
-
throw std::runtime_error(
|
|
234
|
-
"Attempting to invoke JS callback on a bad application bundle.");
|
|
235
|
-
}
|
|
236
|
-
#ifdef WITH_FBSYSTRACE
|
|
237
|
-
FbSystraceAsyncFlow::end(TRACE_TAG_REACT_CXX_BRIDGE, "<callback>", systraceCookie); // [Windows] [issue #14819]
|
|
238
|
-
TraceSection s("NativeToJsBridge::invokeCallback");
|
|
239
|
-
#else
|
|
240
|
-
(void)(systraceCookie);
|
|
241
|
-
#endif
|
|
242
|
-
executor->invokeCallback(callbackId, arguments);
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
void NativeToJsBridge::registerBundle(
|
|
247
|
-
uint32_t bundleId,
|
|
248
|
-
const std::string& bundlePath) {
|
|
249
|
-
runOnExecutorQueue([bundleId, bundlePath](JSExecutor* executor) {
|
|
250
|
-
executor->registerBundle(bundleId, bundlePath);
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
void NativeToJsBridge::setGlobalVariable(
|
|
255
|
-
std::string propName,
|
|
256
|
-
std::unique_ptr<const JSBigString> jsonValue) {
|
|
257
|
-
runOnExecutorQueue([propName = std::move(propName),
|
|
258
|
-
jsonValue = makeMoveWrapper(std::move(jsonValue))](
|
|
259
|
-
JSExecutor* executor) mutable {
|
|
260
|
-
executor->setGlobalVariable(propName, jsonValue.move());
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
void* NativeToJsBridge::getJavaScriptContext() {
|
|
265
|
-
// TODO(cjhopman): this seems unsafe unless we require that it is only called
|
|
266
|
-
// on the main js queue.
|
|
267
|
-
return m_executor->getJavaScriptContext();
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
bool NativeToJsBridge::isInspectable() {
|
|
271
|
-
return m_inspectable;
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
bool NativeToJsBridge::isBatchActive() {
|
|
275
|
-
return m_delegate->isBatchActive();
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
void NativeToJsBridge::handleMemoryPressure(int pressureLevel) {
|
|
279
|
-
runOnExecutorQueue([=](JSExecutor* executor) {
|
|
280
|
-
executor->handleMemoryPressure(pressureLevel);
|
|
281
|
-
});
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
void NativeToJsBridge::destroy() {
|
|
285
|
-
// All calls made through runOnExecutorQueue have an early exit if
|
|
286
|
-
// m_destroyed is true. Setting this before the runOnQueueSync will cause
|
|
287
|
-
// pending work to be cancelled and we won't have to wait for it.
|
|
288
|
-
*m_destroyed = true;
|
|
289
|
-
m_executorMessageQueueThread->runOnQueueSync([this] {
|
|
290
|
-
m_executor->destroy();
|
|
291
|
-
m_executorMessageQueueThread->quitSynchronous();
|
|
292
|
-
m_executor = nullptr;
|
|
293
|
-
});
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
void NativeToJsBridge::runOnExecutorQueue(
|
|
297
|
-
std::function<void(JSExecutor*)>&& task) noexcept {
|
|
298
|
-
if (*m_destroyed) {
|
|
299
|
-
return;
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
std::shared_ptr<bool> isDestroyed = m_destroyed;
|
|
303
|
-
m_executorMessageQueueThread->runOnQueue(
|
|
304
|
-
[this, isDestroyed, task = std::move(task)] {
|
|
305
|
-
if (*isDestroyed) {
|
|
306
|
-
return;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
// The executor is guaranteed to be valid for the duration of the task
|
|
310
|
-
// because:
|
|
311
|
-
// 1. the executor is only destroyed after it is unregistered
|
|
312
|
-
// 2. the executor is unregistered on this queue
|
|
313
|
-
// 3. we just confirmed that the executor hasn't been unregistered above
|
|
314
|
-
task(m_executor.get());
|
|
315
|
-
});
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
std::shared_ptr<NativeMethodCallInvoker>
|
|
319
|
-
NativeToJsBridge::getDecoratedNativeMethodCallInvoker(
|
|
320
|
-
std::shared_ptr<NativeMethodCallInvoker> nativeMethodCallInvoker) const {
|
|
321
|
-
class NativeMethodCallInvokerImpl : public NativeMethodCallInvoker {
|
|
322
|
-
private:
|
|
323
|
-
std::weak_ptr<JsToNativeBridge> m_jsToNativeBridge;
|
|
324
|
-
std::shared_ptr<NativeMethodCallInvoker> m_nativeInvoker;
|
|
325
|
-
|
|
326
|
-
public:
|
|
327
|
-
NativeMethodCallInvokerImpl(
|
|
328
|
-
std::weak_ptr<JsToNativeBridge> jsToNativeBridge,
|
|
329
|
-
std::shared_ptr<NativeMethodCallInvoker> nativeInvoker)
|
|
330
|
-
: m_jsToNativeBridge(std::move(jsToNativeBridge)),
|
|
331
|
-
m_nativeInvoker(std::move(nativeInvoker)) {}
|
|
332
|
-
|
|
333
|
-
void invokeAsync(
|
|
334
|
-
const std::string& methodName,
|
|
335
|
-
NativeMethodCallFunc&& func) noexcept override {
|
|
336
|
-
if (auto strongJsToNativeBridge = m_jsToNativeBridge.lock()) {
|
|
337
|
-
strongJsToNativeBridge->recordTurboModuleAsyncMethodCall();
|
|
338
|
-
}
|
|
339
|
-
m_nativeInvoker->invokeAsync(methodName, std::move(func));
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
void invokeSync(const std::string& methodName, NativeMethodCallFunc&& func)
|
|
343
|
-
override {
|
|
344
|
-
m_nativeInvoker->invokeSync(methodName, std::move(func));
|
|
345
|
-
}
|
|
346
|
-
};
|
|
347
|
-
|
|
348
|
-
return std::make_shared<NativeMethodCallInvokerImpl>(
|
|
349
|
-
m_delegate, std::move(nativeMethodCallInvoker));
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
jsinspector_modern::RuntimeTargetDelegate&
|
|
353
|
-
NativeToJsBridge::getInspectorTargetDelegate() {
|
|
354
|
-
return m_executor->getRuntimeTargetDelegate();
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
} // namespace facebook::react
|
|
358
|
-
|
|
359
|
-
#endif // RCT_REMOVE_LEGACY_ARCH
|
|
360
|
-
|
|
361
|
-
#if _MSC_VER
|
|
362
|
-
#pragma warning(pop)
|
|
363
|
-
#endif
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the MIT license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
#if _MSC_VER
|
|
10
|
-
#pragma warning(push)
|
|
11
|
-
#pragma warning(disable : 4996) // deprecated APIs
|
|
12
|
-
#endif
|
|
13
|
-
#include "RAMBundleRegistry.h"
|
|
14
|
-
|
|
15
|
-
#ifndef RCT_REMOVE_LEGACY_ARCH
|
|
16
|
-
|
|
17
|
-
#include <folly/String.h>
|
|
18
|
-
|
|
19
|
-
#include <memory>
|
|
20
|
-
|
|
21
|
-
namespace facebook::react {
|
|
22
|
-
|
|
23
|
-
#pragma clang diagnostic push
|
|
24
|
-
#pragma clang diagnostic ignored "-Wdeprecated"
|
|
25
|
-
constexpr uint32_t RAMBundleRegistry::MAIN_BUNDLE_ID;
|
|
26
|
-
#pragma clang diagnostic pop
|
|
27
|
-
|
|
28
|
-
std::unique_ptr<RAMBundleRegistry> RAMBundleRegistry::singleBundleRegistry(
|
|
29
|
-
std::unique_ptr<JSModulesUnbundle> mainBundle) {
|
|
30
|
-
return std::make_unique<RAMBundleRegistry>(std::move(mainBundle));
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
std::unique_ptr<RAMBundleRegistry> RAMBundleRegistry::multipleBundlesRegistry(
|
|
34
|
-
std::unique_ptr<JSModulesUnbundle> mainBundle,
|
|
35
|
-
std::function<std::unique_ptr<JSModulesUnbundle>(std::string)> factory) {
|
|
36
|
-
return std::make_unique<RAMBundleRegistry>(
|
|
37
|
-
std::move(mainBundle), std::move(factory));
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
RAMBundleRegistry::RAMBundleRegistry(
|
|
41
|
-
std::unique_ptr<JSModulesUnbundle> mainBundle,
|
|
42
|
-
std::function<std::unique_ptr<JSModulesUnbundle>(std::string)> factory)
|
|
43
|
-
: m_factory(std::move(factory)) {
|
|
44
|
-
m_bundles.emplace(MAIN_BUNDLE_ID, std::move(mainBundle));
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
void RAMBundleRegistry::registerBundle(
|
|
48
|
-
uint32_t bundleId,
|
|
49
|
-
std::string bundlePath) {
|
|
50
|
-
m_bundlePaths.emplace(bundleId, std::move(bundlePath));
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
JSModulesUnbundle::Module RAMBundleRegistry::getModule(
|
|
54
|
-
uint32_t bundleId,
|
|
55
|
-
uint32_t moduleId) {
|
|
56
|
-
if (m_bundles.find(bundleId) == m_bundles.end()) {
|
|
57
|
-
if (!m_factory) {
|
|
58
|
-
throw std::runtime_error(
|
|
59
|
-
"You need to register factory function in order to "
|
|
60
|
-
"support multiple RAM bundles.");
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
auto bundlePath = m_bundlePaths.find(bundleId);
|
|
64
|
-
if (bundlePath == m_bundlePaths.end()) {
|
|
65
|
-
throw std::runtime_error(
|
|
66
|
-
"In order to fetch RAM bundle from the registry, its file "
|
|
67
|
-
"path needs to be registered first.");
|
|
68
|
-
}
|
|
69
|
-
m_bundles.emplace(bundleId, m_factory(bundlePath->second));
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
auto module = getBundle(bundleId)->getModule(moduleId);
|
|
73
|
-
if (bundleId == MAIN_BUNDLE_ID) {
|
|
74
|
-
return module;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return {
|
|
78
|
-
.name = "seg-" + std::to_string(bundleId) + '_' + module.name,
|
|
79
|
-
.code = std::move(module.code),
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
JSModulesUnbundle* RAMBundleRegistry::getBundle(uint32_t bundleId) const {
|
|
84
|
-
return m_bundles.at(bundleId).get();
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
} // namespace facebook::react
|
|
88
|
-
|
|
89
|
-
#endif // RCT_REMOVE_LEGACY_ARCH
|
|
90
|
-
|
|
91
|
-
#if _MSC_VER
|
|
92
|
-
#pragma warning(pop)
|
|
93
|
-
#endif
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the MIT license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
#if _MSC_VER
|
|
10
|
-
#pragma warning(push)
|
|
11
|
-
#pragma warning(disable : 4996) // deprecated APIs
|
|
12
|
-
#endif
|
|
13
|
-
#include "ReactMarker.h"
|
|
14
|
-
|
|
15
|
-
namespace facebook::react::ReactMarker {
|
|
16
|
-
|
|
17
|
-
#if __clang__
|
|
18
|
-
#pragma clang diagnostic push
|
|
19
|
-
#pragma clang diagnostic ignored "-Wglobal-constructors"
|
|
20
|
-
#endif
|
|
21
|
-
|
|
22
|
-
LogTaggedMarker logTaggedMarkerBridgelessImpl = nullptr;
|
|
23
|
-
LogTaggedMarker logTaggedMarkerImpl = nullptr;
|
|
24
|
-
std::shared_mutex logTaggedMarkerImplMutex;
|
|
25
|
-
|
|
26
|
-
#if __clang__
|
|
27
|
-
#pragma clang diagnostic pop
|
|
28
|
-
#endif
|
|
29
|
-
|
|
30
|
-
void logMarker(const ReactMarkerId markerId) {
|
|
31
|
-
logTaggedMarker(markerId, nullptr);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
void logTaggedMarker(const ReactMarkerId markerId, const char* tag) {
|
|
35
|
-
LogTaggedMarker marker = nullptr;
|
|
36
|
-
{
|
|
37
|
-
std::shared_lock lock(logTaggedMarkerImplMutex);
|
|
38
|
-
marker = logTaggedMarkerImpl;
|
|
39
|
-
}
|
|
40
|
-
if (marker != nullptr) {
|
|
41
|
-
marker(markerId, tag);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
void logMarkerBridgeless(const ReactMarkerId markerId) {
|
|
46
|
-
logTaggedMarkerBridgeless(markerId, nullptr);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
void logTaggedMarkerBridgeless(const ReactMarkerId markerId, const char* tag) {
|
|
50
|
-
logTaggedMarkerBridgelessImpl(markerId, tag);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
void logMarkerDone(const ReactMarkerId markerId, double markerTime) {
|
|
54
|
-
StartupLogger::getInstance().logStartupEvent(markerId, markerTime);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
StartupLogger& StartupLogger::getInstance() {
|
|
58
|
-
static StartupLogger instance;
|
|
59
|
-
return instance;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
void StartupLogger::logStartupEvent(
|
|
63
|
-
const ReactMarkerId markerId,
|
|
64
|
-
double markerTime) {
|
|
65
|
-
switch (markerId) {
|
|
66
|
-
case ReactMarkerId::APP_STARTUP_START:
|
|
67
|
-
if (!std::isnan(appStartupStartTime)) {
|
|
68
|
-
// We had a startup start time, which indicates a warm start (user
|
|
69
|
-
// closed the app and start again). In this case we need to invalidate
|
|
70
|
-
// all other startup timings.
|
|
71
|
-
reset();
|
|
72
|
-
}
|
|
73
|
-
appStartupStartTime = markerTime;
|
|
74
|
-
return;
|
|
75
|
-
|
|
76
|
-
case ReactMarkerId::APP_STARTUP_STOP:
|
|
77
|
-
if (std::isnan(appStartupEndTime)) {
|
|
78
|
-
appStartupEndTime = markerTime;
|
|
79
|
-
}
|
|
80
|
-
return;
|
|
81
|
-
|
|
82
|
-
case ReactMarkerId::INIT_REACT_RUNTIME_START:
|
|
83
|
-
if (std::isnan(initReactRuntimeStartTime)) {
|
|
84
|
-
initReactRuntimeStartTime = markerTime;
|
|
85
|
-
}
|
|
86
|
-
return;
|
|
87
|
-
|
|
88
|
-
case ReactMarkerId::INIT_REACT_RUNTIME_STOP:
|
|
89
|
-
if (std::isnan(initReactRuntimeEndTime)) {
|
|
90
|
-
initReactRuntimeEndTime = markerTime;
|
|
91
|
-
}
|
|
92
|
-
return;
|
|
93
|
-
|
|
94
|
-
case ReactMarkerId::RUN_JS_BUNDLE_START:
|
|
95
|
-
if (std::isnan(runJSBundleStartTime)) {
|
|
96
|
-
runJSBundleStartTime = markerTime;
|
|
97
|
-
}
|
|
98
|
-
return;
|
|
99
|
-
|
|
100
|
-
case ReactMarkerId::RUN_JS_BUNDLE_STOP:
|
|
101
|
-
if (std::isnan(runJSBundleEndTime)) {
|
|
102
|
-
runJSBundleEndTime = markerTime;
|
|
103
|
-
}
|
|
104
|
-
return;
|
|
105
|
-
|
|
106
|
-
default:
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
void StartupLogger::reset() {
|
|
112
|
-
appStartupStartTime = std::nan("");
|
|
113
|
-
appStartupEndTime = std::nan("");
|
|
114
|
-
initReactRuntimeStartTime = std::nan("");
|
|
115
|
-
initReactRuntimeEndTime = std::nan("");
|
|
116
|
-
runJSBundleStartTime = std::nan("");
|
|
117
|
-
runJSBundleEndTime = std::nan("");
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
double StartupLogger::getAppStartupStartTime() {
|
|
121
|
-
return appStartupStartTime;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
double StartupLogger::getInitReactRuntimeStartTime() {
|
|
125
|
-
return initReactRuntimeStartTime;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
double StartupLogger::getInitReactRuntimeEndTime() {
|
|
129
|
-
return initReactRuntimeEndTime;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
double StartupLogger::getRunJSBundleStartTime() {
|
|
133
|
-
return runJSBundleStartTime;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
double StartupLogger::getRunJSBundleEndTime() {
|
|
137
|
-
return runJSBundleEndTime;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
double StartupLogger::getAppStartupEndTime() {
|
|
141
|
-
return appStartupEndTime;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
} // namespace facebook::react::ReactMarker
|
|
145
|
-
|
|
146
|
-
#if _MSC_VER
|
|
147
|
-
#pragma warning(pop)
|
|
148
|
-
#endif
|