github facebook/react-native v0.86.0-rc.0

pre-release5 hours ago

Warning

This is a release candidate. It is not intended for production use.

v0.86.0-rc.0

Breaking changes

None

Added

  • Accessibility: AccessibilityInfo: added missing tests for Promise based methods, align null checks and error message code style (8fc503d780 by @chicio)
  • Animated: Suspense tests for the Animation Backend (8101fc776d by Bartlomiej Bloniarz)
  • Animated: Use weak_ptr when calling pullAnimationMutations in a callback scheduled with the Animation Backend (42d98b5830 by Bartlomiej Bloniarz)
  • Dev Server: Call methods on global.__BUNDLE_LOADER_REPORTER__, if given, during dev-mode bundler loads from Metro (1e0c1f886b by @robhogan)
  • React Native DevTools: Add new custom track for React Native Renderer operations in React Native DevTools performance traces (0b1def9ce5, 29bc8f1acb, 9130df6773, c26a4875ea by @rubennorte)
  • React Native DevTools: Add support for light/dark mode emulation via Emulation.setEmulatedMedia (11a5432cb2 by @huntie)
  • Runtime: Add unstable_getViewTransitionInstance to UIManagerBinding (d8820a403b by @zeyap)
  • Runtime: Add UIManagerViewTransitionDelegate interface and View Transition APIs (cdad57d8f1 by @zeyap)
  • Runtime: Add viewport size to LayoutContext (d38c756529 by @paradowstack)
  • Runtime: ViewTransitionModule for React Native View Transitions (f81f73e5a0 by @zeyap)
  • Text: Add E2E tests for Text boxShadow and textWithLinkRole (b172f46f0d by @NickGerleman)
  • View: Add E2E tests for Filter blur-with-overflow, drop-shadow, and animated-blur (66975aa3d5 by @NickGerleman)
  • View: Add mixBlendMode plus-lighter (aaa0684045 by @bigcupcoffee)

Android specific

  • Events: Channel play/pause hardware events. (5087aa0dba by Nishil Shah)
  • Events: Pass event object to BackHandler hardwareBackPress events to access timeStamp from native event. (bf277cb6d4 by @rubennorte)
  • LogBox: Allow LogBox notification toasts and inspector overlay to be dismissed via Android back button (6530092162 by @Abbondanzo)
  • Runtime: Add ExtraWindowEventListener interface to allow native modules to react to window creation / destruction (e.g. Modal dialogs) (58fec1fa8d by @zoontek)
  • Runtime: Add test for synchronous mount props override behavior (a25e0fdddf by @zeyap)
  • Text: Add E2E tests for Text visual examples (batch 1) (b53b228673 by @NickGerleman)
  • Text: Add E2E tests for Text visual examples (batch 2) (d5a271dd05 by @NickGerleman)
  • TextInput: Add extended Android TextInput autoComplete autofill hint support and bump androidx.autofill to 1.3.0. (ac598aff2b by @radko93)
  • View: Add E2E tests for Filter static visual examples (d18d9a4046 by @NickGerleman)

iOS specific

  • Build: Add privacy manifest to declare the use of mach_absolute_time() API in the React-timing module (2ae6c8940d by @rubennorte)
  • Dev Server: Introduce isPackagerRunningAsync that does not block the UI thread waiting on the request to DevServer ("Packager") validating that it is running (dd056d9b4c by @vzaidman)
  • Image: Add E2E tests for Image visual examples (48b6f2dcc9 by @NickGerleman)
  • Networking: Add RCTSetCustomMultipartDataTaskRequestInterceptor API to allow custom modification of multipart data task requests before they are sent (59b8886bb8 by @cipolleschi)

