Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41516
This cleans up some dead code in animated components (some wrappers that actually don't do anything), which in this case leads to component names being properly defined for debugging in React DevTools, etc.
Changelog: [internal]
Reviewed By: sammy-SC
Differential Revision: D51401568
fbshipit-source-id: 0de43f526b77a6b83e66e03f0ffa8d42c2b77112
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41507
Noticed we were creating this in various places and could consolidate it. This shouldn't have any perf impact since all of these use the same Handler.
Changelog: [Internal]
Reviewed By: rshest
Differential Revision: D51348699
fbshipit-source-id: b11799f64cad3e9c1122e074954fce60e586d00d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41508
```
> Task :packages:react-native:ReactAndroid:compileDebugKotlin FAILED
e: warnings found and -Werror specified
w: file:///root/react-native/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/touch/JSResponderHandler.kt:55:38 The corresponding parameter in the supertype 'OnInterceptTouchEventListener' is named 'view'. This may cause problems when calling this function with named arguments.
```
Changelog: [Internal]
Reviewed By: sammy-SC
Differential Revision: D51394096
fbshipit-source-id: ff322a10121b529c9a39b800e16a1a8cc5977d4a
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41499
After D48152876 we consume JSI from `ReactCommon/jsi`, and ignore JSI that is distributed with `hermes-engine`.
This diff removes `include/jsi` from `source_files` of `hermes-engine` so we don't get two sets of JSI headers - one from `ReactCommon`, and the other one from `hermes-engine`.
This diff also fixes accidental breakage of ODR violation. We will no longer compile JSI into `react-native` when linking against `hermes-engine`, which already has JSI in it.
Changelog: [iOS][Fixed] - Exclude JSI headers when using hermes-engine prebuilt.
Reviewed By: cipolleschi
Differential Revision: D51347562
fbshipit-source-id: 6e4b9940c43d74d227a05999926b8752d7685670
Summary:
Adds changelog for the 0.72.7 release.
## 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
-->
[INTERNAL] [CHANGED] - Add changelog for the 0.72.7 release.
Pull Request resolved: https://github.com/facebook/react-native/pull/41474
Test Plan: Read the changelog 🤞
Reviewed By: christophpurrer
Differential Revision: D51344851
Pulled By: huntie
fbshipit-source-id: a142a76ba75665fd0e6c7104ffb008f0f4ff3c95
Summary:
NotThreadSafeViewHierarchyUpdateDebugListener is not implemented in the new architecture because it is not relevant. That's why I'm marking NotThreadSafeViewHierarchyUpdateDebugListener as deprecated in new architecture
bypass-github-export-checks
changelog: [internal] internal
Reviewed By: rshest
Differential Revision: D51262576
fbshipit-source-id: 05022f7605ffc9f9aee3dbb0652f331849db82e0
Summary:
com/facebook/react/surface package only contains one file (ReactStage), this annotation is only used internally by the framework and it fit better in uimanager package.
In this diff we are:
- deleting com/facebook/react/surface package
- moving ReactStage to com/facebook/react/uimanager
- Properly using ReactStage in ReactRoot and ReactRootView
This is a backward compatible change because ReactStage is only used in the internals of React Native
bypass-github-export-checks
changelog: [internal] internal
Reviewed By: rshest
Differential Revision: D51262575
fbshipit-source-id: 34c140fbd0868a5a95489ee51b3262263b33ca69
Summary:
The new architecture will only support Fabric UIManager, that's why we will just deprecate UIManagerType as part of the new architecture
bypass-github-export-checks
changelog: [internal] internal
Reviewed By: rshest
Differential Revision: D51262582
fbshipit-source-id: ff918ff760e95bbda39f5010b141a542c9171517
Summary:
This diff marks uimanager annotations as deprecated in new architecture becasue we've decided the native codegen will not be addopted in new architecture
bypass-github-export-checks
changelog: [internal] internal
Reviewed By: rshest
Differential Revision: D51262580
fbshipit-source-id: 1248117ca697c612c89062fcee56788cce40a1ae
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41484
## Changelog:
[Internal] -
Uses mount hooks to report "paint time" via the Event Timing API - i.e. "duration" now corresponds not the the JS dispatch end point, but to the moment when the corresponding mount ("paint") happened on the native side.
This feature is disabled by default for now, but can be enabled via `NativePerformanceObserver.setIsReportingEventPaintTime(true);`.
Reviewed By: rubennorte
Differential Revision: D51313902
fbshipit-source-id: b15fed772056bb3af619496f805e45dd9222426d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41485
Now that React-Hermes does not depends on folly::Futures anymore, we can safely delete the `libevent` dependency.
This will speedup the pod install step and potentially also the bundle size (to be tested)
## Changelog
[Android][Removed] - Remove libevent dependency
Reviewed By: javache
Differential Revision: D51319583
fbshipit-source-id: 155cc3632b005074c43565e7281c9873ab046f0d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41486
Now that React-Hermes does not depends on folly::Futures anymore, we can safely delete the `libevent` dependency.
This will speedup the pod install step and potentially also the bundle size (to be tested)
## Changelog
[iOS][Removed] - Remove libevent dependency
Reviewed By: javache
Differential Revision: D51307333
fbshipit-source-id: 029c1d6aaad46fc261502241f7df28b4d5f59eb9
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41037
Build JSI as a shared library by default. This avoids running into a
problem with duplicate JSI when building against `libhermes` as a
shared library. This is already the case for React Native on Android.
For RN's iOS builds, explicitly specify that JSI should be statically
linked.
Changelog: [Internal]
Reviewed By: dannysu
Differential Revision: D50294405
fbshipit-source-id: 5e77e6d4ab77f8e338ca5ca4154e879eb3d616d7
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41347
X-link: https://github.com/facebook/yoga/pull/1453
This follows the previous patterns used for `Gutters` and `Dimension`, where we hide CompactValue array implementation from `yoga::Style` callers.
This allows a single read of a style to only need access to the resolved values of a single edge, vs all edges. This is cheap now because the interface is the representation, but gets expensive if `StyleValuePool` is the actual implementation.
This prevents us from needing to resolve nine dimensions, in order to read a single value like `marginLeft`. Doing this, in the new style, also lets us remove `IdxRef` from the API.
We unroll the structure dependent parts in the props parsing code, for something more verbose, but also a bit clearer.
Changelog: [Internal]
Reviewed By: joevilches
Differential Revision: D50998164
fbshipit-source-id: 248396f9587e29d62cde05ae7512d8194f60c809
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41443
changelog: [internal]
instanceHandle is retained by UIManager::createNode. Let's make that obvious in the API.
Reviewed By: NickGerleman
Differential Revision: D51233821
fbshipit-source-id: b97ad80d3ac31a7830c24c8900caa723ca0e9c20
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41448
This was possible before due to precision problems with `double` (we were seeing values like 1.000000002). This is an easy way to prevent that problem.
Changelog: [internal]
Reviewed By: rshest
Differential Revision: D51230183
fbshipit-source-id: 757ef181fe369d525831faf8a6d907467efc544c
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41454
Yet another problem caused by React being too aggressive cleaning up detached fibers. This fixes a problem in `IntersectionObserver` when trying to `unobserve` detached targets. In that case we didn't have access to its shadow node anymore, so we didn't have a way to unobserve in native. This keeps an additional mapping in JS to do the conversion even after detached.
Changelog: [internal]
Reviewed By: rshest
Differential Revision: D51257960
fbshipit-source-id: 25edc9afd2108e141d178dd4939fc2de8286342b
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41449
`IntersectionObserver` was incorrectly throwing errors when reporting entries for detached targets. The problem was that we were deriving the target instance from the instance handle that we keep in native, but React removes the connection between them when the instance handle is unmounted.
This fixes the problem by keeping an internal mapping between instance handle and target internally in the intersection observer manager.
Changelog: [internal]
Reviewed By: rshest
Differential Revision: D51210456
fbshipit-source-id: 7c4a03c14c7f756191f395e0178eadc979cce146
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41450
`IntersectionObserver` shouldn't report entries for targets that are no longer being observed by the observer. This wasn't the case before because it was possible to create an intersection observer entry, then unobserve the target and then dispatch the pending entries (including the unobserved target). This fixes that issue to align with Web browsers.
Changelog: [internal]
Reviewed By: rshest
Differential Revision: D51256827
fbshipit-source-id: 28035f00bcb05a8ca53140719019032b3399436c
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41451
After [this change in React](https://github.com/facebook/react/pull/27687), `ReactFabric.getPublicInstanceFromInternalInstanceHandle` can return `null` if the instance handle is a fiber that was unmounted (before that PR, it would throw an error).
This modifies the DOM traversal API to gracefully handle that case.
Changelog: [internal]
Reviewed By: rshest
Differential Revision: D51210455
fbshipit-source-id: 05de682d840eed7f22473800efe5fb910c8f3a0d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41473
This removes a legacy behavior in React Native to use the native module for MobileConfig to create `ReactNativeConfig`. It now uses the same implementation that the native module uses so we don't depend on TurboModule infra and we can instantiate `ReactNativeConfig` before that infra is ready.
Changelog: [internal]
Reviewed By: christophpurrer
Differential Revision: D51268579
fbshipit-source-id: 6b4860b064b45115e9c43997134e9aa771f330ea
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41423
X-link: https://github.com/facebook/yoga/pull/1466
Right now Yoga's main branch says it's 2.0.0, and RN's dirsync says its 1.14.0, but the code is really closer to what will be Yoga 3.0.0.
This changes trunk builds to "0.0.0" for clarity, which will be assigned a real version number the first time publishing a new Yoga branch.
This is separately a good practice to prevent the chance of accidental publishes causing damage.
Changelog: [Internal]
Reviewed By: christophpurrer
Differential Revision: D51236778
fbshipit-source-id: 06cac89bcca1c707ce5c00f9c346f627eef6b4bc
Summary:
This PR removes some jobs we don't need right now
## Changelog:
[Internal] - remove unnecessary jobs
Pull Request resolved: https://github.com/facebook/react-native/pull/41453
Test Plan: CircleCI stays green
Reviewed By: NickGerleman
Differential Revision: D51257788
Pulled By: cipolleschi
fbshipit-source-id: e348a7ef7af469ba019b2ccc33feed79a9d4febe
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41463
S378983 Circle CI tests have been red for 5 days. There's a test setup issue somewhere in this test suite, until motiz88 can determine where exactly, let's disable them
T169943794 filed to follow up
Changelog: Internal
Reviewed By: cipolleschi
Differential Revision: D51271630
fbshipit-source-id: 7dbc61bb4c8df0d5360ba239a1f00c4270a691f3
Summary:
CircleCI was broken since Friday because a change broke JS tests on Windows only.
The test_windows job didn't run on those changes because they were JS changes only, therefore won't affect the build of React Native on Windows.
The `test_windows` was listed among the various `test_android` jobs, but it is not actually building React Native android on windows machines.
Instead, the test_windows jobs is actually only running JS tests on a windows machines. Therefore, it makes more sense to have this test under the test_js group.
bypass-github-export-checks
## Changelog:
[Internal] - Move the test_windows job under the testJS configuration
Pull Request resolved: https://github.com/facebook/react-native/pull/41455
Test Plan:
CircleCI is green.
test_windows run together with the JS tests
Reviewed By: mdvacca
Differential Revision: D51258120
Pulled By: cipolleschi
fbshipit-source-id: a523c48f697b64620433ec9672f13baa308d75a8
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41410
Changelog: [Internal]
I am planning some changes in this component. No functional changes in this diff.
Reviewed By: robhogan
Differential Revision: D50644901
fbshipit-source-id: 5464640d64bf2e50696d7e579b30985b6ceaef5a
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41411
Changelog: [Internal]
I am planning some changes in this component. No functional changes in this diff, except for the `panelContainerStyle` change for iOS to fix top gap.
Reviewed By: robhogan
Differential Revision: D50644902
fbshipit-source-id: 3111da100261552c89d0cd4eae724500c446cdfd
Summary:
`build_codegen!` currently assumes that `react-native/codegen` gets installed next to `react-native`. In a pnpm setup, it's found under `/~/react-native/node_modules/react-native/codegen` instead.
However, as dmytrorykun pointed out, we don't actually need to build it outside of this repository.
## Changelog:
[GENERAL] [FIXED] - `react-native/codegen` shouldn't be built unless it's in the repo — fixes `pod install` failures in pnpm setups
Pull Request resolved: https://github.com/facebook/react-native/pull/41399
Test Plan: We have a patched version of `react-native` working in a pnpm setup here: https://github.com/microsoft/rnx-kit/pull/2811
Reviewed By: dmytrorykun
Differential Revision: D51201643
Pulled By: cipolleschi
fbshipit-source-id: 53767ae08686a20f03b3b93abcbc7d5383083872