Commit Graph

38536 Commits

Author SHA1 Message Date
Lulu Wu 9d1e8897e0 Load Logbox module for venice
Summary:
1, Add logbox module to BridgelessReactPackage for loading by TurboModleManager
2, Implement createRootView for creating venice's logbox
3, Move setting reactcontext and devsupportmanager for FbReactFragment into onReactContextInitialized()
4, Fix some nullability warnings

Changelog: [Internal]

Reviewed By: PeteTheHeat

Differential Revision: D26370269

fbshipit-source-id: 016f1dab8387d3766b2fd24d6e88f14538f443ea
2021-02-10 19:47:44 -08:00
Luna Wei 49f5d148a7 Add inverted test case
Summary:
Changelog:
[General][Added] - Add inverted example for SectionList in RNTester

Reviewed By: kacieb

Differential Revision: D26333023

fbshipit-source-id: 43ca139a725b7b5d269150d2d56b7b57124a69e0
2021-02-10 19:18:24 -08:00
Luna Wei 575e23eb2a Add stickyHeadersEnabled example
Summary:
Changelog:
[General][Added] - [RNTester] Add stickyHeadersEnabled example

Reviewed By: kacieb

Differential Revision: D26333022

fbshipit-source-id: 37c869bbd25e4d6a090b53b1cffdf236ac27a8f3
2021-02-10 19:18:24 -08:00
Luna Wei 2e8b5df7b7 Refactor SectionList examples
Summary:
Changelog:
[General][Changed] Refactor how we create test cases for SectionList and update some styling

Reviewed By: kacieb

Differential Revision: D26326600

fbshipit-source-id: d6f62f60fec9a5890db9d00c264b62123d3c723e
2021-02-10 19:18:23 -08:00
Joshua Gross 81810f4c62 Add invariant to SurfaceMountingManager: when removing a view, the parent View must be a ViewGroup
Summary:
In addViewAt, we have this check. Add this same check to removeViewAt.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D26381475