Changed

  • Build: Update Metro to ^0.84.2 (57d4b6b350 by @robhogan)
  • Dev Server: LoadBundleFromServer test: remove legacy Jest timers, increased coverage and improved assertions (a19d98e542 by @chicio)
  • Hermes: Bump hermes-compiler dependency (031168013e by @robhogan)
  • Hermes: Bump hermes version (89a2a20739 by @robhogan)
  • LogBox: Migrated LogBoxData tests to Jest modern timers (dea2136a49 by @chicio)
  • React: Make React Native consume 250829098.0.11 (26953d8343 by @alanleedev)
  • React Native DevTools: Derive WebSocket scheme and port from dev server URL for React DevTools connections, supporting HTTPS dev servers (ca4173701d by @cipolleschi)
  • Runtime: Measure node instance during applyViewTransitionName (d17ecca3c9 by @zeyap)
  • Runtime: Move ViewTransition APIs not for react reconciler to its own TurboModule (0e65df9152 by @zeyap)
  • Runtime: Setting reportErrorsAsExceptions to anything other than false no longer does anything. (Previously, setting it to a falsey value would be similar to setting it to false.) (f0748a6387 by @yungsters)
  • Runtime: Use getNullableViewState in SurfaceMountingManager::updateProps and log a soft exception instead (bbf7004935 by Bartlomiej Bloniarz)
  • TurboModules: Move DefaultTurboModules::get to end of TurboModuleManager (6b32971f46 by @zeyap)

Android specific

  • Animated: AnimationBackendChoreographer doesn't guard the ReactChoreographer post/remove with synchronized(paused) (22d327595d by Bartlomiej Bloniarz)
  • Build: Changed foojay-resolver-convention version to 1.0.0 (664acaf441 by @TheNerdGuyLulu)
  • StatusBar: Respect theme enforceNavigationBarContrast attribute (dfddcc9796 by @zoontek)

iOS specific

  • Networking: Add RCTHTTPRequestInterceptor for selective HTTP request modification (0c7d780aa0 by @cipolleschi)
  • Networking: Add SRWebSocketProvider for selective WebSocket header injection (f3aa8c21d1 by @cipolleschi)
  • React Native DevTools: Derive inspector and debugger URL scheme from bundle URL to support HTTPS dev servers (36dfcef023 by @cipolleschi)

Deprecated

  • JavaScript API: Deprecated second argument for hook function passed to AppRegistry.setComponentProviderInstrumentationHook as it's not usable by apps. Passed stub that warns when used. (64116117c0 by @rubennorte)

Fixed

  • Accessibility: Fix AccessibilityInfo.isDarkerSystemColorsEnabled unresolved (never ending) promise (8fbf2fab47 by @chicio)
  • Accessibility: Fix AccessibilityInfo.isHighTextContrastEnabled unresolved (never ending) promise (5c9a5717c1 by @chicio)
  • Accessibility: Fix AccessibilityInfo.prefersCrossFadeTransitions unresolved (never ending) promise (57c073f0d7 by @chicio)
  • Animated: Fix 1-frame latency in C++ NativeAnimatedNodesManager for event-driven animations by processing the animation graph synchronously on every scroll event, matching the Java implementation behavior (0517fb552d by Mark Verlingieri)
  • Animated: Fix typo "interpolation" to "interpolate" and add missing space in AnimatedInterpolation error messages (a8b39a237c by @Nedunchezhiyan-M)
  • Babel: Prevent errors by handling contexts where the Babel API object is not provided (63796a9160 by On Saint Tiong)
  • Build: Fix incorrect package name and output filename in scripts/js-api/README.md (d823f5b1cc by @Nedunchezhiyan-M)
  • Codegen: Respect enum values for TurboModule c++ codegen (56129fedcb by @akawrykow)
  • Documentation: Correct the v0.85.0 changelog entry for the removal of StyleSheet.absoluteFillObject. (fdbe0d0b63 by @jingjing2222)
  • Modal: Forward style prop to Modal's inner container View with correct precedence so consumer styles are applied without overriding transparent or backdropColor (f8fa76f94c by @AnuMessi10)
  • React Native DevTools: Add exponential backoff and exception handling to InspectorPackagerConnection reconnect loop to prevent heap fragmentation crashes (32d3eafdc4 by @shubhamksavita)
  • Runtime: Add missing VIEW_EVENT_CASE entries in BaseViewProps::setProp for Click, PointerDown, PointerUp, GotPointerCapture, LostPointerCapture and their Capture variants (offsets 30-37) (8d5482dd94 by Harini Malothu)
  • Runtime: Fix crash in Performance API when sorting entries (81c99682a4 by @Abbondanzo)
  • Runtime: Fix event timestamp injection overriding native timestamps with lowercase property name (68debb27ff by @fkgozali)
  • Runtime: Fix event timestamp propagation from host platforms to JS (aa51746b87 by @rubennorte)
  • Runtime: Link VirtualView component (de78906391 by @j-piasecki)
  • Runtime: PerformanceObserver: observe({type: 'event'}) now correctly defaults durationThreshold to 104ms per the W3C Event Timing spec instead of reporting all events. (65c561e195 by @rubennorte)
  • Runtime: Prevent Scheduler use-after-free crash when surfaces tear down with pending rendering updates (aadbe96579 by @fkgozali)
  • Runtime: Prevent updates to mounted flag on the React revision (7ee893d3be by @j-piasecki)
  • Runtime: Support multiple old pseudo elements for same name but different source node (370606dc5b by @zeyap)
  • Runtime: Use relevant revision as base for mounted flag updates (4b954e14c8 by @j-piasecki)
  • Runtime: Views with a non-invertible transform (e.g. scaleX: 0 or scaleY: 0) no longer receive touches on Android or iOS. (1e8e182410 by @qflen)
  • TurboModules: Bring back C++ Turbo Module example in RN Tester (1c2cddad1a by @christophpurrer)
  • VirtualizedList: Improve render area change with initialScrollIndex non zero test in VirtualizedList to avoid magic numbers timers (9b966d1d8f by @chicio)
  • Yoga: Fixed Yoga node ownership when display: contents is used in absolutely positioned subtrees (f2f92098dd by @j-piasecki)

