Commit Graph
20548 Commits
Author SHA1 Message Date
Valentin Shergin d53fc8a3cd Fabric: Moving layout calculation off JavaScript thread
Summary:
In the current Fabric model, we compute layout during the commit phase on the caller thread synchronously. Even though, in general, it's by design the correct way to do it, there are cases where it's *not* a requirement. In such cases, it's more optimal to yield early and continue execution of the commit process on a different thread asynchronously.
One of such cases potentially is `completeRoot` call. There we don't need to return anything and can resume JavaScript execution immediately.
The performance implications of that are not clear but there is a hope that it can free up to ~100ms of JavaScript execution time which is currently spent waiting for layout calculation (and other aspects of the commit phase).

This is an implementation in the core. The plan is to test that on iOS first and then, in case if the results of the experiment are positive, to implement it on Android as well.

Changelog: [Internal] Fabric-specific internal change.

Reviewed By: JoshuaGross

Differential Revision: D22743723

fbshipit-source-id: 846a13152c5a419de0eaef0e6283ea4277c907dc
2020-07-24 23:52:48 -07:00
Ramanpreet Nara 650c0f64f1 Make __turboModuleProxy accept > 1 args
Summary: For the JS TurboModule Codegen, we'll have to have `__turboModuleProxy` accept an additional argument: information containing what methods are supported on the TurboModule object. This diff makes calling `__turboModuleProxy` with two arguments valid.

Reviewed By: shergin

Differential Revision: D22743294

fbshipit-source-id: fd0050fc0373b43dc7089695c8e341137cad21f1
2020-07-24 18:30:20 -07:00
George Zahariev 7204a58c1a Deploy 0.130.0 to Xplat
Summary:
bypass-lint
allow-large-files

Changelog: [Internal]

Reviewed By: dsainati1

Differential Revision: D22734783

fbshipit-source-id: e2f115153afb9c17a327bb87d3953903098871ba
2020-07-24 17:33:29 -07:00
Emily Janzer eddf90f756 Clean up RuntimeExecutor experiment and remove jsContext param
Summary:
Cleaning up the test for switching to the shared RuntimeExecutor, and removing the jsContext arg from Fabric's Android APIs entirely.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D22026752

fbshipit-source-id: df70faa70eaa2a04717ae89e8ad3216dfd486a35
2020-07-24 16:48:36 -07:00
Christoph Nakazawa ab56ed7d96 Create @react-native/normalize-color package
Summary: Changelog: [Internal]

Reviewed By: TheSavior

Differential Revision: D22644750

fbshipit-source-id: f1b24c7e72819650517b7b42f93eeeed9c1e627b
2020-07-24 08:36:37 -07:00
Joshua Gross c38b506d7a LayoutAnimations: fix index consistency crash
Summary:
Unfortunately LayoutAnimations index adjustment is a bit tricky. There was one (hopefully only one!) remaining issue where a specific series of delayed removes, inserts, and removes would trip up index adjustment. Namely in this case: Preexisting delayed removes, and then a later animated commit with immediate inserts followed by higher-index removes.

This case is now resolved and I took time to test and verify other index adjustment paths.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D22709915

fbshipit-source-id: 16ba5bb358608d384f44628dbb6cc691deb8164a
2020-07-23 19:50:35 -07:00
Peter Argany 9d3cefbbca Delete unused RCTAdditionalJavaScriptDidLoadNotification
Summary:
This notification was never used, I'd rather not have someone start relying on it, and need to figure out how to migrate them in bridgeless mode.

Changelog:[Internal]

Reviewed By: cpojer, RSNara

Differential Revision: D22513602

