Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50392
## This diff
Defines an exports field for the "react-native/virtualized-lists" package. Limits internal use of subpath
imports to virtualized-lists package, and exports all currently used APIs one the root level.
Changelog:
[General][Breaking] - Subpath imports to the internal react-native/virtualized-lists package are not allowed.
Reviewed By: huntie
Differential Revision: D72162344
fbshipit-source-id: 828dab8e569f019fc48084af475e152b898f5bb5
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50391
No need for the indirection here of a heap allocated pointer.
Since we have the RootComponentDescriptor we generally don't need it in any other component registry.
Changelog: [Internal]
Reviewed By: philIip
Differential Revision: D72058916
fbshipit-source-id: 0c29f26f4c56c4353eda251fe06a475e3b6085da
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50379
## Changelog:
[Android] [Added] - Allow invoking `synchronouslyUpdateViewOnUIThread` from c++ via `UIManager`
implementation is provided by SchedulerDelegate on the platform
Reviewed By: javache
Differential Revision: D71648772
fbshipit-source-id: bba0f7e9e2deafd074d28ff5cece6b7738c4d123
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50320
Define `"exports"` field on the main `react-native` package.
**Notes**
Module resolution should be equivalent to the previous implicit `"main"` field (backwards compatible).
- Exports all module subpaths to JavaScript (Flow) source files, with and without `.js` suffix (unchanged ✅)
- These are restricted to the `flow/` and `Libraries/` subdirectories (ℹ️ this should be unchanged, matching any JS imports apps may have today)
- Still includes 3P integration scripts such as `./jest-preset.js` and `./rn-get-polyfills.js` (unchanged ✅)
- Exports `./package.json` (unchanged ✅)
- TypeScript should:
- fall back to the `"types"` field (unchanged ✅)
- OR to `"."`,`"./*"` when Package Exports support is enabled via `compilerOptions`, and use the *adjacent `.d.ts` file* (unchanged ✅)
Changelog:
[General][Breaking] - The `react-native` package now defines package.json `"exports"`.
- While these expose existing JavaScript and TypeScript modules, this change may affect deep imports of non-JS files via Node in third party tools.
- Imports from `src/` and `src/private/` directories are disallowed.
Reviewed By: robhogan
Differential Revision: D71968187
fbshipit-source-id: 28ff941692d1822a916457c4fb891e200e3bca61
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50308
CxxCallbackImpl is used in new architecture, in this diff i'm removing LegacyArchitecture annotation from CxxCallbackImpl class
changelog: [internal] internal
Reviewed By: alanleedev
Differential Revision: D71820292
fbshipit-source-id: 54748cc23aa7091841a025e41ad43dcaa60923cd
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50376
This makes a couple of tweaks to `SafeReleaseJniRef` to let it be used in more places:
1. Add a default ctor for null state
2. Bridge `get()` to return raw JNI ref, for use when calling Java functions directly (compared to current use case of hybrid objects)
3. Keep JNI environment attached to thread longer term, instead of repeated attach/detach, to allow use for higher frequency objects.
Changelog: [Internal]
Reviewed By: javache
Differential Revision: D71933838
fbshipit-source-id: 622cc70d2d7483475406314abcbcf92d3d2ff227
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50330
Changelog: [Internal]
Make the error reported when a debugger is created for a device that does not exist generic, and not including any specific details to make them easier to aggregate
Reviewed By: hoxyq
Differential Revision: D71979796
fbshipit-source-id: 88badc51043e35ff91d7db81c5966ed5ffce9109
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50341
Ships tge `scheduleAnimatedCleanupInMicrotask` feature flag, which changes the cleanup of `AnimatedProps` to occur in a microtask instead of synchronously during effect cleanup (for unmount) or subsequent mounts (for updates).
Changelog:
[General][Changed] - When an `Animated` component is unmounted, any completion callbacks will now be called in a microtask instead of during the commit phase.
Reviewed By: javache
Differential Revision: D71942778
fbshipit-source-id: cbe636d5cff84dfeca2f21ead374609c536e91ad
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50339
Explicitly sets the default `reactRuntimeTarget` when invoking `require('hermes-parser').parse` so that it'll be easier to find these configurations when upgrading to `'19'`.
Changelog:
[Internal]
Reviewed By: javache
Differential Revision: D72006705
fbshipit-source-id: 4994917152a2a4a767b871d4a36092c0c5391324
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50337
# Changelog: [Internal]
This should not have any functional changes, it only prevents the WebSocket from being killed on Android, when we are sending Profile-related Trace Events.
For large traces, a single message could be more than 16MB, because we send a unique string url for every call frame.
Reviewed By: huntie
Differential Revision: D71993748
fbshipit-source-id: f0bfddfb0bb87631e72b573142abdf0d7d87ba48
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50335
Changelog: [internal]
This defines the internal technical documentation for the MutationObserver API, as an example of how to define docs using the new strategy and structure.
Reviewed By: javache
Differential Revision: D71890748
fbshipit-source-id: 3ef19c784dff7aea7a2e2d08302640d5eefacc30
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50334
Changelog: [internal]
This updates the documentation for the feature flag system to adhere to the new documentation strategy and structure.
Reviewed By: javache, rshest
Differential Revision: D71889753
fbshipit-source-id: 7ff47cf613ac01012e7329485d2b97e997a97c07
Summary:
Regression introduced in D71735505 where I tried to ensure fabricEventEmitter was always non-null. Instead log a soft error when this happens, so we don't drop the event silently.
Changelog: [Android][Fixed] Fixed crash when event is emitted after instance is shutdown
Reviewed By: mdvacca
Differential Revision: D71967092
fbshipit-source-id: 990b6414b41a2709d70a6deae38f5aa043203a20
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50325
axOrderViews is an optimization I came up with so that we could find and queue all the views on a single tree traversal. It initializes the array with the size of the accessibilityOrder array and places each view where its nativeID is. If there is no view corresponding to the nativeID then that axOrderViews element will be null. So to fully ignore nativeIDs that don't correspond to any View we can just filter the nulls
Changelog: [Internal]
Reviewed By: joevilches
Differential Revision: D71977739
fbshipit-source-id: a3f2138eebe06808ce413355df5d9beb2f4ff388
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50230
Currently, `AnimatedProps` invokes `findNodeHandle` to both connect and disconnect the native `AnimatedNode` instances to corresponding `viewTag`s.
Not only is this slow and wasteful (because `findNodeHandle` requires traversing the fiber tree), but it prevents deferring disconnection to after the fiber tree has been unmounted.
Disconnecting after unmount is necessary when the `scheduleAnimatedCleanupInMicrotask` feature flag is enabled, which is necessary to avoid invoking animation completion callbacks in the commit phase that unmounts animated views.
I have verified that `disconnectAnimatedNodeFromView` is needed and handles being called after fibers are unmounted.
Changelog:
[Internal]
Reviewed By: javache
Differential Revision: D71745805
fbshipit-source-id: ce8c2c95d38c4d5adbb79bac3c07b0872211cf51
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50311
We are going to initially expose this with the `experimental_` prefix to indicate that it has not been battle tested yet.
Changelog: [Internal]
Reviewed By: jorge-cab
Differential Revision: D71939365
fbshipit-source-id: e9481b6bd4f253fb97c11fc9d7bf3708ffe79635
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50316
This should only be used internally
Changelog: [Android][Removed] Remove FabricSoLoader from public API
Reviewed By: Abbondanzo
Differential Revision: D71965740
fbshipit-source-id: 41c2377a9efcaa21378b2ac49af0c1a544589371
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50315
Make it clearer that the only purpose of this class is to manage the soloading of the core bridge so file.
Changelog: [Internal]
Reviewed By: Abbondanzo
Differential Revision: D71965759
fbshipit-source-id: d333f3e768a2359b082d4df279548cbd4b58ec76
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50319
Originally removed in 0.71, leaving a README file as an FYI, which is now removed.
Changelog: [Internal]
Reviewed By: robhogan
Differential Revision: D71968498
fbshipit-source-id: 81d380570df346f709a35727090c8e3b8b043183
Summary:
to resolve use_frameworks build error. this is an edge case happening only when there's objective-c files import to `React_RCTAppDelegate`. Xcode will have `include of non-modular header inside framework module` error originally. this is the generated umbrella header for jsitooling is incorrect. even the header path are correct, they are not modular headers.
~this pr adds a workaround to import header from outside the module.~ updates: this pr uses a forward declaration to prevent exposing the dependency in umbrella header.
## Changelog:
[IOS] [FIXED] - `JSRuntimeFactoryCAPI.h` build error for `use_frameworks` build
Pull Request resolved: https://github.com/facebook/react-native/pull/50252
Test Plan:
to reproduce the build error, we can build `USE_FRAMEWORKS=static bundle exec pod install` from rn-tester. we also need to import `React_RCTAppDelegate` from objective-c files. in this case, we can add `import React_RCTAppDelegate;` in rn-tester's main.m
```diff
--- a/packages/rn-tester/RNTester/main.m
+++ b/packages/rn-tester/RNTester/main.m
@@ -8,6 +8,9 @@
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
+@import React_RCTAppDelegate;
+// This also triggers the error
+//#import <React_RCTAppDelegate/React-RCTAppDelegate-umbrella.h>
int main(int argc, char *argv[])
{
```
Reviewed By: fabriziocucci
Differential Revision: D71963188
Pulled By: cipolleschi
fbshipit-source-id: 5d566ae5aadb9efc032aacfe32862ea289134f87
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/50288
Add hints about why devices running in the background might not report debuggable pages:
- Taking them from background might be enough
- Force killing them to restart them properly might be needed on Android.
Changelog:
[General][Internal]
Reviewed By: huntie
Differential Revision: D71888615
fbshipit-source-id: dda54b15daa7eebd1bc28a4d327a9b3d006397a4