react-native-tvos 0.77.1-0 → 0.78.0-0
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/Libraries/Animated/animations/Animation.js +22 -1
- package/Libraries/Animated/animations/DecayAnimation.js +1 -0
- package/Libraries/Animated/animations/SpringAnimation.js +1 -0
- package/Libraries/Animated/animations/TimingAnimation.js +1 -0
- package/Libraries/Animated/nodes/AnimatedAddition.js +9 -2
- package/Libraries/Animated/nodes/AnimatedColor.js +4 -1
- package/Libraries/Animated/nodes/AnimatedDiffClamp.js +10 -2
- package/Libraries/Animated/nodes/AnimatedDivision.js +9 -2
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +5 -1
- package/Libraries/Animated/nodes/AnimatedModulo.js +5 -2
- package/Libraries/Animated/nodes/AnimatedMultiplication.js +9 -2
- package/Libraries/Animated/nodes/AnimatedNode.js +25 -46
- package/Libraries/Animated/nodes/AnimatedObject.js +9 -2
- package/Libraries/Animated/nodes/AnimatedProps.js +5 -1
- package/Libraries/Animated/nodes/AnimatedStyle.js +5 -1
- package/Libraries/Animated/nodes/AnimatedSubtraction.js +9 -2
- package/Libraries/Animated/nodes/AnimatedTracking.js +5 -1
- package/Libraries/Animated/nodes/AnimatedTransform.js +5 -1
- package/Libraries/Animated/nodes/AnimatedValue.js +63 -4
- package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -1
- package/Libraries/Animated/useAnimatedProps.js +14 -56
- package/Libraries/AppDelegate/RCTAppDelegate.h +6 -48
- package/Libraries/AppDelegate/RCTAppDelegate.mm +5 -230
- package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.h +21 -0
- package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +123 -0
- package/Libraries/AppDelegate/RCTReactNativeFactory.h +98 -0
- package/Libraries/AppDelegate/RCTReactNativeFactory.mm +266 -0
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +1 -1
- package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +0 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.d.ts +21 -0
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +59 -0
- package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +29 -0
- package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
- package/Libraries/Components/TextInput/TextInput.d.ts +5 -0
- package/Libraries/Components/TextInput/TextInput.flow.js +6 -0
- package/Libraries/Components/TextInput/TextInput.js +6 -0
- package/Libraries/Components/View/ViewPropTypes.d.ts +4 -5
- package/Libraries/Components/View/ViewPropTypes.js +0 -9
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/setUpBatchedBridge.js +1 -16
- package/Libraries/EventEmitter/RCTEventEmitter.js +2 -6
- package/Libraries/Image/AssetSourceResolver.js +11 -0
- package/Libraries/Image/RCTImageView.mm +3 -3
- package/Libraries/Inspector/BorderBox.js +26 -14
- package/Libraries/Inspector/BoxInspector.js +60 -42
- package/Libraries/Inspector/ElementBox.js +55 -48
- package/Libraries/Inspector/StyleInspector.js +36 -30
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
- package/Libraries/Lists/FlatList.d.ts +1 -1
- package/Libraries/Modal/Modal.js +2 -0
- package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm +1 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +0 -2
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +0 -2
- package/Libraries/Network/RCTNetworking.android.js +24 -16
- package/Libraries/Network/RCTNetworking.ios.js +1 -46
- package/Libraries/Network/RCTNetworking.js.flow +1 -46
- package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +57 -0
- package/Libraries/ReactNative/UIManagerProperties.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +15829 -26461
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3907 -2560
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4399 -2878
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +16103 -26908
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +4034 -2695
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4535 -3045
- package/Libraries/Renderer/shims/ReactNativeTypes.js +5 -6
- package/Libraries/StyleSheet/processTransform.js +6 -0
- package/Libraries/Text/Text/NSTextStorage+FontScaling.m +9 -0
- package/Libraries/Text/Text.d.ts +6 -1
- package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +2 -0
- package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +26 -0
- package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +2 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +25 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +2 -0
- package/Libraries/Text/TextInput/Singleline/RCTUITextField.h +1 -0
- package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +26 -0
- package/Libraries/Text/TextProps.js +2 -2
- package/Libraries/Utilities/BackHandler.android.js +5 -4
- package/Libraries/Utilities/BackHandler.ios.js +3 -4
- package/README-core.md +2 -2
- package/React/Base/RCTVersion.m +2 -2
- package/React/CoreModules/RCTDevSettings.h +0 -1
- package/React/CoreModules/RCTDeviceInfo.mm +4 -0
- package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +3 -5
- package/React/DevSupport/RCTInspectorDevServerHelper.mm +1 -6
- package/React/DevSupport/RCTPausedInDebuggerOverlayController.mm +3 -5
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +0 -24
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +0 -28
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +90 -57
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +241 -104
- package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryContentView.mm +0 -5
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +39 -10
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +3 -3
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +22 -3
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +5 -0
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +1 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +7 -2
- package/React/Fabric/Mounting/RCTComponentViewFactory.mm +3 -0
- package/React/Fabric/Mounting/RCTMountingManager.mm +6 -9
- package/React/Fabric/RCTScheduler.mm +1 -1
- package/React/I18n/strings/da.lproj/fbt_language_pack.bin +0 -0
- package/React/Modules/RCTUIManager.mm +1 -2
- package/React/React-RCTFBReactNativeSpec.podspec +1 -0
- package/React/React-RCTFabric.podspec +3 -2
- package/React/Tests/Text/RCTParagraphComponentViewTests.mm +12 -12
- package/React/Views/RCTComponentData.mm +1 -5
- package/React/Views/RCTLayout.m +3 -0
- package/React/Views/RCTShadowView.h +3 -3
- package/React/Views/RCTShadowView.m +52 -20
- package/React/Views/RCTView.m +6 -2
- package/React/Views/RCTViewManager.m +0 -7
- package/React/Views/ScrollView/RCTScrollView.m +46 -19
- package/React-Core.podspec +1 -1
- package/ReactAndroid/api/ReactAndroid.api +120 -227
- package/ReactAndroid/build.gradle.kts +8 -13
- package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +2 -0
- package/ReactAndroid/external-artifacts/build.gradle.kts +5 -5
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesMemoryDumper.java → HermesMemoryDumper.kt} +5 -5
- package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesSamplingProfiler.java → HermesSamplingProfiler.kt} +8 -10
- package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +12 -59
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +12 -1
- package/ReactAndroid/src/main/java/com/facebook/react/{ReactPackageLogger.java → ReactPackageLogger.kt} +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +6 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.kt +5 -3
- package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.kt +4 -8
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +11 -5
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt +0 -7
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +6 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +11 -23
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +3 -30
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/HMRClient.java +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +21 -26
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +1 -14
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.java +2 -11
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +88 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +24 -0
- package/ReactAndroid/src/main/java/com/facebook/react/interfaces/exceptionmanager/ReactJsExceptionHandler.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +21 -21
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +36 -36
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +10 -10
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +40 -40
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.kt +55 -0
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.kt +185 -0
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/{HeadlessJsTaskEventListener.java → HeadlessJsTaskEventListener.kt} +5 -6
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.kt +20 -0
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/LinearCountingRetryPolicy.kt +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/NoRetryPolicy.kt +7 -8
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +8 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.kt +11 -17
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.kt +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.kt +107 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +18 -19
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.kt +48 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +397 -0
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostDelegate.kt +0 -10
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/hermes/HermesInstance.kt +4 -10
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +13 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +15 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ComponentNameResolver.java → ComponentNameResolver.kt} +4 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.kt +5 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +0 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.kt +21 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.kt +18 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{RootView.java → RootView.kt} +11 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewManager.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{UIBlock.java → UIBlock.kt} +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +2 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +25 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt +1 -1
- package/{Libraries/AppDelegate/RCTAppDelegate+Protected.h → ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerWithGeneratedInterface.kt} +3 -8
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +12 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundDrawable.kt +46 -80
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CompositeBackgroundDrawable.kt +8 -9
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/{BatchEventDispatchedListener.java → BatchEventDispatchedListener.kt} +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.kt +46 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.kt +40 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +2 -6
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.kt +19 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.kt +23 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +241 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.kt +193 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.kt +44 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +37 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.kt +130 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.kt +77 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +196 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +16 -17
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +5 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +34 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.kt +11 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/{FpsListener.java → FpsListener.kt} +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.kt +136 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.kt +152 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +52 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +1 -7
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +8 -13
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.kt +50 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ShadowStyleSpan.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +1 -9
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +111 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +90 -20
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java +22 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +43 -1
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +86 -2
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +44 -2
- package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.java +7 -1
- package/ReactAndroid/src/main/jni/CMakeLists.txt +5 -6
- package/ReactAndroid/src/main/jni/first-party/yogajni/CMakeLists.txt +6 -1
- package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +96 -11
- package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +9 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +1 -0
- package/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +0 -3
- package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +3 -0
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +41 -25
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +0 -2
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +63 -91
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +1 -7
- package/ReactAndroid/src/main/jni/react/fabric/MountItem.cpp +9 -9
- package/ReactAndroid/src/main/jni/react/fabric/MountItem.h +6 -10
- package/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +0 -2
- package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp +4 -0
- package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +1 -0
- package/ReactAndroid/src/main/jni/react/featureflags/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +49 -49
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +11 -11
- package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/OnLoad.cpp +1 -4
- package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +0 -1
- package/ReactAndroid/src/main/jni/react/jni/JSLogging.cpp +4 -9
- package/ReactAndroid/src/main/jni/react/jni/JSLogging.h +0 -4
- package/ReactAndroid/src/main/jni/react/jni/JniJSModulesUnbundle.cpp +3 -4
- package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp +3 -4
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.cpp +6 -0
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.h +1 -0
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.cpp +6 -0
- package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.h +1 -0
- package/ReactAndroid/src/main/jni/react/jscexecutor/OnLoad.cpp +3 -7
- package/ReactAndroid/src/main/jni/react/mapbuffer/CMakeLists.txt +0 -2
- package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/reactperflogger/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.cpp +2 -8
- package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.h +2 -8
- package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.cpp +18 -17
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.h +1 -1
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/turbomodule/CMakeLists.txt +0 -2
- package/ReactAndroid/src/main/jni/react/uimanager/CMakeLists.txt +0 -1
- package/ReactAndroid/src/main/res/views/view/values/ids.xml +5 -0
- package/ReactCommon/React-Fabric.podspec +8 -0
- package/ReactCommon/React-FabricComponents.podspec +2 -2
- package/ReactCommon/React-FabricImage.podspec +4 -1
- package/ReactCommon/cxxreact/CxxNativeModule.cpp +3 -3
- package/ReactCommon/cxxreact/Instance.cpp +6 -6
- package/ReactCommon/cxxreact/JSBigString.cpp +1 -1
- package/ReactCommon/cxxreact/JSExecutor.cpp +4 -2
- package/ReactCommon/cxxreact/ModuleRegistry.cpp +6 -6
- package/ReactCommon/cxxreact/NativeToJsBridge.cpp +3 -3
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/cxxreact/SystraceSection.h +8 -141
- package/ReactCommon/cxxreact/TraceSection.h +181 -0
- package/ReactCommon/cxxreact/tests/jsbigstring.cpp +19 -0
- package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +2 -2
- package/ReactCommon/jsc/JSCRuntime.cpp +0 -2
- package/ReactCommon/jsc/React-jsc.podspec +1 -1
- package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +27 -19
- package/ReactCommon/jserrorhandler/JsErrorHandler.h +5 -3
- package/ReactCommon/jserrorhandler/StackTraceParser.cpp +16 -16
- package/ReactCommon/jserrorhandler/StackTraceParser.h +1 -1
- package/ReactCommon/jserrorhandler/tests/StackTraceParserTest.cpp +252 -246
- package/ReactCommon/jsi/jsi/CMakeLists.txt +0 -3
- package/ReactCommon/jsi/jsi/JSIDynamic.cpp +1 -1
- package/ReactCommon/jsi/jsi/JSIDynamic.h +1 -1
- package/ReactCommon/jsi/jsi/decorator.h +61 -0
- package/ReactCommon/jsi/jsi/jsi-inl.h +4 -0
- package/ReactCommon/jsi/jsi/jsi.cpp +37 -0
- package/ReactCommon/jsi/jsi/jsi.h +81 -0
- package/ReactCommon/jsi/jsi/test/testlib.cpp +88 -0
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +9 -9
- package/ReactCommon/jsinspector-modern/CMakeLists.txt +1 -1
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +3 -7
- package/ReactCommon/jsinspector-modern/HostTarget.cpp +22 -1
- package/ReactCommon/jsinspector-modern/HostTarget.h +1 -1
- package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +19 -4
- package/ReactCommon/jsinspector-modern/InspectorFlags.h +14 -0
- package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +21 -10
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +12 -11
- package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +2 -16
- package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +14 -14
- package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.h +7 -13
- package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestGenericEngineAdapter.cpp +1 -1
- package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +1 -3
- package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +3 -3
- package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +1 -1
- package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +26 -0
- package/ReactCommon/jsinspector-modern/tracing/CdpTracing.h +21 -0
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +187 -0
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +126 -0
- package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +56 -0
- package/ReactCommon/react/featureflags/CMakeLists.txt +3 -0
- package/ReactCommon/react/featureflags/React-featureflags.podspec +7 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +15 -15
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +18 -18
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +88 -88
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +9 -9
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +17 -17
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +454 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +5 -5
- package/ReactCommon/react/featureflags/tests/ReactNativeFeatureFlagsDynamicProviderTest.cpp +78 -0
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +2 -3
- package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +3 -3
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +1 -5
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +13 -23
- package/ReactCommon/react/nativemodule/cputime/CPUTime.h +55 -0
- package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.cpp +35 -0
- package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.h +28 -0
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +18 -18
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +8 -8
- package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -0
- package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.cpp +5 -8
- package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +3 -3
- package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +22 -43
- package/ReactCommon/react/nativemodule/webperformance/NativePerformance.h +0 -15
- package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +22 -2
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +9 -4
- package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
- package/ReactCommon/react/renderer/animations/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +1 -1
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +25 -19
- package/ReactCommon/react/renderer/animations/primitives.h +1 -1
- package/ReactCommon/react/renderer/animations/utils.h +3 -4
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +31 -9
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +81 -31
- package/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.cpp +4 -1
- package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +2 -0
- package/ReactCommon/react/renderer/components/image/ImageEventEmitter.cpp +2 -2
- package/ReactCommon/react/renderer/components/image/ImageProps.cpp +5 -5
- package/ReactCommon/react/renderer/components/image/ImageProps.h +1 -1
- package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +38 -10
- package/ReactCommon/react/renderer/components/image/ImageShadowNode.h +1 -1
- package/ReactCommon/react/renderer/components/image/ImageState.cpp +2 -3
- package/ReactCommon/react/renderer/components/image/ImageState.h +9 -6
- package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -4
- package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h +7 -0
- package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -2
- package/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt +2 -2
- package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.cpp +33 -0
- package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +17 -0
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.cpp +3 -2
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +2 -1
- package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -4
- package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h +7 -0
- package/ReactCommon/react/renderer/{uimanager/bindingUtils.h → components/text/ParagraphComponentDescriptor.cpp} +2 -8
- package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +10 -7
- package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp +23 -0
- package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +8 -1
- package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +243 -0
- package/ReactCommon/react/renderer/components/textinput/TextInputState.cpp +71 -0
- package/ReactCommon/react/renderer/components/textinput/{platform/ios/react/renderer/components/iostextinput/TextInputState.h → TextInputState.h} +27 -7
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +6 -13
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +0 -2
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +145 -144
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +27 -29
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +4 -5
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.cpp +0 -26
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h +0 -6
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.cpp +0 -147
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h +5 -57
- package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +60 -70
- package/ReactCommon/react/renderer/components/view/BaseViewProps.h +3 -3
- package/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h +18 -0
- package/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h +36 -0
- package/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h +28 -0
- package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +4 -0
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +0 -1
- package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +21 -22
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
- package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +3 -1
- package/ReactCommon/react/renderer/components/view/conversions.h +117 -43
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +3 -2
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +3 -1
- package/ReactCommon/react/renderer/components/view/primitives.h +1 -1
- package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +12 -12
- package/ReactCommon/react/renderer/core/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/core/ComponentDescriptor.cpp +4 -2
- package/ReactCommon/react/renderer/core/ComponentDescriptor.h +4 -2
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +17 -2
- package/ReactCommon/react/renderer/core/DynamicPropsUtilities.cpp +26 -0
- package/ReactCommon/react/renderer/core/DynamicPropsUtilities.h +4 -0
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +3 -3
- package/ReactCommon/react/renderer/core/Props.cpp +16 -5
- package/ReactCommon/react/renderer/core/Props.h +11 -4
- package/ReactCommon/react/renderer/core/RawProps.cpp +30 -5
- package/ReactCommon/react/renderer/core/RawProps.h +10 -1
- package/ReactCommon/react/renderer/core/RawPropsParser.cpp +7 -2
- package/ReactCommon/react/renderer/core/RawPropsParser.h +7 -1
- package/ReactCommon/react/renderer/core/RawPropsPrimitives.h +1 -0
- package/ReactCommon/react/renderer/core/RawValue.h +315 -22
- package/ReactCommon/react/renderer/core/tests/DynamicPropsUtilitiesTest.cpp +95 -4
- package/ReactCommon/react/renderer/debug/debugStringConvertibleUtils.h +19 -4
- package/ReactCommon/react/renderer/graphics/CMakeLists.txt +7 -1
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +7 -5
- package/ReactCommon/react/renderer/graphics/Transform.cpp +11 -2
- package/ReactCommon/react/renderer/graphics/Transform.h +2 -1
- package/ReactCommon/react/renderer/imagemanager/CMakeLists.txt +4 -2
- package/ReactCommon/react/renderer/imagemanager/ImageManager.h +7 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +43 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +36 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +43 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +94 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +101 -0
- package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageManager.cpp +9 -1
- package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequestParams.h +30 -0
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageManager.mm +9 -0
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h +30 -0
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImageManager.mm +2 -2
- package/ReactCommon/react/renderer/mounting/Differentiator.cpp +187 -152
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +4 -5
- package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +10 -16
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -12
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +44 -14
- package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +8 -4
- package/ReactCommon/react/renderer/mounting/stubs/stubs.cpp +1 -1
- package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +116 -193
- package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +0 -3
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +7 -4
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.h +2 -1
- package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +7 -8
- package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.cpp +6 -6
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +3 -1
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +2 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +11 -11
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +14 -15
- package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +4 -3
- package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +6 -37
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +0 -3
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +15 -11
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +1 -0
- package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +56 -2
- package/ReactCommon/react/renderer/scheduler/SurfaceManager.h +23 -3
- package/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +1 -2
- package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManager.cpp +26 -0
- package/ReactCommon/react/renderer/textlayoutmanager/{platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h → TextLayoutManager.h} +18 -17
- package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +77 -89
- package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.cpp +6 -10
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +6 -2
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +23 -1
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +11 -32
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +9 -23
- package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.cpp +88 -0
- package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.h +50 -0
- package/ReactCommon/react/renderer/uimanager/CMakeLists.txt +0 -1
- package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.h +3 -40
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +23 -18
- package/ReactCommon/react/renderer/uimanager/UIManager.h +2 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -31
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +0 -4
- package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +10 -10
- package/ReactCommon/react/runtime/CMakeLists.txt +0 -1
- package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -2
- package/ReactCommon/react/runtime/ReactInstance.cpp +43 -57
- package/ReactCommon/react/runtime/TimerManager.cpp +4 -4
- package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +5 -1
- package/ReactCommon/react/runtime/hermes/HermesInstance.h +0 -2
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +2 -6
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +6 -15
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +3 -1
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +15 -15
- package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +5 -4
- package/ReactCommon/react/test_utils/shadowTreeGeneration.h +0 -3
- package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.cpp +33 -17
- package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.h +8 -2
- package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.cpp → ReactPerfettoLogger.cpp} +25 -24
- package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.h → ReactPerfettoLogger.h} +9 -9
- package/ReactCommon/yoga/yoga/YGEnums.cpp +6 -0
- package/ReactCommon/yoga/yoga/YGEnums.h +4 -1
- package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +124 -24
- package/ReactCommon/yoga/yoga/YGNodeStyle.h +22 -1
- package/ReactCommon/yoga/yoga/YGValue.h +3 -0
- package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +6 -6
- package/ReactCommon/yoga/yoga/algorithm/FlexLine.cpp +2 -2
- package/ReactCommon/yoga/yoga/algorithm/FlexLine.h +1 -1
- package/ReactCommon/yoga/yoga/algorithm/PixelGrid.cpp +9 -6
- package/ReactCommon/yoga/yoga/enums/Unit.h +4 -1
- package/ReactCommon/yoga/yoga/node/Node.cpp +8 -8
- package/ReactCommon/yoga/yoga/node/Node.h +5 -5
- package/ReactCommon/yoga/yoga/style/Style.h +14 -12
- package/ReactCommon/yoga/yoga/style/StyleLength.h +14 -7
- package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +139 -0
- package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +8 -0
- package/ReactCommon/yoga/yoga/style/StyleValuePool.h +60 -3
- package/gradle/libs.versions.toml +6 -2
- package/index.js +5 -0
- package/package.json +12 -13
- package/react-native.config.js +6 -0
- package/scripts/cocoapods/codegen_utils.rb +4 -4
- package/scripts/cocoapods/new_architecture.rb +3 -3
- package/scripts/cocoapods/utils.rb +4 -3
- package/scripts/codegen/generate-artifacts-executor.js +8 -4
- package/scripts/generate-codegen-artifacts.js +6 -1
- package/scripts/react-native-xcode.sh +1 -1
- package/scripts/react_native_pods.rb +3 -3
- package/scripts/xcode/ccache-clang++.sh +1 -1
- package/scripts/xcode/ccache-clang.sh +1 -1
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/utils/build-hermes-xcode.sh +1 -1
- package/sdks/hermesc/linux64-bin/hermesc +0 -0
- package/sdks/hermesc/osx-bin/hermes +0 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/src/private/animated/NativeAnimatedValidation.js +1 -1
- package/src/private/featureflags/README.md +5 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +33 -27
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -5
- package/src/private/renderer/errorhandling/ErrorHandlers.js +12 -55
- package/src/private/specs/modules/{NativeJSCSamplingProfiler.js → NativeCPUTime.js} +7 -2
- package/src/private/specs/modules/NativeFantom.js +37 -0
- package/src/private/utilities/ensureInstance.js +21 -0
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +49 -6
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +17 -9
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +11 -11
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +1 -1
- package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -1
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
- package/src/private/webapis/performance/Performance.js +0 -12
- package/src/private/webapis/performance/specs/NativePerformance.js +0 -11
- package/types/index.d.ts +1 -0
- package/types/public/ReactNativeTVTypes.d.ts +49 -51
- package/Libraries/HeapCapture/HeapCapture.js +0 -29
- package/Libraries/HeapCapture/NativeJSCHeapCapture.js +0 -13
- package/Libraries/Performance/NativeJSCSamplingProfiler.js +0 -13
- package/Libraries/Performance/SamplingProfiler.js +0 -39
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +0 -334
- package/React/Inspector/RCTInspectorPackagerConnection.m +0 -325
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedResultAsyncTask.java +0 -50
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorPackagerConnection.java +0 -314
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/JSCHeapCapture.java +0 -76
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/EmptyReactNativeConfig.kt +0 -36
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.kt +0 -33
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/ReactNativeConfig.kt +0 -54
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +0 -83
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.java +0 -121
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +0 -214
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.java +0 -22
- package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/XmlFormat.kt +0 -143
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.java +0 -17
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +0 -124
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.java +0 -58
- package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.java +0 -422
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FabricViewStateManager.java +0 -98
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +0 -25
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.java +0 -20
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +0 -45
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.java +0 -37
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.java +0 -19
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.java +0 -24
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +0 -257
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.java +0 -210
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +0 -43
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +0 -39
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +0 -165
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.java +0 -85
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +0 -204
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.java +0 -161
- package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.java +0 -232
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.java +0 -70
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/LegacyLineHeightSpan.kt +0 -69
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.java +0 -114
- package/ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt +0 -31
- package/ReactAndroid/src/main/jni/first-party/fb/assert.cpp +0 -39
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ALog.h +0 -82
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Build.h +0 -31
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Countable.h +0 -45
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Doxyfile +0 -18
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Environment.h +0 -93
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ProgramLocation.h +0 -58
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/RefPtr.h +0 -266
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/StaticInitialized.h +0 -37
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ThreadLocal.h +0 -112
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/assert.h +0 -43
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/log.h +0 -350
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/noncopyable.h +0 -20
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/nonmovable.h +0 -20
- package/ReactAndroid/src/main/jni/first-party/fb/include/fb/visibility.h +0 -10
- package/ReactAndroid/src/main/jni/first-party/fb/log.cpp +0 -102
- package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.cpp +0 -47
- package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.h +0 -38
- package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.cpp +0 -41
- package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.h +0 -35
- package/ReactAndroid/src/main/jni/react/perftests/OnLoad.cpp +0 -243
- package/ReactAndroid/src/main/jni/third-party/jsc/CMakeLists.txt +0 -15
- package/ReactCommon/React-nativeconfig.podspec +0 -36
- package/ReactCommon/cxxreact/tests/main.cpp +0 -15
- package/ReactCommon/react/config/CMakeLists.txt +0 -20
- package/ReactCommon/react/config/ReactNativeConfig.cpp +0 -28
- package/ReactCommon/react/config/ReactNativeConfig.h +0 -42
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.cpp +0 -95
- package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h +0 -80
- package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputState.cpp +0 -10
- package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.h +0 -78
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.h +0 -69
- package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.cpp +0 -123
- package/ReactCommon/react/renderer/uimanager/bindingUtils.cpp +0 -79
- package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +0 -413
- package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +0 -181
- package/src/private/webapis/mutationobserver/specs/__mocks__/NativeMutationObserver.js +0 -327
- /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewComponentDescriptor.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h} +0 -0
- /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.cpp → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.cpp} +0 -0
- /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h} +0 -0
|
@@ -0,0 +1,185 @@
|
|
|
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
|
+
package com.facebook.react.jstasks
|
|
9
|
+
|
|
10
|
+
import android.util.SparseArray
|
|
11
|
+
import com.facebook.infer.annotation.Assertions
|
|
12
|
+
import com.facebook.react.bridge.ReactContext
|
|
13
|
+
import com.facebook.react.bridge.ReactSoftExceptionLogger.logSoftException
|
|
14
|
+
import com.facebook.react.bridge.UiThreadUtil
|
|
15
|
+
import com.facebook.react.common.LifecycleState
|
|
16
|
+
import com.facebook.react.modules.appregistry.AppRegistry
|
|
17
|
+
import java.lang.ref.WeakReference
|
|
18
|
+
import java.util.WeakHashMap
|
|
19
|
+
import java.util.concurrent.ConcurrentHashMap
|
|
20
|
+
import java.util.concurrent.CopyOnWriteArraySet
|
|
21
|
+
import java.util.concurrent.atomic.AtomicInteger
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Helper class for dealing with JS tasks. Handles per-ReactContext active task tracking, starting /
|
|
25
|
+
* stopping tasks and notifying listeners.
|
|
26
|
+
*/
|
|
27
|
+
public class HeadlessJsTaskContext private constructor(reactContext: ReactContext) {
|
|
28
|
+
private val reactContext = WeakReference(reactContext)
|
|
29
|
+
private val headlessJsTaskEventListeners: MutableSet<HeadlessJsTaskEventListener> =
|
|
30
|
+
CopyOnWriteArraySet()
|
|
31
|
+
private val lastTaskId = AtomicInteger(0)
|
|
32
|
+
private val activeTasks: MutableSet<Int> = CopyOnWriteArraySet()
|
|
33
|
+
private val activeTaskConfigs: MutableMap<Int, HeadlessJsTaskConfig> = ConcurrentHashMap()
|
|
34
|
+
private val taskTimeouts = SparseArray<Runnable>()
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Register a task lifecycle event listener. Synchronized in order to prevent race conditions with
|
|
38
|
+
* finishTask, as the listener will be invoked for already running tasks.
|
|
39
|
+
*/
|
|
40
|
+
@Synchronized
|
|
41
|
+
public fun addTaskEventListener(listener: HeadlessJsTaskEventListener) {
|
|
42
|
+
headlessJsTaskEventListeners.add(listener)
|
|
43
|
+
for (activeTaskId in activeTasks) {
|
|
44
|
+
listener.onHeadlessJsTaskStart(activeTaskId)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** Unregister a task lifecycle event listener. */
|
|
49
|
+
public fun removeTaskEventListener(listener: HeadlessJsTaskEventListener) {
|
|
50
|
+
headlessJsTaskEventListeners.remove(listener)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** Get whether there are any running JS tasks at the moment. */
|
|
54
|
+
public fun hasActiveTasks(): Boolean = activeTasks.isNotEmpty()
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Start a JS task. Handles invoking [AppRegistry.startHeadlessTask] and notifying listeners.
|
|
58
|
+
*
|
|
59
|
+
* @return a unique id representing this task instance.
|
|
60
|
+
*/
|
|
61
|
+
@Synchronized
|
|
62
|
+
public fun startTask(taskConfig: HeadlessJsTaskConfig): Int =
|
|
63
|
+
lastTaskId.incrementAndGet().apply { startTask(taskConfig, this) }
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Start a JS task the provided task id. Handles invoking [AppRegistry.startHeadlessTask] and
|
|
67
|
+
* notifying listeners.
|
|
68
|
+
*/
|
|
69
|
+
@Synchronized
|
|
70
|
+
private fun startTask(taskConfig: HeadlessJsTaskConfig, taskId: Int) {
|
|
71
|
+
UiThreadUtil.assertOnUiThread()
|
|
72
|
+
val reactContext =
|
|
73
|
+
Assertions.assertNotNull(
|
|
74
|
+
reactContext.get(),
|
|
75
|
+
"Tried to start a task on a react context that has already been destroyed")
|
|
76
|
+
check(
|
|
77
|
+
!(reactContext.lifecycleState == LifecycleState.RESUMED &&
|
|
78
|
+
!taskConfig.isAllowedInForeground)) {
|
|
79
|
+
"Tried to start task ${taskConfig.taskKey} while in foreground, but this is not allowed."
|
|
80
|
+
}
|
|
81
|
+
activeTasks.add(taskId)
|
|
82
|
+
activeTaskConfigs[taskId] = HeadlessJsTaskConfig(taskConfig)
|
|
83
|
+
if (reactContext.hasActiveReactInstance()) {
|
|
84
|
+
reactContext
|
|
85
|
+
.getJSModule(AppRegistry::class.java)
|
|
86
|
+
.startHeadlessTask(taskId, taskConfig.taskKey, taskConfig.data)
|
|
87
|
+
} else {
|
|
88
|
+
logSoftException(
|
|
89
|
+
"HeadlessJsTaskContext",
|
|
90
|
+
RuntimeException("Cannot start headless task, CatalystInstance not available"))
|
|
91
|
+
}
|
|
92
|
+
if (taskConfig.timeout > 0) {
|
|
93
|
+
scheduleTaskTimeout(taskId, taskConfig.timeout)
|
|
94
|
+
}
|
|
95
|
+
for (listener in headlessJsTaskEventListeners) {
|
|
96
|
+
listener.onHeadlessJsTaskStart(taskId)
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Retry a running JS task with a delay. Invokes [ ][HeadlessJsTaskContext.startTask] as long as
|
|
102
|
+
* the process does not get killed.
|
|
103
|
+
*
|
|
104
|
+
* @return true if a retry attempt has been posted.
|
|
105
|
+
*/
|
|
106
|
+
@Synchronized
|
|
107
|
+
public fun retryTask(taskId: Int): Boolean {
|
|
108
|
+
val sourceTaskConfig = activeTaskConfigs[taskId]
|
|
109
|
+
checkNotNull(sourceTaskConfig) { "Tried to retrieve non-existent task config with id $taskId." }
|
|
110
|
+
|
|
111
|
+
val retryPolicy = sourceTaskConfig.retryPolicy
|
|
112
|
+
if (retryPolicy == null || !retryPolicy.canRetry()) {
|
|
113
|
+
return false
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
removeTimeout(taskId)
|
|
117
|
+
val taskConfig =
|
|
118
|
+
HeadlessJsTaskConfig(
|
|
119
|
+
sourceTaskConfig.taskKey,
|
|
120
|
+
sourceTaskConfig.data,
|
|
121
|
+
sourceTaskConfig.timeout,
|
|
122
|
+
sourceTaskConfig.isAllowedInForeground,
|
|
123
|
+
retryPolicy.update())
|
|
124
|
+
|
|
125
|
+
val retryAttempt = Runnable { startTask(taskConfig, taskId) }
|
|
126
|
+
|
|
127
|
+
UiThreadUtil.runOnUiThread(retryAttempt, retryPolicy.delay.toLong())
|
|
128
|
+
return true
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Finish a JS task. Doesn't actually stop the task on the JS side, only removes it from the list
|
|
133
|
+
* of active tasks and notifies listeners.
|
|
134
|
+
*
|
|
135
|
+
* @param taskId the unique id returned by [.startTask].
|
|
136
|
+
*/
|
|
137
|
+
@Synchronized
|
|
138
|
+
public fun finishTask(taskId: Int) {
|
|
139
|
+
val removed = activeTasks.remove(taskId)
|
|
140
|
+
activeTaskConfigs.remove(taskId)
|
|
141
|
+
removeTimeout(taskId)
|
|
142
|
+
if (removed) {
|
|
143
|
+
UiThreadUtil.runOnUiThread {
|
|
144
|
+
for (listener in headlessJsTaskEventListeners) {
|
|
145
|
+
listener.onHeadlessJsTaskFinish(taskId)
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
private fun removeTimeout(taskId: Int) {
|
|
152
|
+
val runnable = taskTimeouts[taskId]
|
|
153
|
+
if (runnable != null) {
|
|
154
|
+
UiThreadUtil.removeOnUiThread(runnable)
|
|
155
|
+
taskTimeouts.remove(taskId)
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Check if a given task is currently running. A task is stopped if either [finishTask] is called
|
|
161
|
+
* or it times out.
|
|
162
|
+
*/
|
|
163
|
+
@Synchronized public fun isTaskRunning(taskId: Int): Boolean = taskId in activeTasks
|
|
164
|
+
|
|
165
|
+
private fun scheduleTaskTimeout(taskId: Int, timeout: Long) {
|
|
166
|
+
val runnable = Runnable { finishTask(taskId) }
|
|
167
|
+
taskTimeouts.append(taskId, runnable)
|
|
168
|
+
UiThreadUtil.runOnUiThread(runnable, timeout)
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
public companion object {
|
|
172
|
+
private val INSTANCES = WeakHashMap<ReactContext, HeadlessJsTaskContext>()
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Get the task helper instance for a particular [ReactContext]. There is only one instance per
|
|
176
|
+
* context.
|
|
177
|
+
*
|
|
178
|
+
* **Note:** do not hold long-lived references to the object returned here, as that will cause
|
|
179
|
+
* memory leaks. Instead, just call this method on-demand.
|
|
180
|
+
*/
|
|
181
|
+
@JvmStatic
|
|
182
|
+
public fun getInstance(context: ReactContext): HeadlessJsTaskContext =
|
|
183
|
+
INSTANCES.getOrPut(context) { HeadlessJsTaskContext(context) }
|
|
184
|
+
}
|
|
185
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
package com.facebook.react.jstasks
|
|
8
|
+
package com.facebook.react.jstasks
|
|
9
9
|
|
|
10
10
|
/** Listener interface for task lifecycle events. */
|
|
11
11
|
public interface HeadlessJsTaskEventListener {
|
|
@@ -15,12 +15,11 @@ public interface HeadlessJsTaskEventListener {
|
|
|
15
15
|
*
|
|
16
16
|
* @param taskId the unique identifier of this task instance
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
public fun onHeadlessJsTaskStart(taskId: Int)
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
* Called when a JS task finishes (i.e. when
|
|
22
|
-
*
|
|
23
|
-
* thread.
|
|
21
|
+
* Called when a JS task finishes (i.e. when [HeadlessJsTaskSupportModule.notifyTaskFinished] is
|
|
22
|
+
* called, or when it times out), on the UI thread.
|
|
24
23
|
*/
|
|
25
|
-
|
|
24
|
+
public fun onHeadlessJsTaskFinish(taskId: Int)
|
|
26
25
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
package com.facebook.react.jstasks
|
|
9
|
+
|
|
10
|
+
import javax.annotation.CheckReturnValue
|
|
11
|
+
|
|
12
|
+
public interface HeadlessJsTaskRetryPolicy {
|
|
13
|
+
public fun canRetry(): Boolean
|
|
14
|
+
|
|
15
|
+
public val delay: Int
|
|
16
|
+
|
|
17
|
+
@CheckReturnValue public fun update(): HeadlessJsTaskRetryPolicy?
|
|
18
|
+
|
|
19
|
+
public fun copy(): HeadlessJsTaskRetryPolicy?
|
|
20
|
+
}
|
|
@@ -12,11 +12,11 @@ public class LinearCountingRetryPolicy(
|
|
|
12
12
|
private val delayBetweenAttemptsInMs: Int
|
|
13
13
|
) : HeadlessJsTaskRetryPolicy {
|
|
14
14
|
|
|
15
|
-
override
|
|
15
|
+
public override fun canRetry(): Boolean = retryAttempts > 0
|
|
16
16
|
|
|
17
|
-
override
|
|
17
|
+
override val delay: Int = delayBetweenAttemptsInMs
|
|
18
18
|
|
|
19
|
-
override
|
|
19
|
+
public override fun update(): HeadlessJsTaskRetryPolicy {
|
|
20
20
|
val remainingRetryAttempts = retryAttempts - 1
|
|
21
21
|
|
|
22
22
|
return if (remainingRetryAttempts > 0) {
|
|
@@ -26,6 +26,6 @@ public class LinearCountingRetryPolicy(
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
override
|
|
29
|
+
public override fun copy(): HeadlessJsTaskRetryPolicy =
|
|
30
30
|
LinearCountingRetryPolicy(retryAttempts, delayBetweenAttemptsInMs)
|
|
31
31
|
}
|
|
@@ -9,20 +9,19 @@ package com.facebook.react.jstasks
|
|
|
9
9
|
|
|
10
10
|
internal class NoRetryPolicy private constructor() : HeadlessJsTaskRetryPolicy {
|
|
11
11
|
|
|
12
|
-
override
|
|
12
|
+
override fun canRetry(): Boolean = false
|
|
13
13
|
|
|
14
|
-
override
|
|
15
|
-
throw IllegalStateException("Should not retrieve delay as canRetry is: ${canRetry()}")
|
|
16
|
-
}
|
|
14
|
+
override val delay: Int
|
|
15
|
+
get() = throw IllegalStateException("Should not retrieve delay as canRetry is: ${canRetry()}")
|
|
17
16
|
|
|
18
|
-
override
|
|
17
|
+
override fun update(): HeadlessJsTaskRetryPolicy {
|
|
19
18
|
throw IllegalStateException("Should not update as canRetry is: ${canRetry()}")
|
|
20
19
|
}
|
|
21
20
|
|
|
22
21
|
// Class is immutable so no need to copy
|
|
23
|
-
override
|
|
22
|
+
override fun copy(): HeadlessJsTaskRetryPolicy = this
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
@JvmField
|
|
24
|
+
companion object {
|
|
25
|
+
@JvmField val INSTANCE: NoRetryPolicy = NoRetryPolicy()
|
|
27
26
|
}
|
|
28
27
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt
CHANGED
|
@@ -13,6 +13,7 @@ import androidx.appcompat.app.AppCompatDelegate
|
|
|
13
13
|
import com.facebook.fbreact.specs.NativeAppearanceSpec
|
|
14
14
|
import com.facebook.react.bridge.Arguments
|
|
15
15
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
16
|
+
import com.facebook.react.bridge.UiThreadUtil
|
|
16
17
|
import com.facebook.react.module.annotations.ReactModule
|
|
17
18
|
|
|
18
19
|
/** Module that exposes the user's preferred color scheme. */
|
|
@@ -58,11 +59,13 @@ constructor(
|
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
public override fun setColorScheme(style: String) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
UiThreadUtil.runOnUiThread {
|
|
63
|
+
when (style) {
|
|
64
|
+
"dark" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
|
|
65
|
+
"light" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
|
|
66
|
+
"unspecified" ->
|
|
67
|
+
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
|
|
68
|
+
}
|
|
66
69
|
}
|
|
67
70
|
}
|
|
68
71
|
|
|
@@ -10,11 +10,10 @@ package com.facebook.react.modules.fresco
|
|
|
10
10
|
import com.facebook.common.logging.FLog
|
|
11
11
|
import com.facebook.drawee.backends.pipeline.DraweeConfig
|
|
12
12
|
import com.facebook.drawee.backends.pipeline.Fresco
|
|
13
|
-
import com.facebook.imagepipeline.backends.okhttp3.OkHttpImagePipelineConfigFactory
|
|
13
|
+
import com.facebook.imagepipeline.backends.okhttp3.OkHttpImagePipelineConfigFactory
|
|
14
14
|
import com.facebook.imagepipeline.core.DownsampleMode
|
|
15
15
|
import com.facebook.imagepipeline.core.ImagePipeline
|
|
16
16
|
import com.facebook.imagepipeline.core.ImagePipelineConfig
|
|
17
|
-
import com.facebook.imagepipeline.decoder.ImageDecoderConfig
|
|
18
17
|
import com.facebook.imagepipeline.listener.RequestListener
|
|
19
18
|
import com.facebook.react.bridge.LifecycleEventListener
|
|
20
19
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
@@ -80,9 +79,6 @@ constructor(
|
|
|
80
79
|
if (!hasBeenInitialized()) {
|
|
81
80
|
val pipelineConfig = config ?: getDefaultConfig(reactContext)
|
|
82
81
|
val draweeConfigBuilder = DraweeConfig.newBuilder()
|
|
83
|
-
if (ReactNativeFeatureFlags.loadVectorDrawablesOnImages()) {
|
|
84
|
-
draweeConfigBuilder.addCustomDrawableFactory(XmlFormat.getDrawableFactory())
|
|
85
|
-
}
|
|
86
82
|
Fresco.initialize(
|
|
87
83
|
reactContext.applicationContext,
|
|
88
84
|
pipelineConfig,
|
|
@@ -158,22 +154,20 @@ constructor(
|
|
|
158
154
|
requestListeners.add(SystraceRequestListener())
|
|
159
155
|
val client = OkHttpClientProvider.createClient()
|
|
160
156
|
|
|
161
|
-
// Add support for XML drawable images
|
|
162
|
-
val decoderConfigBuilder = ImageDecoderConfig.Builder()
|
|
163
|
-
if (ReactNativeFeatureFlags.loadVectorDrawablesOnImages()) {
|
|
164
|
-
XmlFormat.addDecodingCapability(decoderConfigBuilder, context)
|
|
165
|
-
}
|
|
166
|
-
|
|
167
157
|
// make sure to forward cookies for any requests via the okHttpClient
|
|
168
158
|
// so that image requests to endpoints that use cookies still work
|
|
169
159
|
val container = OkHttpCompat.getCookieJarContainer(client)
|
|
170
|
-
val handler = ForwardingCookieHandler(
|
|
160
|
+
val handler = ForwardingCookieHandler()
|
|
171
161
|
container.setCookieJar(JavaNetCookieJar(handler))
|
|
172
|
-
|
|
173
|
-
.
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
162
|
+
val builder =
|
|
163
|
+
OkHttpImagePipelineConfigFactory.newBuilder(context.applicationContext, client)
|
|
164
|
+
.setNetworkFetcher(ReactOkHttpNetworkFetcher(client))
|
|
165
|
+
.setDownsampleMode(DownsampleMode.AUTO)
|
|
166
|
+
.setRequestListeners(requestListeners)
|
|
167
|
+
builder
|
|
168
|
+
.experiment()
|
|
169
|
+
.setBinaryXmlEnabled(ReactNativeFeatureFlags.loadVectorDrawablesOnImages())
|
|
170
|
+
return builder
|
|
177
171
|
}
|
|
178
172
|
}
|
|
179
173
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt
CHANGED
|
@@ -60,9 +60,9 @@ internal class ReactOkHttpNetworkFetcher(private val okHttpClient: OkHttpClient)
|
|
|
60
60
|
val headers = OkHttpCompat.getHeadersFromMap(requestHeaders)
|
|
61
61
|
val request =
|
|
62
62
|
Request.Builder()
|
|
63
|
+
.headers(headers)
|
|
63
64
|
.cacheControl(cacheControlBuilder.build())
|
|
64
65
|
.url(uri.toString())
|
|
65
|
-
.headers(headers)
|
|
66
66
|
.get()
|
|
67
67
|
.build()
|
|
68
68
|
fetchWithRequest(fetchState, callback, request)
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
package com.facebook.react.modules.network
|
|
9
|
+
|
|
10
|
+
import okhttp3.CookieJar
|
|
11
|
+
|
|
12
|
+
public interface CookieJarContainer : CookieJar {
|
|
13
|
+
public fun setCookieJar(cookieJar: CookieJar)
|
|
14
|
+
|
|
15
|
+
public fun removeCookieJar()
|
|
16
|
+
}
|
package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.kt
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
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
|
+
package com.facebook.react.modules.network
|
|
9
|
+
|
|
10
|
+
import android.webkit.CookieManager
|
|
11
|
+
import com.facebook.react.bridge.Callback
|
|
12
|
+
import com.facebook.react.bridge.ReactContext
|
|
13
|
+
import java.io.IOException
|
|
14
|
+
import java.net.CookieHandler
|
|
15
|
+
import java.net.URI
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Cookie handler that forwards all cookies to the WebView CookieManager.
|
|
19
|
+
*
|
|
20
|
+
* This class relies on CookieManager to persist cookies to disk so cookies may be lost if the
|
|
21
|
+
* application is terminated before it syncs.
|
|
22
|
+
*/
|
|
23
|
+
public class ForwardingCookieHandler() : CookieHandler() {
|
|
24
|
+
|
|
25
|
+
@Deprecated("Use the default constructor", ReplaceWith("ForwardingCookieHandler()"))
|
|
26
|
+
public constructor(@Suppress("UNUSED_PARAMETER") reactContext: ReactContext) : this() {}
|
|
27
|
+
|
|
28
|
+
@Throws(IOException::class)
|
|
29
|
+
override fun get(uri: URI, headers: Map<String, List<String>>): Map<String, List<String>> {
|
|
30
|
+
val cookies = cookieManager?.getCookie(uri.toString())
|
|
31
|
+
if (cookies.isNullOrEmpty()) {
|
|
32
|
+
return emptyMap()
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return mapOf(COOKIE_HEADER to listOf(cookies))
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@Throws(IOException::class)
|
|
39
|
+
override fun put(uri: URI, headers: Map<String, List<String>>) {
|
|
40
|
+
val url = uri.toString()
|
|
41
|
+
for ((key, value) in headers) {
|
|
42
|
+
if (isCookieHeader(key)) {
|
|
43
|
+
addCookies(url, value)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public fun clearCookies(callback: Callback): Unit {
|
|
49
|
+
cookieManager?.removeAllCookies { value -> callback.invoke(value) }
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
public fun destroy(): Unit = Unit
|
|
53
|
+
|
|
54
|
+
public fun addCookies(url: String, cookies: List<String>): Unit {
|
|
55
|
+
for (cookie in cookies) {
|
|
56
|
+
addCookieAsync(url, cookie)
|
|
57
|
+
}
|
|
58
|
+
cookieManager?.flush()
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
private fun addCookieAsync(url: String, cookie: String) {
|
|
62
|
+
cookieManager?.setCookie(url, cookie, null)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
private var cookieManager: CookieManager? = null
|
|
66
|
+
/**
|
|
67
|
+
* Instantiating CookieManager will load the Chromium task taking a 100ish ms so we do it lazily
|
|
68
|
+
* to make sure it's done on a background thread as needed.
|
|
69
|
+
*/
|
|
70
|
+
get() {
|
|
71
|
+
if (field == null) {
|
|
72
|
+
try {
|
|
73
|
+
field = CookieManager.getInstance()
|
|
74
|
+
} catch (ex: IllegalArgumentException) {
|
|
75
|
+
// https://bugs.chromium.org/p/chromium/issues/detail?id=559720
|
|
76
|
+
return null
|
|
77
|
+
} catch (exception: Exception) {
|
|
78
|
+
// Ideally we would like to catch a `MissingWebViewPackageException` here.
|
|
79
|
+
// That API is private so we can't access it.
|
|
80
|
+
// Historically we used string matching on the error message to understand
|
|
81
|
+
// if the exception was a Missing Webview One.
|
|
82
|
+
// OEMs have been customizing that message making really hard to catch it.
|
|
83
|
+
// Therefore we result to returning null as a default instead of rethrowing
|
|
84
|
+
// the exception as it will result in a app crash at runtime.
|
|
85
|
+
// a) We will return null for all the other unhandled conditions when a webview provider
|
|
86
|
+
// is
|
|
87
|
+
// not found.
|
|
88
|
+
// b) We already have null checks in place for `getCookieManager()` calls.
|
|
89
|
+
// c) We have annotated the method as @Nullable to notify future devs about our return
|
|
90
|
+
// type.
|
|
91
|
+
return null
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return field
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
private companion object {
|
|
99
|
+
private const val VERSION_ZERO_HEADER = "Set-cookie"
|
|
100
|
+
private const val VERSION_ONE_HEADER = "Set-cookie2"
|
|
101
|
+
private const val COOKIE_HEADER = "Cookie"
|
|
102
|
+
|
|
103
|
+
private fun isCookieHeader(name: String): Boolean =
|
|
104
|
+
name.equals(VERSION_ZERO_HEADER, ignoreCase = true) ||
|
|
105
|
+
name.equals(VERSION_ONE_HEADER, ignoreCase = true)
|
|
106
|
+
}
|
|
107
|
+
}
|
|
@@ -14,7 +14,6 @@ import androidx.annotation.Nullable;
|
|
|
14
14
|
import com.facebook.common.logging.FLog;
|
|
15
15
|
import com.facebook.fbreact.specs.NativeNetworkingAndroidSpec;
|
|
16
16
|
import com.facebook.react.bridge.Arguments;
|
|
17
|
-
import com.facebook.react.bridge.GuardedAsyncTask;
|
|
18
17
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
19
18
|
import com.facebook.react.bridge.ReactMethod;
|
|
20
19
|
import com.facebook.react.bridge.ReadableArray;
|
|
@@ -97,14 +96,14 @@ public final class NetworkingModule extends NativeNetworkingAndroidSpec {
|
|
|
97
96
|
customClientBuilder = null;
|
|
98
97
|
|
|
99
98
|
private final OkHttpClient mClient;
|
|
100
|
-
private final ForwardingCookieHandler mCookieHandler;
|
|
99
|
+
private final ForwardingCookieHandler mCookieHandler = new ForwardingCookieHandler();
|
|
101
100
|
private final @Nullable String mDefaultUserAgent;
|
|
102
|
-
private final CookieJarContainer mCookieJarContainer;
|
|
103
|
-
private final Set<Integer> mRequestIds;
|
|
101
|
+
private final @Nullable CookieJarContainer mCookieJarContainer;
|
|
102
|
+
private final Set<Integer> mRequestIds = new HashSet<>();
|
|
104
103
|
private final List<RequestBodyHandler> mRequestBodyHandlers = new ArrayList<>();
|
|
105
104
|
private final List<UriHandler> mUriHandlers = new ArrayList<>();
|
|
106
105
|
private final List<ResponseHandler> mResponseHandlers = new ArrayList<>();
|
|
107
|
-
private boolean mShuttingDown;
|
|
106
|
+
private boolean mShuttingDown = false;
|
|
108
107
|
|
|
109
108
|
public NetworkingModule(
|
|
110
109
|
ReactApplicationContext reactContext,
|
|
@@ -121,11 +120,14 @@ public final class NetworkingModule extends NativeNetworkingAndroidSpec {
|
|
|
121
120
|
client = clientBuilder.build();
|
|
122
121
|
}
|
|
123
122
|
mClient = client;
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
123
|
+
|
|
124
|
+
CookieJar cookieJar = client.cookieJar();
|
|
125
|
+
if (cookieJar instanceof CookieJarContainer) {
|
|
126
|
+
mCookieJarContainer = (CookieJarContainer) client.cookieJar();
|
|
127
|
+
} else {
|
|
128
|
+
mCookieJarContainer = null;
|
|
129
|
+
}
|
|
127
130
|
mDefaultUserAgent = defaultUserAgent;
|
|
128
|
-
mRequestIds = new HashSet<>();
|
|
129
131
|
}
|
|
130
132
|
|
|
131
133
|
/**
|
|
@@ -186,7 +188,9 @@ public final class NetworkingModule extends NativeNetworkingAndroidSpec {
|
|
|
186
188
|
|
|
187
189
|
@Override
|
|
188
190
|
public void initialize() {
|
|
189
|
-
mCookieJarContainer
|
|
191
|
+
if (mCookieJarContainer != null) {
|
|
192
|
+
mCookieJarContainer.setCookieJar(new JavaNetCookieJar(mCookieHandler));
|
|
193
|
+
}
|
|
190
194
|
}
|
|
191
195
|
|
|
192
196
|
@Override
|
|
@@ -195,7 +199,9 @@ public final class NetworkingModule extends NativeNetworkingAndroidSpec {
|
|
|
195
199
|
cancelAllRequests();
|
|
196
200
|
|
|
197
201
|
mCookieHandler.destroy();
|
|
198
|
-
mCookieJarContainer
|
|
202
|
+
if (mCookieJarContainer != null) {
|
|
203
|
+
mCookieJarContainer.removeCookieJar();
|
|
204
|
+
}
|
|
199
205
|
|
|
200
206
|
mRequestBodyHandlers.clear();
|
|
201
207
|
mResponseHandlers.clear();
|
|
@@ -666,14 +672,7 @@ public final class NetworkingModule extends NativeNetworkingAndroidSpec {
|
|
|
666
672
|
}
|
|
667
673
|
|
|
668
674
|
private void cancelRequest(final int requestId) {
|
|
669
|
-
|
|
670
|
-
// open issue on OkHttp: https://github.com/square/okhttp/issues/869
|
|
671
|
-
new GuardedAsyncTask<Void, Void>(getReactApplicationContext()) {
|
|
672
|
-
@Override
|
|
673
|
-
protected void doInBackgroundGuarded(Void... params) {
|
|
674
|
-
OkHttpCallUtil.cancelTag(mClient, Integer.valueOf(requestId));
|
|
675
|
-
}
|
|
676
|
-
}.execute();
|
|
675
|
+
OkHttpCallUtil.cancelTag(mClient, Integer.valueOf(requestId));
|
|
677
676
|
}
|
|
678
677
|
|
|
679
678
|
@ReactMethod
|
package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.kt
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
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
|
+
@file:Suppress("DEPRECATION_ERROR") // Conflicting okhttp versions
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.modules.network
|
|
11
|
+
|
|
12
|
+
import java.util.ArrayList
|
|
13
|
+
import okhttp3.Cookie
|
|
14
|
+
import okhttp3.CookieJar
|
|
15
|
+
import okhttp3.Headers
|
|
16
|
+
import okhttp3.HttpUrl
|
|
17
|
+
|
|
18
|
+
/** Basic okhttp3 CookieJar container */
|
|
19
|
+
public class ReactCookieJarContainer : CookieJarContainer {
|
|
20
|
+
|
|
21
|
+
private var cookieJar: CookieJar? = null
|
|
22
|
+
|
|
23
|
+
override fun setCookieJar(cookieJar: CookieJar) {
|
|
24
|
+
this.cookieJar = cookieJar
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
override fun removeCookieJar() {
|
|
28
|
+
cookieJar = null
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) {
|
|
32
|
+
cookieJar?.saveFromResponse(url, cookies)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
override fun loadForRequest(url: HttpUrl): List<Cookie> {
|
|
36
|
+
val cookieJar = cookieJar ?: return emptyList()
|
|
37
|
+
val cookies = cookieJar.loadForRequest(url)
|
|
38
|
+
val validatedCookies = ArrayList<Cookie>()
|
|
39
|
+
for (cookie in cookies) {
|
|
40
|
+
try {
|
|
41
|
+
val cookieChecker = Headers.Builder()
|
|
42
|
+
cookieChecker.add(cookie.name(), cookie.value())
|
|
43
|
+
validatedCookies.add(cookie)
|
|
44
|
+
} catch (ignored: IllegalArgumentException) {}
|
|
45
|
+
}
|
|
46
|
+
return validatedCookies
|
|
47
|
+
}
|
|
48
|
+
}
|