fbshipit-source-id: 1050377aa4e528668446fd561ff09c61f27c700f
2021-02-10 16:03:10 -08:00
Andrei Shikov 5ca832b4aa Fix Android tests for touch events
Summary:
Updates Android tests to pass the tests [failing on CircleCI](https://app.circleci.com/pipelines/github/facebook/react-native/8047/workflows/50c356d0-f9a4-4909-b4e7-cad3b4bb6c57/jobs/188224/steps).

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D26368501

fbshipit-source-id: 61d4fdbc22cec2e397e365e415a08dbbc01cef09
2021-02-10 09:22:48 -08:00
Pieter De Baets a8b5b63d4e Remove unused promiseRejectionIsError
Summary: Changelog: [Internal]

Reviewed By: MichaReiser

Differential Revision: D26338073

fbshipit-source-id: 7b4d8881ffc58ee93b1ccf58e6717a4a8597dece
2021-02-10 07:57:17 -08:00
Micha Reiser cb0764eeb0 Upgrade react-hooks rules
Summary:
Upgrades the `react-hooks` eslint-rules to `4.2.0`

Changelog:
[Internal]

Reviewed By: GijsWeterings

Differential Revision: D26366235

fbshipit-source-id: 04628e8f2a6c56eacba516d877df143c6c81adb8
2021-02-10 07:43:52 -08:00
David Vacca ff3c1307ff Remove out of date TODO
Summary:
Remove out of data TODO

changelog: [internal] internal

Reviewed By: PeteTheHeat

Differential Revision: D26144400

fbshipit-source-id: c5a97ce98cd7251e40adc15c16fceed4b9c76f81
2021-02-09 23:19:28 -08:00
David Vacca 68207541d9 Increase severity for yoga logs
Summary:
This diff increases the severity for yoga logs to match all other logs in Fabric

changelog: [internal] internal

Differential Revision: D26315760

fbshipit-source-id: 1de3c23513ad8ce1630e3d0e3576f60608aac7de
2021-02-09 23:19:28 -08:00
David Vacca 8b72941a0a Add debug logs to check for overflow
Summary:
In this diff I'm adding debug assertions to verify that there are no overflows when muptiplying layout metrics by the pointScaleFactor

Ideally these should crash the app, but I'm trying to be conservative.

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D26297396

fbshipit-source-id: 068c60f4d89ea9cfd04a2e2174da2043ae150928
2021-02-09 23:19:27 -08:00
Joshua Gross 97ecb5eb19 StubViewTree: ensure nodes don't have parents when they're inserted
Summary:
iOS and Android platform code already explicitly check this invariant: nodes cannot have parents when they're inserted into the View hierarchy.

Check this in the core so we get these checks in unit tests, and earlier in the core before platform code runs.

Changelog: [Internal]

Reviewed By: shergin, mdvacca

Differential Revision: D26331842

fbshipit-source-id: c12bc9066d280cb85ccc9e754c9fa475927e6080
2021-02-09 22:43:44 -08:00
Joshua Gross 248704e8de Rename unit tests to match filenames
Summary:
Rename tests to match filenames so results appear correctly in console.

Changelog: [internal]

Reviewed By: PeteTheHeat

Differential Revision: D26306214

fbshipit-source-id: 58ce5ee0f5df5d7da38da8a2653a042ab7c26bb2
2021-02-09 22:43:44 -08:00
Joshua Gross 077f1d233c Remove Android-specific ViewShadowNode concrete/flattened view hack
Summary:
This hack was introduced to fix T63560216. See before/after, it no longer repros.

Changelog: [Internal]

Differential Revision: D26306134

fbshipit-source-id: 7e6f886d76f3c54912fbb548069c31faaac08786
2021-02-09 22:43:43 -08:00
Joshua Gross 03390d7c87 Differ: fix confusion between flattening and concreteness of views
Summary:
During earlier testing I didn't fully realize that Android disables a core bit of View Flattening: Views can be concrete or non-concrete; and their children can be flattened or not. None of these properties are mutually exclusive with each other.

Except on Android - that functionality is currently disabled. A View can be either flattened and non-concrete, or non-flat and concrete. So there are some flattening edge-cases hit on iOS but not Android, due to the larger state-space on iOS.

To test, I forced Android to align with iOS and tested; and then tested on iOS; and ensured no mounting errors, assertions, or crashes were hit during some specific tests.

Changelog: [Internal]

Differential Revision: D26298872

fbshipit-source-id: 2f0f78127a7bf057c7cf109005f1dae74f0ff6ba
2021-02-09 22:43:43 -08:00
Joshua Gross 84d0a2ed4e Flush glog lines at the end of StubViewTree mutate function
Summary:
On iOS, log lines are not entirely flushed when an assert is hit right after (or during) this mutate function. Make sure to flush log lines regularly during this function so that debugging is easier.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D26291789

fbshipit-source-id: 47af109cdc3dcfc6bf08cbb41db06e9260bfaa08
2021-02-09 22:43:43 -08:00
Joshua Gross e0f1101e7e Add invariant to SurfaceMountingManager: Views must not have parents when they are inserted
Summary:
We have no evidence of this happening on Android, but we are hitting a similar invariant on iOS. Adding this to Android for debugging purposes.

For now it's a SoftException to catch in debug and capture information; if we don't hit this prod at all, we'll elevate to a hard crash.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D26281585

fbshipit-source-id: 8ea9cf3ac555b13bf311f24c81bbbbc2845521d5
2021-02-09 22:43:43 -08:00
Joshua Gross e723294630 LayoutAnimations: remove dead code
Summary:
remove dead code; this flag is always defaulted to false, and not used anywhere

Changelog: [Internal]

Reviewed By: sammy-SC, mdvacca

Differential Revision: D26271507

fbshipit-source-id: e2277cc24f164c53f2e8a0aa72456ac400834d70
2021-02-09 22:43:42 -08:00
Joshua Gross 49baf65844 LayoutAnimations: assert -> LA_ASSERT
Summary:
Add LA_ASSERT macro, this just makes debugging easier on Android since these asserts are compiled out for us even in debug.

Changelog: [internal]

Reviewed By: mdvacca

Differential Revision: D26271508

fbshipit-source-id: 9be8c71e273d762a4f31ff1fcc629ce48218b98d
2021-02-09 22:43:42 -08:00
Joshua Gross 76c384ff61 LayoutAnimations: in setup, guard against props being null in prod
Summary:
These asserts don't run in prod; only set starting/final view props if the result props object is non-null.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D26271512

fbshipit-source-id: b495c014a062cf255fd4b5cb8609582f23edcec8
2021-02-09 22:43:42 -08:00
Joshua Gross 2218952d8b LayoutAnimations: when detecting conflicting mutations: crash more in debug, fail elegantly in prod
Summary:
In this case where there's an ongoing UPDATE animation and an INSERT of the same node, make sure the ongoing animation type is what we expect, and that the `newChildShadowView` is valid.

We were already guarding against these, but we should (1) crash more in debug and (2) fail more elegantly in prod when the asserts don't run.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D26271514

fbshipit-source-id: 48e7d37a2493241f16099d9fe5ecb0d247707ca7
2021-02-09 22:43:41 -08:00
Tim Yung d39643b9de RN: Rewrite NativeEventEmitter
Summary:
Rewrites `NativeEventEmitter` to not extend `EventEmitter` and to compose `RCTDeviceEventEmitter` instead of (mis)using its exported `sharedSubscriber` property.

This makes it easier to reason about `NativeEventEmitter`. Also, the extraneous methods on `EventEmitter` are no longer inherited.

Changelog:
[General][Removed] - `NativeEventEmitter` no longer inherits from `EventEmitter`, so it no longer implements `removeListener` and `removeSubscription`. Instead, use the `remove()` method on the subscription object returned by `addListener`.

Reviewed By: rubennorte

Differential Revision: D26163562

fbshipit-source-id: c1aadb99bdefbaa36fece57ce74604e414f94d4d
2021-02-09 21:27:45 -08:00
Nadiia D 7d4612b076 Add testIDs and names to Animated examples
Summary:
Changelog:
[General][Internal] - Add testIDs to the Animated examples.

Reviewed By: kacieb

Differential Revision: D26312729

fbshipit-source-id: c9131bb0fda1533d78dd6cf61d8c604053c7884f
2021-02-09 21:07:52 -08:00
Nadiia D 2c19d85285 TextInput: test cursor placement
Summary:
Changelog:
[General][Internal] Added some test IDs for the TextIput examples.

Reviewed By: lunaleaps

Differential Revision: D26265361

fbshipit-source-id: 26d7a69f74f283daed2ddabaaf31113cd3089bf3
2021-02-09 21:07:52 -08:00
Nadiia D 05b54cbee9 TextInput: create shared test utils
Summary:
Changelog:
[General][Internal] Added some test IDs and names for the TextIput examples.

Reviewed By: lunaleaps

Differential Revision: D26263554

fbshipit-source-id: 958a030eafbbed9076f49ab05585f30ddef3ef23
2021-02-09 21:07:51 -08:00
Luna Wei 16efb8dd52 Render test titles and standardize on output
Summary:
Changelog:
[General][Added] - Show a test title if set and standardize the output

Note this will break existing screenshot tests so will need to re-run these

Reviewed By: nadiia

Differential Revision: D26318844

fbshipit-source-id: cef48d72a524ccc6f32b9d930c68fe4171270365
2021-02-09 11:59:52 -08:00
Valentin Shergin 33d6091cac Fabric: Using SurfaceHandler on iOS
Summary:
This diff migrates iOS renderer to using SurfaceHandler directly instead of calling Scheduler methods.

Major changes:
* RCTFabricSurface only stores a SurfaceHandler and platform-specific parts (such as a UIView instance and TouchHandler); all other pieces of state are stored in SurfaceHandler object.
* All the state changes initiated from RCTFabricSurface are performed via calling corresponding methods on SurfaceHandler (bypassing RCTSurfacePresenter, RCTScheduler, Scheduler, and UIManager).
* Every RCTSurfaceHandler is responsible for observing `UIContentSizeCategoryDidChangeNotification` and communicating the change down to SurfaceHandler. (Besides code simplifications it's more correct because on iOS the DPI actually depends on a particular UIScreen/UIWindow associated with UIView and *not* global for the whole app.)

Changelog: [Internal] Fabric-specific internal change.

Reviewed By: sammy-SC

Differential Revision: D24290778

fbshipit-source-id: 62b600c3f1b2e66a7513481404af941ef8b78bec
2021-02-09 08:10:43 -08:00
Samuel Susla 5c202cafd6 Simplify content mode conversion
Summary:
Changelog: [internal]

To avoid typecasting, let's return `UIViewContentMode`. This way we get rid of a condition to check if contentMode is repeat.

Reviewed By: JoshuaGross

Differential Revision: D26252431

fbshipit-source-id: 94ef7af1a76f13c91b696d57ceecc2453bbc9d8d
2021-02-09 04:03:48 -08:00
Tim Yung 1049835b50 RN: Simplify Keyboard
Summary:
Simplifies `Keyboard` by removing redundant methods and changing `addEventListener` to return an `EventSubscription`.

Changelog:
[General][Changed] - `Keyboard.addListener` now returns an `EventSubscription` object.
[General][Removed] - Removed `Keyboard.removeListener`. Instead, use the `remove()` method on the object returned by `Keyboard.addListener`.
[General][Removed] - `Keyboard` no longer inherits from `NativeEventEmitter`, so it no longer implements `removeAllListeners`, and `removeSubscription`.

Reviewed By: milroc

Differential Revision: D26163536

fbshipit-source-id: b4bd91627cd027a13fcba269a253823913eb7589
2021-02-08 17:49:31 -08:00
Tim Yung 88a41f180c LogBox: Intelligently Un-Collapse Stack Frames
Summary:
Tweaks LogBox so that if all stack frames are collapsed, start off without collapsing any of them.

It saves developers from one extra interaction to make the LogBox actually useful for errors where every frame is ignored.

Changelog:
[General][Changed] - LogBox will not initially collapse stack frames if every frame would be collapsed.

Differential Revision: D26266195

fbshipit-source-id: dcdbe0834da5fc3a0bf49fb7857de30dd7e4b8cb
2021-02-08 17:17:57 -08:00
Luna Wei 7f5ec15009 Update RNTester example headers
Summary:
Changelog:
[General][Changed] - Update RNTester example headers
* Removed platform availability on a example page
* Add the title of the example module since we aren't updating the native title bar

Since we already show platform information on the list of examples, it's redundant to show it again on the example page and this would give us more clearance for our examples below.

Where we already show platform information
| Android | iOS |
| {F370209520} | {F370209763} |

Reviewed By: nadiia, kacieb

Differential Revision: D26293966

fbshipit-source-id: a503db3703fc0c56a64c91880a83d222fe38faf4
2021-02-08 17:08:43 -08:00
Luna Wei 4ed54c6411 Move SectionList examples to RNTester
Summary:
Changelog:
[General][Added] - Add more SectionList examples to RNTester

Move the examples we're using for e2e tests to RNTester as well

Reviewed By: nadiia, kacieb

Differential Revision: D26290719

fbshipit-source-id: c61ccd3034ac21c779c3a94e5c0febcfbf9897f7
2021-02-08 17:08:43 -08:00
Ramanpreet Nara ab21226457 Migrate away from "@fbsource//tools/build_defs/apple:flag_defs.bzl"
Summary:
We still have usages of "fbsource//tools/build_defs/apple:flag_defs.bzl" in react-native-github. But this should get us closer towards not using the fbsource cell. Hopefully, this is enough to unbreak the  test_docker CircleCI build.

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D26289304

fbshipit-source-id: 1c6464bb84df4f82f8a797321a73a1ed324e319a
2021-02-08 16:04:51 -08:00
Ramanpreet Nara 442d44fe46 Rename OBJC_ARC_PREPROCESSOR_FLAGS to get_objc_arc_preprocessor_flags()
Summary:
This'll make OSS buck targets consistent with FB targets.

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D26289310

fbshipit-source-id: 1b435676fd23b722224bba5b343067d0fa922e82
2021-02-08 16:04:51 -08:00
Jesse Katsumata 34e1b0ef98 chore: fix warning comments of deprecated modules (#30911)
Summary:
Updated some warning messages that shows up when importing deprecated modules to have the updated name space.

## 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
-->

[General] [Changed] - Update package name warning of deprecated modules

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

Test Plan: Updated link works as expected

Reviewed By: TheSavior

Differential Revision: D26318425

Pulled By: PeteTheHeat

fbshipit-source-id: 74a9909698236e62af8da23644df65c75bb1df11
2021-02-08 15:59:39 -08:00
Valentin Shergin 81147b6f79 Fabric: Changes in YogaLayoutableShadowNode::applyLayoutConstraints that prevent descendant nodes overgrow to infinity
Summary:
Instead of changing Yoga styles for a root node, now we pass available height and width to YGNodeCalculateLayout directly.

Changelog: [Internal] Fabric-specific internal change.

Reviewed By: sammy-SC, mdvacca

Differential Revision: D26292378

fbshipit-source-id: f99127e1cbddc1d57e4ee116afc141cbff5054ab
2021-02-08 15:36:57 -08:00
Kacie Bawiec 1c7d9c8046 Fix disabled prop not disabling onPress for voice assistant
Summary:
It is currently possible to activate a disabled Pressable with VoiceOver/TalkBack. This fixes this.

Changelog:
[General][Fixed] Fix disabled prop not disabling onPress for voice assistant

Reviewed By: blavalla

Differential Revision: D26225448

fbshipit-source-id: 67fa10f9e5c50143d986dc709a2fb639fdc3e718
2021-02-08 15:18:50 -08:00
maltoze 35b6d2e52b Add FileReader to eslint globals (#30766)
Summary:
Fix eslint complaining about FileReader not being defined.

## 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
-->
[Internal] [Fixed] - Fix eslint complaining about FileReader not being defined.

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

Reviewed By: TheSavior

Differential Revision: D26318564

Pulled By: PeteTheHeat

fbshipit-source-id: d08c040f872cca3cbb26e8bf753a1acb3931d294
2021-02-08 12:23:08 -08:00
David Vacca 41f93679d0 Update C++ flags in Fabric Android
Summary:
Update C++ flags in Fabric Android

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D26297398

fbshipit-source-id: d4603ee848abee98977ac9e21505547d9a867e21
2021-02-08 11:37:35 -08:00
David Vacca d79212120b Clean listeners during destroy of ReactContext
Summary:
This diff cleans listeners on the destruction of the ReactContext.

changelog: [inernal] internal

Reviewed By: JoshuaGross

Differential Revision: D26259929

fbshipit-source-id: 1843cabdac2fa3e67dcc890afd923b82472d8f66
2021-02-06 23:05:28 -08:00
David Vacca 98165a23f6 Clear internal maps of NativeModuleRegistry during turn down of the bridge
Summary:
This diff clears the internal maps of NativeModuleRegistry during turn down of the bridge.

This is necessary for a proper cleanup of these modules.

changelog: [internal] internal

Reviewed By: ShikaSD

Differential Revision: D26239303

fbshipit-source-id: 6e98e5db60a4f54d02e99b03339b03c17ecc183d
2021-02-06 23:05:28 -08:00
David Vacca 1e8c3e4ad8 Unregister UIManagerModule from LifecycleEventListener
Summary:
This diff unregisters the UIManagerModule from LifecycleEventListener during turn down of the bridge.

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D26239156

fbshipit-source-id: b230949228c6e580cca088c395b970a3cff94839
2021-02-06 23:05:28 -08:00
David Vacca d7191f80e8 Configure MC before the JS Bundle is loaded
Summary:
This diff setup a global variable to control the staticViewConfig experiment before the bundle is loaded.

This global variable only has a meaning when RN uses a Bridge

changelog: [internal]

Reviewed By: JoshuaGross

Differential Revision: D26237670

fbshipit-source-id: 25ae63f36fba9c1e640ab2e70de88b71452ad8e6
2021-02-06 23:05:27 -08:00
David Vacca 33c390a7da Deallocate EventDispatcher in FabricUIManager when StaticViewConfigs are enabled
Summary:
This diff refactor the initialization and deallocation of EventDispatcher in FabricUIManager when StaticViewConfigs are enabled.

The goal of this diff is to make sure that the EventDispatcher is deallocated correctly when using StaticViewConfigs

changelog: [internal]

Reviewed By: JoshuaGross

Differential Revision: D26166413

fbshipit-source-id: e5bdad7ba923edc677c6b73f3a4d1271941f41cc
2021-02-06 23:05:27 -08:00
Shaozhen Zhang b28fa2dae0 Update AppState Jest Mock
Summary:
Updates the AppState Jest mock to correspond to recent API changes.

Changelog:
[General][Fixed] - Updated AppState Jest mock to match new public API

Reviewed By: yungsters

Differential Revision: D26295371

fbshipit-source-id: e6e39f23d9100f0eacf257f45d509c5364dcb28d
2021-02-05 23:21:43 -08:00
Marshall Roch e2263b343e Deploy Flow v0.144.0
Summary: Changelog: [Internal]

Reviewed By: Hans-Halverson

Differential Revision: D26292193

fbshipit-source-id: 6732dbd1bd435d6f0d77dae7f621972623d9d320
2021-02-05 22:27:02 -08:00
Ramanpreet Nara d02211cbce Filter out TurboModules from extraModulesForBridge
Summary:
When the TurboModule system is enabled, all TM-compatible NativeModules should not go through the legacy system. We have this filtering elsewhere in the bridge, but not for eagerly initialized NativeModules with custom initializers (i.e: modules returned from extraModulesForBridge). This diff adds that filtering for modules returned from extraModulesForBridge.

NOTE: NativeModule initializers can still perform side-effects. So, it's still best to not create the TM-compatible NativeModule inside extraModulesForBridge. This diff just adds an additional layer of defense within the bridge.

Changelog: [Internal]

Differential Revision: D26264531

fbshipit-source-id: 26179d9094f67d6d6315a65cdb2dc614e5397bf3
2021-02-05 16:17:28 -08:00
Jesse Katsumata cd6c9f3273 Update react-native-codegen for template project (#30896)
Summary:
Updated react-native-codegen to 0.0.7 for template project

## 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
-->

[General] [Changed] - update react-native-codegen to 0.0.7

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

Test Plan: Template project builds correctly with codegen 0.0.7

Reviewed By: fkgozali

Differential Revision: D26286917

Pulled By: TheSavior

fbshipit-source-id: 6ea07a527b05c4c92e76e9ce53ef1288be4b098a
2021-02-05 14:53:27 -08:00
Ramanpreet Nara cba6aba2e6 Add @DoNotStrip annotation to getConstants()
Summary:
NativeModule getConstants() methods on Java might not be used within Java. So, they can be stripped by proguard. This diff adds the DoNotStrip annotation to the getConstants() method.

Changelog: [Internal]

Reviewed By: keoskate

Differential Revision: D26265874

fbshipit-source-id: b405ee32406e829212e5c9641750a6b5795899c3
2021-02-05 11:48:30 -08:00
Albert Sun b474be6cc8 Back out "Make NativeModules immediately initializable"
Summary:
This caused a few apps to crash on launch.

Changelog: [Android][Fixed] - Crashes due to "Make NativeModules immediately initializable"

Reviewed By: olegbl

Differential Revision: D26278594

fbshipit-source-id: 969a3dc49a843366c4ae6ed19a9233d1e6f39b13
2021-02-05 10:16:25 -08:00