fbshipit-source-id: 80b179af8408abc6646a73380b4a66cade3f75f2
2020-07-23 17:11:32 -07:00
Peter Argany 448db78a88 Fix loading from Metro in Bridgeless mode (#29453)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/29453

Problem Statement: A native module needs to call a function on `ReactInstance` (in this case `loadScript`). Typically, this is handled by the bridge.
Current Bridgeless Solution: Create a new protocol (in this case `RCTJSScriptLoaderModule`) which lets a block be passed in TM init to forward the method call to `ReactInstance`. This is the best thing I could think of right now.

Changelog:[Internal]

Reviewed By: RSNara

Differential Revision: D22512748

fbshipit-source-id: e6559279b6e299e17d1199407129ad3902c41e6b
2020-07-23 17:11:32 -07:00
Moti Zilberman c9f869f9c7 Use globalPrefix for babelHelpers
Summary:
Passes the `globalPrefix` option from the Metro config object into `metro-babel-transformer`. This currently has no effect in OSS.

Changelog: [Internal]

Reviewed By: cpojer

Differential Revision: D22594663

fbshipit-source-id: 668b71cd6bec988313e9286b316f9006d61ad871
2020-07-23 12:03:36 -07:00
Riley Dulin 63d20d3b1e Set the max heap size for OSS apps on Android to be 1 GB for Hermes
Summary:
The max heap size currently is 512 MB for OSS apps using Hermes on Android.

Some users (see https://github.com/facebook/hermes/issues/295) are experiencing
long pauses when reaching this ceiling.
Increasing this limit to 1 GB should reduce the frequency of these pauses occurring
for apps where the expected heap usage is near 512 MB.

Changelog: [Internal] Set Hermes's default max heap size to 1 GB

Reviewed By: mhorowitz

Differential Revision: D22577343

fbshipit-source-id: 2d7d688e38e95a082692dca52d010d0449a6e64b
2020-07-23 10:26:19 -07:00
Christoph Nakazawa 63377fa66b Add @react-native/assets package for Asset Registry related code
Summary: Changelog: [Internal]

Reviewed By: GijsWeterings

Differential Revision: D22628865

fbshipit-source-id: 66ff311b2dab4e0c42f906d5a2642997b1570ae4
2020-07-23 05:07:40 -07:00
Peter Argany 91d16bbd9f Hardcode @available(iOS 10) to YES
Summary:
RN removed support for iOS 9 last year, therefore iOS10+ is always available.

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D22655069

fbshipit-source-id: 77e85e0403ea7ea0febc8766c10bb6f94ea417ad
2020-07-22 11:00:32 -07:00
Rubén Norte 4409642811 Migrate large amount of modules to flow strict and strict-local
Summary:
| Group | Before | After | Change |
| Untyped | 50 | 49 | -1 |
| flow | 197 | 155 | -42 |
| flow strict-local | 226 | 185 | -41 |
| flow strict | 33 | 117 | +84

Changelog: [Changed] Improved Flow typing of multiple modules (with migrations to `flow strict` and `flow strict-local`

Reviewed By: motiz88

Differential Revision: D22549140

fbshipit-source-id: ed29415332cfce15b244ee4dea9e13d035543175
2020-07-22 09:46:16 -07:00
Rubén Norte 050a7dd019 Enable exact objects by default in the project template
Summary:
This template for new projects isn't configured with exact objects by default, which could cause issues with code in react-native assuming this option is enabled.

Changelog: [Changed] Enabled exact_by_default in Flow for new projects using the template

Reviewed By: cpojer

Differential Revision: D22571745

fbshipit-source-id: da5affe903114484384764be2142e1c46244bfac
2020-07-22 09:46:15 -07:00
Christoph Nakazawa 09a11202e5 Clean up assetPathUtils code
Summary:
Cleaning up a bunch of legacy JS (var) and removing some variable names for stuff that is just used once.

Changelog: [Internal]

Reviewed By: GijsWeterings

Differential Revision: D22627397

fbshipit-source-id: 783af84b17cbf37df3b8e2ae10bb39d50dd8180d
2020-07-22 03:02:45 -07:00
Christoph Nakazawa a77f2c40d1 Create @react-native/polyfills package.
Summary: Changelog: [Internal]

Reviewed By: GijsWeterings

Differential Revision: D22625944

fbshipit-source-id: 1d97550c92115eb637da57e8f38c28e8139f3a8b
2020-07-22 03:02:45 -07:00
Jimmy Zhang bbb7bef539 Remove unnecessary packager running check when saved JSLocation is empty
Summary:
Changelog:
When the JSLocation is nil, checking whether the address is running is unnesarry and wasting time, adding a JSLocation length check to mitigate that.

Reviewed By: cpojer

Differential Revision: D22644574

fbshipit-source-id: c51fc1a8976ebc25cba2653581e1bfa479a1d70d
2020-07-21 09:55:11 -07:00
Benjamin Henrik Robson da865b23a7 Update Metro packages to v0.61.0
Summary:
`js1 upgrade metro -v 0.61.0`.

Newest Metro release: https://github.com/facebook/metro/releases/tag/v0.61.0

Changelog: [Internal]

Reviewed By: cpojer

Differential Revision: D22644020

fbshipit-source-id: e4276bf6b76892f5d3cbd4ff132359031f511962
2020-07-21 07:19:29 -07:00
Rick Hanlon b98c6f2081 Revert React version back to 0.0.0-experimental-aae83a4b9
Summary: Changelog: [Internal]

Reviewed By: GijsWeterings

Differential Revision: D22627947

fbshipit-source-id: 40831018a340ffe620cdfffb9033e6916492a9d3
2020-07-20 15:27:03 -07:00
Joshua Gross 1e819b71ad If there's a FabricUIManager crash during execution, log all MountItems being executed
Summary:
This could help somewhat with solving crashes in production.

Changelog: [internal]

Reviewed By: mdvacca

Differential Revision: D22631593

fbshipit-source-id: 2caebf1d6611d98764bccf5a6608040e5c892614
2020-07-20 13:25:52 -07:00
David Vacca 35128f45d1 Fix NoSuchMethodException when calling DisplayMetricsHolder.initDisplayMetrics in Android API level <= 16
Summary:
This diff fixex a NoSuchMethodException when calling DisplayMetricsHolder.initDisplayMetrics in Android API level <= 16.

changelog: [Android][Fixed] Fix NoSuchMethodException when calling DisplayMetricsHolder.initDisplayMetrics in Android API level <= 16

Reviewed By: fkgozali

Differential Revision: D22630603

fbshipit-source-id: d2a95445beb5745a89ee1eefdf0d24ce3e0b8893
2020-07-20 12:24:32 -07:00
Ashoat Tevosyan 23036b38bc Set windowTranslucentNavigation to false (#29399)
Summary:
This fixes https://github.com/facebook/react-native/issues/29397. Without this, apps that specify `android:windowTranslucentNavigation` draw the `LogBox` buttons underneath the soft navigation bar, making the buttons unpressable.

Before             |  After
:-------------------------:|:-------------------------:
<img src="http://ashoat.com/AndroidTranslucentNavigationLogBox.png" width="300" />  |  <img src="http://ashoat.com/AndroidTranslucentNavigationLogBoxFixed.png" width="300" />

## Changelog

[Android] [Fixed] - Set LogBox windowTranslucentNavigation to false

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

Test Plan: I tested this change on the [repo](https://github.com/Ashoat/LogBoxTest) I set up to reproduce the issue. I set it up to [build `ReactAndroid` from source](https://github.com/Ashoat/LogBoxTest/commit/3a2cdab8777ac381cd3be5a84a5bf3250751ac11) and then edited `node_modules/react-native/ReactAndroid/src/main/res/devsupport/values/styles.xml` directly.

Reviewed By: rickhanlonii

Differential Revision: D22602970

Pulled By: mdvacca

fbshipit-source-id: 8c2adc149aa0157825075022f00bb695956d3121
2020-07-20 10:03:33 -07:00
Jiayan Zhuang f7eacf0b1a Remove const from text in RawTextProps
Summary:
Changelog:
[Internal] - Remove const from text in RawTextProps

Reviewed By: shergin

Differential Revision: D22607120

fbshipit-source-id: 18f7ab716342c3e5a8e469b12c5437a617be8583
2020-07-20 09:33:02 -07:00
Valentin Shergin ec60ebe792 Introducing YGPositionTypeStatic
Summary:
Changelog: [Internal] Fabric-specific internal change.
This diff introduces a new value for `YGPositionType`: `YGPositionTypeStatic`.
No part of Yoga, RN, Litho or CK uses this value yet. `relative` and `static` values behave the same way for now. We also do not change any defaults. So, it should be fine.

Reviewed By: SidharthGuglani

Differential Revision: D22386732

fbshipit-source-id: 39cd9e818458ac2a91efb175f24a74c8c303ff08
2020-07-20 00:33:22 -07:00
Tom Cheung 123423c2a9 Fix image cannot show in iOS 14 (#29420)
Summary:
This PR is to fix https://github.com/facebook/react-native/issues/29279, which image cannot show in iOS 14
As https://github.com/facebook/react-native/issues/29279#issuecomment-658244428 mention, this issue can be fixed by calling ` [super displayLayer:layer];` it it is still image, to let `UIImageView` handle still image rendering

## Changelog

[iOS] [Fixed] - Fix image cannot show in iOS 14

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

Test Plan:
Image can be shown in iOS 14 build with Xcode 12 beta, using
```js
<Image source={require('./images/some_local_image.jpg')}/>
```

It may also need to test gif image is render correctly
```js
<Image source={{uri: 'https://some_remote_gif_image.gif'}}/>
```

Reviewed By: p-sun

Differential Revision: D22619448

Pulled By: shergin

fbshipit-source-id: f4d0ad83af945a6b8099d4eaea5a5f1933c7bfd2
2020-07-19 21:35:22 -07:00
Jayesh Kawli b78d7051e5 Moved ART iOS files to FB internal
Summary:
As a part of the "Lean Core" effort we are moving many React Native open source modules into React Native. Through this task, we reduced the app size of all React Native applications!

For this task, I moved the ART iOS files to Facebook internal.

Changelog:
[iOS][Changed] - Moved ART iOS files from React Native to Facebook internal

Reviewed By: PeteTheHeat

Differential Revision: D22560856

fbshipit-source-id: 4ed982b0361fef3e875374b6c3df0204037c2bfa
2020-07-19 13:59:06 -07:00
Joshua Gross f00795dc90 Prevent NPE in measure during measure/teardown race
Summary:
When stopSurface is called, Fabric might be processing a commit and performing measurements even as the context is being removed from the FabricUIManager map.

Just return a 0 from `measure` if we can't get a context. This prevents crashes during teardown for measured views that will never be visible anyway.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D22604716

fbshipit-source-id: 67be8d272afd35fc4c2b51b371939c5623e97f73
2020-07-17 15:33:14 -07:00
David Vacca ee8a0cfa5a Fix ConcurrentModificationException while registering events
Summary:
This diff fixes a ConcurrentModificationException that is thrown when registering events in React Native.
This bug was introduced by D22483508 (https://github.com/facebook/react-native/commit/80f13412e548c8666b6ad770e6d3d5c54a717bc2), before event listeners were registered in the NativeModule Thread, now they are registered in the UI Thread.

As part of this diff I change the type of mListeners variable to use CopyOnWriteArrayList instead of ArrayList because this variable is accessed from different threads. This will prevent the exception to happen, but additionally we need to verify if the change of threading made in D22483508 (https://github.com/facebook/react-native/commit/80f13412e548c8666b6ad770e6d3d5c54a717bc2) will cause any other issue (e.g. events not being delivered becuase the listeners are registered too late in the UI Thread)

changelog:[Internal]

Reviewed By: JoshuaGross

Differential Revision: D22599747

fbshipit-source-id: 5c5e46710c4a559badbd713f536e6e6e464fda23
2020-07-17 11:51:22 -07:00
Joshua Gross 980900c634 Workaround for NativeAnimatedModule queue race condition
Summary:
Apparently it's possible for `!isEmpty()` to be true and `peek` to be non-null, but for `poll()` to be false. It doesn't really make sense to me, and I don't have a repro, but that's what logs are showing.

I suspect a teardown race condition or /maybe/ a Fabric/non-Fabric handoff race condition. Neither of those make a ton of sense, though.

The mitigation is fairly straightforward: we are just much more cautious with how we treat the queue and assume everything could be null.

This impacts Fabric and non-Fabric equally.

Changelog: [Internal]

Reviewed By: motiz88

Differential Revision: D22593924

fbshipit-source-id: 7748121951a64941fa6da2bd25ebf070be6dc89c
2020-07-17 01:06:23 -07:00
Tommy Nguyen 15dda0ab5a Fix multiline TextInput crash when inserting/removing lots of text (#29307)
Summary:
Multiline `TextInput` can crash when really long texts are inserted and removed quickly. This is caused by the fact that [`-[NSAttributedString string]`](https://developer.apple.com/documentation/foundation/nsattributedstring/1412616-string?language=objc) doesn't really return a copy, and may mutate the string while it is being used by `convertIdToFollyDynamic`. See https://github.com/microsoft/react-native-macos/pull/489#discussion_r451789471 for more details on the issue.

This issue was originally reported in https://github.com/microsoft/react-native-macos/issues/486 and was fixed in https://github.com/microsoft/react-native-macos/pull/489.

## Changelog

[iOS] [Fixed] - Fix multiline TextInput crash when inserting/removing lots of text

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

Test Plan:
1. Open RNTester > TextInput
2. Search for a multiline example
3. Copy some large text and paste it into the text input view
4. Remove some (or all) text
5. Repeat steps 3-4

Reviewed By: shergin

Differential Revision: D22488854

Pulled By: JoshuaGross

fbshipit-source-id: 6fab7818d68538450d93460361ff5934caf86c10
2020-07-16 22:29:19 -07:00
Peter Argany 3137c443f4 Use more inclusive language in Animated
Summary:
This appears to be the only usage of whitelist/blacklist in react-native-github, let's use some more inclusive language.

Changelog: [JS][Internal]

Reviewed By: kacieb

Differential Revision: D22539431

fbshipit-source-id: 21d4cd54a5a2a676996ccec7b02ef15c421efee1
2020-07-16 16:01:51 -07:00
David Vacca 3d1e127976 Refactor destruction of ReactInstanceManager during Memory Pressure in FB4A
Summary:
This diff refactors the destruction of the ReactInstanceManager when the app is experiencing low memory.

As part of this refactor, I setup an experiment to understand at what level of memory pressure is convenient to destroy the RN bridge.

The experiment is divided in six levels described in the following table:

https://pxl.cl/1dzx8

https://www.internalfb.com/intern/qe2/fb4a_react_native_memory/android_fb4a_instance_unload_pressure_v2/setup

changelog: [internal] Internal

Reviewed By: JoshuaGross

Differential Revision: D22577553

fbshipit-source-id: 37f8f561099a1ba6239795f5907090ced3b5dd18
2020-07-16 14:47:53 -07:00
David Vacca de094396e3 Update InitialLifeCycleState used when initializing RN in FB4A
Summary:
This diff changes the InitialLifeCycleState used when initializing RN in FB4A from BEFORE_RESUME to BEFORE_CREATE.
The value of this field is used during the teardown of RN to determine if RN is actually running or not

The intention of this change is to represent the right behavior of RN during initialization, also this will allow RN to be turn down in case of memory pressure when the bridge has been initialized but before the user has navigated to a RN screen (preloading)

changelog: [internal]

Reviewed By: JoshuaGross

Differential Revision: D22577555

fbshipit-source-id: e54ef596cfe4429745611fe6022eb000051a93d0
2020-07-16 14:47:52 -07:00
Frieder Bluemle e629e94b46 Update Android build tools to 29.0.3 (#29350)
Summary:
A small patch update of the Android build tools from 29.0.2 to 29.0.3. It's the default for newly generated Android projects.

## Changelog

[Android] [Changed] - Update Android build tools to 29.0.3

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

Test Plan: Build project

Reviewed By: JoshuaGross

Differential Revision: D22521075

Pulled By: mdvacca

fbshipit-source-id: 967bbfc6e45c6457d4867282ba311f86dea96208
2020-07-16 12:07:36 -07:00
Emily Janzer e12cf7d069 Add bridgeless check so that we notify listeners if activity is already resumed
Summary:
When a native module registers itself as a lifecycle event listener, ReactContext will immediately call `onHostResume` if the activity is already in a resumed state. We rely on this behavior for things like NativeAnimatedModule, which only enqueues the frame callback in onHostResume. However, ReactContext only does this if `hasActiveCatalystInstance()` returns true - which makes sense, because we don't want to notify listeners if the instance has been destroyed. But in bridgeless mode, `hasActiveCatalystInstance` returns false, and we never call `onHostResume` in this case.

This diff fixes an issue where native driver animations don't work the first time you navigate to a screen with bridgeless mode enabled.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D22560314

fbshipit-source-id: 1a60cb482896308e21d6e438eb9a7314f580ad04
2020-07-16 11:40:13 -07:00
Jiayan Zhuang 5ac524bdbc Add a condition to exclude accessibilityRole that not currently used
Summary:
Changelog:
[Internal] - Add an condition to exclude accessibilityRole that not currently used

Since I've added all the possible values in accessibilityRole enum, it is necessary to gate what needs to be an accessibilityElement. SO I add a condition to exclude accessibilityRole that not currently used.

Reviewed By: shergin

Differential Revision: D22559136

fbshipit-source-id: 910d59132984872b5a9816b8e390117b7b1e2e71
2020-07-16 08:34:31 -07:00
Oleg Bogdanov 6ffb983f83 Minor fix in Hermes Inspector cli tool help message
Summary:
Chrome recently changed schema from 'chrome-devtools' to just 'devtools',
this change updates Hermes inspector cli tool usage string to reflect that change

Changelog: Minor fix in Hermes Inspector cli tool help message

Reviewed By: dulinriley

Differential Revision: D22557806

fbshipit-source-id: 95ec9cbaac445e105e7e92aec2b6c4e5a7d7924f
2020-07-16 04:19:31 -07:00
Valentin Shergin 9f699ae185 Fabric: Using TelemetryController in RCTMountingManager on iOS
Summary:
Here we use `TelemetryController` to instrument mounting transactions in RCTMoutingManagers and wire that with RCTMountingTransactionObserving protocol. Now, performance trackers (flags) that we use can obtain this information and report to some server-side infrastructure. (Which will be implemented in future diffs.)

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D22490581

fbshipit-source-id: 37695560437ae0e27845c3bda2030fe6fa4c6735
2020-07-15 23:30:33 -07:00
Valentin Shergin 35f2cd26ae Fabric: Introducing TelemetryController as part of MountingManager
Summary:
This diff implements TelemetryController, a small tool that can be used to instrument mounting transactions. It abstracts the logic of merging telemetry data of multiple transactions in a thread-safe manner.

Changelog: [Internal] Fabric-specific internal change.

Reviewed By: sammy-SC

Differential Revision: D22490580

fbshipit-source-id: 3f3425b88d38fddb555c1390fd8f1ff3ef1c475a
2020-07-15 23:30:33 -07:00
Valentin Shergin 242c3c8343 Fabric: Introducing SurfaceTelemetry
Summary:
SurfaceTelemetry data structure represents telemetry data associated with a particular running Surface. We need it to aggregate data from multiple mount transaction.

Changelog: [Internal] Fabric-specific internal change.

Reviewed By: sammy-SC

Differential Revision: D22490579

fbshipit-source-id: e087aa9bc236af4da7010d67941f9ac93ad6da97
2020-07-15 23:30:33 -07:00
Joshua Gross 11990c5a08 NativeAnimatedModule: ensure that all operations execute in order when switching between Fabric and non-Fabric screens
Summary:
There are potential race conditions in the old implementation that could result in operations being executed out-of-order when the user transitions between Fabric/non-Fabric screens.

Specifically, if the non-Fabric path queues up a batch of operations to execute on the next UI tick, it is possible that Fabric lifecycle events fire /before/ that next UI tick and synchronously execute a batch of animation operations on the UI thread, before their predecessors have executed.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D22564633

fbshipit-source-id: 91c24547d5a682e61fc0c433302667330349a5f1
2020-07-15 23:14:14 -07:00
Emily Janzer fc285f2f06 Add support for bridgeless mode to UIManagerHelper.getUIManager()
Summary:
`UIManagerHelper.getUIManager()` relies on the bridge (CatalystInstance) to get the proper UIManager depending on which renderer is being used. Unfortunately, this means it will always return null in bridgeless mode, where the CatalystInstance doesn't exist. This diff replaces the implementation of `BridgelessReactContext.getJSIModule()` to return the FabricUIManager from the ReactHost/Instance.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D22480968

fbshipit-source-id: 640e3f22a5b39b315ed2f0397be3cba39e80529a
2020-07-15 19:34:49 -07:00
Joshua Gross d61a8b7bb8 Pressable Views should not be flattened
Summary:
In Fabric if you use a Pressable or PressableBackground and only provide an `onPress` but don't provide background color or anything else, the View might be flattened away and with it the event handlers.

We assume that if the product engineer is using a Pressable, they want it to do something in the View hierarchy, so force it to never be flattened.

Changelog: [Internal]

Reviewed By: shergin

Differential Revision: D22557026

fbshipit-source-id: 171c5b51e8d828fbb2816685d188286179a10af9
2020-07-15 18:50:54 -07:00
Jiayan Zhuang db365b86b2 Fix the accessibilityRole crash by updating values in the enum
Summary:
Changelog:
[Internal][Fixed] - Fix the accessibilityRole crash

I only assigned three values that would be used for embedded links inside text (button, link, image). But the accessibilityRole has a lot of values that may be applied in other places. (https://reactnative.dev/docs/accessibility) To avoid this crash, need to add all possible values to the enum.

Reviewed By: JoshuaGross, shergin

Differential Revision: D22549264

fbshipit-source-id: dbaacf1965624e1d2eabe193b46168c6c8740f46
2020-07-15 16:47:31 -07:00
Jiawei Lv a7818dd754 Format react-native-codegen/DEFS.bzl (#29372)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/29372

Changelog: [Internal]

Reviewed By: rickhanlonii

Differential Revision: D22496009

fbshipit-source-id: 4b5dc6edd924a21eb4d619b58ab094b9ea4f914b
2020-07-15 13:22:42 -07:00
fabriziobertoglio1987 45954ac5dc keyboardDidHide wrong screenY coordinates with windowTranslucentStatus=true (#29292)
Summary:
This issue fixes https://github.com/facebook/react-native/issues/27526, related issue https://github.com/facebook/react-native/issues/27089
Avoid returning the wrong screenY coordinates on event keyboardDidHide.
getWindowVisibleDisplayFrame retrieves the overall visible display size in which the window this view is attached to has been positioned in. This takes into account screen decorations above the window, for both cases where the window itself is being position inside of them or the window is being placed under then and covered insets are used for the window to position its content inside. In effect, this tells you the available area where content can be placed and remain visible to users, since anything below the StatusBar is not visible to the user, the method does not work with translucent StatusBar (android:windowTranslucentStatus).

This commit fixes this issues removing the white bar at the bottom of the view when using windowTranslucentStatus.

## Changelog

<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://github.com/facebook/react-native/wiki/Changelog
-->

[Android] [Fixed] - keyboardDidHide wrong screenY coordinates with windowTranslucentStatus=true

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

Test Plan:
Works in all scenarios, but **I did not change RNTester `windowTranslucentStatus`**. I would like to discuss the potential breaking changes connected to not using [getWindowVisibleDisplayFrame](https://developer.android.com/reference/android/view/View#getWindowVisibleDisplayFrame(android.graphics.Rect)) with `keyboardDidHide`.

I would be happy to build an alternative functionality to calculate the WindowVisibleDisplayFrameHeight under request from the Facebook Team.

**WITHOUT** `android:windowTranslucentStatus`

| **BEFORE** |
|:-------------------------:|
|  <img src="https://user-images.githubusercontent.com/24992535/86804255-0eca4680-c077-11ea-8c79-95ba297d05ba.gif"  />|

| **AFTER** |
|:-------------------------:|
| <img src="https://user-images.githubusercontent.com/24992535/86804265-10940a00-c077-11ea-8cb8-a304cc5de363.gif"  /> |

**WITH** `android:windowTranslucentStatus`

| **BEFORE** |
|:-------------------------:|
|  <img src="https://user-images.githubusercontent.com/24992535/86804458-3a4d3100-c077-11ea-8f3e-7c43eaa08d70.gif"  height="" />|

| **BEFORE (log)** |
|:-------------------------:|
|  <img src="https://user-images.githubusercontent.com/24992535/86806330-0d018280-c079-11ea-9266-c3bcf23a35da.png"  height="" />|

| **AFTER** |
|:-------------------------:|
| <img src="https://user-images.githubusercontent.com/24992535/86804464-3b7e5e00-c077-11ea-8487-34c87f076e5f.gif" height="" /> |

| **AFTER (log)** |
|:-------------------------:|
| <img src="https://user-images.githubusercontent.com/24992535/86806042-c4e26000-c078-11ea-9c3c-cac5319bef65.png" height="" /> |

RNTester **WITHOUT** `android:windowTranslucentStatus`

| **BEFORE** | **AFTER** |
|:-------------------------:|:-------------------------:|
|  <img src="https://user-images.githubusercontent.com/24992535/86805348-176f4c80-c078-11ea-8e2a-e2d84af5c278.gif"  width="300" height="" />| <img src="https://user-images.githubusercontent.com/24992535/86805324-13432f00-c078-11ea-9e70-fa2606eee86b.gif" width="300" height="" /> |

I remain available to do improvements. Thanks a lot. Fabrizio.

Reviewed By: JoshuaGross

Differential Revision: D22521125

Pulled By: mdvacca

fbshipit-source-id: e2cb90163abb1baa00b1916e431971b011522565
2020-07-15 13:14:41 -07:00
Lulu Wu 9b8ffeee4c Fix the redbox when running Metro with Venice enabled.
Summary:
1, Fix the redbox on Pokes route when running Metro with Venice enabled.
2, Fix CrashReactRoute stucking with the loading indicator issue.

Changelog: [Internal]

Reviewed By: ejanzer

Differential Revision: D22477500

fbshipit-source-id: 65e908ac360e031e5f3562a21c09cb0d7ddaf7a0
2020-07-15 03:47:45 -07:00
Jiayan Zhuang 7485e93807 Back out "Change accessibilityRole to an enum"
Summary:
Changelog:
[Internal] - Revert "Change the accessibilityRole from a string to an enum."
Original commit changeset: b46ce0bd156c

Reviewed By: PeteTheHeat

Differential Revision: D22540391

fbshipit-source-id: df4a62c7bb4525782121dea2c70a9101cf0d8e9f
2020-07-14 22:38:31 -07:00
David Vacca 61cd596137 Remove unused dependency
Summary:
Remove unused dependency

changelog: [Internal]

Reviewed By: JoshuaGross

Differential Revision: D22470766

fbshipit-source-id: e49180d1a9eb01e8380fb2bde16b8d4378018693
2020-07-14 21:27:38 -07:00
Joshua Gross c0e7e1bd9c Back out "Introducing LayoutableShadownode::getContentOriginOffset and use it in ScrollView"
Summary:
Original commit changeset: 6fd54661305a

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D22532594

fbshipit-source-id: 5ca25328cfe11416a9721a90611eff56e14cb49f
2020-07-14 19:03:13 -07:00