Commit Graph

38677 Commits

Author SHA1 Message Date
Devan Buggay 0b14a19ea6 Migrate ReactRoot to Kotlin (#53238)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53238

Changelog:
[Android][Changed] - Migrated ReactRoot to Kotlin

Reviewed By: cortinico

Differential Revision: D80074359

fbshipit-source-id: 273f5bfc2826f59f2bb1521b8dbd95c48e5eb0c4
2025-09-29 12:28:02 -07:00
generatedunixname89002005287564 3774f75705 Fix CQS signal modernize-use-designated-initializers in xplat/js/react-native-github/packages [A] (#53969)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/53969

Reviewed By: rshest

Differential Revision: D83350635

fbshipit-source-id: 48ec748e3ffadd9985daa40895ffbbd1dd40e946
2025-09-29 10:34:02 -07:00
generatedunixname89002005287564 279835dc14 Daily arc lint --take KTFMT (#53974)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/53974

Reviewed By: VladimirMakaev

Differential Revision: D83454863

fbshipit-source-id: 6742bac1207743f3fc58c48d1261de00bcfacf85
2025-09-29 10:05:01 -07:00
generatedunixname89002005287564 3fb6c12ec8 Fix CQS signal readability-const-return-type in xplat/js/react-native-github/packages (#53940)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/53940

Reviewed By: javache

Differential Revision: D83238455

fbshipit-source-id: ea3d3180f37151b3bba432d55324f2d854f29bc4
2025-09-29 08:16:45 -07:00
generatedunixname89002005287564 fe043446e8 Fix CQS signal modernize-use-designated-initializers in xplat/js/react-native-github/packages [A] (#53971)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/53971

Reviewed By: rshest

Differential Revision: D83395511

fbshipit-source-id: 832901c112d6ebf0b58280bf12a50f7845251c5c
2025-09-29 06:30:14 -07:00
generatedunixname89002005232357 c47205990d Revert D82781491 (#53968)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53968

This diff reverts D82781491
(The context such as a Sandcastle job, Task, SEV, etc. was not provided.)

Depends on D82781491

Changelog: [internal]

Reviewed By: SamChou19815

Differential Revision: D83442434

fbshipit-source-id: bd570564ee22d57bd7a3ca7f6990230de3e5ac4e
2025-09-28 22:09:03 -07:00
Nick Lefever 2f40224faf Add support for global view culling outset ratio setting (#53845)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53845

Adding a feature flag controlling the outset ratio set on the culling context frame. This feature flag value will add an outset on the width and height calculated by multiplying these with the provided ratio value. This will offset each side of the frame, maintaining the center of the frame at the same location.

This outset ratio helps mitigate async scroll blanking and focus handling on host platforms.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D82684027

fbshipit-source-id: 3d1aaf680c5896fd4bb992b272b650ab2c097905
2025-09-28 15:13:07 -07:00
Fernando Gorodscy fb09b37646 Move files from arvr/js/apps/Store to xplat/js/RKJSModules/public/HzStoreVR
Summary:
# What

Moving Store from `arvr/js` to `xplat/js`.
This will enable Store to use xplat modern infra. Being on arvr/js legacy infra has created many problems [over the years](https://fb.workplace.com/groups/storecore/posts/2344707442611890/?comment_id=2345657702516864). Examples:

**2025**: https://fb.workplace.com/groups/storecore/permalink/2344707442611890/
**2024**: https://fb.workplace.com/groups/oculusjs/permalink/3366314690341563/
**2023**: https://fb.workplace.com/groups/xplatreact.engineering/permalink/730125568732098/

# How
## Previous Diff
* Remove usage of the legacy `react-router-3`. We don't want to carry this as a dependency to xplat/js.

## This Diff
This diff is the combination of several diffs (created to facilitate reviewing):

1. - D82581768 - Just move files from arvr/js/apps/Store to xplat/js/RKJSModules/public/HzStoreVR (Except for the index file and some mockUtils)
2. - D82581767 - Setup getConfig.js to generate a single BUCK for HzStoreVR and remove circular dependencies
3. - D82581769 - Fix location/import of assets
4. - D82581766 - Fix relay imports that were not using Haste
5. - D82664586 - Remove usage of old url module
6. - D83156829 - Fix buck: run js1 build buckfiles and build_and_run.sh
7. - D82844768 - Make arvr/js tests run with xplat Store
8. - D83005059 - Fix Flow errors
9. - D83259512 - Delete duplicated test files to make flow happy
10. - D83005098 - Fix Relay config for new Store VR location in xplat
11. - D83005073 - Enable React Forget on new HzStoreVR directory
12. - D83345573 - Fix arc lint -a
13. - D83403188 - Fix relay prefetch queries

## Next diffs
* Migrate tests to xplat jest config (renaming from *-rntest.js to *-test.js)
* Migrate other source code like arvr/js/libraries/store

## Open Source PR
For the change to RN open source .flowconfig to add .ktx image support: https://github.com/facebook/react-native/pull/53964
Changelog: [Internal]

Reviewed By: Tom910, mullender

Differential Revision: D82781491

fbshipit-source-id: 5ce6433916e5b144965e8906005e2e26fdcfcc95
2025-09-27 17:13:39 -07:00
Sam Zhou 488b31d29a Deploy 0.287.0 to xplat (#53965)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53965

[changelog](https://github.com/facebook/flow/blob/main/Changelog.md)
Changelog: [Internal]

Reviewed By: gkz

Differential Revision: D83415742

fbshipit-source-id: ff6faa673a70cb8dc958ef2ad46245c720f3df9a
2025-09-27 14:01:43 -07:00
David Vacca 99b7cb77a7 Delete ReactRawTextShadowNode from codebase (#53949)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53949

ReactRawTextShadowNode is part of legacy architecture and unused, let's delete it

changelog: [internal] internal

Reviewed By: javache

Differential Revision: D83188351

fbshipit-source-id: 19514d8e5d96d2d2fb4fb4b25d422282894c8c18
2025-09-26 14:07:25 -07:00
David Vacca 969e14271c Delete ReactRawTextManager from codebase (#53947)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53947

ReactRawTextManager is legacy architecture and unused, let's delete it

changelog: [internal] internal

Reviewed By: alanleedev

Differential Revision: D83187075

fbshipit-source-id: 4e4f7feb3178b3f95a71ff805ec7d784f2811285
2025-09-26 14:07:25 -07:00
David Vacca 8386a9e4f1 Delete ReactVirtualTextShadowNode (#53948)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53948

ReactVirtualTextShadowNode is par of legacy architecture and unused, let's delete it

changelog: [internal] internal

Reviewed By: alanleedev

Differential Revision: D83187955

fbshipit-source-id: d8bd0aa9cece68c7b4a4d5674ce97a8ef43a7fc5
2025-09-26 14:07:25 -07:00
David Vacca 163d553ba2 Delete NoSuchNativeViewException (#53946)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53946

NoSuchNativeViewException is legacy architecture and unused, let's delete it

changelog: [internal] internal

Reviewed By: alanleedev

Differential Revision: D83186872

fbshipit-source-id: cbd3b2f537673745e634d0bfc8717fc93f1c0c5f
2025-09-26 14:07:25 -07:00
David Vacca 589bf35cd1 Delete ReactVirtualTextViewManager from codebase (#53945)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53945

ReactVirtualTextViewManager is an internal legacy architecture class that's unused, we are deleting it

changelog: [internal] internal

Reviewed By: alanleedev

Differential Revision: D83186611

fbshipit-source-id: 323c77077ab91ffec35af8e4c12da4bdf13fa233
2025-09-26 14:07:25 -07:00
David Vacca dd6c23fb61 Delete YogaNodePool (#53944)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53944

YogaNodePool is an internal API used only by LegacyArchitecture of React Native Android, which is unused

This diff deletes YogaNodePool from the codebase

changelog: [internal] internal

Reviewed By: alanleedev, cortinico

Differential Revision: D83184441

fbshipit-source-id: 7c358985d9f19b38c28cca7fb0acf9322e97d87c
2025-09-26 14:07:25 -07:00
Devan Buggay 218d2f6fdc PerfMonitor - Add show/hide to dev menu (#53958)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53958

Adds a dev menu option to enable/disable the overlay, in case devs want to screenshot/record without disabling it at buildtime.

Changelog: [Internal]

Reviewed By: huntie

Differential Revision: D83293591

fbshipit-source-id: 3564b83a279db296d1cd22a8e8a83876cc705dbd
2025-09-26 12:28:25 -07:00
Devan Buggay 456e01bf3f PerfMonitor - Fix enable/disable states (#53957)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53957

There are cases where the overlay can get enabled multiple times, creating more than one view. This change no-ops enabling if the overlay is already enabled and just uses enable/disable for showing/hiding the view.
{F1982272836}

Changelog: [Internal]

Reviewed By: hoxyq

Differential Revision: D83275253

fbshipit-source-id: 4b468171a582e134071875f718c66d1659d67782
2025-09-26 12:28:25 -07:00
generatedunixname89002005287564 8bc133c6c1 Fix CQS signal modernize-use-designated-initializers in xplat/js/react-native-github/packages (#53962)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/53962

Reviewed By: javache

Differential Revision: D83330024

fbshipit-source-id: f35898ba42dc06909b927d5c4b5477e7d8c8e966
2025-09-26 10:50:27 -07:00
SimpleCreations f7ea40bc28 Fix TypeScript types of positions in GradientValue (#53942)
Summary:
The original type of the `positions` property was mistakenly declared as a 2-dimensional array, which is not accepted in runtime. In reality, a flat string array is expected as per [linear gradient examples](https://github.com/facebook/react-native/blob/18ba21149ae46d3fa97fe0dcbe165999009d2a6e/packages/rn-tester/js/examples/LinearGradient/LinearGradientExample.js#L230).

## Changelog:

[General] [Fixed] - TypeScript types of `positions` in `GradientValue`

Pull Request resolved: https://github.com/facebook/react-native/pull/53942

Test Plan: N/A

Reviewed By: cortinico

Differential Revision: D83342637

Pulled By: javache

fbshipit-source-id: 556618dd43861b3d3f1728c089f790815f2f011b
2025-09-26 10:13:27 -07:00
Nurtau Toganbay ad5949ffd6 Fix TaskDispatchThread (#53961)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53961

Changelog: [Internal]

Fixed a bug in TaskDispatchThread. To understand bug, let me show an example. The task is scheduled to run after several seconds. It reaches loopCv_.wait_until() and waits there. There are 2 bad scenario:
1. wait_until spuriously wakes up and async task runs even before its scheduled time
2. new task is added with runSync(). New task gets added to the queue and loopCv_ is notified. Async task will run before its scheduled time and even worse queue_.pop() will remove sync task. Therefore runSync will be blocked for forever.

To fix this bug, we need to add `continue` after wait_until().

Also I added new test to prevent this bug in future.

Reviewed By: rshest

Differential Revision: D83345047

fbshipit-source-id: 37962613a123a123c0e110426ae782effe5a81c1
2025-09-26 08:54:24 -07:00
Rob Hogan 2d2011c7ae Invalidate transform cache on update of/local changes to @react-native/babel-preset (#53867)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53867

`react-native/metro-babel-transformer` implements `getCacheKey` for Metro, but does not vary the cache key on changes to `react-native/babel-preset`, one of its dependencies, leading to false positive cache hits (changes not being reflected).

This is particularly a problem in development, although it potentially also leads to issues in the unusual case that `react-native/babel-preset` is updated via npm, but no other package is.

This adds a `getCacheKey` to `react-native/babel-preset` and incorporates it into `react-native/metro-babel-transformer`'s `getCacheKey`. It's based on `package.json#version` in production and a hash of package contents in development (`version.endsWith('-main')`).

Changelog:
[General][Fixed] Invalidate transform cache when `react-native/babel-preset` is updated

Reviewed By: huntie

Differential Revision: D82893894

fbshipit-source-id: 9bbc034eaf68ee0e5b3078fb2fe8f30caa7f11c9
2025-09-26 08:13:44 -07:00
Pieter De Baets 29b74061e4 Inline lazy fields in core data types (#53959)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53959

These data-types are super common in React Native, and the anonymous inner classes add significantly to the GC workload we see. For ReadableMap this means we can save 6 additional object allocations for each LazySynchronizedImpl and the lambda that's passed in to it. On synthetic benchmarks this seems to improve core operations around ~10%.

Changelog: [Internal]

Reviewed By: lenaic

Differential Revision: D83245864

fbshipit-source-id: 69b314a1f52a32375b5e1f591555f50bfbc31843
2025-09-26 07:20:06 -07:00
Jakub Piasecki 4f2755bda5 Update the version of Hermes V1 (#53930)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53930

Changelog: [GENERAL][CHANGED] - Update version of Hermes V1 used for React Native

Reviewed By: cortinico

Differential Revision: D83234930

fbshipit-source-id: 7cbad6c4b4fe6d7c8fe3ac25bea30bb25100ee18
2025-09-26 01:33:12 -07:00
Nivaldo Bondança 64d34080af Update ktfmt component on FBS:master (#53956)
Summary:
X-link: https://github.com/facebookexternal/meta-ar-mr-tooling/pull/200

Pull Request resolved: https://github.com/facebook/react-native/pull/53956

Reviewed By: jselbo

Differential Revision: D82570814

fbshipit-source-id: 6eeade55734548d057c5eae77a9188172473a819
2025-09-26 01:00:36 -07:00
Eric Rozell b9dcc1b670 Flip the order of component descriptor registration (#53953)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53953

For TurboModule registration, we register custom / app-specific TurboModules before core TurboModules to ensure that app-specific module overrides are preferred over core / default behaviors.

This provides a similar behavior for Fabric component descriptor registration.

## Changelog

[Internal]

Reviewed By: alanleedev

Differential Revision: D83273376

fbshipit-source-id: fd0fb5f10d2bc29839ae554f0e3cfc18d7957848
2025-09-25 19:56:41 -07:00
Eric Rozell 49b0045669 Unseal ScrollViewProps (#53952)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53952

In React Native Android, you can technically override core components like ScrollView to add additional props and behaviors, but doing so in the new architecture requires ensuring that these props are tracked in the C++ props object.

This change unseals ScrollViewProps so they can be overridden in (rather rare and generally unsupported) cases where you need to customize ScrollView behaviors for a specific app.

## Changelog

[Internal]

Reviewed By: Abbondanzo

Differential Revision: D83268457

fbshipit-source-id: d1d895e9f060dcf94bf82538a33bf5f2fbb135d7
2025-09-25 19:56:41 -07:00
Ramanpreet Nara 2b5938c900 Remove legacy validation warning infra (#53792)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53792

This validation infra served us well, but it's no longer needed.

All the legacy architecture classes have been identified and deprecated. And in the next major release, we will simply remove them.

Changelog: [Internal]

Reviewed By: cipolleschi

Differential Revision: D82470292

fbshipit-source-id: 44b58e63b7aca4fa22ac6b891275417bf1add8d1
2025-09-25 17:58:52 -07:00
Ramanpreet Nara d3890080c8 Consolidate all c macros (#53823)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53823

Let's just use the same flag to compile out everything. I don't think we'll need the utility of separate flags.

Reviewed By: fkgozali

Differential Revision: D82476933

fbshipit-source-id: 1b5fbfad7d54e0af7db5459772b3e7a8472c1eb1
2025-09-25 16:59:07 -07:00
Luna Wei 62fd6895e3 fbsource//xplat/js/react-native-github/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental:viewexperimentalAndroid (#53782)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53782

Changelog: [Internal] - Remove unnecessary ?. in VirtualViewExperimental

Reviewed By: yungsters

Differential Revision: D82426042

fbshipit-source-id: 2ba012b421b1d5000892e085a3277506829e7be2
2025-09-25 15:21:30 -07:00
Nurtau Toganbay 7b8590f860 Correctly join thread in TaskDispatchThread (#53943)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53943

Changelog: [Internal]

Thread join should happen only during TaskDispatchThread dtor, otherwise if quit is called on the same thread (thread_), then thread_ will get detached, which can lead to use of already deleted fields (queue_, running_) of TaskDispatchThread.

But we also need to make sure that on quit() call, loop is getting stopped, otherwise in loop, already running task will use already deleted fields of captured object. If quit() is called as task on thread_, then there is no need to wait for future because loop will organically end since running_ is false.

Reviewed By: rshest

Differential Revision: D83044012

fbshipit-source-id: a2da97a89093c47c64b693e3c9e5d6f7297c038e
2025-09-25 14:21:07 -07:00
Alex Hunt 4e595b7c7d Update debugger-frontend from 8b84a77...8cce390 (#53941)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53941

Changelog: [Internal] - Update `react-native/debugger-frontend` from 8b84a77...8cce390

Resyncs `react-native/debugger-frontend` from GitHub - see `rn-chrome-devtools-frontend` [changelog](https://github.com/facebook/react-native-devtools-frontend/compare/8b84a77b2c82c670886ef064dfc92d6bce83e579...8cce39003f66f66a8fb4c0e581a2b5046cf9c1d1).

### Changelog

| Commit | Author | Date/Time | Subject |
| ------ | ------ | --------- | ------- |
| [8cce39003](https://github.com/facebook/react-native-devtools-frontend/commit/8cce39003) | Alex Hunt (hello@alexhunt.dev) | 2025-09-25T15:05:50+01:00 | [Update Welcome panel assets and styling (#208)](https://github.com/facebook/react-native-devtools-frontend/commit/8cce39003) |
| [7724ccb99](https://github.com/facebook/react-native-devtools-frontend/commit/7724ccb99) | Alex Hunt (hello@alexhunt.dev) | 2025-09-25T08:46:01+01:00 | [Disable Perf Insights subpanel, collapse sidebar by default (#209)](https://github.com/facebook/react-native-devtools-frontend/commit/7724ccb99) |
| [538c309a3](https://github.com/facebook/react-native-devtools-frontend/commit/538c309a3) | Vitali Zaidman (vzaidman@gmail.com) | 2025-09-18T12:20:22+01:00 | [track when all startup resources are loaded (#205)](https://github.com/facebook/react-native-devtools-frontend/commit/538c309a3) |

Reviewed By: hoxyq

Differential Revision: D83248877

fbshipit-source-id: e5d7fb009a89bd97c8aac5f0a09b5733b8249651
2025-09-25 11:32:17 -07:00
riteshshukla04 ed24a4d05b fix-types in Refresh control (#53907)
Summary:
Fixes https://github.com/facebook/react-native/issues/53893
The size should be of type string (large or default) . Typescript says number

## Changelog:

<!-- Help reviewers and the release process by writing your own changelog entry.

Pick one each for the category and type tags:

[ANDROID|GENERAL|IOS|INTERNAL] [BREAKING|ADDED|CHANGED|DEPRECATED|REMOVED|FIXED|SECURITY] - Message

For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->
[GENERAL][FIXED] Fixed Types in Refresh control

Pull Request resolved: https://github.com/facebook/react-native/pull/53907

Test Plan: N/A

Reviewed By: javache

Differential Revision: D83161286

Pulled By: arushikesarwani94

fbshipit-source-id: 4e557bc3780f297551b913c5c763c369cf3e374c
2025-09-25 11:15:16 -07:00
Vitali Zaidman 92cae27cb2 only remove the Fast Refresh "Refreshing..." toast when all bundles being loaded finished loading. (#53937)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53937

Changelog: [General][Fixed] only remove the Fast Refresh "Refreshing..." toast when all bundles being loaded finished loading.

Reviewed By: huntie

Differential Revision: D83246895

fbshipit-source-id: f02fac9fe16b307ae4b36f09bc88f5261c590b15
2025-09-25 11:07:38 -07:00
Pieter De Baets 490b05d0d8 Extract SynchronousMountItem (#53936)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53936

Align with other mount items and make it easier to identify in memory traces.

Changelog: [Internal]

Reviewed By: lenaic

Differential Revision: D83241794

fbshipit-source-id: 9df1523e265e560c15f93bad8cd91a651bc5a4e2
2025-09-25 10:04:48 -07:00
Pieter De Baets 09441d8691 Fix ReactViewManager subclasses triggering view recycling (#53933)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53933

Changelog: [Internal]

Reviewed By: lenaic

Differential Revision: D83238077

fbshipit-source-id: d3dc4f96b9934fcbcd9a80354f976d5eb0bc9f0c
2025-09-25 10:04:48 -07:00
generatedunixname1395667395051502 5735bb5955 Update React Native DevTools binaries
Summary:
Automated update of React Native DevTools binaries
bypass-github-export-checks
Changelog: [Internal]

Reviewed By: motiz88

Differential Revision: D83233752

fbshipit-source-id: 4f87b05e552d728314d3c7be1d28267d58b8f19c
2025-09-25 06:17:47 -07:00
generatedunixname537391475639613 6e9a46ab81 xplat/js/react-native-github/packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm (#53931)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/53931

Reviewed By: javache

Differential Revision: D83144241

fbshipit-source-id: 115f085974ca6cc13c1412ab59881e4f819b594b
2025-09-25 04:49:34 -07:00
Moti Zilberman f599e2a613 Fix custom prebuilt binary handling in unstable_prepareDebuggerShell (#53927)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53927

Changelog: [Internal]

Fixes a bug that broke `unstable_prepareDebuggerShell` (and therefore the RNDT shell) in OSS.

Reviewed By: vzaidman

Differential Revision: D83178777

fbshipit-source-id: cfd93b14e2a94e36d8a3ee9f4605036a4279ef8c
2025-09-25 02:29:11 -07:00
Alex Hunt b577679746 Update DevTools windowKey to a sha256 hash (#53923)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53923

Motivated by feedback on D83070252. This prevents us from including decodable information about debug targets in these values.

Changelog: [Internal]

Reviewed By: motiz88

Differential Revision: D83139401

fbshipit-source-id: 01b01d23e4dfb06e400729b8cedf1fe2e098b209
2025-09-25 01:22:58 -07:00
Alex Hunt 88f05b219c Fix build for debugger-shell (#53924)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53924

Fix failing `yarn build` runs following D83070252.

Changelog: [Internal]

Reviewed By: motiz88

Differential Revision: D83161092

fbshipit-source-id: 3e9e984699750add82794281a387eac0534da60d
2025-09-25 01:22:58 -07:00
Sam Zhou dc3736893d Deploy 0.286.0 to xplat (#53929)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53929

[changelog](https://github.com/facebook/flow/blob/main/Changelog.md)
Changelog: [Internal]

Reviewed By: gkz

Differential Revision: D83192932

fbshipit-source-id: 0457464a1ae1907a6906a26faa3ff319f01f9356
2025-09-24 18:25:10 -07:00
Vitali Zaidman 3a954caf4f don't require projectRoot in devMiddleware (#53921)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53921

Changelog: [Internal] `devMiddleware` removed the unused option `projectRoot`

This option was used only in a dead branch of the code inside `InspectorProxy`.

The scenario where it appeared was enabling resolving script sources (`Debugger.getScriptSource`) starting with `file://` which were coming from the file system. However, we don't seem to ever point scripts at the filesystem this way.

Reviewed By: huntie

Differential Revision: D82739662

fbshipit-source-id: 9a130eaa83cb94ae0e36a5a1102c56ff8a36cffc
2025-09-24 12:47:24 -07:00
Calix Tang 2dfb36e3c6 Simplify VirtualViewContainer hysteresis window logic (#53914)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53914

Pulls hysteresis window computation out of for loop. Simplify the remaining code.

Changelog: [Internal] - Same as general summary.

Reviewed By: lunaleaps

Differential Revision: D83005735

fbshipit-source-id: 824863c649406a750d44b31ac92878505ab61596
2025-09-24 10:05:34 -07:00
Christoph Purrer 10b45b6200 Add Unit Tests (#53913)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53913

Changelog: [Internal]

Reviewed By: rshest

Differential Revision: D83091947

fbshipit-source-id: 63baf543b180070591d4779b1203909359aec132
2025-09-24 08:56:01 -07:00
Alex Hunt 430765b071 Update SafeAreaViewExample to lazily require deprecated API (#53922)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53922

Minor change motivated by restoring a clean JS console on startup for RNTester.

Changelog: [Internal]

Reviewed By: cipolleschi

Differential Revision: D83145673

fbshipit-source-id: be64b057b842f4922328f5bc62dc001d016fd0b7
2025-09-24 06:05:26 -07:00
generatedunixname537391475639613 ed6aa0f25a xplat/js/react-native-github/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp (#53919)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/53919

Reviewed By: javache

Differential Revision: D83044510

fbshipit-source-id: df05c27f5863b6eac6c37ebe75343b30e515be7a
2025-09-24 05:15:26 -07:00
Alex Hunt 8027067322 Implement saved window positioning per target (#53910)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53910

NOTE: Resubmission of D82236159 — The `electron-store` dependency is now replaced with a local implementation.

As titled. A long awaited quality of life improvement that we can now deliver with our desktop shell.

Window arrangements are saved per [`windowKey`](https://github.com/facebook/react-native/blob/da7bf9c54567aae62ff355b79e66f511cb382065/packages/dev-middleware/src/middleware/openDebuggerMiddleware.js#L193), mapping to each previously opened debugger target.

**Limitations**

- Does not save/restore macOS fullscreen app state.

Changelog: [Internal]

Reviewed By: motiz88

Differential Revision: D83070252

fbshipit-source-id: a77f106b6db31571313acd0270b87703e4de049d
2025-09-24 04:59:43 -07:00
Ruslan Shestopalyuk eb9e94256e Fix potential attempt to execute a task after shut down in TaskDispatchThread (#53900)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53900

# Changelog:
[Internal] -

There is a crash reported, which looks like it may be potentially caused by some scenarios when we are trying to execute a scheduled task after the TaskDispatchThread instance had been quit.

This adds a missing extra check in the corresponding code to avoid such scenarios.

Reviewed By: christophpurrer, lenaic

Differential Revision: D83050169

fbshipit-source-id: 0ee0fa5848b070c2dc3dd92dbad4e6d5996734b3
2025-09-24 04:27:30 -07:00
Kacper Kafara dc4a6d2c7e Add invalidation callback for non-recycled component instances on iOS (#53708)
Summary:
Since the view recycling is optional on iOS [since 0.74](https://github.com/facebook/react-native/commit/613a5a75977d84333df7cbd5701e01a7ab5a3385) when a view (with disabled view recycling) is unmounted / destroyed there is no lifecycle callback for a component view to notify it of such event. Currently we (`react-native-screens`) are forced to scan mutation list of every mounting transaction in every of ours container components. Components with view recycling turned on, get `prepareForRecycle` callback on Fabric & on old architecture, there was `invalidate` message sent (`RCTInvalidating` protocol). It would be nice & useful to have something like this for components with view recycling disabled, or enabled but not recycled due to pool being full.

In particular in `react-native-screens` we need an information that the component is being destroyed to release retained resources (view controllers & others).

I have concern regarding naming of this method, as it could collide / be mistaken with `invalidate` method of `RCTInvalidating` protocol, but naming is hard & I don't see a name that fits better 😄 Open for suggestions!

## Changelog:

<!-- Help reviewers and the release process by writing your own changelog entry.

Pick one each for the category and type tags:

[ANDROID|GENERAL|IOS|INTERNAL] [BREAKING|ADDED|CHANGED|DEPRECATED|REMOVED|FIXED|SECURITY] - Message

For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->

[IOS] [ADDED] - Add invalidation callback for non-recycled component instances

Pull Request resolved: https://github.com/facebook/react-native/pull/53708

Test Plan:
Apply this patch to `RNTMyNativeViewComponentView.mm`:

```objective-c

 diff --git a/packages/rn-tester/NativeComponentExample/ios/RNTMyNativeViewComponentView.mm b/packages/rn-tester/NativeComponentExample/ios/RNTMyNativeViewComponentView.mm
index 2eb7bff28e..8464da603b 100644
 --- a/packages/rn-tester/NativeComponentExample/ios/RNTMyNativeViewComponentView.mm
+++ b/packages/rn-tester/NativeComponentExample/ios/RNTMyNativeViewComponentView.mm
@@ -123,6 +123,16 @@ using namespace facebook::react;
   [_view removeOverlays];
 }

+- (void)invalidate
+{
+  NSLog(@"RCTComponentViewProtocol invalidate called");
+}
+
++ (BOOL)shouldBeRecycled
+{
+  return NO;
+}
+
 - (void)fireLagacyStyleEvent
 {
   RNTMyNativeViewEventEmitter::OnLegacyStyleEvent value = {"Legacy Style Event Fired."};

```

& render `MyNativeView` in any of the RNTester screens / examples. Unmount the view & observe the log in XCode.

https://github.com/user-attachments/assets/be3f67bb-73e0-4af2-9ca1-f2eb9f3347bb

(called twice, because there are two components rendered at a time)

Reviewed By: javache

Differential Revision: D83139361

Pulled By: cipolleschi

fbshipit-source-id: 17ef964648ac44b583503b6b00fc5dd457887061
2025-09-24 04:26:38 -07:00
Jakub Piasecki 417e068220 Relayout surfaces on font scale change (#53770)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53770

Changelog: [ANDROID][FIXED] - Request layout on attached surfaces when font scale changes

Reviewed By: rshest

Differential Revision: D82422608

fbshipit-source-id: c087054a709f8d31a298cd8d83363fac1e23d03a
2025-09-24 04:16:33 -07:00