Граф коммитов

27784 Коммитов

Автор SHA1 Сообщение Дата
David Vacca fdfa012dae Introduce BoltsFutureTask class to avoid leaking bolts.Task into ReactHost API (#37744)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37744

This diff introduces the new generic class BoltsFutureTask<> that will be used by ReactHost to expose async task in its API.
The goal of BoltsFutureTask is to avoid leadking the bolts.Task dependency into the ReactHost API.

Public methods of this class follow the spec defined in the Future interface, see: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html. I didn't add javadocs to avoid duplicated documentation with Future and also
becuase this is private class.

Task Cancellation follows the patters defined in bolts documentation: https://github.com/BoltsFramework/Bolts-Android#cancelling-tasks

changelog: [internal] internal

Reviewed By: NickGerleman

Differential Revision: D46170466

fbshipit-source-id: eed92584bcd3ff0145e7cbb5d735139fbb6b0f33
2023-06-06 17:43:26 -07:00
Alex Danoff 396cdac629 W3CPointerEvents: properly update hit path during native gestures (#37638)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37638

Changelog: [Android] [Fixed]  - W3CPointerEvents: properly update hit path during native gestures

Per [the W3C spec](https://www.w3.org/TR/pointerevents/#the-pointercancel-event), we need to fire pointerout and pointerleave after firing a pointercancel. However, in cases where the pointer doesn't physically leave the target after a cancel (e.g. scrolling by clicking and dragging), we would never re-fire a pointerenter event once the native gesture was completed. This change fixes the bug by clearing out the last hit path (and other relevant state) for the pointer when we start handling a native gesture. Then we'll re-fire a pointerenter as expected upon the next motion event (due to the logic in handleHitStateDivergence).

Note: this bug only affected hovering pointers (e.g. mouse) because for non-hovering pointers the native gesture won't end unless the pointer is physically removed (i.e. finger is lifted).

Reviewed By: javache

Differential Revision: D46226021

fbshipit-source-id: de796217bac27b169ccf9ed5e0df85f7b63d8c5e
2023-06-06 11:52:07 -07:00
Matt Blagden 3f0caedd4d Handle null connections (#37626)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37626

`inspector_->connect` can return `null` when the connection fails. Check for `null` and raise an exception (preventing a later crash when the `null` connection is used).

Changelog: [Internal]

Reviewed By: voideanvalue

Differential Revision: D46126080

fbshipit-source-id: 42e08687b4d425dd87642cf6b61f675e77c738ee
2023-06-06 08:25:55 -07:00
Pieter De Baets 7fb9e4f46c Provide jsi::Runtime directly to RCTTurboModuleManager (#37687)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37687

We end up creating a stub RuntimeExecutor wherever we configure this, and might as well pass in the runtime directly, to match the other binding installer signatures.

Changelog: [iOS][Deprecated] Use -[RCTTurboModuleManager installJSBindings:] instead of -[RCTTurboModuleManager installJSBindingWithRuntimeExecutor:]

Reviewed By: philIip

Differential Revision: D46390501

fbshipit-source-id: df7644ccbd04462dbbe752c60e5d5961ab50dff5
2023-06-06 08:19:19 -07:00
Nicola Corti ea4724b37c Remove CircularDepsValidator.cmake as is not needed
Summary:
We haven't really used this macro, so it's safe to remove as of now.

Changelog:
[Internal] [Changed] - Remove CircularDepsValidator.cmake as is not needed

Reviewed By: javache

Differential Revision: D46443083

fbshipit-source-id: 2a48749d7af31c393828668006d53c7a6755ac5d
2023-06-06 05:40:20 -07:00
Siddarth Kumar a497882384 Add function `emitMixedProp` to parser-primitives (#37608)
Summary:
[Codegen 132] This PR introduces `emitMixedProp` to parser-primitives and abstracts the logic out of typescript and parser events as requested on https://github.com/facebook/react-native/issues/34872

## Changelog:

[Internal] [Changed] - Add emitMixedProp  to parser-primitives and update usages.

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

Test Plan:
Run yarn jest react-native-codegen and ensure CI is green

## Screenshot of tests passing locally:

<img width="1182" alt="Screenshot 2023-05-28 at 12 46 49 PM" src="https://github.com/facebook/react-native/assets/64726664/dbea4daf-d954-4c7f-b121-c6aad1fb318e">

Reviewed By: dmytrorykun

Differential Revision: D46275638

Pulled By: cipolleschi

fbshipit-source-id: 803d82055c7925e49aca1f408b5c7a50c687349a
2023-06-06 02:31:51 -07:00
MaeIg 663a018709 Extract getTypeAnnotationFromProperty from buildPropertiesForEvent into specific parsers (#37573)
Summary:
This PR aims to remove the duplicated logic in [flow|typescript]/components/events.js files to move it in specific parsers. It is a task of https://github.com/facebook/react-native/issues/34872:
> [Codegen 114 - Assigned to MaeIg] Add a function getTypeAnnotationFromProperty(property) in the Parser object and implement it in FlowParser and TypeScriptParser, using the implementation you can find in the [parsers/flow/components/events.js](e133100721/packages/react-native-codegen/src/parsers/flow/components/events.js (L174-L177)) and parsers/typescript/components/events.js. Use the parsers in the buildPropertiesForEvent.

## Changelog:

[Internal] [Changed] - Extract getTypeAnnotationFromProperty from buildPropertiesForEvent into specific parsers

<!-- 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

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

Test Plan:
Flow:
<img width="600" alt="image" src="https://github.com/facebook/react-native/assets/40902940/554bb82d-b492-4550-9a84-254fc4f78285">

Eslint:
<img width="498" alt="image" src="https://github.com/facebook/react-native/assets/40902940/53a302b7-c2aa-4008-9583-2e3b4cddc14c">

Jest:
<img width="395" alt="image" src="https://github.com/facebook/react-native/assets/40902940/c7ff53f1-2be1-4099-b2e6-081128cf5333">

Reviewed By: dmytrorykun

Differential Revision: D46190831

Pulled By: cipolleschi

fbshipit-source-id: 393a4c4968139ee7061ed4ea524d083af6950e38
2023-06-06 02:31:51 -07:00
tarunrajput 8ffaede05a add handleGenericTypeAnnotation in parser-commons (#37525)
Summary:
Part of https://github.com/facebook/react-native/issues/34872
Move the switch construct from [parsers/typescript/utils.js](e133100721/packages/react-native-codegen/src/parsers/typescript/utils.js (L59-L93)) and [parsers/flow/utils.js](e133100721/packages/react-native-codegen/src/parsers/flow/utils.js (L56-L81)) to the parsers-commons.js file, in a handleGenericTypeAnnotation function. Use that function in place of the switch.

## 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
-->

[Internal][Added]: Added handleGenericTypeAnnotation in parsers-commons

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

Test Plan: `yarn test`

Reviewed By: cortinico

Differential Revision: D46264650

Pulled By: cipolleschi

fbshipit-source-id: a315ee8cad24d91c9e98e5533d4cdc8b43ebc9a0
2023-06-06 02:31:51 -07:00
Arushi Kesarwani 0af806e96c Fixing line truncation issue when numberOfLines = {1} (#37667)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37667

Changelog:
[Android][Fixed] - Fixing line truncation issue in Text containing /n when numberOfLines = {1}

When the text has multiple lines (with new line characters \n to hard-break the lines), and the first line is short enough to fit, Text component with `numberOfLines = {1}` doesn't display "..." at the end and rather disrespects the /n character.

With `numberOfLines = {1}`, On iOS it translates to
`line 1`, on Android & Web it translates to `line 1 line 2...`

**Expected Behavior :**

`line 1...`

Reviewed By: javache, NickGerleman

Differential Revision: D46175963

fbshipit-source-id: 3377c38ab65e6801bddb1f262432f8d156a2641f
2023-06-05 23:31:10 -07:00
Luna Wei cf27e246ce Fix rm (#37706)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37706

Changelog: [Internal] Fix wrong usage of shelljs `rm`

Reviewed By: NickGerleman

Differential Revision: D46450762

fbshipit-source-id: 9e519222642421b596827675af38f643fa84c9f7
2023-06-05 23:25:18 -07:00
Phillip Pan b6b247b874 move host:didInitializeRuntime: to public api
Summary:
Changelog: [Internal]

it appears that having some access to jsi in userland will be necessary for framework developers, so i'm moving this API to the public header.

bypass-github-export-checks

Reviewed By: mdvacca

Differential Revision: D46385184

fbshipit-source-id: 7261c0a8ba8c8c9302f65d440a3a3fb2782c0666
2023-06-05 21:31:29 -07:00
David Vacca 80134f7211 Revert changes on ReactHostDelegate (#37712)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37712

This diff is reverting a change on ReactHostDelegate (D45662329) that caused MobileConfig to not being properly initialize in fb4a.

bypass-github-export-checks

changelog: [internal] internal

Reviewed By: NickGerleman

Differential Revision: D46468413

fbshipit-source-id: 4013ba1b5bdfa50e4cf500bb1524e92303826d90
2023-06-05 20:48:09 -07:00
Phillip Pan 7b763cd3db clean up comments and imports in RCTHost header
Summary:
Changelog: [Internal]

now that we've wrapped up the first iteration of the venice stable apis, let's clean up old comments and reorganize things to prepare this header for documentation.

bypass-github-export-checks

Reviewed By: mdvacca

Differential Revision: D46334662

fbshipit-source-id: 68d6d2e41d7f7c5b1c69f3bb72482c418e771f72
2023-06-05 19:48:29 -07:00
tarunrajput 5062553c62 Add enterKeyHint in TextInput type declaration (#37624)
Summary:
Resolves: https://github.com/facebook/react-native/issues/37622

Related:
https://github.com/facebook/react-native/pull/34482
https://reactnative.dev/docs/textinput#enterkeyhint

## 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
-->
[Internal][Added]: Add enterKeyHint in TextInput type declaration

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

Reviewed By: cortinico, NickGerleman

Differential Revision: D46292040

Pulled By: lunaleaps

fbshipit-source-id: a037b7f8dd0d60880dcf1aec64749546fa54a95d
2023-06-05 13:08:05 -07:00
Phillip Pan 46d14ceab2 delete RCTHostCreationHelpers (#37703)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37703

Changelog: [Internal]

i did too good of a job refactoring that these functions don't abstract any arguments away anymore, so let's just delete it

Reviewed By: javache

Differential Revision: D46303713

fbshipit-source-id: 7e0508a7296ebc3d5c62cf0824071bd2ef041193
2023-06-05 12:31:19 -07:00
Phillip Pan e0a1a18d4b introduce RCTContextContainerHandling (#37702)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37702

Changelog: [Internal]

the context container is a DI object in our internal infra. the delegate method `createContextContainer` is used to pass down internal implementations that may be used in our infra, notably the `ReactNativeConfig`. this API used to be required for the app delegate to implement.

in this change, i introduce a protocol, `RCTContextContainerHandling`, where we shift the burden of creating the DI container to our internal infra where userland can now optionally add dependencies to this.

this also removes more C++ boilerplate for the bridgeless setup.

Reviewed By: sammy-SC

Differential Revision: D46245433

fbshipit-source-id: 552a9ab0b6a178bab592743863694ff886b152f8
2023-06-05 12:31:19 -07:00
Phillip Pan 2861dd2b1e remove bindingsInstallFunc argument from bridgeless api (#37604)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37604

Changelog: [Internal]

this isn't needed anymore, so we can delete it and remove it from our public api

Reviewed By: javache

Differential Revision: D46215054

fbshipit-source-id: 97bc7821aeea47223a4b10684efe750ff1899fa2
2023-06-05 12:31:19 -07:00
Phillip Pan 50fd76ab04 introduce internal delegate callback for jsi runtime initialization (#37605)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37605

Changelog: [Internal]

in this stack, i remove the `bindingsInstallFunc` argument from `RCTHost`'s public API.

the bindingsInstallFunc is a lambda that provides a runtime parameter, which the consumer can "install bindings" to. we have our specific use case for this internally, but there's no need to expose this.

in this change, i introduce a delegate callback path that notifies an internal delegate that the react runtime has been created.

Reviewed By: javache

Differential Revision: D46215051

fbshipit-source-id: 732d6949064b0948b5cf883dc3c0ab494c2ecd94
2023-06-05 12:31:19 -07:00
Siddarth Kumar e73c00f576 Add `getProperties` to Parsers and update usages (#37633)
Summary:
[Codegen 138] This PR introduces `getProperties` to Parser base class and implements the function in Typescript and Flow Parsers.
This PR also gets rid of `getProperties` from :
- `packages/react-native-codegen/src/parsers/typescript/components/componentsUtils.js`
- `packages/react-native-codegen/src/parsers/flow/components/componentsUtils.js`
and updates the usages with `getProperties` from the respective parser objects as requested on https://github.com/facebook/react-native/issues/34872

## Changelog:

[Internal] [Changed] - Add getProperties  to Parsers base class and update usages.

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

Test Plan:
Run yarn jest react-native-codegen and ensure CI is green

## Screenshot of tests passing locally:

![Screenshot 2023-05-31 at 4 38 41 PM](https://github.com/facebook/react-native/assets/64726664/dd660369-eabd-4c2e-a440-a41ed6f9d47a)

Reviewed By: cipolleschi

Differential Revision: D46322882

Pulled By: rshest

fbshipit-source-id: 5506ce5ff395946ea8c1258b152716fea0142b95
2023-06-05 11:48:04 -07:00
Rubén Norte 9c11b81630 Add some additional Systrace markers in Fabric (#37675)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37675

Changelog: [Internal]

Reviewed By: rshest

Differential Revision: D46393554

fbshipit-source-id: 905097c82c96c7f627f1999f53b509ba0f434dd5
2023-06-05 08:53:54 -07:00
ahmadao2214 52154e54a2 Create emitInt32Prop function (#37663)
Summary:
Create a function emitInt32Prop(name: string, optional: boolean) in parser-primitives.js. Factor out the code from [Flow](d8ced6f895/packages/react-native-codegen/src/parsers/flow/components/events.js (L53-L59)) and [TypeScript](d8ced6f895/packages/react-native-codegen/src/parsers/typescript/components/events.js (L63-L69)) into that function. Use that function in the original call site.

## Changelog:
[INTERNAL][ADDED] - emitInt32Prop in parser-primitves

<!-- 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

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

Test Plan: `yarn jest packages/react-native-codegen`

Reviewed By: cipolleschi

Differential Revision: D46437495

Pulled By: rshest

fbshipit-source-id: cebe3958c2ad9c4ab9a6c087fee4317b5e57bc58
2023-06-05 07:48:22 -07:00
shubham0142 34c19232d3 refactor(codegen): extract getCommandProperties to parsers-common (#37666)
Summary:
part of codegen issue https://github.com/facebook/react-native/issues/34872

> Extract the buildCommandProperties function ([Flow](d8ced6f895/packages/react-native-codegen/src/parsers/flow/components/index.js (L76-L80)), [TypeScript](d8ced6f895/packages/react-native-codegen/src/parsers/typescript/components/index.js (L64-L113))) from the index.js's files to the parsers-commons.js file.

## 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
-->

[Internal][Added]: Extract getCommandProperties to parsers-common

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

Test Plan: yarn test react-native-codegen

Reviewed By: cipolleschi

Differential Revision: D46437431

Pulled By: rshest

fbshipit-source-id: 578b94b9d9fec90ac91fa2a56c707abc46b05b99
2023-06-05 05:11:19 -07:00
Blake Friedman 41d5f4bce2 Prevent DEBUG React Native builds idling out (#37681)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37681

User who run their applications using `npx react-native ios` have the application going into the
background if there is inactivity on the device. This is common for users developing on device (why touch
the device if you're tweaking background colours, etc...).

If the application is build with Xcode directly, this is already managed.  This change prevents the idle
timer from running in DEBUG builds.

## Changelog:
[iOS][Fixed] - Debug builds from cli disable idle to stop application going into background

Reviewed By: cipolleschi

Differential Revision: D46427401

fbshipit-source-id: 45969cd506a1b76bde3be81d27808bf0e792a817
2023-06-05 03:00:32 -07:00
Aymane Missouri 805604d1e3 use TripleEqual instead of doubleEqual when comparing two string (#37673)
Summary:
It is generally recommended to use "===" instead of "==" when comparing two strings

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

Test Plan:
## Changelog:
[Internal] [Changed] - use TripleEqual instead of doubleEqual when comparing two string

Reviewed By: cipolleschi

Differential Revision: D46434681

Pulled By: cortinico

fbshipit-source-id: 70522a28799699854d2a4ab814e34ce796082025
2023-06-05 02:19:26 -07:00
Nicola Corti 7a1229ea0f Backport Hermes release fix on `main` (#37685)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37685

I'm backporting this comming `60a452b4853dc5651c465867344904dd6fc86703`
from the release branch of 0.72-stable to main which fixes this issue
in the Android NDK:
https://github.com/android/ndk/issues/1740#issuecomment-1198438260

Changelog:
[Internal] [Changed] - Backport Hermes release fix on `main`

Reviewed By: mdvacca

Differential Revision: D46398346

fbshipit-source-id: 593ca9523cb223e7c2d9fe6cccc1abb3ed331203
2023-06-05 02:18:38 -07:00
Nick Gerleman 2d07d5f160 Native ARIA Roles: iOS Paper + Fabric (#37309)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37309

### Stack

ARIA roles in React Native are implemented on top of accessibilityRole. This is lossy because there are many more ARIA roles than accessibilityRole. This is especially true for RN on desktop where accessibilityRole was designed around accessibility APIs only available on mobile.

This series of changes aims to change this implementation to instead pass the ARIA role to native, alongside any existing accessibilityRole. This gives the platform more control in exactly how to map an ARIA role to native behavior.

As an example, this would allow mapping any ARIA role to AutomationControlType on Windows without needing to fork to add new options to accessibilityRole.

It also allows greater implementation flexibility for other platforms down the line, but for now, iOS and Android behave the same as before (though with their implementation living in native).

### Diff

This enables the `role` prop in iOS. ARIA role strings become convertible to `UIAccessibilityTrait`, which is the sink of most of the roles. We keep a list of traits derived from `role` vs `accessibilityRole` on the view, then inval and apply the result any time the prop for either is set.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D45432530

fbshipit-source-id: ced5be06e319c0b967d7511293e14e05147e5759
2023-06-04 03:48:45 -07:00
Daniel Leong d54f486fe6 Fix: a11y crash when an accessible link is ellipsized away (#37050)
Summary:
If an accessible link is ellipsized out of being rendered, the AccessibilityDelegate will still attempt to populate an accessibility node for it; doing so results in an invalid request to a TextLayout API, however, causing a crash. This crash occurs as soon as the element is rendered, so long as a Screen Reader (or app using similar a11y APIs) is enabled. This change uses a technique similar to those existing to make the node "blank" in such cases, so Talkback can filter it out—and, more importantly, not crash.

## Changelog:

[Android] [Fixed] - Fix links hidden via ellipsis crashing screen readers

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

Test Plan:
- Added a block to the "Accessibility Android APIs" page in the rn-tester app. Without the changes to `ReactAccessibilityDelegate`, this component crashes the app; with the changes, the component renders without problem.
- You can also see the crash "in the wild" using [this Expo Snack](https://snack.expo.dev/dhleong/2d1407) that I put together when trying to isolate this issue.

Reviewed By: rshest

Differential Revision: D46206673

Pulled By: NickGerleman

fbshipit-source-id: 0eb3e735202ee6be5f931bbb4bb92c24e7458ea6
2023-06-04 00:03:01 -07:00
Luna Wei fd9e295bef Publish nightly monorepo packages (#37556)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37556

Changelog: [Internal]

Before making this change, we need to publish `nightly` versions of all existing monorepo dependencies.

Reviewed By: hoxyq

Differential Revision: D46117197

fbshipit-source-id: bcf6364e068579e63ca19e8161dcd32de4353e56
2023-06-02 17:40:52 -07:00
Sam Zhou e25c6632a2 Fix bad type definitions related to utility types (wave 2)
Summary:
This diff fixes more bad type definitions that are previously hidden but will be exposed in the upcoming Flow 0.208.0

Changelog: [Internal]

Reviewed By: panagosg7

Differential Revision: D46382788

fbshipit-source-id: 50337ce5bc0f07ac5916a2d4b75eabf5e8e2e427
2023-06-01 23:17:12 -07:00
Sam Zhou 0191d16712 Fix bad utility type definitions (#37662)
Reviewed By: panagosg7

Differential Revision: D46364595

fbshipit-source-id: 5dcd484cd292d5b83b0b114675ec3c8059aefe6b
2023-06-01 14:41:00 -07:00
Pieter Vanderwerff d9b3339ef8 Upgrade hermes-* packages in xplat and arvr to version 0.12.0 (#37648)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37648

Upgrade hermes parser packages to the latest released versions.

Changelog is here: https://github.com/facebook/hermes/blob/main/tools/hermes-parser/js/CHANGELOG.md
Main differences are improved parser support for new Flow features.

Changelog: [Internal]

Reviewed By: SamChou19815

Differential Revision: D46303102

fbshipit-source-id: 4989581757df6422174b2d0ddb8fd38be94bfc89
2023-06-01 12:02:07 -07:00
Samuel Susla dc54334c59 Create separate pod for React-debug (#37657)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37657

changelog: [internal]

Make React-debug into its own pod to align BUCK and cocoapods.

This is needed to reland RuntimeScheduler in the old architecture on iOS.

Reviewed By: rickhanlonii

Differential Revision: D46357876

fbshipit-source-id: 035aaaee8b4b106f873b4b30c8cb424867be066a
2023-06-01 11:45:57 -07:00
Riccardo Cipolleschi b50874cad4 Remove missing dependencies from React-Fabric (#37652)
Summary:
When reverting the runtimescheduler fix, we forgot to remove some lines from the React-Fabric dependencies. This broke pod install and we have a red ci since then.

bypass-github-export-checks

## Changelog:

[iOS][Fixed] - fix React-Fabric dependencies

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

Test Plan: CircleCI is green

Reviewed By: cipolleschi

Differential Revision: D46349504

Pulled By: sammy-SC

fbshipit-source-id: 8fc1bca7838a913adba702033d06dd02b93c31f9
2023-06-01 04:53:03 -07:00
Nicola Corti b66ab2c154 Configure JDK Toolchain to 11 for all the 3rd party libraries. (#37575)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37575

This fixes the behavior reported in https://github.com/reactwg/react-native-releases/discussions/54#discussioncomment-5984629
by forcing all the libraries to compile with JDK 11.

This prevents build issues when on Gradle 8 and Kotlin 1.8

Changelog:
[Internal] [Changed] - Configure JDK Toolchain to 11 for all the 3rd party libraries

Reviewed By: cipolleschi

Differential Revision: D46190989

fbshipit-source-id: c88974d24efc2c35b01f28d41af0d0515d63d765
2023-06-01 03:24:45 -07:00
Sam Zhou daf6e53ae1 Upgrade to Flow v0.207.0 (#37601)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37601

Changelog: [Internal]

Reviewed By: pieterv

Differential Revision: D46225499

fbshipit-source-id: d7d444d5bd53fd4ddb97f884fa121548a7a923e1
2023-06-01 00:19:14 -07:00
Nicola Corti ddb8aeadbb Enable mock-maker-inline for Android JVM tests (#37646)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37646

I'm re-enabling a test that got disabled due to us not using mock-maker-inline in OSS. I'm also adding `mock-maker-inline` for OSS so it will be easier to convert tests to Kotlin as classes in Kotlin are final by default.

Changelog:
[Internal] [Changed] - Enable mock-maker-inline for Android JVM tests

Reviewed By: NickGerleman

Differential Revision: D46222913

fbshipit-source-id: b7da0616994888c2800c193a1bb8e233d2c18288
2023-05-31 23:23:17 -07:00
Ramanpreet Nara 462c648b58 Interop: Create gating for the Bridge proxy
Summary:
The TurboModule interop layer on iOS will ship with a Bridge proxy.

The Bridge proxy is an object (see D46084318) that will try to simulate the Bridge's APIs, whenever possible, by delegating to Bridgeless abstractions.

## Changes
**Fact:** All FBiOS modules work with/without the bridge.

So, let's break down the Interop layer test group (i.e: interop on) into two groups:
- interop on, bridge proxy off
- interop on, bridge proxy on

## Benefits
This will speed up the production test, by allowing us to:
1. Isolate Interop issues to the bridge proxy faster.
2. Stabilize the TurboModule interop layer faster.

NOTE: This flag is temporary, and should be removed long-term: The TurboModule interop layer should ship with the bridge proxy enabled by default.

Changelog: [Internal]

Reviewed By: philIip

Differential Revision: D46088752

fbshipit-source-id: 1e161d49382635a44194166645c1a5d56d37b4de
2023-05-31 16:13:05 -07:00
Ramanpreet Nara 197ed43697 Export moduleIsInitialized from RCTModuleRegistry
Summary:
## Context
Product code can query the Bridge, or the TurboModuleManager, to see whether a native module has been initialized or not. But, this API doesn't exist in RCTModuleRegistry.

## Changes
This diff exports moduleIsInitialized: from RCTModuleRegistry. That way, RCTBridgeProxy (introduce in D46088752) can more easily implement the moduleIsInitialized: API.

Changelog:
[iOS][Added] - Introduce RCTModuleRegistry moduleIsInitialized:

Reviewed By: cortinico

Differential Revision: D46166548

fbshipit-source-id: c9954273e511083276aeb911dd58719cf4a11f10
2023-05-31 16:13:05 -07:00
Ramanpreet Nara e2d512a1ee Delete bridge.loadAndExecuteSplitBundleURL
Summary:
Changelog:
[iOS][Removed] - Delete bridge.loadAndExecuteSplitBundleURL

Reviewed By: cortinico

Differential Revision: D46166549

fbshipit-source-id: a0854e4abcdd11542629f5f6bbce89c45e30e9cd
2023-05-31 16:13:05 -07:00
Nicola Corti 70f3a264e2 Remove unnecessary dependency on aapt2-linux (#37643)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37643

We needed this change for offline mirrors which we don't use anymore, so we can remove
this extra dependency (it will make the build a little faster also which is never bad).

Changelog:
[Internal] [Changed] - Remove unnecessary dependency on aapt2-linux

Reviewed By: mdvacca

Differential Revision: D46318725

fbshipit-source-id: a86b43fff6a11844acff88791af0578d79d7fdbf
2023-05-31 15:20:57 -07:00
Ramanpreet Nara d0fed3adb6 Remove noexcept from UIManager methods that invoke JavaScript callbacks
Summary:
As far as I'm aware, there's no way to know/guarantee whether a JavaScript callback can throw an exception or not.

So, all UIManager methods that synchronously invoke JavaScript callbacks cannot use noexcept.

If they do use noexcept, and the JavaScript callback (i.e: product code) throws an exception, the app will crash.

Changelog: [Internal]

Created from CodeHub with https://fburl.com/edit-in-codehub

Reviewed By: javache

Differential Revision: D46122985

fbshipit-source-id: 2f4356c7dbab1b3a5e0549f58e73f6de1b626ce9
2023-05-31 13:02:12 -07:00
Samuel Susla b55f55198c Fix header imports (#37625)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37625

changelog: [internal]

- Add explicit <memory> import
- change include to import.

Reviewed By: FieryRobot

Differential Revision: D46284890

fbshipit-source-id: 8eb656c28f58295468b964e86f59b91ca562b570
2023-05-31 06:58:15 -07:00
Chetan Ambekar 0e83c53122 Revert D46194126: Prepare bolts.Task to be safe to be usde from Kotlin
Differential Revision:
D46194126

Original commit changeset: 765af7683fa6

Original Phabricator Diff: D46194126

fbshipit-source-id: e35e25dada9006c654cf02f269f3c1c6fc5c6b13
2023-05-30 17:35:54 -07:00
David Vacca 730ca35405 Prepare bolts.Task to be safe to be usde from Kotlin
Summary:
In this diff I analyzed bolts.Task class to ensure it's ready to be used from kotlin.
I won't convert bolts.Task to kotlin, but this is necessary to be able to convert its callsites (ReactHost) to kotlin

This is a 'continuation' of the previous diff, I splitted in 2 because Task is a very large class and it's worth analyzing separately.

bypass-github-export-checks

changelog: [internal] internal

Reviewed By: cortinico

Differential Revision: D46194126

fbshipit-source-id: 765af7683fa62814747c7d8516d311cffabac3c1
2023-05-30 13:13:36 -07:00
David Vacca dfb42a3946 Prepare bolts to be safe to use it from Kotlin
Summary:
In this diff I analyzed bolts library to ensure it's ready to be used from kotlin.
I won't convert bolts to kotlin, but this is necessary to be able to convert its callsites (ReactHost) to kotlin

bypass-github-export-checks

changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D46194127

fbshipit-source-id: 609e356230b1c87fe26571b811d23430d0168276
2023-05-30 13:13:36 -07:00
Samuel Susla 88eef42cab Back out "Enable RuntimeScheduler in old architecture" (#37623)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37623

Original commit changeset: 5f18cbe60e6c

Original Phabricator Diff: D46078324

changelog: [internal]

Resolves S344737

Reviewed By: FieryRobot

Differential Revision: D46281951

fbshipit-source-id: dae1f7afe549686e3d5bbacf786c088bbfa49cca
2023-05-30 13:00:07 -07:00
Kevin VanGelder 02a73ca856 Fix missing `atomic` import (#37621)
Summary:
Native error: `Declaration of 'atomic_bool' must be imported from module 'std.atomic' before it is required.`

## Changelog:

[IOS] [FIXED] - Add missing `atomic` import

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

Test Plan: This build error appears to only occur when other build errors occur, but it supersedes the other build errors, increasing the difficulty of debugging the root build error(s).

Reviewed By: NickGerleman

Differential Revision: D46284208

Pulled By: sammy-SC

fbshipit-source-id: b36cb3a9166b1e7cef0121a2e635a191bd7c3a5e
2023-05-30 12:13:12 -07:00
Dmitry Rykun 7f22db8ea0 Introduce __nativeComponentRegistry__getNativeViewConfig (#37522)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37522

This diff adds cross-platform Cxx binding helper and iOS specific implementation of `__nativeComponentRegistry__getNativeViewConfig` to JS runtime. This function provides native view config for a native component in bridgeless mode.

Changelog:
[Internal] - Introduce `__nativeComponentRegistry__getNativeViewConfig` in iOS.

Reviewed By: javache

Differential Revision: D43538804

fbshipit-source-id: 0aeca40c1c2a625eca5d60e466eb24df30453ba7
2023-05-30 08:04:23 -07:00
Pieter De Baets da3dcd7326 Use SurfaceRegistry globals whenever available (#37410)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37410

Incremental adoption of new bridgeless API's, where they are semantically equivalent to the old one.

Changelog: [Internal]

Reviewed By: christophpurrer

Differential Revision: D45736529

fbshipit-source-id: e41f6840e7c329f6051530e53773fae760584842
2023-05-30 07:20:25 -07:00
Riccardo Cipolleschi b0864fd9df Add tests in CI not to break Hermes-Xcode integration (#37616)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37616

Add tests in CircleCI to avoid that changes in Hermes can break the Xcode integration.

## Changelog:
[Internal] - Add CI tests to avoid to break the Hermes-Xcode integration

Reviewed By: cortinico

Differential Revision: D46265656

fbshipit-source-id: 176f1a33fe6944a68fb14b62e5c626fe30d296cc
2023-05-30 07:15:02 -07:00