Commit Graph
37303 Commits
Author SHA1 Message Date
Joe Vilches f75f2617ac Gate accessibilityOrder on iOS and Android (#50303)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50303

This feature is being tested internally right now. We cannot really avoid exposing the type but we are going to make this no-op for now in OSS until we are confident we can roll it out fully

Changelog: [Internal]

Reviewed By: philIip

Differential Revision: D71919847

fbshipit-source-id: b1730b8af5180c4513ce1f0d58b3a6526fffed84
2025-04-07 14:46:29 -07:00
Joe Vilches 83fae860df Allow links that encorporate entire <Text> to be keyboard accessible
Summary:
I was helping a team with some keyboard link accessibility and they had this strange bug where a link was not keyboard accessible despite having `accessible={true}`. Something that fixed it for them was adding an `accessibilityLabel`, which makes no sense.

Turns out there is a bug when the link encompasses the entirety of the `Text` component. We have a special case for handling links of this manner, and right now we are not setting the `frame` property which is responsible for outlining the element when it takes focus.

This property is not one defined by UIKit, rather it is defined in RCTAccessibilityElement. We use it to derive the accessibilityFrame which has to be in screen coordinates. If you do not set the frame property then it is supposed to use the bounds of the container. This does not work properly, seemingly bc the name "frame" gets mangled internally in UIKit leading to UB. I changed the name the "something" and it works.

To remedy this lets just change the name

Changelog: [iOS] [Fixed]

Reviewed By: javache

Differential Revision: D72338838

fbshipit-source-id: da91d0c28baeb6765d4d604f3e47c91952167f9d
2025-04-07 14:24:15 -07:00
Zeya Peng b0f2083d9d UIManager::add/RemoveEventListener (#50453)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50453

## Changelog:

[General] [Added] - add UIManager::add/RemoveEventListener

Reviewed By: rshest

Differential Revision: D72200640

fbshipit-source-id: 707540bdcb1178c2fab8260ce73b634c4f974b56
2025-04-07 13:48:32 -07:00
Nicola Corti 0bd0635be6 Migrate to Kotlin - DevSupportManagerFactory (#50516)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50516

This diff migrates the following file to Kotlin - DevSupportManagerFactory
as part of our ongoing effort of migrating the codebase to Kotlin

Changelog:
[Android] [Changed] - Migrate to Kotlin - DevSupportManagerFactory - We couldn't find any implementation of this class in OSS. Some Kotlin implementers might have to change the method signatures. However this interface is not supposed to be extended in OSS.

Reviewed By: javache

Differential Revision: D72556310

fbshipit-source-id: 35d1ed3c332296d3be5244fdab92a890d7ea3c40
2025-04-07 11:26:54 -07:00
Nicola Corti 09492075e8 Migrate to Kotlin - ReactInstanceDevHelper (#50517)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50517

This diff migrates the following file to Kotlin - ReactInstanceDevHelper
as part of our ongoing effort of migrating the codebase to Kotlin

Changelog:
[Android] [Changed] - Migrate to Kotlin - ReactInstanceDevHelper. Some users implementing this class in Kotlin could have breakages. As this is a devtools/frameworks API we're not marking this as breaking.

Reviewed By: javache

Differential Revision: D72555226

fbshipit-source-id: e7e5523c56de8697def0a509c03e9fe89c6d5839
2025-04-07 11:26:54 -07:00
Riccardo Cipolleschi 0f534293af Avoid build failure on Catalyst (x86_64) (#50514)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50514

When building React Native for mac catalyst on intel architecture, we are observing a build failure in RCTInstance.
See issue: https://github.com/facebook/react-native/issues/50388

Apparently, the compiler don't understand that `errorData[@"isFatal"]` is a BOOL, so we are helping it by extracting the `boolValue`.

## Changelog:
[iOS][Fixed] -  Avoid build failure on Catalyst (x86_64)

Reviewed By: cortinico

Differential Revision: D72558024

fbshipit-source-id: 152d89b02ae250a8ae54fe2df658c018d5f63f45
2025-04-07 11:23:11 -07:00
Riccardo Cipolleschi 26a6ae0e89 Collect nightlies results (#50488)
Summary:
This change adds a job to collect nightlies results so we can then post on discord or internally

## Changelog:
[Internal] - Add a job to collect nightlies results

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

Test Plan: GHA - tested as a job on PRs: https://github.com/facebook/react-native/actions/runs/14283415968/job/40035831913

Reviewed By: cortinico

Differential Revision: D72555358

Pulled By: cipolleschi

fbshipit-source-id: 35ec7e571992f5f27179256570b5d143e0d76586
2025-04-07 09:55:14 -07:00
Fabrizio Cucci 1853957773 Kotlinify ViewGroupDrawingOrderHelper
Summary:
As per title.

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D72566036

fbshipit-source-id: ac3156b247df3818073e31aa44d5c96f62f7b881
2025-04-07 09:03:23 -07:00
Rubén Norte 91acacc218 Ship fixMountingCoordinatorReportedPendingTransactionsOnAndroid feature flag by default
Summary:
Changelog: [internal]

This is stable after the last couple of fixes, so we can enable it by default. Enabling this just improves the accuracy of `IntersectionObserver` and the Event Timing API, and we still haven't shipped those to stable.

Reviewed By: GijsWeterings

Differential Revision: D72561256

fbshipit-source-id: 4b505f1df9c7c495d316e6fbf1498af94aaca959
2025-04-07 08:38:12 -07:00
Gijs Weterings 9b30cdd008 fix nullsafe FIXMEs for NetworkingModule.java and mark nullsafe
Summary:
Gone trough all the FIXMEs added in the previous diff by the nullsafe tool, marked the class as nullsafe and ensured no remaining violations.
Changelog: [Android][Fixed] Made NetworkingModule.java nullsafe

Reviewed By: cortinico

Differential Revision: D71979590

fbshipit-source-id: 0ddf764f4707d2ee76ab99bc1a09a4e2a7e6b794
2025-04-07 06:33:09 -07:00
Gijs Weterings 70b4265ea0 Apply Nullsafe FIXMEs for xplat/js/react-native-github/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java (#50347)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50347

Added nullsafe FIXMEs for easier reviewing of next diff, where we fix them

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D71979581

fbshipit-source-id: 4ed264ff43794b6aafc2a0ee419a660a6b5b0440
2025-04-07 06:33:09 -07:00
Gijs Weterings c80ac8fcf2 Fix nullsafe FIXMEs for BlobModule.java and mark nullsafe (#50366)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50366

Gone trough all the FIXMEs added in the previous diff by the nullsafe tool, marked the class as nullsafe and ensured no remaining violations.
Changelog: [Android][Fixed] Made BlobModule.java nullsafe

Reviewed By: cortinico

Differential Revision: D71979598

fbshipit-source-id: bbef5548d05e0b77ea03cf72f41a384fe7294d59
2025-04-07 06:33:09 -07:00
Gijs Weterings 842591e480 Apply Nullsafe FIXMEs for xplat/js/react-native-github/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.java (#50364)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50364

Added nullsafe FIXMEs for easier reviewing of next diff, where we fix them

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D71979588

fbshipit-source-id: f5ec8bced87ea0c6c1c193be51ebc78396388d0e
2025-04-07 06:33:09 -07:00
Gijs Weterings 419b68f38a Fix nullsafe FIXMEs for TurboModuleManager and mark nullsafe (#50370)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50370

Gone trough all the FIXMEs added in the previous diff by the nullsafe tool, marked the class as nullsafe and ensured no remaining violations.
Changelog: [Android][Fixed] Made TurboModuleManager.java nullsafe

Reviewed By: cortinico

Differential Revision: D71979605

fbshipit-source-id: b8da8f1ad12f5f6d63e7bd876d7c4912d69a4c4d
2025-04-07 06:33:09 -07:00
Gijs Weterings 4664db138f Apply Nullsafe FIXMEs for xplat/js/react-native-github/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java (#50358)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50358

Added nullsafe FIXMEs for easier reviewing of next diff, where we fix them

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D71979595

fbshipit-source-id: 19bfcea537b7b62536eafa8e1d0b3f8b50666e22
2025-04-07 06:33:09 -07:00
Gijs Weterings 90184d20e1 Fix nullsafe FIXMEs for TurboModuleInteropUtils and mark nullsafe (#50357)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50357

Gone trough all the FIXMEs added in the previous diff by the nullsafe tool, marked the class as nullsafe and ensured no remaining violations.
Changelog: [Android][Fixed] Made TurboModuleInteropUtils.java nullsafe

Reviewed By: cortinico

Differential Revision: D71979599

fbshipit-source-id: ffd7006f28db4daf8cd47ce1cd8ff6e3192c0ad1
2025-04-07 06:33:09 -07:00
Gijs Weterings c5132f485f Throw errors in TuboModuleInteropUtils for improperly constructed turbomodules
Summary:
Per discussion in D71979599

Changelog: [General][Fixed] Throw ParsingException when  ReactModule doesn't conform to TurboModule invariants

Reviewed By: cortinico

Differential Revision: D72383857

fbshipit-source-id: 2d0282b136312d414234246584d2ae60858955b6
2025-04-07 06:33:09 -07:00
Gijs Weterings 207fc3f5d3 Apply Nullsafe FIXMEs for xplat/js/react-native-github/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleInteropUtils.java (#50367)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50367

Added nullsafe FIXMEs for easier reviewing of next diff, where we fix them

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D71979600

fbshipit-source-id: be36f4c409a0423b3d3ccdf2c28d96c7a3f50201
2025-04-07 06:33:09 -07:00
Intl Scheduler e6fc1ecb6f translation auto-update for batch 0/58 on master
Summary:
Chronos Job Instance ID: 1125907957107836
Sandcastle Job Instance ID: 22517999905036196

Processed xml files:
android_res/com/facebook/common/util/res/values/strings.xml
android_res/rendercore/res/values/strings.xml
../xplat/js/react-native-github/packages/react-native/ReactAndroid/src/main/res/views/uimanager/values/strings.xml
../xplat/js/react-native-github/packages/react-native/ReactAndroid/src/main/res/devsupport/values/strings.xml
android_res/com/facebook/content/res/values/strings.xml
android_res/com/facebook/common/i18n/res/values/strings.xml
android_res/com/facebook/common/timeformat/res/values/strings.xml
android_res/com/facebookpay/widget/res/values/strings.xml
android_res/com/facebookpay/ecpexception/res/values/strings.xml
android_res/com/facebookpay/expresscheckout/res/values/strings.xml
android_res/com/fbpay/auth/res/values/strings.xml
android_res/com/facebook/common/strings/external/res/values/strings.xml
android_res/com/facebook/common/strings/res/values/strings.xml
android_res/com/facebook/fbui/widget/pagerindicator/res/values/strings.xml
android_res/com/facebook/fbui/widget/contentview/res/values/strings.xml
android_res/com/facebook/resources/res/values/strings.xml
android_res/com/facebook/widget/res/values/strings.xml
android_res/com/facebook/config/appspecific/res/values/strings.xml
android_res/com/facebook/ui/mainview/res/values/strings.xml
android_res/com/facebook/audience/stories/storysurface/activity/main/res/values/strings.xml
android_res/com/facebook/ui/emoji/res/values/strings.xml
android_res/com/facebook/ui/emoji/common/res/values/strings.xml
android_res/com/facebook/nativetemplates/res/values/strings.xml
android_res/com/facebook/iorg/common/upsell/res/values/strings.xml
android_res/com/facebook/iorg/common/res/values/strings.xml
android_res/com/facebook/dialtone/res/values/strings.xml
android_res/com/facebook/zero/messenger/semi/res/values/strings.xml
android_res/com/facebook/zero/res/values/strings.xml
android_res/com/facebook/zero/common/res/values/strings.xml
android_res/com/facebook/widget/facepile/res/values/strings.xml
android_res/com/facebook/tabbar/res/values/strings.xml
android_res/com/facebook/ui/toolbar/res/values/strings.xml
android_res/com/facebook/dialtone/messenger/res/values/strings.xml
android_res/com/facebook/feedback/reactions/res/values/strings.xml
android_res/com/facebook/ufiservices/res/values/strings.xml
android_res/com/facebook/ui/edithistory/res/values/strings.xml
android_res/com/facebook/pages/common/userinviter/res/values/strings.xml
android_res/com/facebook/pages/common/bannedusers/res/values/strings.xml
android_res/com/facebook/friending/common/res/values/strings.xml
android_res/com/facebook/messaging/ui/stickerstore/res/values/strings.xml
android_res/com/facebook/stickers/res/values/strings.xml
android_res/com/facebook/messaging/shared/res/values/strings.xml
android_res/com/facebook/caspian/res/values/strings.xml
android_res/com/facebook/timeline/widget/actionbar/res/values/strings.xml
android_res/com/facebook/showpages/res/values/strings.xml
android_res/com/facebook/nux/res/values/strings.xml
android_res/com/facebook/facecast/common/badge/res/values/strings.xml
android_res/com/facebook/feedbase/res/values/strings.xml
android_res/com/facebook/feedback/ui/res/values/strings.xml
android_res/com/facebook/video/player/res/values/strings.xml
android_res/com/facebook/spherical/res/values/strings.xml
android_res/com/facebook/saved/common/res/values/strings.xml
android_res/com/facebook/video/comments/res/values/strings.xml
android_res/com/facebook/messaging/media/picker/res/values/strings.xml
android_res/com/facebook/messaging/media/res/values/strings.xml
android_res/com/facebook/messaging/res/values/strings.xml
android_res/com/facebook/ui/media/contentsearch/res/values/strings.xml
android_res/com/facebook/transliteration/res/values/strings.xml
android_res/com/facebook/bookmark/res/values/strings.xml
android_res/com/facebook/orca/res/values/strings.xml
android_res/com/facebook/workshared/userstatus/donotdisturb/res/values/strings.xml
android_res/com/facebook/widget/tokenizedtypeahead/res/values/strings.xml
android_res/com/facebook/widget/refreshableview/res/values/strings.xml
android_res/com/facebook/rtc/common/res/values/strings.xml
android_res/com/facebook/payments/ui/res/values/strings.xml
android_res/com/facebook/fig/mediagrid/res/values/strings.xml
android_res/com/facebook/pages/app/clicktomessengerads/messagesuggestion/ui/res/values/strings.xml
android_res/com/facebook/messagingneue/res/values/strings.xml
android_res/com/facebook/messaging/widget/toolbar/res/values/strings.xml
android_res/com/facebook/messaging/users/username/res/values/strings.xml
android_res/com/facebook/messaging/tincan/messenger/res/values/strings.xml
android_res/com/facebook/messaging/threadview/quickpromotion/res/values/strings.xml
android_res/com/facebook/messaging/threadview/message/res/values/strings.xml
android_res/com/facebook/messaging/threadview/games/res/values/strings.xml
android_res/com/facebook/messaging/xma/res/values/strings.xml
android_res/com/facebook/messaging/threadview/admin/res/values/strings.xml
android_res/com/facebook/messaging/reactions/res/values/strings.xml
android_res/com/facebook/messaging/threadview/attachment/video/res/values/strings.xml
android_res/com/facebook/messaging/settings/res/values/strings.xml
android_res/com/facebook/messaging/searchnullstate/res/values/strings.xml
android_res/com/facebook/messenger/login/res/values/strings.xml
android_res/com/facebook/messaging/promotion/res/values/strings.xml
android_res/com/facebook/messaging/presence/res/values/strings.xml
android_res/com/facebook/messaging/polling/adminmessage/res/values/strings.xml
android_res/com/facebook/messaging/photos/view/res/values/strings.xml
android_res/com/facebook/messaging/omnipicker/res/values/strings.xml
android_res/com/facebook/messaging/livelocation/shared/res/values/strings.xml
android_res/com/facebook/messaging/permissions/res/values/strings.xml
android_res/com/facebook/messaging/invites/res/values/strings.xml
android_res/com/facebook/messaging/groups/threadactions/res/values/strings.xml
android_res/com/facebook/messaging/groups/nullstate/res/values/strings.xml
android_res/com/facebook/messaging/groups/admin/res/values/strings.xml
android_res/com/facebook/messaging/extensions/res/values/strings.xml
android_res/com/facebook/messaging/ephemeral/res/values/strings.xml
android_res/com/facebook/messaging/emoji/res/values/strings.xml
android_res/com/facebook/messaging/customthreads/res/values/strings.xml
android_res/com/facebook/messaging/contacts/picker/res/values/strings.xml
android_res/com/facebook/messaging/search/picker/res/values/strings.xml
android_res/com/facebook/contacts/res/values/strings.xml
android_res/com/facebook/messaging/connectivity/res/values/strings.xml

allow-large-files
ignore-conflict-markers
opt-out-review
drop-conflicts

Differential Revision: D72564442

fbshipit-source-id: 4c49fc8f3798c3442b7ac81cbeda3b6d1406cb80
2025-04-07 06:13:47 -07:00
Mateo Guzmán 183b0d49fd Make ReactJsExceptionHandler internal (#50503)
Summary:
This class can be internalized as part of the initiative to reduce the public API surface. I've checked there are [no relevant OSS usages](https://github.com/search?type=code&q=NOT+is%3Afork+NOT+org%3Afacebook+NOT+repo%3Areact-native-tvos%2Freact-native-tvos+NOT+repo%3Anuagoz%2Freact-native+NOT+repo%3A2lambda123%2Freact-native+NOT+repo%3Abeanchips%2Ffacebookreactnative+NOT+repo%3AfabOnReact%2Freact-native-notes+NOT+user%3Ahuntie+NOT+user%3Acortinico+NOT+repo%3AMaxdev18%2Fpowersync_app+NOT+repo%3Acarter-0%2Finstagram-decompiled+NOT+repo%3Am0mosenpai%2Finstadamn+NOT+repo%3AA-Star100%2FA-Star100-AUG2-2024+NOT+repo%3Alclnrd%2Fdetox-scrollview-reproductible+NOT+repo%3ADionisisChytiris%2FWorldWiseTrivia_Main+NOT+repo%3Apast3l%2Fhi2+NOT+repo%3AoneDotpy%2FCaribouQuest+NOT+repo%3Abejayoharen%2Fdailytodo+NOT+repo%3Amolangning%2Freversing-discord+NOT+repo%3AScottPrzy%2Freact-native+NOT+repo%3Agabrieldonadel%2Freact-native-visionos+NOT+repo%3AGabriel2308%2FTestes-Soft+NOT+repo%3Adawnzs03%2FflakyBuild+NOT+repo%3Acga2351%2Fcode+NOT+repo%3Astreeg%2Ftcc+NOT+repo%3Asoftware-mansion-labs%2Freact-native-swiftui+NOT+repo%3Apkcsecurity%2Fdecompiled-lightbulb+com.facebook.react.interfaces.exceptionmanager.ReactJsExceptionHandler).

## Changelog:

[INTERNAL] - Make com.facebook.react.interfaces.exceptionmanager.ReactJsExceptionHandler internal

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

Test Plan:
```bash
yarn test-android
yarn android
```

Reviewed By: javache

Differential Revision: D72549787

Pulled By: cortinico

fbshipit-source-id: f24bcab2412a58b59f249b8bef03df75ebbd16a4
2025-04-07 06:13:40 -07:00
Mateo Guzmán 9d7aac35a5 Make ReactIgnorableMountingException internal (#50504)
Summary:
This class can be internalized as part of the initiative to reduce the public API surface. I've checked there are [no relevant OSS usages](https://github.com/search?type=code&q=NOT+is%3Afork+NOT+org%3Afacebook+NOT+repo%3Areact-native-tvos%2Freact-native-tvos+NOT+repo%3Anuagoz%2Freact-native+NOT+repo%3A2lambda123%2Freact-native+NOT+repo%3Abeanchips%2Ffacebookreactnative+NOT+repo%3AfabOnReact%2Freact-native-notes+NOT+user%3Ahuntie+NOT+user%3Acortinico+NOT+repo%3AMaxdev18%2Fpowersync_app+NOT+repo%3Acarter-0%2Finstagram-decompiled+NOT+repo%3Am0mosenpai%2Finstadamn+NOT+repo%3AA-Star100%2FA-Star100-AUG2-2024+NOT+repo%3Alclnrd%2Fdetox-scrollview-reproductible+NOT+repo%3ADionisisChytiris%2FWorldWiseTrivia_Main+NOT+repo%3Apast3l%2Fhi2+NOT+repo%3AoneDotpy%2FCaribouQuest+NOT+repo%3Abejayoharen%2Fdailytodo+NOT+repo%3Amolangning%2Freversing-discord+NOT+repo%3AScottPrzy%2Freact-native+NOT+repo%3Agabrieldonadel%2Freact-native-visionos+NOT+repo%3AGabriel2308%2FTestes-Soft+NOT+repo%3Adawnzs03%2FflakyBuild+NOT+repo%3Acga2351%2Fcode+NOT+repo%3Astreeg%2Ftcc+NOT+repo%3Asoftware-mansion-labs%2Freact-native-swiftui+NOT+repo%3Apkcsecurity%2Fdecompiled-lightbulb+com.facebook.react.bridge.ReactIgnorableMountingException).

## Changelog:

[INTERNAL] - Make com.facebook.react.bridge.ReactIgnorableMountingException internal

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

Test Plan:
```bash
yarn test-android
yarn android
```

Reviewed By: cortinico

Differential Revision: D72549687

Pulled By: javache

fbshipit-source-id: 33e1df926ab92711d1b98a50295dac3263b04f56
2025-04-07 05:55:20 -07:00
Nicola Corti 82a40b6f5f Rename assertWhenLegacyArchitectureMinifyingEnabled to assertLegacyArchitecture (#50512)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50512

Reland of D72389708

This renames the method to be more aligned to the fact that we're using this entrypoint both for internal
and for OSS users.

I've also added a `assertLegacyArchitectureOnlyWhenMinifyEnabled` that will run only for internal builds.

Changelog:
[Internal] [Changed] -

Reviewed By: javache

Differential Revision: D72552028

fbshipit-source-id: 2594df9ef8056f9931960117770c4b7cddd4e922
2025-04-07 05:38:41 -07:00
Nicola Corti 28ed958af6 Move ReactMarker to reactnativejni_common as it's used in NewArch also (#50511)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50511

Reland of D72384347

ReactMarker is currently loading the whole `reactnativejni` which we should not be loading in NewArch.
This is resulting in a warning fired for all the NewArch users with `legacyWarningsEnabled`.

I'm cleaning this up by moving it inside `reactnativejni_common`.

Changelog:
[Internal] [Changed] - Move ReactMarker to `reactnativejni_common` as it's used in NewArch also

Reviewed By: javache

Differential Revision: D72552075

fbshipit-source-id: bbc75aada1564f6f54ea70a8dd4f5145d4a3ffaa
2025-04-07 05:38:41 -07:00
Rubén Norte bcfe8f2e76 Remove unnecessary Event and CustomEvent polyfills (#50495)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50495

Changelog: [internal]

This migrates the last remaining usages of these polyfills to the built-in classes.

Reviewed By: yungsters

Differential Revision: D67828652

fbshipit-source-id: 5ff039d7413aed49d882ff03e722531cdd195488
2025-04-07 05:15:37 -07:00
Rubén Norte 0173839f42 Remove dependency on event-target-shim (#50494)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50494

Changelog: [internal]

Removes the dependency on the `event-target-shim` npm package now that we're using a custom implementation within `react-native`.

Reviewed By: yungsters

Differential Revision: D67828636

fbshipit-source-id: 8727f8caa2bd4badd7162eb7b993dcc768e74b85
2025-04-07 05:15:37 -07:00
Rubén Norte d33ff5353c Ship refactor of XHR, FileReader and WebSocket to use the built-in EventTarget implementation (#50485)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50485

Changelog: [internal]

This cleans up the experiment to test the new implementations of `XMLHttpRequest`, `FileReader` and `WebSocket` using the built-in `EventTarget` definition.

This effectively replaces the legacy implementations with the ones using the built-in `EventTarget` class in stable.

Reviewed By: yungsters

Differential Revision: D68625225

fbshipit-source-id: 7ccefe5d8612baca283146cdbca7f7f1d51b4ffa
2025-04-07 05:15:37 -07:00
Mateo Guzmán cbf11699d9 Make ViewGroupClickEvent internal (#50505)
Summary:
This class can be internalized as part of the initiative to reduce the public API surface. I've checked there are [no relevant OSS usages](https://github.com/search?type=code&q=NOT+is%3Afork+NOT+org%3Afacebook+NOT+repo%3Areact-native-tvos%2Freact-native-tvos+NOT+repo%3Anuagoz%2Freact-native+NOT+repo%3A2lambda123%2Freact-native+NOT+repo%3Abeanchips%2Ffacebookreactnative+NOT+repo%3AfabOnReact%2Freact-native-notes+NOT+user%3Ahuntie+NOT+user%3Acortinico+NOT+repo%3AMaxdev18%2Fpowersync_app+NOT+repo%3Acarter-0%2Finstagram-decompiled+NOT+repo%3Am0mosenpai%2Finstadamn+NOT+repo%3AA-Star100%2FA-Star100-AUG2-2024+NOT+repo%3Alclnrd%2Fdetox-scrollview-reproductible+NOT+repo%3ADionisisChytiris%2FWorldWiseTrivia_Main+NOT+repo%3Apast3l%2Fhi2+NOT+repo%3AoneDotpy%2FCaribouQuest+NOT+repo%3Abejayoharen%2Fdailytodo+NOT+repo%3Amolangning%2Freversing-discord+NOT+repo%3AScottPrzy%2Freact-native+NOT+repo%3Agabrieldonadel%2Freact-native-visionos+NOT+repo%3AGabriel2308%2FTestes-Soft+NOT+repo%3Adawnzs03%2FflakyBuild+NOT+repo%3Acga2351%2Fcode+NOT+repo%3Astreeg%2Ftcc+NOT+repo%3Asoftware-mansion-labs%2Freact-native-swiftui+NOT+repo%3Apkcsecurity%2Fdecompiled-lightbulb+com.facebook.react.views.view.ViewGroupClickEvent).

## Changelog:

[INTERNAL] - Make com.facebook.react.views.view.ViewGroupClickEvent internal

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

Test Plan:
```bash
yarn test-android
yarn android
```

Reviewed By: cortinico

Differential Revision: D72549704

Pulled By: javache

fbshipit-source-id: 8c90192bc088ab52e709e87870eb1c2353cf1e85
2025-04-07 03:37:19 -07:00
Nicola Corti 22baacd6fb Correctly update the warning message for OSS vs Internal (#50486)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50486

Those 2 messages are inverted. Let's fix it.

Changelog:
[Internal] [Changed] -

Reviewed By: cipolleschi

Differential Revision: D72451355

fbshipit-source-id: 6aa0636d2cfaf7bf017c376d4d984afb351e1cd8
2025-04-07 03:09:59 -07:00
Mateo Guzmán 786c6e8043 Make FontMetricsUtil internal (#50506)
Summary:
This class can be internalized as part of the initiative to reduce the public API surface. I've checked there are [no relevant OSS usages](https://github.com/search?type=code&q=NOT+is%3Afork+NOT+org%3Afacebook+NOT+repo%3Areact-native-tvos%2Freact-native-tvos+NOT+repo%3Anuagoz%2Freact-native+NOT+repo%3A2lambda123%2Freact-native+NOT+repo%3Abeanchips%2Ffacebookreactnative+NOT+repo%3AfabOnReact%2Freact-native-notes+NOT+user%3Ahuntie+NOT+user%3Acortinico+NOT+repo%3AMaxdev18%2Fpowersync_app+NOT+repo%3Acarter-0%2Finstagram-decompiled+NOT+repo%3Am0mosenpai%2Finstadamn+NOT+repo%3AA-Star100%2FA-Star100-AUG2-2024+NOT+repo%3Alclnrd%2Fdetox-scrollview-reproductible+NOT+repo%3ADionisisChytiris%2FWorldWiseTrivia_Main+NOT+repo%3Apast3l%2Fhi2+NOT+repo%3AoneDotpy%2FCaribouQuest+NOT+repo%3Abejayoharen%2Fdailytodo+NOT+repo%3Amolangning%2Freversing-discord+NOT+repo%3AScottPrzy%2Freact-native+NOT+repo%3Agabrieldonadel%2Freact-native-visionos+NOT+repo%3AGabriel2308%2FTestes-Soft+NOT+repo%3Adawnzs03%2FflakyBuild+NOT+repo%3Acga2351%2Fcode+NOT+repo%3Astreeg%2Ftcc+NOT+repo%3Asoftware-mansion-labs%2Freact-native-swiftui+NOT+repo%3Apkcsecurity%2Fdecompiled-lightbulb+com.facebook.react.views.text.FontMetricsUtil).

## Changelog:

[INTERNAL] - Make com.facebook.react.views.text.FontMetricsUtil internal

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

Test Plan:
```bash
yarn test-android
yarn android
```

Reviewed By: javache

Differential Revision: D72549765

Pulled By: cortinico

fbshipit-source-id: b7e29dfb716ce7c93620b14adec1425345b13ac1
2025-04-07 02:59:30 -07:00
Mateo Guzmán ad3308928d Make ViewAtIndex internal (#50501)
Summary:
This class can be internalized as part of the initiative to reduce the public API surface. I've checked there are [no relevant OSS usages](https://github.com/search?type=code&q=NOT+is%3Afork+NOT+org%3Afacebook+NOT+repo%3Areact-native-tvos%2Freact-native-tvos+NOT+repo%3Anuagoz%2Freact-native+NOT+repo%3A2lambda123%2Freact-native+NOT+repo%3Abeanchips%2Ffacebookreactnative+NOT+repo%3AfabOnReact%2Freact-native-notes+NOT+user%3Ahuntie+NOT+user%3Acortinico+NOT+repo%3AMaxdev18%2Fpowersync_app+NOT+repo%3Acarter-0%2Finstagram-decompiled+NOT+repo%3Am0mosenpai%2Finstadamn+NOT+repo%3AA-Star100%2FA-Star100-AUG2-2024+NOT+repo%3Alclnrd%2Fdetox-scrollview-reproductible+NOT+repo%3ADionisisChytiris%2FWorldWiseTrivia_Main+NOT+repo%3Apast3l%2Fhi2+NOT+repo%3AoneDotpy%2FCaribouQuest+NOT+repo%3Abejayoharen%2Fdailytodo+NOT+repo%3Amolangning%2Freversing-discord+NOT+repo%3AScottPrzy%2Freact-native+NOT+repo%3Agabrieldonadel%2Freact-native-visionos+NOT+repo%3AGabriel2308%2FTestes-Soft+NOT+repo%3Adawnzs03%2FflakyBuild+NOT+repo%3Acga2351%2Fcode+NOT+repo%3Astreeg%2Ftcc+NOT+repo%3Asoftware-mansion-labs%2Freact-native-swiftui+NOT+repo%3Apkcsecurity%2Fdecompiled-lightbulb+com.facebook.react.uimanager.ViewAtIndex).

## Changelog:

[INTERNAL] - Make com.facebook.react.uimanager.ViewAtIndex internal

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

Test Plan:
```bash
yarn test-android
yarn android
```

Reviewed By: javache

Differential Revision: D72549751

Pulled By: cortinico

fbshipit-source-id: 8fec0e0b0516575ea5a815cfd2786c61a8c62d37
2025-04-07 02:58:41 -07:00
Riccardo Cipolleschi c0d96a5bc6 Avoid crashes when RCTInstance is ready but modules are loaded (#50499)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50499

We enocuntered an issue internally where the `RCTInstance` was ready before the modules were done registering statically.
When this happens, it can occur that we iterate over an array that is going to be modified.

With this change, we are introducing several changes:
- By default the logs are not outputted, so the array is not going to be populated
- we are making a copy of the array before we start iterating, so even if the original reference is updated, the iteration is safe
- we are not emitting logs if in release mode. This will protect production from this issue. Also, these warns are not going to be useful in production anyway.

## Changelog:
[Internal] - fix crash when RCTInstance is ready while modules are initialized

## Facebook:
This fixes T220205371

Reviewed By: Abbondanzo

Differential Revision: D72512518

fbshipit-source-id: 32e561111d034455a6a778d05af4a96602b74bfb
2025-04-06 02:23:30 -07:00
David Vacca f0ad394464 Unmark ReactMethod as LegacyArchitecture
Summary:
ReactMethod will remain to be supported in the New Architecture, we are unmarking it

changelog: [internal] internal

Reviewed By: shwanton

Differential Revision: D72491698

fbshipit-source-id: 656b36711dcdfc0a776ac05b1f7f431d6416f9dd
2025-04-04 20:13:26 -07:00
generatedunixname89002005287564 a20b02efbf Fix CQS signal. Id] 32912214 -- modernize-use-nullptr in xplat/js/react-native-github/packages/react-native/ReactCommon/logger
Reviewed By: dtolnay

Differential Revision: D72449910

fbshipit-source-id: d246d83f19b374c5fe1260ce8bbe974ccd7ffa15
2025-04-04 18:24:46 -07:00
Tim Yung 45a9279c2e Fantom: Make Object Arguments $ReadOnly
Summary:
Changing these object arguments to `$ReadOnly` permits passing in values that are `$ReadOnly` (e.g. `payload` argument to `enqueueNativeEvent`).

Changelog:
[Internal]

Reviewed By: lyahdav

Differential Revision: D72474879

fbshipit-source-id: 27341131724f4f572b78563975774a5b20dee8f8
2025-04-04 16:15:42 -07:00
Thanich Juthapisuth 512e680d72 Revert D72384347: Move ReactMarker to reactnativejni_common as it's used in NewArch also
Differential Revision:
D72384347

Original commit changeset: 83965c3e4eb7

Original Phabricator Diff: D72384347

fbshipit-source-id: 47cfe95479ce749ebb8e102d147bd5da4fa26e31
2025-04-04 14:22:56 -07:00
Thanich Juthapisuth 91c6cf2aed Revert D72389708: Rename assertWhenLegacyArchitectureMinifyingEnabled to assertLegacyArchitecture
Differential Revision:
D72389708

Original commit changeset: 23830df2f71c

Original Phabricator Diff: D72389708

fbshipit-source-id: 3dd074102cf75c03fa11ad5daf8ddc2f748e7879
2025-04-04 14:22:56 -07:00
Pieter De Baets a5a71f115f Fix leaked ParagraphState when recycling (#50489)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50489

ParagraphState is shared between ParagraphTextView and ParagraphComponentView, but we only need one copy. We were forgetting to clear this on ParagraphTextView when recyling.

Changelog: [iOS][Fixed] ParagraphState is correctly deallocated when recycling Text

Reviewed By: cipolleschi

Differential Revision: D72454038

fbshipit-source-id: 43afa4eaea183cc66b64d16870c1403debff985a
2025-04-04 14:14:31 -07:00
Ruslan Lesiutin 971fb6453c Disallow copying RuntimeSamplingProfile and Sample
Summary:
# Changelog:  [Internal]

We should avoid allocating multiple of these, since they can get really big.

`RuntimeSamplingProfile` may contain up to 10k of `Sample` for every second of sampling. Every `Sample` may contain up to 500 of call frames, each of which may have a copy of strings like `functionName` and `url`.

> NOTE: The actual logic for deduplicating strings and not allocating too many of them is not part of this diff and will be published separately. Even with deduplication, there is a reason to avoid copying the profile.

Reviewed By: javache

Differential Revision: D72254364

fbshipit-source-id: fa7907fb5cabbd2ac99d3e4e05a93bcb07f7f7c7
2025-04-04 14:06:40 -07:00
Ruslan Lesiutin 45c678b36f Remove trailing zeroes from trace event ids
Summary:
# Changelog: [Internal]

This was changed in D70402439.

Since these hexadecimal numbers are serialized as strings, we don't need to includes empty bits, this could save us few kilobytes of the trace in json format.

Also, this is the default for Chromium, so we shouldn't probably diverge.

`0x00000001` -> `0x1`

Reviewed By: robhogan

Differential Revision: D72459307

fbshipit-source-id: 5cc4ccbe25cdc16946e745184ad17dfcd51c6449
2025-04-04 14:06:40 -07:00
Ruslan Lesiutin cbd335569a Don't copy TraceEvent before serialization
Summary:
# Changelog: [Internal]

`"ProfileChunk"` trace events can actually be big, depending on the number of the unique nodes reported in a single chunk.

We should avoid copying it for memory and performance reasons.

Reviewed By: robhogan

Differential Revision: D72459306

fbshipit-source-id: db3583c6c6397bb6ee8a0eb33a06a48bc10e82b8
2025-04-04 14:06:40 -07:00
Nicola Corti 2dab453f34 Rename assertWhenLegacyArchitectureMinifyingEnabled to assertLegacyArchitecture
Summary:
This renames the method to be more aligned to the fact that we're using this entrypoint both for internal
and for OSS users.

I've also added a `assertLegacyArchitectureOnlyWhenMinifyEnabled` that will run only for internal builds.

Changelog:
[Internal] [Changed] -

Reviewed By: mdvacca

Differential Revision: D72389708

fbshipit-source-id: 23830df2f71cc816c7ca178b735a930e794efe47
2025-04-04 12:16:44 -07:00
Nicola Corti 87e78ec75d Move ReactMarker to reactnativejni_common as it's used in NewArch also (#50471)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50471

ReactMarker is currently loading the whole `reactnativejni` which we should not be loading in NewArch.
This is resulting in a warning fired for all the NewArch users with `legacyWarningsEnabled`.

I'm cleaning this up by moving it inside `reactnativejni_common`.

Changelog:
[Internal] [Changed] - Move ReactMarker to `reactnativejni_common` as it's used in NewArch also

Reviewed By: javache

Differential Revision: D72384347

fbshipit-source-id: 83965c3e4eb7847184856485d1cc1c478b2888d5
2025-04-04 12:16:44 -07:00
Liron Yahdav 280caaecfd Remove unused feature flag related to TurboModule deadlock (#50479)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50479

In D72273163 the only reference to RN feature flag `throwExceptionInsteadOfDeadlockOnTurboModuleSetupDuringSyncRenderIOS` was removed, so this diff removes the feature flag. Also it removes remnants of D69922771 which are no longer needed.

Changelog: [Internal]

Reviewed By: shwanton

Differential Revision: D72427164

fbshipit-source-id: 398583ac14910a396839140c06011efa084fe04d
2025-04-04 11:33:27 -07:00
Nicola Corti f0dbb2d969 Unbreak ci due to missing import in Android's helloworld app. (#50497)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50497

I forgot to add this import inside helloworld's MainApplication.

Changelog:
[Internal] [Changed] -

Reviewed By: cipolleschi

Differential Revision: D72464030

fbshipit-source-id: 8cb0982c8ec922bf46c0392a1ca2aed3d1bd9202
2025-04-04 11:23:28 -07:00
Nicola Corti 7ca2811750 Add a legacyWarningsEnabled property to enable Legacy Warnings on NewArch (#50470)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50470

This diff introduces a new property called `legacyWarningsEnabled` for `gradle.properties` that
toggles the Legacy Arch warnings for users.

I've also introduced a new `ReactNativeApplicationEntryPoint` that is generated by RNGP. This class
effectively wrap `DefaultNewArchitectureEntryPoint` by setting warnings and also invoking SoLoader.
It will reduce the errors in the user space.

As of now warnigns appear in Logcat, but I'm looking into adding some UI in a subsequent diff.

Changelog:
[Android] [Added] - Add a `legacyWarningsEnabled` property to enable Legacy Warnings on NewArch

Reviewed By: mdvacca

Differential Revision: D72383907

fbshipit-source-id: bcd659a23ec5b468958124f0f6650ff72d01ce81
2025-04-04 08:17:07 -07:00
Rubén Norte e17a6caf0a Replace module-relative paths with RN package-relative paths in some tests (#50490)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50490

Changelog: [internal]

This follows the good practice in Fantom tests.

Reviewed By: javache

Differential Revision: D72454795

fbshipit-source-id: 412ee53f61073c63295a23fd7decd6f19a72bf99
2025-04-04 07:44:44 -07:00
Mateo Guzmán 3f8134880c Make ClassFinder internal (#50482)
Summary:
This class can be internalized as part of the initiative to reduce the public API surface. I've checked there are [no relevant OSS usages](https://github.com/search?type=code&q=NOT+is%3Afork+NOT+org%3Afacebook+NOT+repo%3Areact-native-tvos%2Freact-native-tvos+NOT+repo%3Anuagoz%2Freact-native+NOT+repo%3A2lambda123%2Freact-native+NOT+repo%3Abeanchips%2Ffacebookreactnative+NOT+repo%3AfabOnReact%2Freact-native-notes+NOT+user%3Ahuntie+NOT+user%3Acortinico+NOT+repo%3AMaxdev18%2Fpowersync_app+NOT+repo%3Acarter-0%2Finstagram-decompiled+NOT+repo%3Am0mosenpai%2Finstadamn+NOT+repo%3AA-Star100%2FA-Star100-AUG2-2024+NOT+repo%3Alclnrd%2Fdetox-scrollview-reproductible+NOT+repo%3ADionisisChytiris%2FWorldWiseTrivia_Main+NOT+repo%3Apast3l%2Fhi2+NOT+repo%3AoneDotpy%2FCaribouQuest+NOT+repo%3Abejayoharen%2Fdailytodo+NOT+repo%3Amolangning%2Freversing-discord+NOT+repo%3AScottPrzy%2Freact-native+NOT+repo%3Agabrieldonadel%2Freact-native-visionos+NOT+repo%3AGabriel2308%2FTestes-Soft+NOT+repo%3Adawnzs03%2FflakyBuild+NOT+repo%3Acga2351%2Fcode+NOT+repo%3Astreeg%2Ftcc+NOT+repo%3Asoftware-mansion-labs%2Freact-native-swiftui+NOT+repo%3Apkcsecurity%2Fdecompiled-lightbulb+com.facebook.react.common.ClassFinder).

## Changelog:

[INTERNAL] - Make com.facebook.react.common.ClassFinder internal

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

Test Plan:
```bash
yarn test-android
yarn android
```

Reviewed By: cortinico

Differential Revision: D72445636

Pulled By: javache

fbshipit-source-id: 678327173afbbd5140eef163782051203b4f175b
2025-04-04 06:45:32 -07:00
Rubén Norte 150b1ccaba Clean up enableUIConsistency feature flag (#50484)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50484

Changelog: [internal]

This cleans up the `enableUIConsistency` feature flag (shipping the feature) after we verified it was stable and performance in production.

Reviewed By: yungsters

Differential Revision: D72387602

fbshipit-source-id: 11d225d962f7e3a47e858d039b7fd5c70a6cadfd
2025-04-04 05:38:29 -07:00
Mateo Guzmán 76cfce768d Make DevMenuModule internal (#50483)
Summary:
This class can be internalized as part of the initiative to reduce the public API surface. I've checked there are [no relevant OSS usages](https://github.com/search?type=code&q=NOT+is%3Afork+NOT+org%3Afacebook+NOT+repo%3Areact-native-tvos%2Freact-native-tvos+NOT+repo%3Anuagoz%2Freact-native+NOT+repo%3A2lambda123%2Freact-native+NOT+repo%3Abeanchips%2Ffacebookreactnative+NOT+repo%3AfabOnReact%2Freact-native-notes+NOT+user%3Ahuntie+NOT+user%3Acortinico+NOT+repo%3AMaxdev18%2Fpowersync_app+NOT+repo%3Acarter-0%2Finstagram-decompiled+NOT+repo%3Am0mosenpai%2Finstadamn+NOT+repo%3AA-Star100%2FA-Star100-AUG2-2024+NOT+repo%3Alclnrd%2Fdetox-scrollview-reproductible+NOT+repo%3ADionisisChytiris%2FWorldWiseTrivia_Main+NOT+repo%3Apast3l%2Fhi2+NOT+repo%3AoneDotpy%2FCaribouQuest+NOT+repo%3Abejayoharen%2Fdailytodo+NOT+repo%3Amolangning%2Freversing-discord+NOT+repo%3AScottPrzy%2Freact-native+NOT+repo%3Agabrieldonadel%2Freact-native-visionos+NOT+repo%3AGabriel2308%2FTestes-Soft+NOT+repo%3Adawnzs03%2FflakyBuild+NOT+repo%3Acga2351%2Fcode+NOT+repo%3Astreeg%2Ftcc+NOT+repo%3Asoftware-mansion-labs%2Freact-native-swiftui+NOT+repo%3Apkcsecurity%2Fdecompiled-lightbulb+com.facebook.react.modules.debug.DevMenuModule).

## Changelog:

[INTERNAL] - Make com.facebook.react.modules.debug.DevMenuModule internal

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

Test Plan:
```bash
yarn test-android
yarn android
```

Reviewed By: cortinico

Differential Revision: D72445725

Pulled By: javache

fbshipit-source-id: 6bace7a31b0b27e5a36e20106ac81d6059553adb
2025-04-04 04:30:55 -07:00
Mateo Guzmán d0ae2d62b8 Remove unused SendAccessibilityEvent class (#50478)
Summary:
Found this unused class with static code analysis. It is internal and has no OSS usages, so it seems like it can be safely deleted.

## Changelog:

[INTERNAL] - Remove unused com.facebook.react.fabric.mounting.mountitems.SendAccessibilityEvent class

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

Test Plan:
```sh
yarn test-android
yarn android
```

Reviewed By: fabriziocucci

Differential Revision: D72445544

Pulled By: javache

fbshipit-source-id: ebbb035da22111e41b04131596d3ec61d4e1423c
2025-04-04 03:44:10 -07:00