Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53296
Following D79894702, update `__chromium_devtools_metrics_reporter` to correctly differentiate `InteractionEntry` and `INP` metrics, based on synchronisation with start of paint.
Changelog: [Internal]
Reviewed By: vzaidman
Differential Revision: D79898177
fbshipit-source-id: 92e805fc15b6c8bf3342f62914cca1b377b58397
Summary:
Fixed a typo in Performance.js where `measureName === 'string'` should be `typeof measureName === 'string'` for proper type checking.
## Changelog:
[GENERAL] [FIXED] - Fix typo in Performance.js type checking condition
Pull Request resolved: https://github.com/facebook/react-native/pull/53311
Test Plan: The change fixes a logical error where the condition was comparing the variable value to the string 'string' instead of checking its type. This ensures proper type checking for `measureName` parameter.
Reviewed By: rshest
Differential Revision: D80403225
Pulled By: rubennorte
fbshipit-source-id: 134920b2f95e997007d41451a8f8ad5fb8592d73
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53292
# Changelog:
[Internal] -
Adds a `testID` test for the Text component, by means of extracting and reusing already existing one for Image.
Reviewed By: andrewdacenko
Differential Revision: D80332473
fbshipit-source-id: 8e8bc2eae12f5f340817f3788f320aad3a6fff45
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53222
# Changelog:
[Internal] -
This factors out bits of the previously existing "Text.role" prop testing into the general accessibility props tests, so those can be reused, also making sure that we use correct types for both `.role` prop (`Role` type) and `.accessibilityRole prop (`AccessibilityRole`, correspondingly).
Note that the test suite for the `role` prop is a separate one, as `role` is only defined on the native side for certain component types (including `Text`), but not all.
Also, in the existing suite we weren't really testing `role`, but instead running the same test twice for `accessibilityRole`, that is corrected as well.
Reviewed By: andrewdacenko
Differential Revision: D80084731
fbshipit-source-id: 545f01c00e9ea5ca53f664888b9bb7b24ded315e
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/52971
Wires up the initial pass of the experimental V2 Perf Monitor UI.
Limitations:
- Does not yet clear last interaction.
- Only lightly tested.
Changelog: [Internal]
Reviewed By: rubennorte
Differential Revision: D78904767
fbshipit-source-id: c51c5f51d9267ec971c17dce465775a2a3e6cb2c
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53288
This diff aligns the APIs ReactSurfaceImpl.view and ReactSurfaceImpl.attachView() to make sure they receive and return the same type
changelog: [Android][Changed] Changed return type of ReactSurfaceImpl.view to ReactSurfaceView to align with parameter recived by ReactSurfaceImpl.attachView()
Reviewed By: sammy-SC
Differential Revision: D80289764
fbshipit-source-id: cfd598a42298f56b6b8871611662fbfa5599a3d3
Summary:
Warning logs with correct spelling and formatting improve the developer experience.
## Changelog:
<!-- Help reviewers and the release process by writing your own changelog entry.
Pick one each for the category and type tags:
For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->
[IOS] [FIXED] - Spelling and formatting of warning log related to Objective-C methods and their signatures.
Pull Request resolved: https://github.com/facebook/react-native/pull/53283
Test Plan: Change is messaging (text) only.
Reviewed By: jorge-cab
Differential Revision: D80267373
Pulled By: rshest
fbshipit-source-id: a07a6f685f14507578ced00d45f7ef0a3c69f23d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53281
This is still a of bumping Gradle to the latest Major (9.0)
Full list of changes is here: https://gradle.org/whats-new/gradle-9/
I don't expect any breaking changes for React Native users.
Changelog:
[Android] [Breaking] - **deps:** Gradle to 9.0
Reviewed By: cipolleschi
Differential Revision: D79445941
fbshipit-source-id: 0af495a2cc6bb4cca1e37d5f0693b77e42010df2
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53273
In [c5956da8c0](https://github.com/facebook/react-native/commit/c5956da8c0b735d47761af51019ed25b49001c00) we landed a change of the default value of `maxLength`.
While doing that, we missed the case where the app is explicitly passing `null` for a value for `maxLength`. When this happens, the props parsing was initializing the `maxLength` to 0, making not possible to input any value.
This change fixes the issue by ensuring that the default value set when `null` is consistent with the default value when nothing is passed.
## Changelog:
[iOS][Fixed] - Fixed TextInput behavior when `maxLength={null}` is passed
Reviewed By: GijsWeterings
Differential Revision: D80255637
fbshipit-source-id: a0d1956e1d51dbfedd27dafabf60ffa9344358d3
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53225
# Changelog:
[Internal] -
Similarly to how it was done for View and Text components ( https://github.com/facebook/react-native/pull/53059), this adds an option to only populate non-default props for Image component.
**This gives up to 50% performance improvement on the benchmark test**, so looks promising.
Reviewed By: rubennorte
Differential Revision: D80090241
fbshipit-source-id: 7dfa6573408794535555e43580e32952fb1d1990
Summary:
When building the xcframeworks on iOS we're including the file `jsi/jsi.cpp` in the Swift Package. This file is also included in Hermes and React Native should use the hermes version of these symbols. This is even described (but overlooked) in the React-jsi podspec file.
This causes the error seen in the bug addressed by this commit.
The fix is to exclude the `jsi/jsi.cpp` file from the jsi target in our swift package.
Fixes https://github.com/facebook/react-native/issues/53257
## Changelog:
[IOS] [FIXED] - Fixed wrong jsi symbols in use when using React.xcframework
Pull Request resolved: https://github.com/facebook/react-native/pull/53266
Test Plan: Tested using a precompiled xcframework in the reproduction repository.
Reviewed By: rshest
Differential Revision: D80252131
Pulled By: cipolleschi
fbshipit-source-id: 915e94a1d80c2f45575e58d8054239484e861285
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53267
Changelog: [internal]
Test files that verify the behavior of the global setup can only have a single test, as we can't really reset it across tests. Because of that, I'm renaming the current one to make the behavior under test more explicit.
Reviewed By: rshest
Differential Revision: D80177333
fbshipit-source-id: df9eeba15906bc6071940824dad9e576a267f499
Summary:
This command doesn't exist anymore.
Remove reference to `react-native upgrade` as the command doesn't exist anymore.
## 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] - Removed reference to removed `react native upgrade` in `Libraries/Renderer/README.md`
Pull Request resolved: https://github.com/facebook/react-native/pull/53265
Test Plan: N/A
Reviewed By: cipolleschi
Differential Revision: D80251577
Pulled By: cortinico
fbshipit-source-id: 9eab037af6769f0d1f78f65bc795d285dc3d8320
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53259
delegate.window is not supported in Mac Catalyst, causing a crash in various scenarios such as Metro refresh.
Changelog: [Internal]
Reviewed By: shwanton
Differential Revision: D80189486
fbshipit-source-id: d0e8156f8f95769c114b497f53731876478fb1f4
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53255
Avoid updates to VirtualViewContainer if the rect dimensions haven't changed.
This is an attempt to simulate what ReactVirtualView does with `checkRectChange`.
Changelog:
[Internal]
Reviewed By: yungsters
Differential Revision: D80182750
fbshipit-source-id: f0f45ac508c1f93e6dbb64ea11c0b44b80d6c3b3
Summary:
While verifying the lock deduplication changes, I have spotted that `eslint-plugin-jest` package does not match Jest version used within the workspace.
## Changelog:
[INTERNAL][CHANGED] - update `eslint-plugin-jest` package in workspace to align with Jest version used
Pull Request resolved: https://github.com/facebook/react-native/pull/53246
Test Plan: Running `yarn test`, `yarn lint-ci` and `test-typescript` checks does not yield any errors.
Reviewed By: rshest, cortinico
Differential Revision: D80170591
Pulled By: robhogan
fbshipit-source-id: f3ac58bc26cf2d3a34899f8558f872b3df85942d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53223
changelog: [internal]
remove dependency on perfetto and use TraceSection like we do elsewhere.
Reviewed By: zeyap, rubennorte
Differential Revision: D80087082
fbshipit-source-id: 08d3434985443db9a83189a4dfabc65d6eda8166
Summary:
fix: https://github.com/facebook/react-native/issues/52279
## Changelog:
[iOS] [FIXED] - non-UTF8 crashes Info.plist local frameworks
Pull Request resolved: https://github.com/facebook/react-native/pull/52336
Test Plan:
after this change pods install and are working with the new warning:
[!] Failed to read Info.plist at /Users/user/apps/test/ios/promiflash/Frameworks/YouTubeEmbeddedPlayerFramework.framework/Info.plist: invalid byte sequence in UTF-8
Reviewed By: cortinico
Differential Revision: D80096932
Pulled By: cipolleschi
fbshipit-source-id: f60cd67cb99a581d6fbab92422c1adf7b50066eb
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53214
Changelog: [General] [Fixed] Enforce void return type for void return type in JS C++ TM spec
Example if you have this spec
```
export interface Spec extends TurboModule {
+foo: (bar: string) => void;
}
```
We must enforce in C++ that the return type is `void` as e.g.
```
void foo(jsi::Runtime& rt, const std::string& bar);
```
Right now you can return any type in C++ such as `std::string` which does not make sense
Reviewed By: lenaic
Differential Revision: D79980538
fbshipit-source-id: 9b99ea6b1ac97d1e46cdb9952e83c445ec5503b7
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53208
changelog: [internal]
When Fabric View Culling is enabled together with immediate state update, it may lead to a crash inside of `[RCTScrollViewComponentView _adjustForMaintainVisibleContentPosition]`.
When doing immediate state update, we can avoid calling `[RCTScrollViewComponentView _adjustForMaintainVisibleContentPosition]` altogether to avoid the crash.
Reviewed By: lenaic
Differential Revision: D80000362
fbshipit-source-id: 123b70aa31edb14a99bb968648eb8b8aac84afb6
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53231
The RCTPullToRefreshViewComponentView props are not initialized when the component view is created. this could lead to undefined behaviors and crashes.
This change fixes it.
## Changelog:
[iOS][Fixed] - Properly initialize the RCTPullToRefreshViewComponentView
Reviewed By: sammy-SC
Differential Revision: D80093141
fbshipit-source-id: dac98d56c749b9f5d85338279c8da2a7e5ddb4a3