Android specific

  • Accessibility: Guard ReactViewGroup.addChildrenForAccessibility against transient non-descendant accessibility traversal crashes. (e681736e18 by @erickreutz)
  • Build: Fix build regression by using rootProject.file (8a8f1b801c by @etodanik)
  • Hermes: Fix HermesSamplingProfiler.disable() JNI registration calling enable() instead of disable() (7f2a58e46c by @elirangoshen)
  • Hermes: Use Hermes V1 stable release instead of legacy nightly to fix startup crash caused by JSI ABI mismatch (45ceacc08f by @cipolleschi)
  • Image: Fix image content disappearing on API 24 (Nougat) when antialiased border radius clipping is applied (fdd6ca5bb1 by @Abbondanzo)
  • Image: Make sure view width and height are non 0 before calling createBitmap() (c20a58ab6b by @zeyap)
  • Legacy Architecture: Fix onHostPause crash in ReactInstanceManager without feature flag (3aa8a043de by @shubhamksavita)
  • LogBox: Fixed activity context memory leak in LogBoxDialogSurfaceDelegate when using bridgeless mode (f10cded1f8 by Ilya Kovalyov)
  • Networking: Blob content provider did not work in new arch (05ea94c441 by @javache)
  • Networking: Catch OutOfMemoryError in NetworkingModule response processing to prevent app crashes (0c153e2971 by @shubhamksavita)
  • Networking: WebSocketModule no longer strips a Cookie header passed via the WebSocket constructor's headers option (24b51db75b by @psjostrom)
  • Runtime: Fix Dimensions window values on Android < 15 when edge-to-edge is enabled (44a4b1ba5d by @zoontek)
  • Runtime: Fix KeyboardAvoidingView on Android 15+ / with edgeToEdgeEnabled (4a6c933cce by @zoontek)
  • Runtime: Fix measureInWindow returning incorrect coordinates when edge-to-edge is enabled (9d183675e9 by @zoontek)
  • Runtime: Fix crash from stale preallocated view registry after concurrent render cancellation (97cf2202ee by @javache)
  • Runtime: Gate diagnostic printMountItem calls in MountItemDispatcher error handlers behind enableFabricLogs() to prevent OOM crash (7a546f98a7 by @JakobFelixJulius)
  • Runtime: Handle edge-to-edge when it's not enabled by the edgeToEdgeEnabled gradle property but enforced by the OS (Android 15+) (c2280e3201 by @zoontek)
  • Runtime: Register HeadlessJsTaskSupportModule in CoreReactPackage (2d78a39b3e by 贾太滨)
  • Runtime: Schedule React revision merge to happen on DISPATCH_UI choreographer queue, before dispatching events (b63efbfc6b by @j-piasecki)
  • ScrollView: Dispatch FPS performance events for mouse wheel and trackpad scroll interactions in ScrollView (e0a453c603 by @Abbondanzo)
  • ScrollView: Fix FPS performance listener being cleared on ScrollView recycle (59ac1db76e by @Abbondanzo)
  • StatusBar: StatusBar configuration now applies to Modal windows, fixing visual inconsistencies (6614fe7f2b by @zoontek)
  • Text: Fix 1px text wrapping in absolutely positioned elements caused by fractional Yoga widths (90c2c595da by @clocksarestupid)
  • Text: Fix BoringLayout crash when isBoring() returns negative width (d527f2d663 by @NickGerleman)
  • Text: Fix crash when measuring text in a stopped surface (f71ec1a24e by @NickGerleman)
  • TextInput: Fix setAutoCapitalize stripping numeric TextInput flags (TYPE_NUMBER_FLAG_SIGNED/DECIMAL), affecting minus sign input on Samsung keyboards (863f76bd49 by @lukeharvey)
  • TextInput: KeyboardAvoidingView and TextInput auto-scroll not responding to IME height changes (e.g., when toggling emoji panel or predictive bar) (ee1d067692 by @alanleedev)
  • View: Fixed a crash when clearing zIndex with props 2.0 enabled (93b37350af by @hannojg)
  • View: Fixed crash when enabling props 2.0 and setting borderStyle to undefined (9e058db4c8 by @hannojg)
  • View: Unsupported background size value leading to crash (fe046dc782 by @intergalacticspacehighway)

