Commit Graph

12270 Commits

Author SHA1 Message Date
Nick Gerleman aefefdbbba Bump Folly to 2023.08.07.00 (#39798)
Summary:
This bumps folly, to absorb https://github.com/facebook/folly/commit/45fffa629d6bf7321391222d40613d75e8e067d7 which fixes warnings in XCode 15, and NDK 26 (treated as error bc we have better hygiene there). We then bump a little bit further to get past a new warning added, then fixed later.

Need to manually set `FOLLY_HAVE_GETTIME` on Apple because of the silliness described in https://github.com/facebook/folly/issues/1470#issuecomment-1746035194

There is not a combination of Folly, and Android libc++, that has fixes for warnings, but doesn't require the new libc++ in NDK 26. It is expected then that this commit will fail the build, but the next should succeed, and the two must be landed at the same time.

Changelog: [Internal]

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

Reviewed By: fkgozali

Differential Revision: D49897681

Pulled By: NickGerleman

fbshipit-source-id: 52b97ed5b302abf9e27f38dc655207827852dcc3
2023-10-04 19:57:14 -07:00
Nick Gerleman bb9ed0e906 Bump fmt to 9.1.0 (#39799)
Summary:
This is what Folly is built against internally. Bump the version we use, and the standard we compile with, to take some different paths, and see if we fix some warnings caused by FMT with the ndk bump.

Changelog:
[General][Breaking] - Bump fmt to 9.1.0

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

Test Plan: Passes in CircleCI

Reviewed By: cortinico, yungsters

Differential Revision: D49900112

Pulled By: NickGerleman

fbshipit-source-id: 3f11080555ef20aeb9291d1096ffa6077b3b3bbd
2023-10-04 19:57:14 -07:00
Hakeem King 7d88ac4ced Revert D49642047: Disable max WebSocket message size validation in CDP proxy
Differential Revision:
D49642047

Original commit changeset: 07b134c9fa6a

Original Phabricator Diff: D49642047

fbshipit-source-id: f72f7c72cf1a7941199c3d49f1a2edccb0410ac5
2023-10-04 17:48:12 -07:00
Phillip Pan d0b28580ee hook up enable_sync_void_methods_ios mc param
Summary:
Changelog: [Internal]

sync void execution is now hooked up to mc

Reviewed By: mdvacca

Differential Revision: D49854130

fbshipit-source-id: fb4241b11a80d44318b382e2757fe7fcbfba4fb1
2023-10-04 16:26:58 -07:00
Phillip Pan b401fabbc1 dispatch status bar methods onto main queue (#39759)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39759

Changelog: [Internal]

as part of the sync void tm methods test, there are some modules that do not behave correctly when trying to execute their methods on the js thread.

this module accesses UIKit, so we explicitly dispatch async to the main thread

Reviewed By: mdvacca

Differential Revision: D49835587

fbshipit-source-id: 30b5b58b6df4686bd81dbf8dbeaae275c98fa2e1
2023-10-04 16:26:58 -07:00
Phillip Pan 7a94ac3f1d dispatch async RCTNetworking methods (#39761)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39761

Changelog: [Internal]
as part of the sync void tm methods test, there are some modules that do not behave correctly when trying to execute their methods on the js thread.

to maintain the old behavior, we dispatch them explicitly in the implementation.

Reviewed By: mdvacca

Differential Revision: D49693966

fbshipit-source-id: 870118d0aeb5cfb4155eebf6afa7dfc724d4cecc
2023-10-04 16:26:58 -07:00
Phillip Pan dd30d05e00 introduce performVoidMethodInvocation (#39760)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39760

Changelog: [Internal]

void functions are kinda special right now for the following reasons:
- they can be executed async or sync right now
- they don't return any value

thus, it makes sense for us to separate the invocation logic out and clean up the logic for retrieving return values specifically.

Reviewed By: javache

Differential Revision: D49652998

fbshipit-source-id: 7dba03adb8154e73ed75f8c2864294215c748107
2023-10-04 16:26:58 -07:00
Intl Scheduler 45d74b4bd5 translation auto-update for i18n/adsmanager.config.json on master
Summary:
Chronos Job Instance ID: 1125907941955673
Sandcastle Job Instance ID: 36028798087375639
allow-large-files
ignore-conflict-markers
opt-out-review

Differential Revision: D49932189

fbshipit-source-id: 1b09e32f31f2bd2db99ac183f144e41d58256510
2023-10-04 15:34:33 -07:00
Intl Scheduler 3052c419ac translation auto-update for i18n/fb4a.config.json on master
Summary:
Chronos Job Instance ID: 1125907941955673
Sandcastle Job Instance ID: 36028798087375639
allow-large-files
ignore-conflict-markers
opt-out-review

Differential Revision: D49932195

fbshipit-source-id: 4e94ca2b8696b1a5ad7ba7f42f042d176bdc54a4
2023-10-04 15:34:33 -07:00
Intl Scheduler 9218c75fec translation auto-update for i18n/barcelona.config.json on master
Summary:
Chronos Job Instance ID: 1125907941955673
Sandcastle Job Instance ID: 36028798087375639
allow-large-files
ignore-conflict-markers
opt-out-review

Differential Revision: D49932193

fbshipit-source-id: 1978aad9f0719577ebcdcd2819b8ed39e0ddfc5e
2023-10-04 15:34:33 -07:00
Intl Scheduler 3ce9072271 translation auto-update for i18n/anna.config.json on master
Summary:
Chronos Job Instance ID: 1125907941955673
Sandcastle Job Instance ID: 36028798087375639
allow-large-files
ignore-conflict-markers
opt-out-review

Differential Revision: D49932196

fbshipit-source-id: db77b6ed7f940622c06d00b6e780b6428f8e7888
2023-10-04 15:34:33 -07:00
Intl Scheduler 8c63e3fc4c translation auto-update for i18n/analyticsapp.config.json on master
Summary:
Chronos Job Instance ID: 1125907941955673
Sandcastle Job Instance ID: 36028798087375639
allow-large-files
ignore-conflict-markers
opt-out-review

Differential Revision: D49932192

fbshipit-source-id: ebaf19c0b4c27892d6af37decdbfd121180afc29
2023-10-04 15:34:33 -07:00
Ruslan Shestopalyuk c969d8c8dd Turn CXX implementation of TextLayoutManager into interface (#39805)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39805

## Changelog:
[Internal] -

This makes corresponsing text measure methods inside `TextLayoutManager` overridable, so that it can be substituted with a custom implementation without introducing a new "platform".

Rationale: CXX platform is rather general and less specific than Android or iOS, so we may potentially have multiple alternative implementations of text layout there.

An alternative could be making `TextLayoutManager` an interface across all the platforms, and actual implementations called e.g. `TextLayoutManagerImpl` in each of them, however this would be quite a bit bigger blast radius without much added benefit for Android/iOS.

Reviewed By: christophpurrer

Differential Revision: D49907594

fbshipit-source-id: dc8213ddb2313adaa86c2852d23bb038d80ac244
2023-10-04 14:43:01 -07:00
Hakeem King 7a320f1a9d Revert D49838842: Upgrade xplat/js + arvr/js to hermes-parser 0.16.0
Differential Revision:
D49838842

Original commit changeset: ebfd2f89852d

Original Phabricator Diff: D49838842

fbshipit-source-id: 3a4ecd10c4ed4f425dde7d70f43dc89fc1a7549f
2023-10-04 14:42:50 -07:00
Nicola Corti b93bd79779 Do not guard initializeFlipper for bridgeless for RN Tester
Summary:
We don't need this if-than-else because the initializeFlipper already checks if we're on bridgeless or not

Changelog:
[Internal] [Changed] - Do not guard initializeFlipper for bridgeless for RN Tester

Reviewed By: NickGerleman

Differential Revision: D49881903

fbshipit-source-id: e6bfc941b43382580bd418a5f27ad9426d300c69
2023-10-04 14:24:17 -07:00
Moti Zilberman 2000acc6c6 Disable max WebSocket message size validation in CDP proxy (#39809)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39809

It's currently possible for RN to crash the dev server by sending down an exceptionally large CDP response/event. Instead of making assumptions on the protocol spoken over the proxy, let's assume clients on either side of the proxy can be trusted to be well behaved (and to degrade gracefully when a large message is encountered).

Changelog: [General][Fixed] JS debugging: prevent dev server crash when a large CDP payload is returned from the device

Reviewed By: huntie

Differential Revision: D49642047

fbshipit-source-id: 07b134c9fa6aba7ce2208f71981d6d862281395f
2023-10-04 11:57:43 -07:00
Pieter Vanderwerff 4416de35f7 Upgrade xplat/js + arvr/js to hermes-parser 0.16.0 (#39791)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39791

Bump `hermes-parser` packages to the latest released version.

Changelog: https://github.com/facebook/hermes/blob/main/tools/hermes-parser/js/CHANGELOG.md

Notable changes:
- Upgraded to the lastest version of emscripten for the parser.
- The babel interop logic now more closely matches babel's AST.
  - The biggest change is we now add the `extra.raw` properties to literal nodes, which results in Babel more closely outputting literal sources. e.g. previously the following would happen `1.0` -> `1`, `'foo'` -> `"foo"` and `1n` -> `1` but now the raw source value is preserved.
- Upgraded `prettier-plugin-hermes-parser` to use the latest prettier formatting logic, which causes some minor formatting changes.
- `hermes-parser` no longer fails when the `component` name is used within a function type, e.g. `type Foo = (component: string) => void`.

Changelog: [Internal]

Reviewed By: SamChou19815

Differential Revision: D49838842

fbshipit-source-id: ebfd2f89852d1bd3b1671ce77f58240d7e17cfbb
2023-10-04 11:14:59 -07:00
Jacob Parker 027d520d65 Add support for Platform.isMacCatalyst (#38187)
Summary:
Add support for `Platform.isMacCatalyst`

By default, Mac catalyst reports the idiom as an iPad, but you can check if it is Mac catalyst with a macro

There is technically the possibility to have the idiom return as a Mac, but that's not the default and almost definitely doesn't work in RN

ignore-github-export-checks

## Changelog:

[IOS] [ADDED] Add support for `Platform.isMacCatalyst`

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

Test Plan: It compiles

Reviewed By: cortinico

Differential Revision: D47664425

Pulled By: cipolleschi

fbshipit-source-id: 09f43694aa9b5f980204474f0e07779acd5ed2c7
2023-10-04 10:13:08 -07:00
adriancuadrado 4676493ba2 Update ScrollView.js (#39801)
Summary:
`pagingEnabled` **is** supported on Android. I tested it and it just seems to work.

See https://github.com/facebook/react-native-website/pull/3869#pullrequestreview-1656910863

I just edited a comment to remove a statement that is plain wrong.

## Changelog:

[Internal] Update comment

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

Reviewed By: fabriziocucci

Differential Revision: D49910049

Pulled By: javache

fbshipit-source-id: c17f6794ea920d282b924dc47ee55fd5c349efb5
2023-10-04 09:54:34 -07:00
Rubén Norte e284bdc869 Check if devtools hook on/off methods are defined before using them in AppContainer (#39808)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39808

I've been doing some tests where I disable React DevTools locally and this code has been crashing because React Fast Refresh defines the React DevTools hook if DevTools didn't ([pointer](https://github.com/facebook/react/blob/85c2b519b54269811002d26f4f711809ef68f123/packages/react-refresh/src/ReactFreshRuntime.js#L453-L475)), and it doesn't actually define the `on` and `off` methods, which makes this throw.

This changes `AppContainer` to check if the methods are defined before using them.

Changelog: [internal]

Reviewed By: hoxyq

Differential Revision: D49909258

fbshipit-source-id: 3b0c1f37601a1cbe38f80ca3a20ffe2348a21aaf
2023-10-04 09:50:43 -07:00
Pieter De Baets d9cc662212 Fix use-after-move in AsyncCallback (#39802)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39802

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D49884649

fbshipit-source-id: 63bbad19c35fcc424ae5d32b422a6826f9f30fbf
2023-10-04 08:03:15 -07:00
Nicola Corti e6094f7a3b Do not attempt to translate devsupport strings (#39787)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39787

I've realized that some of the DevMenu strings were missing the `project="catalyst" translatable="false"`
tags so they ended up being fed to the translation pipeline.
We don't need those strings to be translated so I'm cleaning this up.

Changelog:
[Internal] [Changed] - Do not attempt to translate devsupport strings

Reviewed By: arushikesarwani94

Differential Revision: D49870688

fbshipit-source-id: 14188f4d391c7f8e2e6e92a394d85c58c8fbcf95
2023-10-04 07:11:24 -07:00
Saad Najmi c7aa3954e3 Move [RCTConvert RCTTransformOrigin:] out of UIAccessibilityTraits category (#39758)
Summary:
https://github.com/facebook/react-native/commit/5f40f0800e64b4380d7897b2e8b9ff561d84b97c added a new prop and corresponding RCTConvert method for transformOrigin. Strangely, it added the RCTConvertMethod to a `RCTConvert+UIAccessibilityTraits` category.. which feels like the wrong spot for it. Let's just add it to the existing `RCTConvert+Transform` category. This also means we can get rid of the header if we move the `RCTTransformOrigin` struct into UIView+React (where it is used).

## Changelog:

[IOS][CHANGED] - Move `[RCTConvert  RCTTransformOrigin:]` out of UIAccessibilityTraits category

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

Test Plan:
Transform Origin example still works.
<img width="559" alt="Screenshot 2023-10-02 at 11 26 17 AM" src="https://github.com/facebook/react-native/assets/6722175/c7b863cc-3595-430d-8579-f8ce8e73c4f4">

Reviewed By: javache

Differential Revision: D49867993

Pulled By: NickGerleman

fbshipit-source-id: 1b2d5a9d08f0231040e7449f2eb75860f08bafa5
2023-10-04 06:42:17 -07:00
Saad Najmi 452bf0ff06 Remove <Webkit/Webkit.h> import in RCTConvert.h (#39794)
Summary:
This PR is in response to https://github.com/facebook/react-native/pull/39758#discussion_r1344839022 .

`RCTConvert.h` currently takes an import of `<Webkit/Webkit.h>` for... one enum: `WKDataDetectorTypes`. This has a few problems:

1) RCTConvert is JS engine agnostic, it shouldn't be depending on Webkit
2) As far as I can tell, this code is dead, we also define (and use) the UIKit equivalent `UIDataDetectorTypes`.

Let's just combine the two, update some JS typing, and get rid of the Webkit header import.

## Changelog:

[IOS] [CHANGED] - Remove `<Webkit/Webkit.h>` import in `RCTConvert.h`

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

Test Plan: CI should pass

Reviewed By: rshest

Differential Revision: D49898701

Pulled By: NickGerleman

fbshipit-source-id: 5420cb62317e1186426aae019bcc43d27c49ea26
2023-10-04 06:42:17 -07:00
David Vacca 353d8d3980 deduplicate code in cleanDataFromModules (#39767)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39767

deduplicate code in cleanDataFromModules

changelog: [internal] internal

bypass-github-export-checks

Reviewed By: cortinico

Differential Revision: D49834866

fbshipit-source-id: 6b54a0cfcd58e9c963125d07b736e1377a548393
2023-10-03 19:57:38 -07:00
David Vacca d0bb2e49c7 Update deprecation documentation (#39766)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39766

Update deprecation documentation

changelog: [internal] internal

bypass-github-export-checks

Reviewed By: cortinico

Differential Revision: D49834868

fbshipit-source-id: 729a51495730a58475e1dbc95400f1ef7dc39c59
2023-10-03 19:57:38 -07:00
David Vacca 2c3ff9eaa4 Mark ReactNativeHost as deprecated In new architecture (#39765)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39765

Mark ReactNativeHost as deprecated In new architecture

changelog: [internal] internal

bypass-github-export-checks

Reviewed By: cortinico

Differential Revision: D49834869

fbshipit-source-id: ab5b32068c130b6dd4f2511e4a0c0e3029e462ed
2023-10-03 19:57:38 -07:00
Ian Levesque fea445ee2d Make all annotation processors derive from ProcessorBase (#39360)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39360

X-link: https://github.com/facebook/litho/pull/958

Reviewed By: MonaHashem

Differential Revision: D49113071

fbshipit-source-id: f762032e0f0b4a1566b0947fe3a24eb32be5795a
2023-10-03 17:47:12 -07:00
Oleksii c4110d0475 rewrite RNTesterApplication to kotlin (#39557)
Summary:
Rewrite `RNTesterApplication` to Kotlin as per [Help us Kotlin-ify React Native tests - Round 2](https://github.com/facebook/react-native/issues/38825)

## Changelog:

[ANDROID] [CHANGED] - Rewrite RNTesterApplication to Kotlin, add AnnotationTarget property.

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

Test Plan:
`yarn && yarn android` 

The only thing I'm kinda unsure of is whether `AnnotationTarget.PROPERTY` should be added, but it didn't let me annotate `reactHostInterface` without that and didn't compile.
<img width="637" alt="image" src="https://github.com/facebook/react-native/assets/33528752/8bc84870-f3f2-4a46-b076-6ee7e38bd735">

 cortinico mdvacca

Reviewed By: cortinico

Differential Revision: D49598401

Pulled By: mdvacca

fbshipit-source-id: 105ae0c13c93dae0eeb2b6fa9040f03f42d2736a
2023-10-03 17:12:56 -07:00
Alex Hunt e1f21fcc4c Fix start command exit behaviour (#39788)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39788

Hotfix for exiting `npx react-native start` when a session is connected. Partially reverts D49422206.

This lines back up with the original RN CLI and Expo implementations — explicitly calling `process.exit()`. We still aim to follow this up with graceful server shutdown.

Changelog: [Internal]

Reviewed By: lunaleaps

Differential Revision: D49880226

fbshipit-source-id: d2c76b2de21b9172dfd892141d1f679b808e043d
2023-10-03 16:21:58 -07:00
Pieter De Baets c604f10d4a Improve Fabric debug logging (#39778)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39778

Used with `IS_DEVELOPMENT_ENVIRONMENT` and `ReactFeatureFlags.enableFabricLogs`.

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D49864983

fbshipit-source-id: bf912abd765ff74e9ed8b94571293f79458feca2
2023-10-03 16:04:51 -07:00
Nick Gerleman 72d0fed272 Fix style resolution functions returning FloatOptional (#39595)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39595

X-link: https://github.com/facebook/yoga/pull/1404

These functions all ensure their returns are defined, but return FloatOptional anyway, making their callers have to deal with that possibility. Return `float` instead of `FloatOptional`, and do some additional cleanup.

Reviewed By: rshest

Differential Revision: D49531421

fbshipit-source-id: 95b21cade74e501dd54c7b6ca667c8c3859c5dae
2023-10-03 15:36:01 -07:00
Nick Gerleman 25478321f9 Top-down onLayout events (#39644)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39644

This makes Android Paper/Classic renderer fire `onLayout` events top down, like in Fabric/new Architecture. This gives a much more sane model for using layout events to calculate bottom/right-edge insets.

I was under the impression that Paper in general was bottom-up, but it turns out that is only true for Android and Windows (iOS seems totally deterministic).

This is a behavior change, but to my knowledge was never hit during the Fabric migration, and any JS code already written for both Android and iOS cannot make assumptions here anyways.

Changelog:
[General][Changed] - Make layout events top-down on Android classic renderer

Reviewed By: mdvacca

Differential Revision: D49627996

fbshipit-source-id: 29964b421dd420681d45348c7db16f211a6c087f
2023-10-03 13:58:03 -07:00
huzhanbo.luc ea88338d75 convert ReactPropAnnotationSetterTest to Kotlin (#39706)
Summary:
fix and convert `ReactPropAnnotationSetterTest` to Kotlin for https://github.com/facebook/react-native/issues/38825

## Changelog:

[ANDROID] [CHANGED] - Rewrite ReactPropAnnotationSetterTest to Kotlin,

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

Test Plan:
yarn && ./gradlew :packages:react-native:ReactAndroid:test

cortinico mdvacca

Reviewed By: NickGerleman

Differential Revision: D49839905

Pulled By: cortinico

fbshipit-source-id: 4afda5cdccd722f0e16e2ab517e32ecee0b845a4
2023-10-03 13:53:06 -07:00
Nicola Corti 5dedf277cb Fix broken Loading/Refreshing indicator on Android
Summary:
The Loading.../Refreshing... indicator is currently broken on Android.
The reason is related to D42599220
We used to have a Toast shown to users on Android as a fallback, but as the
DevLoadingView is not always loaded as a module in the core package, this ends up in the banner never beign shown to the user (on RN Tester or template apps).

Changelog:
[Android] [Fixed] - Fix broken Loading/Refreshing indicator on Android

Reviewed By: cipolleschi

Differential Revision: D49876757

fbshipit-source-id: 400e002327ebca908e3e7a7f81c5066888ac4e9b
2023-10-03 13:24:09 -07:00
Phillip Pan 113de6e4a0 switch on return types for invokeObjCMethod instead of cascading if else (#39591)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39591

Changelog: [Internal]

I'm refactoring this for a couple of reasons:
1) it isolates the void execution path, which we are changing now
2) switch case is safer than if else, in the future if we introduce new return types

Reviewed By: RSNara

Differential Revision: D49521866

fbshipit-source-id: 451c846ca15cc470cfeb5b2326d6eb2ffec74b25
2023-10-03 12:14:15 -07:00
Phillip Pan 36a202b0e5 lift isSyncModule_ check outside of isMethodSync (#39590)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39590

Changelog: [Internal]

some cleanup!

Reviewed By: javache

Differential Revision: D49521863

fbshipit-source-id: 1caabea207d84e02644a80ea736d7b51a7becca8
2023-10-03 12:14:15 -07:00
Phillip Pan c41cddf150 introduce flag to determine if turbomodule void method should run sync (#39589)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39589

Changelog: [Internal]

currently, turbomodule void methods run async by default, unless the consumer returns `RCTJSThread` in the `methodQueue` API.

we're looking to update this, so i'm introducing a flag at the module level that allows us to configure this behavior.

Reviewed By: RSNara

Differential Revision: D49521864

fbshipit-source-id: a6c61eb420b72199426e3dfdaec5fd090847efa5
2023-10-03 12:14:15 -07:00
Nick Gerleman 4da0d44e55 Remove usage of Gutters arrays and YGGutter as index (#39597)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39597

X-link: https://github.com/facebook/yoga/pull/1406

Similar in vain to D49362819, we want to stop exposing pre-resolved CompactValue, and allow enum class usage without becoming annoying.

This also simplifies gap resolution a bit. I moved this to Style, to make it clear we aren't relying on any node state. I plan to do some similar cleanup for other resolution later.

Reviewed By: rshest

Differential Revision: D49530923

fbshipit-source-id: 47b06a7301fb283acc493dba159f496159d59580
2023-10-03 10:08:10 -07:00
Pieter De Baets 248c324cca Remove ChoreographerCompat (#39775)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39775

ChoreographerCompat existed to support JellyBean, but given we target Android SDK 23+ now, this is safe to remove.

Changelog: [Android][Removed] Deprecated ChoreographerCompat.FrameCallback, use Choreographer.FrameCallback

Reviewed By: mdvacca

Differential Revision: D49826889

fbshipit-source-id: 5158c470553327b70a199168f5b7ed7071cc8c48
2023-10-03 08:00:16 -07:00
Pieter De Baets 0e10ee6ac6 Allow AsyncCallback to be used with lambda (#39717)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39717

AsyncCallback is a better abstraction than the current usage of WeakCallbackWrapper and RAIICallbackWrapperDestroyer, and has way fewer gotchas. Making a few changes here to make it easier to use in various scenarios and match the behaviour we're already seeing in CallbackWrapper.

1) Remove the explicit copy constructor, since this prevents an automatic move constructor from being generated
2) Add a call variant which takes a lambda, for callers which need to manually create JSI arguments
3) Ignore AsyncCallback invocations when the underlying runtime has gone away.

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D49684248

fbshipit-source-id: 8b49ec22cc409572ead80a85b10a190994bf0dd5
2023-10-03 07:55:17 -07:00
Saad Najmi f174f028cf Deprecate RCTGetMultiplierForContentSizeCategory (#39643)
Summary:
Per https://github.com/facebook/react-native/pull/39617#issuecomment-1734330041 , let's deprecate this method first.
bypass-github-export-checks

## Changelog:

[IOS] [DEPRECATED] - Deprecate RCTGetMultiplierForContentSizeCategory

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

Test Plan: CI should pass

Reviewed By: dmytrorykun

Differential Revision: D49637172

Pulled By: cipolleschi

fbshipit-source-id: 20dc70c737ef51efd5a5aa38832fb47b5d49e641
2023-10-03 07:34:35 -07:00
jlmip c7c7831ec6 Fixed issue with first line element gap handling.
Summary:
If the first element of a line is not contributing (e.g. position absolute), an additional gap will be added to the line, because the first gap element of the line is never identified (wrong start index).
Fix: raise the index of the first line element until we find an element that is contributing to the line.

X-link: https://github.com/facebook/yoga/pull/1408

Reviewed By: yungsters

Differential Revision: D49722065

Pulled By: NickGerleman

fbshipit-source-id: 1068cb0b11ae4b04ec8d063e70540cce06181d5a
2023-10-03 06:24:48 -07:00
Saad Najmi 0a48a72236 Remove deprecated Snapshot tests (#39720)
Summary:
These tests seem to have been deprecated for years, let's just remove them.

## Changelog:

[IOS] [REMOVED] - Remove deprecated Snapshot tests

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

Test Plan: CI should pass

Reviewed By: cipolleschi

Differential Revision: D49809496

Pulled By: NickGerleman

fbshipit-source-id: d79f0a0896b190d071bda1eb837b3efa10dbbf3b
2023-10-03 04:33:53 -07:00
Nick Gerleman 13614c31cd Remove JS-side Platform checks For Android <= 23 (#39771)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39771

We now support SDK 23 as a minimum. That means we can drop JS side checks.

Because Android has `Platform.Version` as a number, and iOS as a string, it's common to do an Android check before checking version, even if in Android only code. I tried to remove those where it was super clear the code was Android only (i.e. the file is `.android.js`), but otherwise leave the Android platform check to not give the possibility of changing behavior.

Changelog:
[Internal]

Reviewed By: luluwu2032

Differential Revision: D49814610

fbshipit-source-id: f28b09db7091598e187fee0f383561e1c1993e9a
2023-10-02 19:05:23 -07:00
David Vacca 0371014a33 Mark initHybrid as @JvmStatic (#39755)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39755

The goal of this diff is to fix:
```
JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.NoSuchMethodError: no static or non-static method
"Lcom/facebook/react/jscexecutor/JSCExecutor;.initHybrid(Lcom/facebook/react/bridge/ReadableNativeMap;)Lcom/facebook/jni/HybridData;"

```

changelog: [internal] internal

Reviewed By: luluwu2032

Differential Revision: D49831595

fbshipit-source-id: 9ce22cdccdd02af74edb27be2df72a469d3166c9
2023-10-02 13:10:32 -07:00
Dmitry Rykun b27fab70c5 Default to native view configs in bridged mode and to static view configs in bridgeless mode (#39704)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39704

Default to native view configs in bridged mode and to static view configs in bridgeless mode.
Remove `setRuntimeConfigProvider` calls from RNTester and from the Template.
Changelog: [Internal]

Reviewed By: RSNara

Differential Revision: D49687252

fbshipit-source-id: 140e1c510ba3fbc153978b59c8bb4b4e35bc7571
2023-10-02 11:10:33 -07:00
Alex Hunt afddbb2b67 Sync debugger-frontend
Summary:
Sync latest `debugger-frontend` artifacts, based on https://github.com/motiz88/rn-chrome-devtools-frontend/pull/12.

Changelog: [Internal]

Reviewed By: motiz88

Differential Revision: D49502838

fbshipit-source-id: 25805066670ac35ec976dc820a73a722ee182dd2
2023-10-02 10:28:17 -07:00
Fabrizio Cucci ad52137183 Drop usages of folly::makeMoveWrapper (#39751)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39751

There doesn't seem to be an easy way to drop `folly::makeMoveWrapper` for the reasons explained in below in the diff.

To unblock the folly deprecation in the RN codebase, we are copying the `MoveWrapper` class within the RN codebase.

Changelog: [Internal]

Reviewed By: sammy-SC, cipolleschi

Differential Revision: D49423389

fbshipit-source-id: 8abaa95a6d675b069be8e74933aa8c63f4ea43ee
2023-10-02 09:38:44 -07:00
Ahmed Sakr a59b947a1e Docs update: PixelRatio.getFontScale (#39709)
Summary:
Addresses this issue: https://github.com/facebook/react-native/issues/39708

The embedded docs for `PixelRatio.getFontScale` haven't been updated in a while and it is still claiming lack of support for iOS when this is not the reality anymore. This was confusing for me when looking for docs through my local workspace.

## Changelog:

[INTERNAL] [CHANGED] - Updated PixelRatio.getFontScale docs to match the latest website

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

Test Plan: N/A

Reviewed By: rshest

Differential Revision: D49752103

Pulled By: NickGerleman

fbshipit-source-id: 1b220bc0210639d7863b6961f665aab2cba52889
2023-10-02 02:06:01 -07:00