Commit Graph
1476 Commits
Author SHA1 Message Date
Fabrizio Cucci ed3c0a1423 Kotlinify IllegalViewOperationException (#43794)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43794

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: alanleedev

Differential Revision: D55653543

fbshipit-source-id: 71414e4b46aea7497bb64881cfb99d3b5c84c150
2024-04-03 02:43:36 -07:00
Fabrizio Cucci 669bcb8675 Kotlinify YogaNodePool (#43786)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43786

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: alanleedev

Differential Revision: D55643838

fbshipit-source-id: 0138a9a9c328bea4838ab4f4c5a0db8a7436ebbe
2024-04-03 02:43:36 -07:00
Fabrizio Cucci 08af9eaa29 Kotlinify ComponentFactory (#43783)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43783

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: alanleedev

Differential Revision: D55643354

fbshipit-source-id: de6b676ae138f823c0521f1dcc48f3bcb7fd4e04
2024-04-03 02:43:36 -07:00
Fabrizio Cucci 3856a46946 Kotlinify DispatchCommandMountItem (#43781)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43781

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: cortinico

Differential Revision: D55642568

fbshipit-source-id: e03a4cc5e2fac4b975d757944520d378f6ea368b
2024-04-03 02:43:36 -07:00
Fabrizio Cucci 0d04f5d147 Kotlinify LifecycleState (#43782)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43782

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: cortinico

Differential Revision: D55642371

fbshipit-source-id: d37fc2eb19635a70e60c57dc6c150aa7e713f778
2024-04-03 02:43:36 -07:00
Fabrizio Cucci 7df9dbbccf Kotlinify NativeKind (#43775)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43775

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: cortinico

Differential Revision: D55640039

fbshipit-source-id: 5e8f395db0b7010e9a8b225a472db3bb46459d00
2024-04-03 02:43:36 -07:00
Fabrizio Cucci de617d03e1 Kotlinify NotificationOnlyHandler (#43745)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43745

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: rshest

Differential Revision: D55601731

fbshipit-source-id: d5da4002ee12cea1b2e04df237cfd27a4727df05
2024-04-03 02:43:36 -07:00
Arushi Kesarwani b9dc0ae7de Reducing visibility of companion object in JSCInstance (#43800)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43800

Changelog: [Internal]

Facebook : D55610929 comments

Reviewed By: alanleedev

Differential Revision: D55657065

fbshipit-source-id: 3380dc13ee9cbc122a053a55363cc0842e01eded
2024-04-02 22:40:47 -07:00
Arushi Kesarwani e70caeec10 Unbreak build_android in OSS (#43803)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43803

The dependency resolution of java/com/facebook/soloader/annotation:annotation is missing in OSS and needs to be included in [build.gradle.kts](https://github.com/facebook/react-native/blob/main/packages/react-native/ReactAndroid/build.gradle.kts) instead

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D55664486

fbshipit-source-id: 3350241a7c90d075114e3f0c2776afc1ab209d5d
2024-04-02 17:42:02 -07:00
Fabrizio Cucci 7b302dc8bd Kotlinify RequestOnlyHandler (#43743)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43743

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: tdn120

Differential Revision: D55588782

fbshipit-source-id: 89f15fb55eaa338be97c938d6b23c3e77ce610f0
2024-04-02 16:17:39 -07:00
Fabrizio Cucci 7d60f403f9 Kotlinify SingleThreadAsserter (#43768)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43768

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: cortinico

Differential Revision: D55636773

fbshipit-source-id: 2f3d1c73a5d3c7d229b854ab73dcf2902a639c3a
2024-04-02 16:17:39 -07:00
Fabrizio Cucci fa808b0840 Kotlinify MeasureUtil (#43769)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43769

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: cortinico

Differential Revision: D55636884

fbshipit-source-id: 331f414db729f1b5f6f285df015ec65c2ade38cc
2024-04-02 16:17:39 -07:00
Fabrizio Cucci cb28372c72 Kotlinify ReactRootViewTagGenerator (#43771)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43771

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: cortinico

Differential Revision: D55637406

fbshipit-source-id: e66690a1f10d7825f27e060d6f434544b5f8c39d
2024-04-02 16:17:39 -07:00
Fabrizio Cucci 79fa565b8c Kotlinify ReactYogaConfigProvider (#43773)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43773

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: cortinico

Differential Revision: D55638955

fbshipit-source-id: 068e0e43367e8f11d43dcbd811b881bdc27d801c
2024-04-02 16:17:39 -07:00
Fabrizio Cucci 16fd4e4c0f Kotlinify ReactInvalidPropertyException (#43759)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43759

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: rshest

Differential Revision: D55633375

fbshipit-source-id: 5b934ec2295c2f276249588f293fd56e243fb347
2024-04-02 16:17:39 -07:00
Fabrizio Cucci 0a1a7cafa3 Kotlinify ReactConstants (#43758)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43758

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: rshest

Differential Revision: D55632715

fbshipit-source-id: 9461c131ba250061647b37a5dcc20de10ee8393d
2024-04-02 16:17:39 -07:00
Alan Lee e5db122924 Convert WindowOverlayCompat to Kotlin (#43749)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43749

Convert Java to Kotlin: `react/devsupport/WindowOverlayCompat.java`

Changelog:
[Internal] internal

Reviewed By: rshest

Differential Revision: D55604746

fbshipit-source-id: 413bf28c8f692e85150a04de05dc7bae324ddd26
2024-04-02 15:12:58 -07:00
Fabrizio Cucci 477611c8db Kotlinify InspectorFlags (#43772)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43772

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: rshest

Differential Revision: D55637558

fbshipit-source-id: b0bcbed4790940e52af6ca82c0ee50e6a4fd510c
2024-04-02 13:43:39 -07:00
Fabrizio Cucci 9bebab5ab1 Kotlinify LayoutDeleteAnimation (#43741)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43741

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: rshest

Differential Revision: D55589024

fbshipit-source-id: dc14584b0f52fb20ba2b533c48de062824757256
2024-04-02 13:43:39 -07:00
Arushi Kesarwani 3571f9a5c8 Migrate JSCInstance to Kotlin (#43750)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43750

Changelog: [Internal]

Reviewed By: rshest

Differential Revision: D55610929

fbshipit-source-id: eb269bdb9a2d123605ae07d86739b32c576f5fa5
2024-04-02 12:18:50 -07:00
Fabrizio Cucci 1252f63c18 Kotlinify LayoutCreateAnimation (#43740)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43740

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: rshest

Differential Revision: D55588908

fbshipit-source-id: 4e502e32e6b43ca1df866ab7ba4653d3cee0ec65
2024-04-02 12:05:06 -07:00
Pieter De Baets d195fd0c06 Use useDevSupport instead of ReactHostImpl.DEV (#43673)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43673

Changelog: [Android][Changed] In bridgeless, `useDevSupport` now is configurable by ReactNativeHost.

Reviewed By: cortinico

Differential Revision: D55365753

fbshipit-source-id: 691ceb648be30029e753b234038c0997aa59ffd8
2024-04-02 09:39:04 -07:00
Ruslan Shestopalyuk c32a053722 Fix broken build due to a land time race
Summary:
With D55574528 and D55623682 having landed concurrently, and the latter enabling warnings-as-errors for Kotlin files vs the former having one such warning, this caused a build breakage.

This diff fixes  it.

Reviewed By: andrewdacenko

Differential Revision: D55636176

fbshipit-source-id: 781b8cf40a4e9aa8a3da3005d26dca975f146c09
2024-04-02 06:40:01 -07:00
Fabrizio Cucci 584e8b90be Kotlinify NoSuchNativeViewException (#43739)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43739

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: rshest

Differential Revision: D55588272

fbshipit-source-id: 6dff095322959e9eada0fc50ca18da870053cc52
2024-04-02 04:38:39 -07:00
Ruslan Shestopalyuk db60eca6d0 Migrate react/devsupport/LogBox*.java to Kotlin (#43730)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43730

# Changelog:
[Internal] -

As in the title, converts corresponding type declarations in `react/devsupport/LogBox*.java` to Kotlin.

Reviewed By: NickGerleman

Differential Revision: D55574528

fbshipit-source-id: 56cf5de75d18cd73929cb7f0c9375a3f62e83574
2024-04-02 03:29:30 -07:00
Fabrizio Cucci d6fbc6b241 Kotlinify ViewDefaults (#43738)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43738

Changelog: [Internal]

As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)).

Reviewed By: rshest

Differential Revision: D55584737

fbshipit-source-id: 1b009ac9cc7f7670ee36d705d0439c0743bd5165
2024-04-02 02:47:48 -07:00
Nick Gerleman ac74bd8c64 Fix PixelUtil OSS Build failure (#43754)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43754

Moves off of deprecated `DisplayMetrics.scaledDensity` API to builtin font scaling API, while still clamping to max multiplier using previous logic.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D55623674

fbshipit-source-id: 2668eea8dbd154cc046e2c515323ad66b289dc64
2024-04-02 01:52:39 -07:00
Ruslan Shestopalyuk 08f57473cc Convert react/uimanager/*Util.java -> Kotlin (#43729)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43729

# Changelog:
[Internal] -

As in the title, converts corresponding type declarations in `react/uimanager/*Util.kt` to Kotlin.

Reviewed By: tdn120

Differential Revision: D55574531

fbshipit-source-id: 974234bd57c77e863aa723388e48ffc455e73a96
2024-04-01 16:17:13 -07:00
Ruslan Shestopalyuk 287b5d697f LayoutAnimation types to Kotlin (#43728)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43728

# Changelog:
[Internal] -

As in the title, converts corresponding type declarations in `react/uimanager/layoutanimation/*Type.kt` to Kotlin.

Differential Revision: D55574530

fbshipit-source-id: 8527b5c9b491435c60ed9c05092ffeccd7552f9c
2024-04-01 12:37:48 -07:00
Ruslan Shestopalyuk 1e44cbe9f4 Migrate ErrorType.java to Kotlin (#43727)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43727

# Changelog:
[Internal] -

As in the title, converts this one particular Java file to Kotlin.

Reviewed By: arushikesarwani94

Differential Revision: D55574526

fbshipit-source-id: 04af5b870670a5560eaba7ab8c029c580032d09a
2024-04-01 12:37:48 -07:00
Ruslan Shestopalyuk 220588004b ImageResizeMethod/Mode to Kotlin (#43725)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43725

## Changelog:
[Internal] -

Converts `react/views/image/ImageResizeMethod.java` and `react/views/image/ImageResizeMode.java` to Kotlin.

Grouped together, as it kind of makes sense.

Reviewed By: fabriziocucci

Differential Revision: D55574319

fbshipit-source-id: 5fb47425e1eb0fca1e06527e16e994d659a749a8
2024-03-31 16:14:53 -07:00
Ramanpreet Nara fa4bfde630 Revert D55505416: Pull react instance method impls out of ReactContext
Differential Revision:
D55505416

Original commit changeset: ce1e3ab379eb

Original Phabricator Diff: D55505416

fbshipit-source-id: ae988ae3464f40923521922d4c3ac4a57846a3ef
2024-03-31 06:10:45 -07:00
Ramanpreet Nara 14fb1cc335 Pull react instance method impls out of ReactContext
Summary:
## Context
Prior, ReactContext used to implement bridge logic.

For bridgeless mode, we created BridgelessReactContext < ReactContext

## Problem

This could lead to failures: we could call bridge methods in bridgeless mode.

## Changes
Primary change:
- Make all the react instance methods inside ReactContext abstract.

Secondary changes: Implement react instance methods in concrete subclasses:
- **New:** BridgeReactContext: By delegating to CatalystInstance
- **New:** ThemedReactContext: By delegating to inner ReactContext
- **Unchanged:** BridgelessReactContext: By delegating to ReactHost

## Auxiliary changes
This fixes ThemedReactContext in bridgeless mode.

**Problem:** Prior, ThemedReactContext's react instance methods did not work in bridgeless mode: ThemedReactContext wasn't initialized in bridgeless mode, so all those methods had undefined behaviour.

**Solution:** ThemedReactContext now implements all react instance methods, by just forwarding to the initialized ReactContext it decorates (which has an instance).

Changelog: [Android][Removed] Delete ReactContext.initializeWithInstance(). ReactContext now no longer contains legacy react instance methods. Please use BridgeReactInstance instead.

 ---

Reviewed By: fkgozali

Differential Revision: D55505416

fbshipit-source-id: ce1e3ab379eb788d26130dd44a66544aada3db02
2024-03-30 16:53:30 -07:00
Viresh Umbre f7ec4694a6 Revert D53145010: Pull react instance method impls out of ReactContext
Differential Revision:
D53145010

Original commit changeset: 2405bc24afb0

Original Phabricator Diff: D53145010

fbshipit-source-id: 2d37cef8f6b6810f9b114ea633373668bcc805dc
2024-03-28 16:14:07 -07:00
Ramanpreet Nara f99dc486cd Pull react instance method impls out of ReactContext
Summary:
## Context
Prior, ReactContext used to implement bridge logic.

For bridgeless mode, we created BridgelessReactContext < ReactContext

## Problem

This could lead to failures: we could call bridge methods in bridgeless mode.

## Changes
Primary change:
- Make all the react instance methods inside ReactContext abstract.

Secondary changes: Implement react instance methods in concrete subclasses:
- **New:** BridgeReactContext: By delegating to CatalystInstance
- **New:** ThemedReactContext: By delegating to inner ReactContext
- **Unchanged:** BridgelessReactContext: By delegating to ReactHost

## Auxiliary changes
This fixes ThemedReactContext in bridgeless mode.

**Problem:** Prior, ThemedReactContext's react instance methods did not work in bridgeless mode: ThemedReactContext wasn't initialized in bridgeless mode, so all those methods had undefined behaviour.

**Solution:** ThemedReactContext now implements all react instance methods, by just forwarding to the initialized ReactContext it decorates (which has an instance).

Changelog: [Android][Removed] Delete ReactContext.initializeWithInstance(). ReactContext now no longer contains legacy react instance methods. Please use BridgeReactInstance instead.

Reviewed By: javache

Differential Revision: D53145010

fbshipit-source-id: 2405bc24afb00864117d3c504fc9c4cbffd7203a
2024-03-28 14:31:51 -07:00
Ruslan Lesiutin ad9368068a fix[android]: fix bridgeless configuration to include DebuggingOverlay in react packages (#43661)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43661

# Changelog: [Internal]

1. Remove `BridgelessDebugReactPackage.java`, this was added in D43407534. Technically, its the same as `DebugCorePackage.java`.
2. `ReactInstance` to add `DebugCorePackage`, so `DebuggingOverlay` view manager will be included in the bridgeless build.
3. Fix `RNTesterApplication.kt` to NOT create `MyLegacyViewManager` for every possible viewManagerName, apart from `"RNTMyNativeView"`, return null instead.

Reviewed By: cortinico

Differential Revision: D55375350

fbshipit-source-id: 1d3cb6b5ad3c0248df1def9f37c8c49b308f4473
2024-03-28 11:06:17 -07:00
Rubén Norte 3da58585d0 Include native module for DOM APIs by default in all apps using the new architecture (#43653)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43653

Changelog: [internal]

This will allow us to clean up some code in `UIManager` (using methods in the native module instead) and prepare to use the DOM APIs in OSS behind a feature flag.

This doesn't enable the DOM APIs in OSS, only the native module.

Reviewed By: javache

Differential Revision: D55365252

fbshipit-source-id: 70ec0eb022df586ad554c5b8ce6915b8ceddef5f
2024-03-28 08:06:41 -07:00
Arushi Kesarwani 41a966458c DisabledDevSupportManager -> ReleaseDevSupportManager (#43667)
Summary:
allow-large-files

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

Renaming `DisabledDevSupportManager` -> `ReleaseDevSupportManager` to avoid confusion since this is only initialized in Release variant
https://github.com/facebook/react-native/blob/bb02049a6af2c83c3fa633a5eb098bae1135b4a4/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java#L181-L187

Changelog:
[Internal] Internal

Reviewed By: fkgozali, cortinico

Differential Revision: D55388403

fbshipit-source-id: 984b54f1666ad39301cb94d2b8c19b7504c997f6
2024-03-28 05:46:41 -07:00
Pieter De Baets 59a43e6d5d Unbreak oss build due to explicit API mode (#43660)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43660

Changelog: [Internal]

Reviewed By: cortinico, fabriziocucci

Differential Revision: D55375856

fbshipit-source-id: d1df4965549069979410d8b07bb2518264238c8c
2024-03-27 05:50:47 -07:00
Arushi Kesarwani b282e87729 React-Native-Restart in release (#43645)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43645

https://github.com/facebook/react-native/pull/43521 & https://github.com/facebook/react-native/pull/43588 aimed to fix `react-native-restart`, however in release `handleReloadJS()` is a no-op in [DisabledDevSupportManager](https://github.com/facebook/react-native/blob/ac714b1c3300d3a169bdcfec05d556e18a7b83ff/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java#L139) which is why this should not work. Fixing it by relying on `ReactHostImpl.reload()` instead for Bridgeless.

Adding implementation of `DisabledDevSupportManager.handleReloadJS()` won't work as it would mean introducing circular dependency `devsupport` -> `runtime`

Reviewed By: cortinico

Differential Revision: D55342296

fbshipit-source-id: ee6fba68586a2bdd1163522f75e6beb1b7736f6c
2024-03-26 19:54:50 -07:00
Alex Hunt bfb0319ce0 Register CatalystInstanceImpl with modern CDP backend (2/2) (#43251)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43251

Integrates the modern CDP backend with `CatalystInstanceImpl` (the React Native instance implementation) on Android.

This complete the modern CDP integration for Bridge.

Changelog: [Internal]

Reviewed By: motiz88

Differential Revision: D51458010

fbshipit-source-id: 6f73868da9d0d4cc5d086a4569c78444cb1b83ec
2024-03-26 17:52:52 -07:00
Evert Eti b2ca41eef5 Fix possible deadlock in dispatchViewUpdates (#43643)
Summary:
In https://github.com/th3rdwave/react-native-safe-area-context/issues/448 it was noticed that from 0.72 (https://github.com/facebook/react-native/commit/bc766ec7f8b18ddc0ff72a2fff5783eeeff24857 https://github.com/facebook/react-native/pull/35889) it was possible to get a deadlock in dispatchViewUpdates. ([More details](https://github.com/th3rdwave/react-native-safe-area-context/issues/448#issuecomment-1871155936))

This deadlock resulted in a laggy experience for all users using https://github.com/th3rdwave/react-native-safe-area-context/ on Android.

To avoid this problem, the author of the original fix [proposed](https://github.com/th3rdwave/react-native-safe-area-context/issues/448#issuecomment-1872121172) this solution which was tested by Discord and many other users.

It would be great to have this backported to 0.72 and 0.73 because of the large userbase using react-native-safe-area-context since it's recommended by expo and react-navigation.

## Changelog:

<!-- Help reviewers and the release process by writing your own changelog entry.

Pick one each for the category and type tags:

[ANDROID] [FIXED] - Fixed possible deadlock in dispatchViewUpdates

For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->

[ANDROID] [FIXED] - Fixed possible deadlock in dispatchViewUpdates

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

Test Plan:
The original memory leak remains fixed, and can be verified in https://github.com/feiyin0719/RNMemoryLeakAndroid.

To verify the deadlock is gone, every app using https://github.com/th3rdwave/react-native-safe-area-context will work smoothly and not log any excessive `Timed out waiting for layout`
(https://github.com/17Amir17/SafeAreaContext)

Reviewed By: arushikesarwani94

Differential Revision: D55339059

Pulled By: zeyap

fbshipit-source-id: c067997364fbec734510ce99b9994e89d044384a
2024-03-26 15:48:19 -07:00
Nicola Corti bb02049a6a Fix header import inside ReactInstanceManagerInspectorTarget.h (#43657)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43657

This include is not correct and is breaking the OSS build

Changelog:
[Internal] [Changed] - Fix header import inside ReactInstanceManagerInspectorTarget.h

Reviewed By: rshest

Differential Revision: D55368321

fbshipit-source-id: 0530257ad5c548476beb882174d73842775b3726
2024-03-26 12:37:49 -07:00
Ramanpreet Nara e69f6755c8 Make ReactContext and ReactApplicationContext classes abstract (#43625)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43625

Changelog: [Android][Breaking] Make ReactApplicationContext and ReactContext abstract. Please instantiate BridgeReactContext instead (bridge mode). Or BridgelessReactContext instead (bridgeless mode).

Reviewed By: arushikesarwani94

Differential Revision: D55218590

fbshipit-source-id: d507cc47c67cb5cd6c548844c08aa9ed8fb74796
2024-03-26 07:15:29 -07:00
Ramanpreet Nara 8eb1bd1170 Scripted: Codemod ReactApplicationContext creators to BridgeReactContext (#43626)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43626

The things that create ReactApplicationContext should instead create BridgeReactContext.

Long-term, ReactApplicationContext will be abstract. This diff pulls noise out from that eventual diff.

Changelog: [Internal]

Reviewed By: arushikesarwani94

Differential Revision: D55218591

fbshipit-source-id: d359c794f3da4a1ecb2fa8edbed5eeeb620b137b
2024-03-26 07:15:29 -07:00
Ramanpreet Nara a984169c7d Manual: Codemod initializeWithInstance() callers to BridgeReactContext (#43627)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43627

Eventaully, ReactApplicationContext.initailizeWithInstance() will be moved to BridgeReactContext.

Doing the migration up-front to remove noise from the eventual diff.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D55218593

fbshipit-source-id: c542c44cf8b36b9dc2a01db2bf6173639fb8698a
2024-03-26 07:15:29 -07:00
Ramanpreet Nara 6386988de1 Introduce BridgeReactContext < ReactApplicationContext (#43624)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43624

Eventually, we will move all bridge methods to BridgeReactContext.

Long-term, ReactApplicationContext and ReactContext will become abstract. And these two contexts will only contain methods common to both modes.

Changelog: [Android][Added] Introduce BridgeReactContext

Reviewed By: cortinico

Differential Revision: D55218592

fbshipit-source-id: 731d4940d492a1ed3f855c9a181d2a6f9eeb9623
2024-03-26 07:15:29 -07:00
Alex Hunt fcddb16bff Register ReactInstanceManager with modern CDP backend (1/2) (#43250)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43250

Integrates the modern CDP backend with `ReactInstanceManager` on Android.

`ReactInstanceManager` is equivalent to the CDP page / `HostTarget` concept, therefore we register the `addPage`/`removePage` calls with this object's lifecycle.

Implementation notes:
- `ReactInstanceManagerInspectorTarget` is created to avoid converting `ReactInstanceManager` to JNI (impacting tests).
- Its constructor receives a `TargetDelegate` object, so that we avoid passing the entire `ReactInstanceManager` class through (avoids cyclic dependency from `com.facebook.react.bridge` to `com.facebook.react`).

Changelog:
[Internal] - Register `ReactInstanceManager` with modern CDP backend

Reviewed By: motiz88

Differential Revision: D51456960

fbshipit-source-id: 942255bb2487fdc581eb4fa0903c8e68106f8b35
2024-03-26 06:23:32 -07:00
Pieter De Baets 6f956af121 Make UIConstantsProviderManager a static method (#43615)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43615

This class is used for a one-time setup of bindings into the jsi::Runtime. The lambda will retain ownership of any java components required, and we can rely on the teardown of the JS runtime to clean up any dependencies.

Changelog: [Internal]

Reviewed By: dmytrorykun

Differential Revision: D55241233

fbshipit-source-id: f7541f28277307be9b3a5f4f780c7eca1a467c57
2024-03-26 05:46:08 -07:00
Pieter De Baets 10000936b3 Fix retain cycle in UIConstantsProviderManager (#43614)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43614

Storing a global_ref to `jThis` in a JNI hybrid object leads to a reference cycle which cannot be cleaned up by Java GC. The Java object will keep the C++ object alive and vice versa.

In this class, we didn't seem to need this reference anyway.

Changelog: [Internal]

Reviewed By: dmytrorykun

Differential Revision: D55241232

fbshipit-source-id: 933521ed1483c149f693988ca17f4c53565dbfe0
2024-03-26 05:46:08 -07:00