iOS specific

  • Build: Addressed -Wunreachable-code-return violations (9172bfe647 by @ingridwang)
  • Build: Addressing -Wunreachable-code-return issues. (722623aaeb by @ingridwang)
  • Build: Fixing unreachable-code-break (795d902270 by @ingridwang)
  • Build: Made ReactInternal compatible with Swift (fc5cc2821f by @rmaz)
  • Build: Removing unused ivars (3d2d14df16 by @ingridwang)
  • CocoaPods: Fix REACT_NATIVE_PATH resolution when Pods/ is a symlink (ea383822b7 by @huntie)
  • CocoaPods: Fix React-CoreModules failing to compile with use_frameworks! due to missing React-featureflags header path (fb0d28c6fd by @radko93)
  • CocoaPods: Preserve Expo-generated React-use-frameworks.modulemap across replace-rncore-version.js runs (ada39220a0 by @Insik-Han)
  • Dev Server: Fix iOS dev-support IPv6 handling for packager and inspector connections. (4a59f90c22 by @hannojg)
  • Hermes: Fix compilation error in createJSRuntimeFactory and skip Hermes pods when USE_THIRD_PARTY_JSC is enabled (2d8143794d by @tux2nicolae)
  • Networking: Fix crash in RCTWebSocketModule when delegate callbacks fire after module invalidation (587ef059a2 by @lukeharvey)
  • React Native DevTools: Fix inspector server host resolution for HTTPS bundle URLs by omitting default port (3582a8b2b5 by @cipolleschi)
  • TextInput: Fix NSRangeException crash in RCTBackedTextInputDelegateAdapter when text range is out of bounds (19350b1c8c by @lukeharvey)
  • View: Fixes crash when changing the value of removeClippedSubviews (91e3f773b7 by @javache)

Security


Hermes dSYMS:

Hermes V1 dSYMS:

ReactNativeDependencies dSYMs:

ReactNative Core dSYMs:


You can file issues or pick requests against this release here.


To help you upgrade to this version, you can use the Upgrade Helper ⚛️.


View the whole changelog in the CHANGELOG.md file.

Don't miss a new react-native release

NewReleases is sending notifications on new releases.