Commit Graph

33802 Commits

Author SHA1 Message Date
Samuel Susla
685facfd53 fix race condition in EventBeat (#47548)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47548

changelog: [internal]

This race condition only shows itself with flag `useOptimizedEventBatchingOnAndroid`

# Problem
EventBeat assumes method `induce` will be called repeatedly on every UI tick. This is true for iOS and existing implementation of event beat on Android. The first early exist inside of `induce` method is built with this assumption.

`useOptimizedEventBatchingOnAndroid` on Android changes this. `induce` will only be called after FabricUIManager.onRequestEventBeat is invoked and then it will stop. For one `FabricUIManager.onRequestEventBeat` call, `EventBeat::induce` is called once. And there is a chance for race condition.

Here is a simplified implementation of `induce`. This method may be called many times in sequence. The caller will set [isRequested_](https://github.com/facebook/react-native/blob/main/packages/react-native/ReactCommon/react/renderer/core/EventBeat.cpp#L25) and then invoke [FabricUIManager.onRequestEventBeat](https://github.com/facebook/react-native/blob/main/packages/react-native/ReactAndroid/src/main/jni/react/fabric/AndroidEventBeat.cpp#L43). Notice how `FabricUIManager.onRequestEventBeat` is debounced if `isRequested_` flag is true.

```
void EventBeat::induce() const {
  if (!isRequested_ || isBeatCallbackScheduled_) {
   // isRequested_ is not set to false in case isBeatCallbackScheduled_) is true.
    return;
  }

  isRequested_ = false;
  isBeatCallbackScheduled_ = true;

  auto beat = std::function<void(jsi::Runtime&)>(
    // on JS queue
    isBeatCallbackScheduled_ = false;
    // beatCallback_(runtime)
  }

  runtimeScheduler_.scheduleWork(std::move(beat));
}
```

This can get into a state where `isRequested_` is not reset back to false even though `EventBeat::induce` is called when `isBeatCallbackScheduled_` is true.

`AndroidEventBeat::request` -> `isRequested_` is set to true -> `FabricUIManager::onRequestEventBeat` -> `EventBeat::induce` -> `isRequested_` is set to false -> `isBeatCallbackScheduled_` is set to true -> `AndroidEventBeat::request` -> `FabricUIManager::onRequestEventBeat` -> `EventBeat::induce` (early exit because `isBeatCallbackScheduled_` is true) -> `beat` is executed on the JS thread.

From this point on, subsequent calls to `AndroidEventBeat::request` are always debounced because flag `isRequested_` is true.

Any subsequent event on Android will end up calling `EventBeat::induce` and the mechanism gets unstuck.

# The fix

The fix is simple, any time `EventBeat::induce` is called, make sure `request_` flag is set to false. This then satisfied the expectation of `useOptimizedEventBatchingOnAndroid` optimisation.

Reviewed By: rubennorte

Differential Revision: D65566258

fbshipit-source-id: 5f15da8f5cb722b329f9f72b9ddca8e2cac04144
2024-11-11 07:01:53 -08:00
Rubén Norte
d7cb6d95a8 Clean up forceBatchingMountItemsOnAndroid feature flag (#47546)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47546

Changelog: [internal]

Cleaning up the feature flag as we've tested it's safe to land.

Reviewed By: javache

Differential Revision: D65749504

fbshipit-source-id: 964db7e9c31ebb8d7e4f7e2703a3040709c6ed6e
2024-11-11 06:05:28 -08:00
Samuel Susla
6c577e96db remove unused import and declaration in EventQueue (#47545)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47545

changelog: [internal]

Reviewed By: javache

Differential Revision: D65663098

fbshipit-source-id: b0a848de9ef01e2915a945a58a08e2e9c666a116
2024-11-11 05:27:44 -08:00
Riccardo Cipolleschi
97a4234b6e Fix Typo and skip generation of app-specific component registration (#47547)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47547

In [#47176](https://github.com/facebook/react-native/pull/47176) we disabled the generation of the component registration for app specific components as it was creating a circular dependency between the app and React Native.

However, we made a couple of typos that make it not work as expected and users picked up those typos soon.

This change fixes them for good.

## Changelog
[iOS][Fixed] - Properly stop generating component registration for components defined in app.

Reviewed By: blakef

Differential Revision: D65750433

fbshipit-source-id: 1a879c5be014905558b9fd05e6f16ac36b784ed6
2024-11-11 04:55:23 -08:00
Fabrizio Cucci
9db28834e2 Migrate com.facebook.react.views.text.ReactTextViewManagerCallback to Kotlin (#47516)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47516

As per title.

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D65598258

fbshipit-source-id: 0ef7e9a4aefcb021bc55698eaf43c2a69bbb4f63
2024-11-11 02:49:09 -08:00
Pieter De Baets
a9a1c86a92 Convert com.facebook.react.bridge.ReactSoftExceptionLogger to Kotlin (#47513)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47513

Changelog: [Internal]

Reviewed By: tdn120

Differential Revision: D65602362

fbshipit-source-id: 95e63bd04480c1c8a364fcf93d24f71f94057d65
2024-11-10 14:08:35 -08:00
David Vacca
b60e36390c Introduce ReactHost.destroy() method to notifies when the React instance is destroyed (#47534)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47534

This diff is introducing a new method to destroy React instance that allows the caller to be notified when the destroy finishes

This is necessary for apps to act upon destroy of the react instance

changelog: [internal] internal

Reviewed By: shwanton

Differential Revision: D65721107

fbshipit-source-id: 2d3d9755db38461ba381b86c72df5869c542379b
2024-11-10 09:30:58 -08:00
Yedidya Feldblum
ae43411008 let Value be nothrow-move-constructible (#47422)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/47422

Reviewed By: Gownta

Differential Revision: D65273055

fbshipit-source-id: 6fda316137b1f797b8b4041521555e46e1098e7c
2024-11-10 02:42:41 -08:00
D N
44d619414c fix: Remove BackHandler.removeEventListener (#45892)
Summary:
All `removeEventListener` methods was removed  2596b2f695 perviously  but seems a `BackHandler` was missed

This can be a breaking change for some third-party modules.

**Migration**: Use `remove` on the EventSubscription from `addEventListener`:

```diff
useEffect(()=>{
+  const subscription = NativeModule.removeListener(name, listener);
+  return ()=>subscription.remove();
},[])
```

## Changelog:

[GENERAL] [REMOVED] - Remove `BackHandler.removeEventListener`

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

Test Plan: ...

Reviewed By: huntie

Differential Revision: D65663591

Pulled By: javache

fbshipit-source-id: 01b804cd6ec77ea4916a0ced7fee551d045f1684
2024-11-09 15:56:44 -08:00
David Vacca
3e27ef1f6e Deprecate CatalystInstance in old architecture (#47383)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47383

CatalystInstance is deprecated and will be removed in new architecture

changelog: [Android][Changed] Deprecate CatalystInstance in old architecture

Reviewed By: cortinico

Differential Revision: D65430643

fbshipit-source-id: 96ba91c45760ead8155f9f28b6fad523be75929e
2024-11-08 20:40:18 -08:00
Thomas Nardone
7794d7af43 Add TextTransform KTX (#47525)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47525

This API is awkward for nullsafe code.  Adding an extension allows Kotlin code to use `applyTextTransform()` on either nullable or non-null strings:
```
val a: String = string.applyTextTransform(...)
val b: String? = nullableString?.applyTextTransform(...)
```
Changelog:
[Android][Added] TextTransform ktx

Reviewed By: javache

Differential Revision: D65618709

fbshipit-source-id: 28a0fe61a0eaf27aa9677af39d932982f3b694b2
2024-11-08 16:14:37 -08:00
David Vacca
34c157f6b3 Undeprecate UIManagerProvider in the new architecture (#47386)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47386

UIManagerProvider is actually useful to decouple client code from the FabricUIManagerClass
that's why I'm removing the DeprecatedInNewArchitecture annotation

changelog: [internal] internal

Reviewed By: cortinico

Differential Revision: D65430644

fbshipit-source-id: 46e95b9e40e99dd9ec6df9f2d51b1fa3d3d77d27
2024-11-08 16:13:17 -08:00
Sam Zhou
cd9ece0553 Pre-suppress errors ahead of turn on partial react 19 ref-as-prop support
Summary:
`react.ref_as_prop=experimental.partial_support` will expose errors where a ref prop is passed to a function component without ref prop. This diff pre-suppresses the newly exposed errors.

Changelog: [Internal]

Reviewed By: gkz

Differential Revision: D65686695

fbshipit-source-id: f241cc40f3ac414a2960dec60d9ba4633e5f93c0
2024-11-08 13:52:27 -08:00
Alex Taylor (alta)
84bfeec9b8 Deploy 0.252.0 to xplat + www (#47523)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47523

Changelog: [Internal]

Reviewed By: SamChou19815

Differential Revision: D65666666

fbshipit-source-id: 19f75611805777115febfca79d0945d31b7ea522
2024-11-08 12:27:49 -08:00
Pieter De Baets
2f7957f2fd Merge RawText sequences (#47278)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47278

When we have multiple spans of text inside a <Text> element, React will emit these as separate RawText ShadowNodes. RawText shadow nodes cannot have any properties beyond the text they contain, yet our current AttributedText logic will generate a separate span for each and duplicate all the relevant properties.

This can be particularly inefficient when JSX is used to interpolate strings, e.g. `<Text styles={styles.text}>Example {i}/{count}</Text>` results in 4 raw text elements with duplicated properties.

Changelog: [General][Changed] Improved AttributedText generation for raw text nodes.

Reviewed By: NickGerleman

Differential Revision: D65134912

fbshipit-source-id: dba4296ebe9987e989760cdee66f1e076fbb7a98
2024-11-08 11:32:51 -08:00
Jakub Piasecki
ee7b4e2763 Fix timers in headless tasks on bridgeless mode (#47496)
Summary:
Fixes https://github.com/facebook/react-native/issues/47495

`JavaTimerManager` is being registered to receive headless tasks events in the [`TimingModule`](0ee963ea65/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.kt (L28-L29)). This module is not used on bridgeless: [1](0ee963ea65/packages/react-native/Libraries/Core/setUpTimers.js (L44-L61)), [2](0ee963ea65/packages/react-native/Libraries/Core/setUpTimers.js (L123-L132)) and since it's loaded lazily, the event listener is never registered.

This PR moves registration to the constructor of `JavaTimerManager` and deregistration to the `onInstanceDestroy` method. This way the event listener is always registered when an instance of the timer manager exists.

## Changelog:

[ANDROID] [FIXED] - Fix timers in headless tasks on bridgeless mode

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

Test Plan: See the reproducer from the issue

Reviewed By: javache

Differential Revision: D65615601

Pulled By: alanleedev

fbshipit-source-id: 6e1d36f8783e813065f79730a928b99c3e385718
2024-11-08 11:07:26 -08:00
Pieter De Baets
e3c3a0c8a7 Migrate NativeModuleRegistryBuilder to Kotlin (#47508)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47508

Changelog: [Internal]

Reviewed By: tdn120

Differential Revision: D60037204

fbshipit-source-id: 2b405e492520e075b83a075009d25fb7b7fa8925
2024-11-08 10:37:37 -08:00
Pieter De Baets
2ec547ad28 Remove concurrentRoot from initialProps (#47512)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47512

As can be seen in `renderApplication`, `useConcurrentRoot` is no longer used to decide whether to run the application in concurrent mode, as we default all Fabric-users to concurrent root.

Changelog: [General][Removed] Removed type for useConcurrentRoot from AppRegistry, as it was already ignored

Reviewed By: sammy-SC, fabriziocucci

Differential Revision: D65660681

fbshipit-source-id: c99e5ae14d515015709908ed21a854c780f628e0
2024-11-08 10:26:50 -08:00
Tim Yung
090501d26d RN: Enable scheduleAnimatedEndCallbackInMicrotask (#47503)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47503

Enables the `scheduleAnimatedEndCallbackInMicrotask` feature flag that was introduced in https://github.com/facebook/react-native/pull/46714.

Changelog:
[General][Changed] - Callbacks passed to `animation.start(<callback>)` will be scheduled for execution in a microtask. Previously, there were certain scenarios in which the callback could be synchronously executed by `start`.

Reviewed By: javache

Differential Revision: D65645981

fbshipit-source-id: ac159208b7c1df60549baa52704bb0e704da0acf
2024-11-08 10:22:12 -08:00
Pieter De Baets
105f5f6000 Convert exceptions in com.facebook.react.bridge to Kotlin (#47493)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47493

Changelog: [Internal]

Reviewed By: tdn120

Differential Revision: D65597240

fbshipit-source-id: 8014c756d7730bea617f6d27eb1e56d75c9156cf
2024-11-08 09:31:12 -08:00
Alex Hunt
63ec67c591 Exclude Libraries/ReactPrivate/ from public-api-test
Summary:
As titled. This API is legacy / Meta-only.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D65666574

fbshipit-source-id: f9700486aec0306b305910bff14ae7f3df3fab7f
2024-11-08 09:16:21 -08:00
Sam Zhou
f5d7df6672 Pre-suppress errors to prepare for flow typing changes
Summary: Changelog: [Internal]

Reviewed By: cyan33

Differential Revision: D65633359

fbshipit-source-id: 7aaee2cab2d61b61eb5e1317d6b4ce58b6191fb8
2024-11-08 08:39:06 -08:00
Nicola Corti
7e268c9d52 Revert React 19RC to React 18.3.1 (#47380)
Summary:
While we're waiting for 19 stable, let's bring main back to 18.3.1 ahead of the 0.77 branch cut. We'll land this change just after 19 stable lands.

This is a cherry pick of b93b378fa0 which landed in 0.76 already

bypass-github-export-checks

## Changelog:

[INTERNAL] - Revert React 19RC to React 18.3.1

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

Test Plan: CI

Reviewed By: cipolleschi

Differential Revision: D65430775

Pulled By: cortinico

fbshipit-source-id: f0f211754c8ffe5d037fd299e4de52c29d1d7913
2024-11-08 08:27:37 -08:00
Pieter De Baets
8cb2ad6725 Improve robolectric shadows (#47460)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47460

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D65538979

fbshipit-source-id: 7a0b0f701968a9af9197246e6e89e0ccfd55653d
2024-11-08 06:14:13 -08:00
Fabrizio Cucci
697a422bf5 Migrate com.facebook.react.views.text.FontMetricsUtil to Kotlin (#47510)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47510

As per title.

Changelog: [Internal]

Reviewed By: tdn120

Differential Revision: D65598073

fbshipit-source-id: 401750f2df9bd434a8310f107f46a686bfa6601c
2024-11-08 06:10:22 -08:00
Nicola Corti
e64513bf4e RNGP - Do not attempt to substring to 1024 while logging. (#47509)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47509

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

Changelog:
[Android] [Fixed] - RNGP - Do not attempt to substring to 1024 while logging

Reviewed By: javache

Differential Revision: D65659586

fbshipit-source-id: 8fa16131cea96b8b6aa9c0224c7b990a4f51175f
2024-11-08 04:57:15 -08:00
Pieter De Baets
3c32da5bfe Convert com.facebook.react.bridge.NativeArray to Kotlin (#47456)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47456

Changelog: [Internal]

Reviewed By: tdn120

Differential Revision: D65486257

fbshipit-source-id: d18d38fd7e605918d79e370dda7df51abac2f23c
2024-11-08 04:31:46 -08:00
Pieter De Baets
fd72537202 Convert com.facebook.react.bridge.JavaOnlyArray to Kotlin (#47424)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47424

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D65479614

fbshipit-source-id: d2ab86eb0e8c68a5733c602652b4b8dccc09a0a1
2024-11-08 04:31:46 -08:00
Riccardo Cipolleschi
b32335c299 Only build ios in check nightlies (#47506)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47506

The Check nightlies job prepare a new nightly app with additional libraries and on iOS it builds with `yarn ios`.

The command tries to launch the app on the simulator which sometimes fails and this can make the jobs keep running for hours.

This change make sure that we only build the app

## Changelog:
[Internal] - Only build iOS in CI for Check Nightlies

Reviewed By: blakef

Differential Revision: D65656812

fbshipit-source-id: 14db3738f33f8024c9e99fe206b170209154bac7
2024-11-08 04:28:32 -08:00
Fabrizio Cucci
12180ca153 Migrate com.facebook.react.views.text.ReactTypefaceUtils to Kotlin (#47505)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47505

As per title.

Changelog: [Internal]

Reviewed By: tdn120

Differential Revision: D65596132

fbshipit-source-id: d08aea48ff293cc7f20ebc40a1d289dcb8158dcb
2024-11-08 04:03:46 -08:00
Tim Yung
f0ffcd4f5d RN: Enable enableAnimatedAllowlist and enableAnimatedPropsMemo (#47502)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47502

Enables the two following feature flags:

- `enableAnimatedAllowlist`
- `enableAnimatedPropsMemo`

The former enables the use of an experimental optimization to provide `unstable_createAnimatedComponentWithAllowlist` and `useAnimatedProps` an allowlist of props that reduces the set of props iterated over by to find props with `AnimatedNode` (e.g. `Animated.Value`) instance values.

The latter enables improved memoization logic in `Animated` so that its intenal state is invalidated less frequently, reducing the cost of updating `Animated` components.

Changelog:
[General][Changed] - Optimized the performance of updating `Animated` components.

Reviewed By: rozele

Differential Revision: D65645985

fbshipit-source-id: 85f9e53072f09a59589d76d0c096f4cedd17bb4b
2024-11-07 23:43:30 -08:00
Joe Vilches
cbab004eb9 Remove position type override on scroll view sticky headers (#47498)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47498

I am trying to help someone with creating a sticky header on a scrollview, specifically one that floats on the side of the scrollview instead of the top Currently we can't really do that, since utilizing `position: absolute` to layout this properly will get overriden by the header styles changed in this diff

This was only added since static was the default and we needed to apply zIndex. With proper static implementation that is no longer the case, so I think it makes sense to remove this to support this use case.

Changelog: [General] [Breaking] - `position` of sticky headers on `ScrollView` will now be taken into account

Reviewed By: rozele

Differential Revision: D65626544

fbshipit-source-id: 8d650ca7654918e692435935e7c1094c412fd9f6
2024-11-07 16:34:31 -08:00
Arushi Kesarwani
846c4b1ea2 Reducing visibility of ImageStoreManager (#47443)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47443

As part of sustainability week effort for switching to internal here:

https://fb.workplace.com/groups/251759413609061/permalink/872342228217440/

Reducing visibility of ImageStoreManager from public to internal

Changelog:
[Android] [Breaking] - Stable API - Make ImageStoreManager internal

Reviewed By: javache

Differential Revision: D65520953

fbshipit-source-id: 0207be6a5e0b92dbbaee534735fc829e9202727d
2024-11-07 15:32:43 -08:00
Thomas Nardone
d02da992a4 Convert + Internalize SwipeRefreshLayoutManager (#47470)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47470

Convert to Kotlin and formalize it being an internal class (some methods were already `protected` in Java)

Changelog:
[Android] [Breaking] - Stable API - Make SwipeRefreshLayoutManager internal

Reviewed By: cortinico

Differential Revision: D65481861

fbshipit-source-id: afc5c624373fbcd3ca2d28b2834d2682de672997
2024-11-07 11:39:35 -08:00
Ramanpreet Nara
8b053a4fca Implement always available js error handling (#47466)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47466

Now, when the useAlwaysAvailableJSErrorHandling feature flag is true, React Native will use the earlyjs c++ error reporting pipeline for handling all javascript errors!

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D64715159

fbshipit-source-id: 597a5278eb792f87dca10e06fa9816b3a8c47b84
2024-11-07 11:22:57 -08:00
Fabrizio Cucci
791afd3209 Migrate com.facebook.react.views.text.ReactFontManager to Kotlin (#47488)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47488

As per title.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D65594248

fbshipit-source-id: 5a21baefb768b1c6f8ec0c33158812d1de6113d5
2024-11-07 10:23:27 -08:00
Pieter De Baets
bcdf6ad1af Convert com.facebook.react.bridge.JavaOnlyMap to Kotlin (#47479)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47479

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D65595979

fbshipit-source-id: be8217ef1fd9f59af57a1e100a4d9e86b66d8027
2024-11-07 10:16:21 -08:00
Tim Yung
bf31c8f077 RN: Feature Flag to Disable InteractionManager (#47475)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47475

Creates a feature flag to evalute the impact of disabling `InteractionManager` and replacing its scheduling behavior with `setImmediate`.

Changelog:
[Internal]

Reviewed By: javache

Differential Revision: D65577455

fbshipit-source-id: c0dc2b4d062eff4929ef37c5e217fd194addd790
2024-11-07 09:29:44 -08:00
Riccardo Cipolleschi
0ee963ea65 Cleanup after Codegen refactoring (#47483)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47483

I relaized too late that there were a couple of comments on [#47458](https://github.com/facebook/react-native/pull/47458) to add some explanation/remove commented code.

This change applies those comments

## Changelog
[Internal] - Cleanup after landing [#47458](https://github.com/facebook/react-native/pull/47458)

Reviewed By: dmytrorykun

Differential Revision: D65597157

fbshipit-source-id: 238bb75e4b45efae9a8736a7b4feb10f5af5e3d9
2024-11-07 07:53:07 -08:00
Peter Abbondanzo
425093863c Log image load errors (#47419)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47419

Minor improvements to `ImageExample` so we log when images fail to load. Also replaces a `Text` component with `RNTesterText` so it's legible.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D65363864

fbshipit-source-id: 6c7ce8d5af6aabfed21479c784911bdcffe4684e
2024-11-07 07:53:01 -08:00
Nicola Corti
7817ab5de2 Reland: Undo breaking change of UiManager.eventDispatcher by solving circular dependency (#47478)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47478

That's a reland of D65540601

The `UIManager.eventDispatcher` return type is wrong and is causing a breaking change in 0.77

For 0.76 we fixed it in the release branch but we should fix it for good in main as well.
To solve it I had to fix the circular dependency between .bridge and .uimanager.

I wish I could have isolated the .events package better but as everythign is public, any
change we do is going to be a breaking change so I'm being over cautios here.

Changelog:
[Android] [Fixed] - Undo breaking change of UiManager.eventDispatcher return type

Reviewed By: javache

Differential Revision: D65595391

fbshipit-source-id: fc7f6dce78e531c5ec0cc493ed90c0012262b77f
2024-11-07 05:25:17 -08:00
Alex Hunt
4567e2a897 Remove redundant UnimplementedView export from BackHandler (#47461)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47461

As titled, is overwritten later in the file.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D65546370

fbshipit-source-id: 4ea71d24e429b7bbded3e7bb7c75015a2c9d95d8
2024-11-07 05:13:53 -08:00
Riccardo Cipolleschi
9e399d940a Remove XCBeautify from CI (#47482)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47482

XCBeautify swallow some errors, especially all the linker errors when some symbol is not defined. The full error is not available in the raw log either.

This makes much harder to debug those issues when they happen.

We can remove xcbeautify for the time being, while we find a better solution.

## Changelog
[Internal] - Remove XCBeautify from ci

Reviewed By: dmytrorykun

Differential Revision: D65596745

fbshipit-source-id: 0550d4cbeadc5bec8acc61b5edc1320d3445bcaf
2024-11-07 04:57:49 -08:00
Riccardo Cipolleschi
ffa159e147 Set ASSUME_NONULL in codegen files (#47481)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47481

The Codegenerated files has this option turned off.
This is causing Xcode to output hundreds of warnings due to missing nullability options. RThis fixes them.

## CHANGELOG
[Internal] - Set ASSUME_NONNULL regions in codegen'd files

Reviewed By: dmytrorykun

Differential Revision: D65596598

fbshipit-source-id: bbf664944e103c05ef593a7e07bf5b767445950c
2024-11-07 04:50:55 -08:00
Mateo Guzmán
8bb3033d73 fix(flow): excluding packages/rn-tester/Pods/ from flow checks (#47474)
Summary:
When running the commands to check the flow types locally, there is quite some noise from files under `packages/rn-tester/Pods` that should not be checked as they are not from the source code itself.

<img width="839" alt="Screenshot 2024-11-07 at 00 50 55" src="https://github.com/user-attachments/assets/7ad3d96d-0f4a-4772-9e37-34d7e593b4cf">

## Changelog:

[INTERNAL] [FIXED] - Excluding `packages/rn-tester/Pods/` from flow checks

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

Test Plan:
```bash
yarn flow
```

Reviewed By: cortinico

Differential Revision: D65594400

Pulled By: cipolleschi

fbshipit-source-id: d5e8828f41fc87c9a95293c250f24673ebbc6cd4
2024-11-07 04:37:19 -08:00
Riccardo Cipolleschi
ace690aba9 Generate RN specific Files in RN (#47458)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47458

We are in a weird situation where React Native depends on some files that are generated by Codegen.

Codegen runs in the user project, so those dependencies are not available to React Native if we try to build it in isolation.

This is a problem and a blocker to prepare the prebuilds for iOS.

This image show the changes we are introducing:
On the right we have the current situation.
On the left the new one.

{F1954418630}

## Changelog:
[Internal] - Generate React Native specific code inside React Native

Reviewed By: cortinico, blakef

Differential Revision: D65541505

fbshipit-source-id: 1412d7f23c4d2230b795af41f1e832c8a70d5859
2024-11-07 04:08:58 -08:00
Oskar Kwaśniewski
5e18f7f788 fix: typo in spm.rb (#47480)
Summary:
This PR fixes a typo in spm.rb

## Changelog:

[IOS] [FIXED] - Typo in spm.rb

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

Test Plan: N/a

Reviewed By: GijsWeterings

Differential Revision: D65596339

Pulled By: cortinico

fbshipit-source-id: c318cec1422dbcb322e70dc5f189d86af42b626d
2024-11-07 04:01:20 -08:00
Alan Lee
fb69f406df Make IntentModule Nullsafe (#47430)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47430

Make IntentModule Nullsafe.
Fixed nullability warnings.

Changelog: [Internal]

Reviewed By: tdn120

Differential Revision: D65463226

fbshipit-source-id: 2da597e66ad170ec4a2a2949348e522bb361c209
2024-11-07 01:03:33 -08:00
Tim Yung
2dab7b078d ScrollView: Delete unstable_setEnableSyncOnScroll (#47399)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47399

Deletes `unstable_setEnableSyncOnScroll` which we are no longer experirmenting with in React Native.

Changelog:
[Internal] - Deleted `unstable_setEnableSyncOnScroll` on `ScrollView`, which was never part of the React Native Public API.

Reviewed By: tdn120, sammy-SC

Differential Revision: D65449039

fbshipit-source-id: 6608d5ccca477f1da5e0168c4a342cce17014b08
2024-11-07 00:00:14 -08:00
Yedidya Feldblum
f01b47257a let PointerValue::invalidate() be noexcept (#47354)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47354

`PointerValue::invalidate()` is called from `Pointer` destructor, which is implicitly `noexcept`, and from `Pointer` move-assignment operator, which is now `noexcept`.

Reviewed By: neildhar

Differential Revision: D65271399

fbshipit-source-id: 26fd9707e4389da78537d0d607adaef0c68690ca
2024-11-06 23:10:36 -08:00