Commit Graph
32464 Commits
Author SHA1 Message Date
yakupozbaydar a9f5b3cacc chore: ☂️ Migrate UIManagerModuleConstantsHelperTest.kt to AssertJ (#45648)
Summary:
Issue: https://github.com/facebook/react-native/issues/45596

## Changelog:

[INTERNAL] [CHANGED] - Migrate UIManagerModuleConstantsHelperTest.kt to AssertJ testing library

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

Test Plan: Run ./gradlew -p packages/gradle-plugin test

Reviewed By: christophpurrer

Differential Revision: D60178766

Pulled By: cortinico

fbshipit-source-id: 480e2d9d4bab2ca4e46b05cda0b107ab9e024136
2024-07-25 02:25:49 -07:00
Jan Jaworski 6b9e96d63b chore: migrate tests to assertj (DialogModuleTest, ReactModuleInfoTest, FabricUIManagerTest.kt) (#45644)
Summary:
https://github.com/facebook/react-native/issues/45596

https://github.com/facebook/react-native/issues/45596#issuecomment-2247801893

## Changelog:

Migrate tests to assertj in these files:
- `packages/react-native/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.kt`
- `packages/react-native/ReactAndroid/src/test/java/com/facebook/react/modules/model/ReactModuleInfoTest.kt`
- `packages/react-native/ReactAndroid/src/test/java/com/facebook/react/fabric/FabricUIManagerTest.kt`

Pick one each for the category and type tags:

[INTERNAL] [CHANGED] - Migrated `DialogModuleTest.kt`,`ReactModuleInfoTest.kt`, and `FabricUIManagerTest.kt`

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

Test Plan:
Run tests and verify if they pass

<img width="317" alt="image" src="https://github.com/user-attachments/assets/21a4feba-4221-4cdb-967e-e8d864ad6e93">

<img width="292" alt="image" src="https://github.com/user-attachments/assets/2947a473-6221-4b7e-84d0-9fbf0ba6adc0">

<img width="289" alt="image" src="https://github.com/user-attachments/assets/3f14cb7f-9a21-4f94-a677-a1b84ddea4b9">

Reviewed By: javache

Differential Revision: D60172126

Pulled By: cortinico

fbshipit-source-id: ffe37bae3555fc916a71e02208fc56707be6417d
2024-07-25 01:42:44 -07:00
Miguel Daipré 053865bd80 feat: migrate BuildCodegenCLITaskTest and PrepareGlogTaskTest to AssertJ (#45649)
Summary:
Issue: https://github.com/facebook/react-native/issues/45596

## Changelog:

[ANDROID] [CHANGED] - Migrated `BuildCodegenCLITaskTest`, `PrepareGlogTaskTest` from junit.Assert to assertj.core.api.Assertions.

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

Test Plan: Run `./gradlew -p packages/gradle-plugin test`

Reviewed By: christophpurrer

Differential Revision: D60178114

Pulled By: cortinico

fbshipit-source-id: f0cfe9da945829a2bada8e9807eb1877240d93d6
2024-07-25 01:33:28 -07:00
Ömer Esmer e553acaf1e chore: ☂️ Migrate InteropUiBlockListenerTest.kt to AssertJ #45610 (#45635)
Summary:
Issue: https://github.com/facebook/react-native/issues/45596

## Changelog:

[INTERNAL] [CHANGED] - Migrated to AssertJ within file `InteropUiBlockListenerTest.kt`

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

Test Plan: Run `./gradlew -p packages/gradle-plugin test`

Reviewed By: realsoelynn

Differential Revision: D60183376

Pulled By: arushikesarwani94

fbshipit-source-id: 534566642e246e88367cdc72fb2284c6d1a08005
2024-07-24 18:27:51 -07:00
David Vacca 64f630df8e Delete Scheduler.reduceDeleteCreateMutationLayoutAnimation (#45628)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45628

Scheduler.reduceDeleteCreateMutationLayoutAnimation is unused, I'm deleting in this diff

changelog: [internal] internal

Reviewed By: sammy-SC

Differential Revision: D60142585

fbshipit-source-id: 5573ca230c4007c348e64ca967604d791f69fde4
2024-07-24 16:53:53 -07:00
Kevin Gozali a634b57650 Allow passing through optional custom transform options to Metro (#45634)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45634

This allows the Android runtime to pass additional options to Metro. Each app can
decide what to send based on the needs. The use case is to send
transform.xyz=somevalue to Metro.

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D60155757

fbshipit-source-id: 006d5ff2e3f14634fb39d44b390f30da479b1faa
2024-07-24 14:48:54 -07:00
Kevin Gozali 8effe781d3 Allow passing through optional custom transform options to Metro (#45621)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45621

This allows the iOS runtime to pass additional options to Metro. Each app can
decide what to send based on the needs. The use case is to send
`transform.xyz=somevalue` to Metro.

Changelog: [Internal]

Reviewed By: cipolleschi

Differential Revision: D60143663

fbshipit-source-id: 3e35a01a0ee121096d3a5cf0547e8e0ebf77f8ce
2024-07-24 14:48:54 -07:00
Alex Hunt 5cf72ca046 Fix translatability of modules using event-target-shim (#45646)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45646

As titled. This is adapted from https://github.com/facebook/react-native/pull/45056.

Changelog: [Internal]

Reviewed By: GijsWeterings

Differential Revision: D60173075

fbshipit-source-id: 9ce1c96d333b7e6b84d9b7650bc4179ebf86d267
2024-07-24 14:46:39 -07:00
Miguel Daipré 7aff1b9bd8 feat: migrate DefaultNewArchitectureEntryPointTest, InteropEventEmitterTest and InteropModuleRegistryTest to AssertJ (#45623)
Summary:
Issue: https://github.com/facebook/react-native/issues/45596

## Changelog:

[ANDROID] [CHANGED] - Migrated `DefaultNewArchitectureEntryPointTest`, `InteropEventEmitterTest`, `InteropModuleRegistryTest` from junit.Assert to assertj.core.api.Assertions.

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

Test Plan: Run `./gradlew test`

Reviewed By: cortinico

Differential Revision: D60151876

Pulled By: arushikesarwani94

fbshipit-source-id: c8b82fbfc7aae54e2524e7d8e876ee9ffbc10b9b
2024-07-24 14:38:49 -07:00
Joe Vilches ee17ca881a Let inset shadows have rounded corners (#45624)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45624

Must have forgot to add this functionality in, since it was just using a Rect for the clear region. This uses the proper rounded path.

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D60147035

fbshipit-source-id: 3eebb2c4a56e4dfc957213e54f3d2de2c966082b
2024-07-24 14:00:05 -07:00
Joe Vilches 6fc3d359b5 Use needsInvalidateLayer, not _needsInvalidateLayer for filter and box shadow (#45622)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45622

The rest of these props setters opts to use `needsInvalidateLayer`, not `_needsInvalidateLayer` the latter of which is a instance variable. This change no effect since we set `_needsInvalidateLayer` to the or of both below, but we should be consistent with the rest of the logic here.

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D60144215

fbshipit-source-id: b4b863d964a688c1cb9f6fada626d390681d1542
2024-07-24 14:00:05 -07:00
Joe Vilches e42533294b Don't invalidate layer for mix blend mode (#45620)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45620

This does not really depend on anything in the layer. It is just a prop on the layer itself, so we can just set it in place. This pattern already happens for things like transform: https://fburl.com/code/0bhsdlcy

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D60142154

fbshipit-source-id: 52ee0e1e6eacf3bba005a727a5a4325a5cc6d338
2024-07-24 14:00:05 -07:00
Joe Vilches 7ba801b7f0 Fix issue where shadows were not being cleaned up (#45613)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45613

We had a bug where box shadows were not getting cleaned up. The fix here is easy - just call `[_boxShadowLayer removeFromSuperView]`. Previously we were just setting this layer to nil, which does not do the job.

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D60137528

fbshipit-source-id: 310df944f63ffc73ee5fe938cfb5a48674f997ab
2024-07-24 14:00:05 -07:00
Jack Su f9ac5b737a Fixed race condition issue which caused Bloks page not loading issue
Summary:
## Context

During TW Bloks testing, I frequently encounter the issue of a page not loading. After investigating further, I discovered that for one XOCReactNativeHost, there are multiple instances of ReactInstanceManager created. One of them is properly initialized with XOCLoginActivity, while the other one is not initialized and its activity is null.

When calling ReactContext onHostResume, there is a small chance that the ReactInstanceManager with a null activity will be used, resulting in a "no activity" issue.

After analyzing the construction call stack of ReactInstanceManager, it appears that there is a race condition in the function of ReactNativeHost.getReactInstanceManager https://fburl.com/code/kh6o84m9.
I noticed that two threads are calling this function simultaneously, which can lead to the creation of two instances despite the `mReactInstanceManager == null check`, as it is not within a synchronized statement.

An example of one ReactNativeHost with multiple ReactInstanceManagers can be found at https://fburl.com/code/kh6o84m9.

{F1768111631}

The following are the call stack to create the ReactInstanceManagers, the line number may have slightly shift from the prod code because of debugging info.

P1490866855
P1490869412

## About this diff
Added synchronized lock to the checking of `mReactInstanceManager == null` and make  mReactInstanceManager as volatile to avoid creating duplicated instance.

## Changelog:
[Android] [Fixed] - Made several methods in ReactNativeHost.java thread-safe to avoid race conditions

bypass-github-export-checks

Reviewed By: javache

Differential Revision: D60088120

fbshipit-source-id: a4c1970bb54c7395dbfc3282d02bd66d9dc95df9
2024-07-24 13:47:40 -07:00
Nicola Corti cb6ea49123 Fix warning on scripts/releases-ci/__tests__/publish-updated-packages-test.js (#45643)
Summary:
This just fixes a warning in scripts/releases-ci/__tests__/publish-updated-packages-test.js that the CI is firing on every PR

## Changelog:

[INTERNAL] - Fix warning on scripts/releases-ci/__tests__/publish-updated-packages-test.js

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

Test Plan: CI

Reviewed By: blakef

Differential Revision: D60170227

Pulled By: cortinico

fbshipit-source-id: 5889f7dd530cc00651d683001e1f2624bd79c27e
2024-07-24 12:41:00 -07:00
Oskar Kaczmarzyk 4cc46e3ca6 chore: tests migration to assertj (KotlinStdlibCompatUtilsTest, ModelAutolinkingDependenciesJsonTest, PathUtilsTest, DependencyUtilsTest, ProjectUtilsTest) (#45606)
Summary:
https://github.com/facebook/react-native/issues/45596

## Changelog:

Migrated to AssertJ within files:
- `KotlinStdlibCompatUtilsTest.kt`,
- `ModelAutolinkingDependenciesJsonTest.kt`,
- `PathUtilsTest.kt`,
- `DependencyUtilsTest.kt`,
- `ProjectUtilsTest.kt`.

[INTERNAL] [CHANGED] - Migrated `KotlinStdlibCompatUtilsTest`, `ModelAutolinkingDependenciesJsonTest`, `PathUtilsTest`, `DependencyUtilsTest`, `ProjectUtilsTest` from `junit.Assert` to `assertj.core.api.Assertions`.

## Test Plan

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

Reviewed By: javache

Differential Revision: D60166231

Pulled By: cortinico

fbshipit-source-id: 5092e7d0d4c8d0a8737183962bda62ed1f54ccda
2024-07-24 09:44:45 -07:00
Dan Melnic 2052a1dfa3 Fix warning C4100: 'rt': unreferenced formal parameter (#45633)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45633

Changelog: [Internal]
Fix warning C4100: 'rt': unreferenced formal parameter

Differential Revision: D60152935

fbshipit-source-id: 9fe4b934721d38e7edf5c3329c40f5c0595a2897
2024-07-24 09:28:18 -07:00
Ramanpreet Nara 842c382773 Refactor: RuntimeScheduler: Make error handlers configurable (#45616)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45616

We want to eventually route all js error handling through JsErrorHandler in bridgeless.

This will help with that.

Changelog: [Internal]

Reviewed By: rubennorte

Differential Revision: D60138415

fbshipit-source-id: de62edfe75066ba135225e24543628306aa5f4a0
2024-07-24 08:57:31 -07:00
Jakub Piasecki dc8c8ebc5b Disable JS batching when animation batch is finished on Android (#45563)
Summary:
When an animation using the native driver [is started](https://github.com/facebook/react-native/blob/c82edec62e2149a746627c6b474d4d413f545128/packages/react-native/Libraries/Animated/animations/Animation.js#L89), all animated operations are [queued](https://github.com/facebook/react-native/blob/c82edec62e2149a746627c6b474d4d413f545128/packages/react-native/Libraries/Animated/NativeAnimatedHelper.js#L115). The queue is then flushed as part of [a single batch](https://github.com/facebook/react-native/blob/c82edec62e2149a746627c6b474d4d413f545128/packages/react-native/Libraries/Animated/NativeAnimatedHelper.js#L173-L181). The problem here is that when a batch is executed, on the native side a [flag is flipped](https://github.com/facebook/react-native/blob/c82edec62e2149a746627c6b474d4d413f545128/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java#L543) and it assumes that JS will take control of the batching operation from that point onward, which is not the case. Operations are queued with the current batch number but are never executed, since the new "batch" is never finished. The case which let to figuring it out is the creation of `AnimatedInterpolation` in the [sticky header component](https://github.com/facebook/react-native/blob/c82edec62e2149a746627c6b474d4d413f545128/packages/react-native/Libraries/Components/ScrollView/ScrollViewStickyHeader.js#L215).

This PR changes this by returning to the default behavior when the batch is completed.

Fixes https://github.com/facebook/react-native/issues/45229

## Changelog:

[ANDROID] [FIXED] - Fix scheduled animated operations not being executed in some cases

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

Test Plan: Tested on Animated examples in RNTester and on the reproducer app from the issue

Reviewed By: cipolleschi

Differential Revision: D60108049

Pulled By: dmytrorykun

fbshipit-source-id: 9c14d116b0df2c78fbbb00cf7224bddd09ae5796
2024-07-24 06:09:45 -07:00
Janic Duplessis 19cffab383 Fix legacy view interop apis not available in view method (#45609)
Summary:
When trying to use the legacy view interop with `stripe/stripe-react-native` there is an issue with the `CardField` component because it tries to access module registry inside the `view` method (https://github.com/stripe/stripe-react-native/blob/master/ios/CardFieldManager.swift#L7).

The problem is that we attach the legacy view apis after creating view, so they are not available in that method.

To fix this we can change the order of the methods and attach the apis first. Note that we also need to use the `manager` method instead of `bridgelessViewManager` since `bridgelessViewManager` is not initialized otherwise, it is initialized lazily in the `manager` method.

## Changelog:

[IOS] [FIXED] - Fix legacy view interop apis not available in view method

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

Test Plan: Tested in an app that legacy interop apis (`moduleRegistry`) is available in the `view` method in an app using RN 0.74 with bridgeless mode enabled.

Reviewed By: cipolleschi

Differential Revision: D60165191

Pulled By: dmytrorykun

fbshipit-source-id: 60187556fb36d342bb1ef084a093132bdb0496bd
2024-07-24 06:08:45 -07:00
Dong-Hwan Kim 1dcbf41725 fix: add missing submitBehavior prop type and mark blurOnSubmit prop as deprecated in typescript declaration file of TextInput (#45588)
Summary:
Hi, I just found out that https://github.com/facebook/react-native/pull/33653 adds a new prop in `TextInput` that enables multiline `TextInput` be able to submit without blurring.

It does that by adding a new prop called `submitBehavior` which accepts `'submit' | 'blurAndSubmit' | 'newline'`:
https://github.com/facebook/react-native/blob/700b403e06fdcbcde2a4ade9570eb572431487ea/packages/react-native/Libraries/Components/TextInput/TextInput.js#L195

https://github.com/facebook/react-native/blob/700b403e06fdcbcde2a4ade9570eb572431487ea/packages/react-native/Libraries/Components/TextInput/TextInput.js#L910-L928

It also marks `blurOnSubmit` prop as deprecated since it can now be handled from `submitBehavior`:
https://github.com/facebook/react-native/blob/700b403e06fdcbcde2a4ade9570eb572431487ea/packages/react-native/Libraries/Components/TextInput/TextInput.js#L896-L908

However, that PR doesn't update `TextInput.d.ts` file which results Typescript to complain that the type doesn't exist:
<img width="760" alt="text_input_error" src="https://github.com/user-attachments/assets/2235cb36-1e4e-4ec9-a8b0-c09728a3336f">

So this PR adds and updates the types in declaration file to support them in Typescript
<img width="520" alt="fixed" src="https://github.com/user-attachments/assets/a7a3a0c4-9f3e-4644-bfac-ae60ac21d0f7">

## Changelog:

[GENERAL] [FIXED] - add missing `submitBehavior` prop and mark `blurOnSubmit` prop as deprecated in Typescript declaration file of `TextInput`

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

Test Plan:
Before:
<img width="295" alt="before" src="https://github.com/user-attachments/assets/90ed0cd1-c127-4667-bf72-6b5317ea4dd6">

After:
<img width="589" alt="after1" src="https://github.com/user-attachments/assets/826002a4-45dc-4f97-882d-7622238ac766">

<img width="833" alt="after2" src="https://github.com/user-attachments/assets/467eeecd-4b0b-4740-ac78-253e3c7aa901">

Reviewed By: christophpurrer

Differential Revision: D60107516

Pulled By: dmytrorykun

fbshipit-source-id: ce79e41aefc1ef39dc1d44179405cf6a8d5e12de
2024-07-24 02:25:08 -07:00
Blake Friedman cab905bb57 Allow cache reaper to skip failing cache removal request (#45593)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45593

I'm guessing either there is a race condition between Github removing cache entries when we're over budget OR there is an eventual consistency issue between reported cache entries and their removal.  Either way, this job is best efforts.  If a entry targetted for removal isn't there, great.

This change prevents the job from stopping if an entry no longer exists.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D60106847

fbshipit-source-id: 252bba7bb0bbb91d279f06a39301491332cd5ace
2024-07-24 00:45:05 -07:00
bufgix d25249442d chore: ☂️ Migrate BlobModuleTest.kt to AssertJ (#45610)
Summary:
Issue: https://github.com/facebook/react-native/issues/45596

## Changelog:

[INTERNAL] [CHANGED] - Migrated to AssertJ within file `BlobModuleTest.kt`

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

Test Plan: `Run ./gradlew -p packages/gradle-plugin test`

Reviewed By: mdvacca

Differential Revision: D60138457

Pulled By: cortinico

fbshipit-source-id: 8dcbede98130c24da2d81525d6596a8e4b4aa402
2024-07-24 00:14:28 -07:00
gustavoabel 7829de6221 chore: ☂️ migrate BackwardCompatUtilsTest to AssertJ (#45607)
Summary:
Issue: https://github.com/facebook/react-native/issues/45596

## Changelog:

Migrated to AssertJ within file:
- ```BackwardCompatUtilsTest.kt```

Changelog:
[Internal] [Changed] -  chore: ☂️ migrate BackwardCompatUtilsTest to AssertJ

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

Test Plan: Run ```./gradlew -p packages/gradle-plugin test```

Reviewed By: mdvacca

Differential Revision: D60137770

Pulled By: cortinico

fbshipit-source-id: 883b2abee430ce45018808fa934a7949ae23fcaf
2024-07-24 00:08:49 -07:00
Miguel Daipré e7881c2f45 feat: migrate JsonUtilsTest, OsTest and TaskUtilsTest to AssertJ (#45608)
Summary:
Issue: https://github.com/facebook/react-native/issues/45596

Note:

The formatting changes have been altered by Android Studio. `Code -> Format Code`

## Changelog:

[INTERNAL] [CHANGED] - Migrated `JsonUtilsTest`, `OsTest`, `TaskUtilsTest` from junit.Assert to assertj.core.api.Assertions.

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

Test Plan: Run `./gradlew -p packages/gradle-plugin test`

Reviewed By: mdvacca

Differential Revision: D60137234

Pulled By: cortinico

fbshipit-source-id: 236dc46dd04ad1f62a5e11fd77cf2c63bec99cff
2024-07-23 16:56:59 -07:00
Rubén Norte 010c004d75 Rename track for performance.mark / measures without custom tracks as Web Performance: Timings to align with Chrome (#45597)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45597

Changelog: [internal]

Minor change to align with the Chrome DevTools performance panel.

Reviewed By: sammy-SC

Differential Revision: D60115147

fbshipit-source-id: bfd7b071fc76e226783ef41bd3f13d941acccec5
2024-07-23 14:23:03 -07:00
Rubén Norte 4caf9ec7a0 Migrate CoreFeatures::enableReportEventPaintTime to new feature flags system (#45585)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45585

Changelog: [internal]

Just migrates the flag to the new system.

Reviewed By: sammy-SC

Differential Revision: D60050005

fbshipit-source-id: 4da39446ecdb6cd86ccf7ee75a0d489764c37be6
2024-07-23 14:23:03 -07:00
D N bb23026daf chore: ☂️ Migrate a ClipboardModuleTest test to AssertJ (#45600)
Summary:
Issue: https://github.com/facebook/react-native/issues/45596

## Changelog:

[Internal] [Changed] - Migrate ClipboardModuleTest to Assertj

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

Reviewed By: zeyap

Differential Revision: D60120117

Pulled By: cortinico

fbshipit-source-id: 39720d81e0abad978515b8429f559df817303cd9
2024-07-23 09:47:43 -07:00
Nicola Corti 9e64d09cfb Migrate com.facebook.react.views.progressbar to Kotlin (#45594)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45594

This moves all the remaining Java classes inside com.facebook.react.views.progressbar to Kotlin

Changelog:
[Internal] [Changed] - Migrate com.facebook.react.views.progressbar to Kotlin

Reviewed By: tdn120

Differential Revision: D60108654

fbshipit-source-id: 69b3597020520eb444cd1fb9020b6572b7e1d804
2024-07-23 09:14:31 -07:00
Nicola Corti bd4aec869b RNGP - Do not attempt to load JSC from other repositories (#45598)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45598

I've noticed we attempt to load JSC from the Sonatype Snapshot repository.
That is inefficient as we already know that JSC is available only inside node modules.
This change makes the repository resolution stricter by better specifying which
repo can download which dependency.

Changelog:
[Internal] [Changed] - Do not attempt to load JSC from other repositories

Reviewed By: cipolleschi

Differential Revision: D60116002

fbshipit-source-id: 21a2213708f5b0103860a59f3342f1bc0f59cdb9
2024-07-23 08:12:42 -07:00
Riccardo Cipolleschi 48f6c3c485 Remove CCI leftovers (#45589)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45589

I don't know why, but we had some CCI leftovers in the repo.
This cleans them up!

## Changelog:
[Internal] - Remove CCI leftovers

Reviewed By: cortinico

Differential Revision: D60048949

fbshipit-source-id: 08792abd53ba919a7afc0922d6f7c98cc9c4544e
2024-07-23 06:40:08 -07:00
Blake Friedman 014370d825 Move init deprecation notice 30 Sept → 31 Dec (#45590)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45590

This gives us more wiggle room with the release of 0.76.

Changelog: [General][Changed] Move init deprecation notice 30 Sept → 31 Dec

Reviewed By: cortinico

Differential Revision: D60105868

fbshipit-source-id: d03fcf5d4a97db9b21792eff6f993e2671b276ef
2024-07-23 05:56:39 -07:00
Alex Hunt 7571e9a46a Update device APIs for macOS compatibility (#45515)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45515

After some provisional hacking on macOS support for React Native DevTools last week, this revealed some incompatibilities with traditional OS X APIs, which are minimally addressed here.

Changelog: [Internal]

Reviewed By: robhogan

Differential Revision: D59807146

fbshipit-source-id: 39c4eab723046926b0b469232152e2f994af2366
2024-07-23 05:55:47 -07:00
Nicola Corti 91ecd7eb53 RNGP - Migrate settings-plugin to AssertJ (#45575)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45575

We should move over to use AssertJ as per our linter.
I'm adding it here to a first test and will use it as a reference for some OSS contributions from outside.

Changelog:
[Internal] [Changed] - Migrate settings-plugin to Assertj

Reviewed By: cipolleschi

Differential Revision: D60037797

fbshipit-source-id: 579ed7bf5fb219e25577af3ab87934503ee7898e
2024-07-23 04:41:54 -07:00
Nicola Corti fedbe2d486 Fix core autolinking not working on Windows (#45572)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45572

0.75-rc.5 is currently broken on Windows.

This is due to us invoking `npx react-native-community/cli config` without
a `cmd /c` prefix.

This fixes it by using our function `windowsAwareCommandLine`.
The problem is that this required a lot of refactoring since that util was not available for the settings plugin.

Fixes #45403

Changelog:
[Internal] [Changed] - Fix core autolinking not working on Windows

Reviewed By: cipolleschi

Differential Revision: D60037587

fbshipit-source-id: eefeda7aafc43b9ce08f0f9225b0847fad2f46b7
2024-07-23 04:41:54 -07:00
Samuel Susla 7d17ae4d3b add optimised path for view preallocation on android behind feature flag (#45587)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45587

changelog: [internal]

There is a way to avoid doing large number of JNI calls from JS thread for view preallocation on Android. We can move the JNI call to the main thread by creating a queue of views to be created on the JS thread and pulling it from the main thread. This way, the expensive part of JNI call (the actual call + creating JNI values) is moved to the main thread and doesn't block the JS thread from executing rendering.

Reviewed By: javache

Differential Revision: D59966062

fbshipit-source-id: af85138cfdb9b2a7a7710d79e09e165b2be55067
2024-07-23 04:10:42 -07:00
Ruslan Lesiutin 7bd5b84e32 Update debugger-frontend from a4fff8a...a56e5b7 (#45579)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45579

Changelog: [Internal] - Update `react-native/debugger-frontend` from a4fff8a...a56e5b7

Resyncs `react-native/debugger-frontend` from GitHub - see `rn-chrome-devtools-frontend` [changelog](https://github.com/facebookexperimental/rn-chrome-devtools-frontend/compare/a4fff8a0b4d44cb1dea89ffeac1b7cb4da8b151b...a56e5b7065c82b37ada788333c702bf5684c5839).

Reviewed By: robhogan

Differential Revision: D60041876

fbshipit-source-id: 48c1a314797638b140052e6f30b2597e9b8ee48a
2024-07-23 04:05:57 -07:00
wh201906 6390cf67d0 Add upper case keys to the debug key handler (#45559)
Summary:
The CLI of Metro bundler only accepts key presses when the Caps Lock is off. This is somehow inconvenient because the developers might think the Metro bundler doesn't response when the Caps Lock is on.

## 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] [ADDED] - Add upper case keys to the debug key handler

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

Test Plan: n/a

Reviewed By: huntie

Differential Revision: D60107316

Pulled By: dmytrorykun

fbshipit-source-id: 045dcd382d84c4781dff75a1ff913cd3ccc8d288
2024-07-23 03:57:39 -07:00
CHEN Xian-an c24929c5f4 Not all the targets have a defined symbol_type (#45591)
Summary:
Errors occurred on running `pod install`:

```
[!] An error occurred while processing the post-install hook of the Podfile.

undefined method `symbol_type' for #<Xcodeproj::Project::Object::PBXAggregateTarget:0x000000010f6ea568>

[redact]/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:53:in `block in get_application_targets'
```

## Changelog:

[iOS] [Fixed] - Fix error on handling privacy manifest

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

Reviewed By: cipolleschi

Differential Revision: D60107607

Pulled By: dmytrorykun

fbshipit-source-id: 316220fe54174b18c9b61775f807d5d05d9f0240
2024-07-23 03:21:28 -07:00
David Vacca 700b403e06 Migrate excludeYogaFromRawProps to ReactNativeFeatureFlags (#45586)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45586

Migrate excludeYogaFromRawProps to ReactNativeFeatureFlags

changelog: [internal] internal

Reviewed By: NickGerleman

Differential Revision: D60022939

fbshipit-source-id: 150ecc98aa3323d5adea3a41a3d91d404c99e5a7
2024-07-22 14:20:40 -07:00
David Vacca 4d77c35584 Delete ReactFeatureFlags.rejectTurboModulePromiseOnNativeError (#45583)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45583

ReactFeatureFlags.rejectTurboModulePromiseOnNativeError is not used, I'm deleteing it

changelog: [internal] internal

Reviewed By: NickGerleman

Differential Revision: D60022938

fbshipit-source-id: 80f2d551b4416fae81c9081d3ddbb896e5f5a560
2024-07-22 14:20:40 -07:00
David Vacca d4a74d8b83 Migrate enableFabricRendererExclusively to ReactNativeFeatureFlags (#45584)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45584

Migrate enableFabricRendererExclusively to ReactNativeFeatureFlags

changelog: [internal] internal

Reviewed By: NickGerleman

Differential Revision: D60022933

fbshipit-source-id: 35b09673744bb5fb29b7d3b5ee4c7bb7d51a01b7
2024-07-22 14:20:40 -07:00
Nicola Corti 90e4397d99 Converted com.facebook.react.views.drawer to Kotlin (#45573)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45573

This makes this module now be fully in Kotlin instead of having mixed Java/Kotlin sources.

Changelog:
[Internal] [Changed] - Converted com.facebook.react.modules.dialog to Kotlin

Reviewed By: tdn120

Differential Revision: D60035771

fbshipit-source-id: b45fd099c0b353768ab6580eb6a4a3dccf68f07d
2024-07-22 13:40:07 -07:00
Nicola Corti 0529818d36 Fix several build warnings on RN-Tester (#45569)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45569

Same as title

Changelog:
[Internal] [Changed] - Fix several build warnings on RN-Tester

Reviewed By: realsoelynn

Differential Revision: D60036158

fbshipit-source-id: 549b84f52594e1a442058222a3a45118739a1eb3
2024-07-22 12:16:12 -07:00
Nicola Corti c1a8ae412b Properly annotate with @Deprecated methods that are just deprecated in JavaDoc (#45570)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45570

We do have several methods/classes that are `deprecated` in the JavaDoc but not
with an annotation. That's not correct as users will never get those deprecation otherwise
and we'll be forced to keep both implementation around for a longer time.

Changelog:
[Internal] [Changed] - Properly annotate with Deprecated methods that are just deprecated in JavaDoc

Reviewed By: javache

Differential Revision: D60036159

fbshipit-source-id: 466072d6a3fb4f1220e1dc3deaa51a46c714a388
2024-07-22 06:39:04 -07:00
Rubén Norte 43c32e1e25 Fix broken overlapping measures in Perfetto integration (#45567)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45567

Changelog: [internal]

(internal because our integration for Perfetto hasn't been released in OSS yet)

In our current React integration for Perfetto we're logging arbitrary time spans via `performance.measure` in specific tracks (that can be custom based on a naming scheme).

For a given track, Perfetto doesn't allow partially overlapping segments (as it's considered to always be a stack of time spans). When logging arbitrary time spans that partially overlap, Perfetto cuts the nested ones to make sure they fit into their suspected parent. This makes the logged data incorrect and makes it hard to understand the performance of an application using this data.

There's a fix for this problem: logging these arbitrary segments/time spans in separate tracks that only share the name. In this case, Perfetto groups the data in the UI but allows overlapping (as they're not really on the same track).

Reviewed By: sammy-SC

Differential Revision: D60010696

fbshipit-source-id: 378ea492c4fafbe55ef97fa91e4fa50bbc1893ae
2024-07-22 05:00:31 -07:00
Rubén Norte df9b2cef7e Prefix custom tracks for markers coming from JS with Web Performance (#45564)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45564

Changelog: [internal]

(this is internal because the integration hasn't been enabled in OSS yet)

In our current React integration for Perfetto we're currently creating multiple custom tracks that are spread throughout the process section and it can be hard to identify the source of the information.

This adds a "Web Performance: " prefix to all custom tracks coming from JS to achieve 2 purposes:
* Group them together (in terms of order in the process)
* Clarify the source of the data

Reviewed By: sammy-SC

Differential Revision: D60010695

fbshipit-source-id: 081f5b6417d676c61005114337530a089142e7c6
2024-07-22 05:00:31 -07:00
Rubén Norte 2551aee4b0 Expose PerformanceObserver related classes in the global scope (#45539)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45539

Changelog: [internal]

This exposes several classes (interfaces in the spec lingo) related to the Performance API to the global scope, so users can access them directly to do things like refinements using `instanceof`. This also prevents the need from importing the modules from `react-native` directly, which would prevent code sharing with Web.

Reviewed By: rshest

Differential Revision: D59859654

fbshipit-source-id: e1f7afb0c98b394b1f97c3790db2e570e6ba0cd9
2024-07-22 04:45:02 -07:00
Rubén Norte a5bd64ece8 Move classes for Event Timing API to the same module to align with existing convention (#45535)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45535

Changelog: [internal]

Small refactor to group things based on the spec where they're defined.

Reviewed By: rshest

Differential Revision: D59911334

fbshipit-source-id: 1c40d6bf82b6cc7be78bd81b652d6855c39a53eb
2024-07-22 04:45:02 -07:00
Rubén Norte 2680198b09 Use the right interfaces for PerformanceLongTaskTiming (#45526)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45526

Changelog: [internal]

Just using the right interfaces so we can expose them in the global scope and do refinements as necessary using `instanceof`.

Reviewed By: rshest

Differential Revision: D59911144

fbshipit-source-id: 9779e3220f2c6f81955f54506f97142f0f4ffdd4
2024-07-22 04:45:02 -07:00