Commit Graph

38536 Commits

Author SHA1 Message Date
Samuel Susla 7d7d403ecf add number of instructions to systrace (#45384)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45384

changelog: [internal]

add a little more information to the mounting instructions block

Reviewed By: javache, rubennorte, mdvacca

Differential Revision: D59631537

fbshipit-source-id: 140ba1834172686998c51a9645ea1e66fff1879d
2024-07-12 04:10:31 -07:00
Nick Gerleman 47261bfb79 Fix main branch iOS prerelease constant (#45398)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45398

Accidentally left in a value (that Phabricator then hid) which I was using to test fixed prerelease constants in D59141948... On real releases, this is overwritten by the version stamping process.

Changelog: [Internal]

Reviewed By: cipolleschi

Differential Revision: D59668218

fbshipit-source-id: 3d04e52db75a5d8a53cf47d3a2f88b643030d94e
2024-07-12 03:43:29 -07:00
Riccardo Cipolleschi 1568a29144 Factor out build hermesc for Linux (#45402)
Summary:
This change factors out the Build HermesC for Linux job so that we can reuse the code in various workflows

## Changelog:
[Internal] - Factor out build-hermesc-linux for code reuse

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

Test Plan: GHA are green

Reviewed By: cortinico

Differential Revision: D59673895

Pulled By: cipolleschi

fbshipit-source-id: f5c680d523866442d25317e880b4803ac89c3741
2024-07-12 03:21:39 -07:00
zhongwuzw c5b87aba7c Don't set empty string when remove ccache (#45400)
Summary:
After `pod install`, it would set some empty flags, which seems useless. cc cipolleschi .

![image](https://github.com/user-attachments/assets/fb795c61-0838-4522-a34b-cde469467b3b)

## Changelog:

[IOS] [FIXED] - Don't set empty string when remove ccache

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

Test Plan: No empty flags should be set after we exec `pod install`.

Reviewed By: cortinico

Differential Revision: D59671357

Pulled By: cipolleschi

fbshipit-source-id: 26b55da9efaeed36876649cc27f09ecafaba412a
2024-07-12 02:52:22 -07:00
Wojciech Lewicki c16761da83 feat: expose prefabs for newly added targets (#45386)
Summary:
In recent commits, some new targets have been added, and they are not exposed as prefabs, yet are used in e.g. `TextLayoutManager`. They are needed then for `react-native-live-markdown`: https://github.com/Expensify/react-native-live-markdown/pull/428/commits/c1611cd98ed5009fd66c871b9999b55941086af0

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

[ANDROID] [ADDED] - expose prefabs for newly added targets

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

Test Plan: It cannot be tested inside the repo, but try to build the `example` app with new arch enabled on `Android` in the `react-native-live-markdown` repo to see that those are needed.

Reviewed By: NickGerleman

Differential Revision: D59638801

Pulled By: cortinico

fbshipit-source-id: 3d09507d72a0c4d3dbb3a2a81b753625230a04a3
2024-07-12 02:10:05 -07:00
Pieter De Baets b1c5432b13 Revert D59519171: 【iOS】Fixes ellipsis carries background from trimmed text
Differential Revision:
D59519171

Original commit changeset: 87c985859e98

Original Phabricator Diff: D59519171

fbshipit-source-id: 1686b8a406d1a9b163eb6ad0cb9827f5a0724e89
2024-07-12 01:47:21 -07:00
Nick Gerleman d68a1771f0 Revert D59566611: Fix Android removeClippedSubviews in horizontal ScrollView in RTL
Differential Revision:
D59566611

Original commit changeset: a2eb12b984dc

Original Phabricator Diff: D59566611

fbshipit-source-id: 144c479c264b8f1ca25a571ae73cc0db241e075d
2024-07-11 20:52:29 -07:00
Nicola Corti 3f8340975b Undo a breaking change with ResourceDrawableIdHelper.instance (#45389)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45389

This undos a breaking change with ResourceDrawableIdHelper for Kotlin consumer.
I've re-added a `getInstance` method so that Kotlin libraries won't break.
The method is added as Deprecated as those libraries need to migrate to `.instance`
accessors as more idiomatic.

Changelog:
[Android] [Fixed] - Undo a breaking change with ResourceDrawableIdHelper.instance

Reviewed By: robhogan

Differential Revision: D59638043

fbshipit-source-id: ae2aab962e9a7676f0bfbae21f699e274502dc6a
2024-07-11 14:54:13 -07:00
Nicola Corti 221755c495 Undo a breaking change with I18nUtil.instance (#45390)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45390

This undos a breaking change with I18nUtil for Kotlin consumer.
I've re-added a `getInstance` method so that Kotlin libraries won't break.
The method is added as Deprecated as those libraries need to migrate to `.instance`
accessors as more idiomatic.

Changelog:
[Android] [Fixed] - Undo a breaking change with I18nUtil.instance

Reviewed By: alanleedev

Differential Revision: D59638044

fbshipit-source-id: 1c93a98676b5b01e89be3b974961c5f3ae919511
2024-07-11 14:54:13 -07:00
Nicola Corti b24d47a9a7 Undo breaking change for ReadableMap.entryIterator for Kotlin consumers. (#45388)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45388

This undos a breaking change we're about to ship in 0.75, where Kotlin users
where forced to update this callsite to be `.getEntryIterator`.

This re-introduces a `entryIterator` val so both Kotlin and Java compatibility are retained.

Changelog:
[Android] [Fixed] - Undo breaking change for ReadableMap.entryIterator for Kotlin consumers

Reviewed By: alanleedev

Differential Revision: D59637925

fbshipit-source-id: b674df86e056f17791d9cabe28557529886f1c93
2024-07-11 14:54:13 -07:00
Nicola Corti 5e31b45fc7 Undo breaking change on Dynamic.type and Dynamic.isNull (#45378)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45378

Kotlin consumers of those APIs are forced with this breaking change:

```
# Before thanks to Java property conversion
Dynamic.type
# After
Dynamic.getType()
```
This restores the old more idiomatic API by moving those 2 funcitons to be vals.

Changelog:
[Android] [Fixed] - Undo breaking change on Dynamic.type and Dynamic.isNull

Reviewed By: javache

Differential Revision: D59631783

fbshipit-source-id: 8d720af34e104ee0e4f3120302a4a84fc17a7b1c
2024-07-11 12:19:55 -07:00
David Vacca 384983025a Introduce Systrace.beginSection with args (#45392)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45392

In this diff I'm introducing a new overload of Systrace.beginSection to receive arguments by parameter

changelog: [Android][Added] Introduce Systrace.beginSection with arguments

Reviewed By: sammy-SC

Differential Revision: D59639329

fbshipit-source-id: 23d43e5dd48fdde9c7d49a1c10fa9ecc4c3b7196
2024-07-11 12:18:06 -07:00
Pieter De Baets b1405b5a81 Cleanup enableRemoveDeleteTreeInstruction experiment (#45385)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45385

We ran various experiments with this flag, and this does not turn out to provide any significant benefits at this point to make it worth the complexity and platform divergence it introduced.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D58355433

fbshipit-source-id: 4b857a5d0b8aa5915b4a880cbcae2526a16a08a9
2024-07-11 11:19:55 -07:00
zhongwuzw fcb6cdc710 【iOS】Fixes ellipsis carries background from trimmed text (#39408)
Summary:
Fixes https://github.com/facebook/react-native/issues/37926.

## Changelog:

[IOS] [FIXED] - Fixes ellipsis carries background from trimmed text

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

Test Plan:
Demo code:
```
<Text numberOfLines={1} ellipsizeMode={'tail'}>Long text <Text style={{backgroundColor: 'red'}}>Nested text</Text></Text>
```

Before fix:
![image](https://github.com/facebook/react-native/assets/5061845/05467128-a4f9-4f81-bb22-c1085a3bc721)

After fix:
![image](https://github.com/facebook/react-native/assets/5061845/b6b024ae-5329-47d3-a07c-1ba089802edd)

Reviewed By: cipolleschi

Differential Revision: D59519171

Pulled By: javache

fbshipit-source-id: 87c985859e9892fd2e4d6bb3d62b08627247df70
2024-07-11 08:46:26 -07:00
Pieter De Baets c4a6bbc8fd Do eager native module init on mqt_native thread (#45324)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45324

Improve concurrency during startup of bridgeless by concurrently initializing eager native modules and triggering bundle load.

Changelog: [Android][Changed] Modules marked with needsEagerInit = true will now be created on the mqt_native thread.

Reviewed By: mdvacca

Differential Revision: D59465977

fbshipit-source-id: 55cc0f0359bafcf32dc538f4346c6a5d5546f658
2024-07-11 07:47:10 -07:00
Nicola Corti 2ea9c360dc Undo breaking change on getJsCallInvokerHolder (#45376)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45376

This reduces one breaking change users are seeing on `CatalystInstance.getJsCallInvokerHolder`.
I had to specify:

```
Suppress("INAPPLICABLE_JVM_NAME")
get:JvmName("getJSCallInvokerHolder")
```

as the Kotlin compiler is unhappy with me setting a JvmName on a interface property.
More on this here: https://youtrack.jetbrains.com/issue/KT-31420

Changelog:
[Android] [Fixed] - Undo breaking change on `CatalystInstance.getJsCallInvokerHolder`

Reviewed By: javache

Differential Revision: D59631640

fbshipit-source-id: 4d5b3499e4e0e0bec1d380c4b7942ea28ae35465
2024-07-11 07:45:55 -07:00
Samuel Susla 33262c1717 remove gating for prevent double measure flag (#45375)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45375

changelog: [internal]

this is shipped, let's remove gating.

Reviewed By: javache

Differential Revision: D59585030

fbshipit-source-id: 05c76099c27010a7e2e2167c5af5bb5346a00f47
2024-07-11 05:26:27 -07:00
Riccardo Cipolleschi 6e2ba742ff Factor out the CXX language standard in a separate const (#45374)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45374

This change factors out the language standard in a separate constant so we can easily control it from a single place.

There are only 2 exception to this:
1. hermes-engine: the podspec is used in CI and it has no access to the rct_cxx_language_standard variable
2. Yoga: it can be used as a separate pod, outside of React Native, so it makes sense to leave it alone.

This change also fixes a problem where, in some setup, the language was set to C++14

## Changelog
[Internal] - Refactor Cxx language standard in a single constant

Reviewed By: dmytrorykun, blakef

Differential Revision: D59629061

fbshipit-source-id: 41eac64e47c14e239d8ee78bd88ea30af244d695
2024-07-11 05:25:38 -07:00
Pieter De Baets 2455a84db8 Simplify Java TurboModule lookup (#45322)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45322

Instead of using multiple weak_ptr and weak_ref, use a single weak_ref to the Java object and use that to get back to the original C++ instance, without the need for additional shared_ptr.

Changelog: [Internal]

Reviewed By: RSNara

Differential Revision: D59465976

fbshipit-source-id: d410bdacf21a1886c6ed95d2c57ac8c6e17428e3
2024-07-11 04:48:18 -07:00
Riccardo Cipolleschi 7b424f090a Factor out build hermes Macos (#45371)
Summary:
Factor out the build-hermes-macos job to reuse the code

## Changelog:
[Internal] - Factor out build hermes macos action

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

Test Plan: GHA are green

Reviewed By: blakef

Differential Revision: D59627977

Pulled By: cipolleschi

fbshipit-source-id: 84226d8a2c036f816fa8ea949b467873a7eef37c
2024-07-11 03:50:15 -07:00
Miklós Fazekas 3782511350 fix: android autolinkLibrariesFromCommand should handle timeout or non zero exit code (#45333)
Summary:
Fixes: https://github.com/facebook/react-native/issues/45307

## Changelog:

[Android] [Fixed] - if `npx react-native-community/cli config` fails or timeouts proper error is shown and built is aborted, instead of leaving and empty autolinking.json

During build `npx react-native-community/cli config` is generated into autolinking.json. When command fails, we should error and should not leave and empty `autolinking.json`

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

Test Plan:
Output of the reproducer in https://github.com/facebook/react-native/issues/45307 looks like this:

```log
android % ./gradlew assembleDebug
Starting a Gradle Daemon (subsequent builds will be faster)
ERROR: autolinkLibrariesFromCommand: Failed to create /Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/android/build/generated/autolinking/autolinking.json - process npx react-native-community/cli config  exited with error code: 126

FAILURE: Build failed with an exception.

* Where:
Settings file '/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/android/settings.gradle' line: 3

* What went wrong:
A problem occurred evaluating settings 'android'.
> ERROR: autolinkLibrariesFromCommand: Failed to create /Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/android/build/generated/autolinking/autolinking.json - process npx react-native-community/cli config  exited with error code: 126

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 10s
8 actionable tasks: 4 executed, 4 up-to-date
```

Output if you modify the package.json to be invalid looks like this:

```log
android % ./gradlew assembleDebug
ERROR: autolinkLibrariesFromCommand: process npx react-native-community/cli config  exited with error code: 1
JSONError: JSON Error in /Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/package.json:

  35 |     "node": ">=18"
  36 |   },
> 37 |   SOMETHING_NON_JSON
     |   ^
  38 |   "packageManager": "yarn@3.6.4",
  39 |   "resolutions": {
  40 |     "rtn-centered-text": "portal:../RTNCenteredText"

Unexpected token "S" (0x53) in JSON at position 1019 while parsing near "...ode\": \">=18\"\n  },\n  SOMETHING_NON_JSON\n ..."

  35 |     "node": ">=18"
  36 |   },
> 37 |   SOMETHING_NON_JSON
     |   ^
  38 |   "packageManager": "yarn@3.6.4",
  39 |   "resolutions": {
  40 |     "rtn-centered-text": "portal:../RTNCenteredText"

    at parseJson (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/parse-json/index.js:29:21)
    at loadJson (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/loaders.js:48:16)
    at #loadConfiguration (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/ExplorerSync.js:116:36)
    at #loadConfigFileWithImports (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/ExplorerSync.js:87:54)
    at #readConfiguration (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/ExplorerSync.js:84:82)
    at search (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/ExplorerSync.js:50:63)
    at emplace (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/util.js:36:20)
    at ExplorerSync.search (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/ExplorerSync.js:78:42)
    at getUserDefinedOptionsFromMetaConfig (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/index.js:32:37)
    at mergeOptionsBase (/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/node_modules/react-native-community/cli-config/node_modules/cosmiconfig/dist/index.js:60:31)

FAILURE: Build failed with an exception.

* Where:
Settings file '/Users/boga/Work/OSS/RNMBGL/rn-fabric-boolattribute/ReproducerApp/android/settings.gradle' line: 3

* What went wrong:
A problem occurred evaluating settings 'android'.
> ERROR: autolinkLibrariesFromCommand: process npx react-native-community/cli config  exited with error code: 1

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 2s
8 actionable tasks: 4 executed, 4 up-to-date
```

Reviewed By: cipolleschi

Differential Revision: D59582430

Pulled By: cortinico

fbshipit-source-id: bedb9563175cc5c46f5af80cf309769e56b803cc
2024-07-11 03:43:23 -07:00
Nick Gerleman 52dc7a8326 Make ReactImageView use standardized background drawing code (#45366)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45366

This updates ReactImageView to share the background drawing and clipping code used by other built-in components. This means manipulating a background drawable, and clippping at draw time, instead of using Fresco hierarchy background (in view foreground), and radii which manipulate the underlying bitmap.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D59495407

fbshipit-source-id: ce3c975e5ed323fa3d4610ec1515ef3c8dd8b2d1
2024-07-11 02:58:36 -07:00
Nick Gerleman ea6928fcb9 Fix Android removeClippedSubviews in horizontal ScrollView in RTL (#45356)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45356

Subview clipping was disabled for RTL on Android due to a bug where TextInputs automatically blur when selected. This bug is reintroduced when `set_android_layout_direction` is set.

When `set_android_layout_direction` is enabled, and we use View `getLayoutDirection()` instead of `I18nManager.isRTL()`, the layout direction is not known until layer in the mounting process. This defeats the check a `setRemoveClippedSubviews()` prop setter to ignore the prop if the view is RTL (since it doesn't invalidate when a new layout direction is set).

The root cause of the underlying RTL bug is due to updating clipping status triggered by `onSizeChanged()`, which is called before `onLayout()`, where `ReactHorizontalScrollContainerView` offsets content in RTL. This also seems potentially erroneous, as we do not update the clipping rect on position change (unless that is handled elsewhere).

I moved the check to `onLayout()`, called after ReactHorizontalScrollView will change metrics, which seems to fix the issue. I then removed the exclusion in `removeClippedSubviews` prop setter.

Changelog:
[Android][Fixed] - Fix Android removeClippedSubviews in RTL

Reviewed By: mdvacca

Differential Revision: D59566611

fbshipit-source-id: a2eb12b984dc78940756804b6b7a3950377af9de
2024-07-10 20:17:03 -07:00
Jakub Piasecki 2932c0f71f Implement baseline alignment function on the new architecture (#45102)
Summary:
On the new architecture, the setup that would allow Yoga to read the baseline of a node was missing. This PR adds it:
- adds new ShadowNode trait - `BaselineYogaNode` that marks a node as having a custom baseline function
- adds `yogaNodeBaselineCallbackConnector` that's responsible for allowing Yoga to call baseline function on the node
- changes signatures of `lastBaseline` and `firstBaseline` to accept `LayoutContext` as the first argument, which is necessary to build an attributed string
- adds implementation of `lastBaseline` that's invoked by `yogaNodeBaselineCallbackConnector`
- adds methods for calculating the last baseline in platform-specific `TextLayoutManagers`, using the same approach on both Android and iOS (this differs from the old architecture where calculations were different)

## Changelog:

[GENERAL] [FIXED] - Fixed `alignItems: 'baseline'` not working correctly on the new architecture

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

Test Plan:
Tested on the relevant part of RNTester:

### Android

|Old arch|New arch before|New arch after|
|-|-|-|
|<img width="426" alt="baseline-android-old-arch" src="https://github.com/facebook/react-native/assets/21055725/08550dfc-cf30-4938-8872-9bef916dc53c">|<img width="426" alt="baseline-android-new-arch-before" src="https://github.com/facebook/react-native/assets/21055725/9e3667f7-5c42-4e23-8972-fd2e994694a4">|<img width="409" alt="Screenshot 2024-07-02 at 16 40 38" src="https://github.com/facebook/react-native/assets/21055725/13379b11-b69e-4082-81cc-dec5e6d092f2">|

### iOS

|Old arch|New arch before|New arch after|
|-|-|-|
|<img width="519" alt="baseline-ios-old-arch" src="https://github.com/facebook/react-native/assets/21055725/da3956a1-5588-4933-87ce-4b5a9c256957">|<img width="519" alt="baseline-ios-new-arch-before" src="https://github.com/facebook/react-native/assets/21055725/09aef2c1-2eec-4710-b237-0f4a0c3d52d0">|<img width="519" alt="Screenshot 2024-07-02 at 16 40 29" src="https://github.com/facebook/react-native/assets/21055725/0a8a7251-1f6f-40db-81d7-4f37142932db">|

Reviewed By: NickGerleman

Differential Revision: D59323974

Pulled By: cortinico

fbshipit-source-id: e50882d399a0791a39ce8b416ed96d8fd3c48f23
2024-07-10 12:43:42 -07:00
Jakub Piasecki 83716298f8 Fix text shadow on TextInput on Android when backgroundColor is set (#45343)
Summary:
When setting a shadow on a `Text` inside a `TextInput`, the shadow was rendered with artifacts when `backgroundColor` was set on the `TextInput`.

This is caused by how attributed strings are constructed on the new architecture - all text attributes from the text input (including background color) are propagated onto the string. Then, it's converted to a `Spannable` on Android side, which includes `ReactBackgroundColorSpan` being set on the entire text when it doesn't have a background color set explicitly. Then Android tries to render the shadow not only for the text but also for the background rect which results in the artifacts.

This PR prevents background color from the `TextInput` from being propagated onto the attributed string, so the `ReactBackgroundColorSpan` is only applied when a text fragment has its background set explicitly.

## Changelog:

[ANDROID] [FIXED] - Fixed text shadow rendering with artifacts when `backgroundColor` was set on the `TextInput`

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

Test Plan:
Checked relevant examples on RNTester

|Old arch|New arch (before)|New arch (after)|
|-|-|-|
|<img width="436" alt="Screenshot 2024-07-09 at 14 44 52" src="https://github.com/facebook/react-native/assets/21055725/64005ec4-3e42-4327-9b09-f57d3c477fb6">|<img width="436" alt="Screenshot 2024-07-09 at 14 43 03" src="https://github.com/facebook/react-native/assets/21055725/f558ad26-08de-4231-acdf-92f596ec186c">|<img width="436" alt="Screenshot 2024-07-09 at 14 41 46" src="https://github.com/facebook/react-native/assets/21055725/6b4ff6ed-5267-4f1a-a895-1bbd760f73e5">|

Reviewed By: NickGerleman

Differential Revision: D59527817

Pulled By: cortinico

fbshipit-source-id: d03d4749e4435ef04e51b1018f046be0e5e0bca4
2024-07-10 11:54:30 -07:00
Riccardo Cipolleschi 0fd4a9447e Factor out hermes slice apple (#45359)
Summary:
Factor out build-apple-slices-hermes to a seprate action to reuse code

## Changelog:
[Internal] - Refactor the CI to reuse code

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

Test Plan: GHA are green

Reviewed By: cortinico

Differential Revision: D59575467

Pulled By: cipolleschi

fbshipit-source-id: 5d253f3dd523cb70b768c62db10fb7ff39fbd49f
2024-07-10 06:38:49 -07:00
Tomek Zawadzki 778fcecf35 Update comments for ~ShadowNodeWrapper() and ~ShadowNodeListWrapper() (#45357)
Summary:
This PR updates the comments for `~ShadowNodeWrapper()` and `~ShadowNodeListWrapper()` to align them with the actual implementation that now uses `jsi::NativeState` instead of `jsi::HostObject`.

## Changelog:

[GENERAL] [FIXED] - Updated comments for `~ShadowNodeWrapper()` and `~ShadowNodeListWrapper()`

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

Reviewed By: sammy-SC

Differential Revision: D59578988

Pulled By: javache

fbshipit-source-id: 1c46ce8407fc8b337f3a6762caee3b2e0e1edfc6
2024-07-10 04:57:42 -07:00
Samuel Susla 8f98c58d38 delete background executor (#45110)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45110

changelog: [internal]

Reviewed By: fkgozali, javache

Differential Revision: D58737295

fbshipit-source-id: 1f644b910e07a27cffb9107502aefd9b382d8f93
2024-07-10 04:28:22 -07:00
Samuel Susla 082706ccd4 remove event emitter from view preallocation (#45351)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45351

changelog: [internal]

event emitter is always null during view preallocation. Let's just remove it completely from the method signature

Reviewed By: rubennorte

Differential Revision: D59522141

fbshipit-source-id: cb4f3b314607b4ee8b2209a8ab55e066ee7e075a
2024-07-10 04:17:55 -07:00
Riccardo Cipolleschi b4b6614034 Factor out build hermesc apple (#45346)
Summary:
Factor out the action to build hermesc for apple platform so we can reuse it across jobs

## Changelog:
[Internal] - Factor out hermesC apple to reuse code

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

Test Plan: GHA are green

Reviewed By: cortinico

Differential Revision: D59521564

Pulled By: cipolleschi

fbshipit-source-id: c99966e314b3d418d1d83d653c0be68b2931b03b
2024-07-10 01:06:39 -07:00
Robert Pasiński 9a1ae97c22 fix: Headless tasks in bridgeless mode (fixes #44255) (#45100)
Summary:
HeadlessTaskService was to create a Bridge instance in bridgeless mode.

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

## Changelog:

[ANDROID] [FIXED] - Fixed Headless JS tasks in New Architecture

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

Reviewed By: cortinico

Differential Revision: D59471277

Pulled By: arushikesarwani94

fbshipit-source-id: 400e2f67d35e015a976f3df917ca27c43e292685
2024-07-09 16:06:47 -07:00
Pieter De Baets 57e3451557 Do not mutate output of flattenStyle in TextInput (#45348)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45348

flattenStyle may return an object which is already frozen (in development), so it is incorrect to further mutate this.

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D59525418

fbshipit-source-id: 094b7c9c952d8684e24203cc07d6bda51bdf12b5
2024-07-09 15:58:12 -07:00
Nick Gerleman 2bed2ab1a6 Fix ReactImageView.hasOverlappingRendering() (#45352)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45352

We claim that we will never draw multiple elements on top of each other, which isn't correct when we have a background.

We should claim that we can draw overlapping elements if we have a background drawable which we place in the Drawee hierarchy (part of the ImageView foreground drawable), or if the underlying view has a background drawable (which is handled by `ImageView` superclass `hasOverlappingRendering()`).

The effect of this is subtle, and just means that we get correct compositing when an opacity is set on image with background.

Changelog:
[Android][Fixed] - Fix ReactImageView.hasOverlappingRendering()

Reviewed By: mdvacca

Differential Revision: D59489788

fbshipit-source-id: fe2922f064b91f1709ed546dd647d4d4112d04c1
2024-07-09 14:59:40 -07:00
Nick Gerleman 58c726a6ba Encapsulate float-ish border color APIs (#45338)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45338

`CSSBackgroundDrawable` is a silly goose and reuses layout types to store color. This has extended into a really strange public API, where we use floating point colors, where the color is itself in int with packed integer color components.

This hides that away, and marks some classes with `UnstableReactNativeAPI` that I plan to hide shortly.

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D59488811

fbshipit-source-id: 7dc57edc9888f8a92088d2410ee71c2768ae8ec1
2024-07-09 14:59:40 -07:00
Rubén Norte 0e621295fb Propagate intersection times in image performance logging for RN (#45350)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45350

Changelog: [internal]

Reviewed By: steelrooter

Differential Revision: D59524510

fbshipit-source-id: 28d38e199fcfcaf421296a4499e11138d43f3b04
2024-07-09 14:55:58 -07:00
Liron Yahdav 539788eb6e Feed React tracing into Instruments signposts API (#45169)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45169

This is a follow-up to D56280451 where I made all SystraceSection calls feed into the Instruments signposts API. This will additionally do the same for all calls to nativeTraceBeginSection/nativeTraceEndSection from JSITracing.cpp.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D58895740

fbshipit-source-id: ee1cdff883ac1172f9bafe11ab950738d7ae7f82
2024-07-09 14:01:39 -07:00
Gabriel Donadel fa9fd59a1f chore: Add changelog for 0.73.9 (#45353)
Summary:
Adds changelog for the 0.73.9 patch.

## Changelog:

[Internal] [Changed] - Add 0.73.9 changelog

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

Reviewed By: NickGerleman

Differential Revision: D59538388

Pulled By: arushikesarwani94

fbshipit-source-id: 8a410c6d65bbf0ac85bde6fde826fb999181950d
2024-07-09 13:37:46 -07:00
Joe Vilches 0f87250d29 Adjust shadow's corner radius based on spread (#45336)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45336

The spec says we need to adjust the border radius of the shadow if spread is present. It gets bigger for outset shadows and smaller for inset shadows.

Source https://drafts.csswg.org/css-backgrounds/#shadow-shape

> To preserve the box’s shape when spread is applied, the corner radii of the shadow are also increased (decreased, for inner shadows) from the border-box (padding-box) radii by adding (subtracting) the spread distance (and flooring at zero). However, in order to create a sharper corner when the border radius is small (and thus ensure continuity between round and sharp corners), when the border radius is less than the spread distance (or in the case of an inner shadow, less than the absolute value of a negative spread distance), the spread distance is first multiplied by the proportion 1 + (r-1)3, where r is the ratio of the border radius to the spread distance, in calculating the corner radii of the spread shadow shape.

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D59296120

fbshipit-source-id: e55327701547f27961a0d612ed595b4383e1d763
2024-07-09 13:24:18 -07:00
Panos Vekris 5daa899f4a remove one_sided_type_guards option from flowconfigs (on by default) (#45349)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45349

This is on by default as of version 0.239.0:

https://github.com/facebook/flow/blob/v0.239/src/commands/config/flowConfig.ml#L268

Changelog: [Internal]

Reviewed By: SamChou19815

Differential Revision: D59525192

fbshipit-source-id: b4bf456e3c03a712f4c6f5d72d157b3abf8f9895
2024-07-09 10:47:31 -07:00
Pieter De Baets ef2e9410d0 Do not mutate output of flattenStyle (#45340)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45340

flattenStyle may return an object which is already frozen (in development), so it is incorrect to further mutate this.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D59515063

fbshipit-source-id: 92df158d5841988d40bcd76b861963b06dad1573
2024-07-09 08:26:58 -07:00
Pieter De Baets 0733e36278 Remove TurboModule debug info (#45323)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45323

We're no longer running experiments with TurboModule and legacy module rollout, so this debug info is no longer required, and adds unnecessary verbosity to TurboModule lookup errors.

Changelog: [Internal]

Reviewed By: christophpurrer

Differential Revision: D59465974

fbshipit-source-id: 87a2ebd9c05ad312889bcbd819ccbe885b429064
2024-07-09 07:34:11 -07:00
Pieter De Baets 5a62606ab3 Lookup TurboModules before fallbacks (#45320)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45320

TurboModule should be the default path, and we should only fallback to the legacy native modules if we can't find a module through the TurboModule mechanism.

Changelog: [General][Changed] - TurboModules will be looked up as TurboModules first, and fallback to legacy modules after.

Reviewed By: christophpurrer

Differential Revision: D59465978

fbshipit-source-id: c5672d34e90dcee321de0a5acd3a50b6bb1092b8
2024-07-09 07:34:11 -07:00
Samuel Susla 5b03453b5f trigger image fetch during view preallocation (#45330)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45330

changelog: [internal]

With view preallocation, we want to trigger image download in case there is only a single image source even if layout hasn't been determined.

This can lead to images appearing 100s of milliseconds earlier.

This optimisation is already used by plain ImageView: https://fburl.com/code/cp87xmw7

Reviewed By: rubennorte

Differential Revision: D59465972

fbshipit-source-id: e045d6bd9d595d366541ffa32364488be4766ef8
2024-07-09 05:51:40 -07:00
Pieter De Baets 8e8e0ba13b Cleanup unstable_useTurboModuleInteropForAllTurboModules (#45319)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45319

This test has been cleaned up, we can remove the callers.

Changelog: [Internal]

Reviewed By: fabriziocucci

Differential Revision: D59465975

fbshipit-source-id: 01f4b24f221aa017fbfd2238f81454d38d05920a
2024-07-09 05:43:26 -07:00
Nick Gerleman 12b64b7824 Loosen SectionList renderItem required return type (#45305)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45305

Allow SectionList render functions to return any React node, instead of just React.Element. This matches VirtualizedList/FlatList, and general Flow component conventions.

Changelog:
[General][Fixed] - Loosen SectionList `renderItem` required return type

Reviewed By: joevilches

Differential Revision: D59404511

fbshipit-source-id: 3055d8f01845ff5ef8ae75b87f60d8cd26dc07b4
2024-07-08 17:40:59 -07:00
Sam Zhou 3441641682 Deploy 0.239.1 to xplat
Summary: Changelog: [Internal]

Reviewed By: gkz

Differential Revision: D59493995

fbshipit-source-id: 9f0c6d030ef44cc833940e8c33ad72b3489d3a43
2024-07-08 16:42:30 -07:00
Pieter De Baets a4a2fa6a11 Sync comments on measure and requestLayout to Fabric implementation (#45325)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45325

We don't want to lose this context when we cleanup the old architecture.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D59466876

fbshipit-source-id: 3cf3c63d619d9e8535e369ec1ef7c5706431b85d
2024-07-08 14:50:31 -07:00
Samuel Susla 9fbc904592 remove gating for optimized text (#45317)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45317

changelog: [internal]

ship optimized version of Text componant. In local benchmarking this version shows 35% improvement over old Text component.

Reviewed By: NickGerleman

Differential Revision: D59460871

fbshipit-source-id: c3a41d3aac4cd40e054b669d56295bcb631d8310
2024-07-08 12:39:46 -07:00
Benoit Girard c9fbc05bbc Register Thread For Hermes Sampling (#45331)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45331

Let's add the a new JSRuntime API  to register the thread. This allows Hermes sampling to correctly work in Bridgeless/Activity.

## Changelog:
[General][Added] - Add experimental api to JSRuntimeFactory to initialize runtime on js thread

Reviewed By: RSNara

Differential Revision: D58787655

fbshipit-source-id: 2202271b9ad88cf8ba2145fb4e9e7bfd6e0c09fa
2024-07-08 12:20:11 -07:00
Riccardo Cipolleschi c0d56225a8 Add changelog for 0.75-RC.4 (#45332)
Summary:
Added changelog for 0.75.0-RC.4

## Changelog:
[Internal] - Add changelog for RC.4

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

Test Plan: N/A

Reviewed By: sammy-SC, GijsWeterings, arushikesarwani94, realsoelynn

Differential Revision: D59474501

Pulled By: cipolleschi

fbshipit-source-id: 8619ebe46bf4b0861bd981297b2c3b4a6e47c243
2024-07-08 11:38:34 -07:00