Commit Graph
21703 Commits
Author SHA1 Message Date
Peter ArganyandFacebook GitHub Bot f2c6279ca4 iOS/tvOS 10.0 ==> 11.0 in .xcodeproj
Summary:
Changelog: [iOS] Remove iOS10/tvOS10 suppport

Similar to D19269953 (https://github.com/facebook/react-native/commit/829a2237d270c03c80467eb6c2b5b18c87135a45) for iOS9 deprecation

Reviewed By: fkgozali

Differential Revision: D25805856

fbshipit-source-id: 328f426a492c563b1632223be2b48c8d3ca04756
2021-01-11 16:46:16 -08:00
Peter ArganyandFacebook GitHub Bot a1d626739d Delete iOS10/tvOS10 support from React Native Libraries
Summary:
allow-large-files

Changelog: [iOS] Remove iOS10/tvOS10 suppport

Similar to D19265731 (https://github.com/facebook/react-native/commit/674b591809cd1275b5f1c4d203c2f0ec52303396) for iOS9.

I just ran this command:
`find . -type f -exec sed -i '' 's/{ :ios => "10.0" }/{ :ios => "11.0" }/' {} +`
and then updated pods

Reviewed By: fkgozali

Differential Revision: D25693227

fbshipit-source-id: 0073d57ecbb268c52d21962cef202316857bcbd2
2021-01-11 16:46:16 -08:00
Andrei ShikovandFacebook GitHub Bot b1474f56cb Add codegen debug logging to check CI issues
Summary: Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D25874281

fbshipit-source-id: 9cb70c98849ab3eaa0318c88d51210fe9de8bdf5
2021-01-11 16:05:29 -08:00
David VaccaandFacebook GitHub Bot 5348a98207 Migrate lookup of EventDispatcher to not depend on UIManagerModule
Summary:
This diff migrates all the lookups of EventDispatcher to not depend on UIManagerModule anymore.
This refactor is necessary because:
- Users running in Fabric / Venice should not load on the UIManagerModule class
- D25858934 will introduce a change that will break all of these callsites

In the migration I'm relying on the method UIManagerHelper.getEventDispatcherFromReactTag() that returns the correct EventDispatcher for a reactTag.

I'm planning to land this change early in the week (to catch potential errors in alpha / beta versions)

As a followup we need to deprecate and prevent developers to continue using getNativeModule(UIManagerModule.class) moving forward. That will be part of another diff

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D25858933

fbshipit-source-id: e26c99759307517b5bef483274fe0e0d71bb4c6c
2021-01-11 15:43:58 -08:00
Peter ArganyandFacebook GitHub Bot 6a9525c9b0 Delete iOS9 BUCK workarounds
Summary:
Changelog: [Internal]

According to D19411886 (https://github.com/facebook/react-native/commit/30491a208513451efa6c2a62a116c61b21363a22), there were some deps that required a couple targets to stay at iOS9:

- `//fbobjc/Libraries/FBGraphQLQuery:FBGraphQLQuery --> //xplat/js/react-native-github:RCTCxxUtilsApple`
- `//fbobjc/Libraries/NativeTemplateKit:NativeTemplateKitJSExecutorPlugin --> //xplat/js/react-native-github/ReactCommon/jsi:JSCRuntimeApple`

These targets seem to build after this diff, so I guess they've been pushed past iOS9.

Reviewed By: fkgozali

Differential Revision: D25692640

fbshipit-source-id: 1ce94a452090032ef316a3daa79885a7c58d6eac
2021-01-11 13:00:31 -08:00
Riley DulinandFacebook GitHub Bot 291cc95cc9 Add a fatal error handler for Hermes
Summary:
Hermes has a way to set up a callback that is invoked when a fatal error
such as Out of Memory occurs. It is a static API that should be called at
most once, so it uses `std::call_once` to achieve that.

The fatal error handler is simple, it just uses glog to log an error message
to logcat, then aborts (using `__android_log_assert`).
The reason is typically very helpful for understanding why `hermes_fatal` was called.

Changelog:
[Android][Internal] - Print a logcat message when Hermes has a fatal error

Reviewed By: mhorowitz

Differential Revision: D25792805

fbshipit-source-id: 45de70d71e9bd8eaa880526d8835b4e32aab8fe3
2021-01-11 11:33:24 -08:00
David VaccaandFacebook GitHub Bot 2d64dde3e6 Prevent creating non visibile view in RNTester
Summary:
Small refactor to prevent creating non visibile view in RNTester

changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D25869868

fbshipit-source-id: 4873bf5f9de99612806df2d02adb73d21d3185db
2021-01-11 09:45:27 -08:00
David VaccaandFacebook GitHub Bot 5803c72982 Log SoftError when there is not EventDispatcher associated to UIManager
Summary:
This diff logs a SoftError when there is not EventDispatcher associated to UIManager

The app will crash in Debug mode, this will not affect production users
changelog: [internal]

Reviewed By: JoshuaGross

Differential Revision: D25859546

fbshipit-source-id: 8045bcd67f613ea6286f30fe6f3c66113c700b0b
2021-01-10 19:46:40 -08:00
David VaccaandFacebook GitHub Bot 4076293aa1 Fix changes of View visibilities
Summary:
The purpose of this diff is to ensure that visibility changes are handled correctly when the value of "display" for a View changes from 'flex' to 'none'.

RNTester is nesting several Views with different kind of visibilities. When the user tap on an item there's a state update that changes the visibility styles for some of these views. Fabric does not reflect the right changes of visibility on the screen.

changelog: internal

Reviewed By: shergin

Differential Revision: D25841763

fbshipit-source-id: 769b97afb72939d346a4c6f2669ff938b35596bc
2021-01-10 19:46:40 -08:00
Samuel SuslaandFacebook GitHub Bot 50f2dd9cce Make layout event asynchronous unbatched
Summary:
Changelog: [internal]

Making "layout" event asynchronous unbatched will bring the behaviour closer to Paper.
Paper puts "layout" event in the event queue from ShadowQueue and schedules a flush of event queue on JavaScript queue.

Before this, Fabric puts "layout" event in the event queue from JavaScript queue, waits until main run loop is about to go to sleep and then schedules a flush of event queue on JavaScript thread.

Now Fabric no longer waits for main run loop to go to sleep but induces a flush of event queue on JavaScript thread right away.

Reviewed By: JoshuaGross, shergin

Differential Revision: D25849468

fbshipit-source-id: 366e99364507f7bc1d09325c04a604bcb2043e3d
2021-01-10 16:21:05 -08:00
Valentin SherginandFacebook GitHub Bot e37e56b042 Back out "Add onFocus and onBlur to Pressable."
Summary:
I suspect it's causing T82781515.

Changelog:
[Category][Type] - Backout of "[react-native][PR] Add onFocus and onBlur to Pressable."

Reviewed By: p-sun

Differential Revision: D25864414

fbshipit-source-id: efba9136edba97d5bd2a0de15f9ddae7dfd24e51
2021-01-10 13:56:27 -08:00
Andres SuarezandFacebook GitHub Bot dfd8d9ae91 Apply clang-format update fixes
Reviewed By: igorsugak

Differential Revision: D25861849

fbshipit-source-id: 840dc1061e557717c7f9ffcccbc09c24b96b78e0
2021-01-10 10:07:06 -08:00
Samuel SuslaandFacebook GitHub Bot 0c5d59cffa Fix codegen boolean return value
Summary:
Changelog: [internal]

Codegen was generating code with return value number instead of boolean.

Reviewed By: RSNara

Differential Revision: D25863062

fbshipit-source-id: 780f88dd2d83e303b03d1ed9cc837ac6733f1702
2021-01-10 09:54:25 -08:00
Andres SuarezandFacebook GitHub Bot 0f4f917663 Apply clang-format update fixes
Reviewed By: igorsugak

Differential Revision: D25861683

fbshipit-source-id: 616afca13ae64c76421053ce49286035e0687e36
2021-01-09 22:11:00 -08:00
Joshua GrossandFacebook GitHub Bot e3a05c9e3e iOS implementation of sendAccessibilityEvent
Summary:
This is the iOS native implementation of sendAccessibilityEvent for Fabric.

Changelog: [Internal]

Reviewed By: shergin

Differential Revision: D25857401

fbshipit-source-id: e57d2e7fd45052bcf05cee7d0cb6c55ee974f358
2021-01-08 18:10:59 -08:00
Joshua GrossandFacebook GitHub Bot 055d029bc0 Android implementation of sendAccessibilityEvent
Summary:
This is the Android native implementation of sendAccessibilityEvent for Fabric.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D25852418

fbshipit-source-id: cb51e667a7f673da6b9c9e539770225b02bdc902
2021-01-08 18:10:59 -08:00
Joshua GrossandFacebook GitHub Bot c15f907f67 Core native implementation of sendAccessibilityEvent in Fabric
Summary:
This is the core (Cxx) Fabric implementation of sendAccessibilityEvent. No platform support is added in this diff (Android and iOS do not build yet).

See following diffs.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D25852412

fbshipit-source-id: 88b7d8e2e251183dfe7fb377a4cffbac8f458656
2021-01-08 18:10:59 -08:00
Ramanpreet NaraandFacebook GitHub Bot 86a9c0aa8f Delete react_native_module_flow_types_library(name = "RNCodegenModuleFixtures")
Summary:
This BUCK target only existed for debugging purposes. Nothing depends on it.

Changelog: [Internal]

Reviewed By: JoshuaGross

Differential Revision: D25844759

fbshipit-source-id: e27fb04809a5c97adbeefd7df60b82992c6e1eda
2021-01-08 14:44:00 -08:00
Ramanpreet NaraandFacebook GitHub Bot 4bf03e1f23 Stop force including OSS specs in TMMDelegate codegen
Summary: Changelog: [Internal]

Reviewed By: JoshuaGross

Differential Revision: D25844710

fbshipit-source-id: b80c29335fbac6941918c07f24027971359d0df2
2021-01-08 14:44:00 -08:00
Igor KlemenskiandFacebook GitHub Bot cab4da7288 Add onFocus and onBlur to Pressable. (#30405)
Summary:
Starting to upstream keyboard-related features from React Native Windows - this is the Android implementation.
Exposing onFocus and onBlur callbacks on Pressable; they're already declared for View in ViewPropTypes.js, which Pressable wraps.

Registering event listeners in ReactViewManager to listen for native focus events.
## 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] [Added] - Add onFocus/onBlur for Pressable on Android.

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

Test Plan:
Tested on v63-stable, since building master on Windows is now broken. Screenshots from RNTester running on the emulator:
![image](https://user-images.githubusercontent.com/12816515/99320373-59777e80-2820-11eb-91a8-704fff4aa13d.png)
![image](https://user-images.githubusercontent.com/12816515/99320412-6f853f00-2820-11eb-98f2-f9cd29e8aa0d.png)

Reviewed By: mdvacca

Differential Revision: D25444566

Pulled By: appden

fbshipit-source-id: ce0efd3e3b199a508df0ba1ce484b4de17471432
2021-01-08 13:59:48 -08:00
Andrew CoatesandFacebook GitHub Bot 47bb3be6ce Minor code tweaks to work around a compiler bug in MSVC. (#30696)
Summary:
While pulling in additional react-native code into react-native-windows to support fabric, I hit some bugs with the MSVC compiler.  These minor changes work around those bugs and shouldn't have any functional effect on the code

## Changelog

[Internal] [Fixed] - Minor code tweaks to work around a compiler bug in MSVC.

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

Test Plan: Code compiles in MSVC and clang.

Reviewed By: shergin

Differential Revision: D25830710

Pulled By: appden

fbshipit-source-id: 796bd8191ea62fe62e09dd16cc56b8edc092297f
2021-01-08 13:33:37 -08:00
Kshitij KotasthaneandFacebook GitHub Bot 835117aba3 Added sharedAction example to Share API (#30333)
Summary:
* Added an example for `sharedAction` and `dismissedAction` in Share API examples

**Motivation** - Missing example for `sharedAction` in examples

## 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] [Added] - Added an example in ShareExample.js

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

Test Plan:
* Tested on Android

![sharedAction](https://user-images.githubusercontent.com/26821140/98447958-ed758600-214e-11eb-8a50-67ad5dcebea5.png)

Reviewed By: cpojer

Differential Revision: D25246375

Pulled By: rickhanlonii

fbshipit-source-id: f0d25a04c77ba02c9bea07aceccbfb65b2aa67e9
2021-01-08 12:41:32 -08:00
Su Min KimandFacebook GitHub Bot a724c8d95e Add keyboard avoiding view examples (#30380)
Summary:
Added examples to keyboard avoiding view in RNTester for:
1. contentContainerStyle
2. enabled

## 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] [Added] - Add keyboard avoiding view examples

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

Test Plan: ![Example](http://g.recordit.co/At5k7cF4kA.gif)

Reviewed By: PeteTheHeat

Differential Revision: D25399114

Pulled By: rickhanlonii

fbshipit-source-id: 4b893b5be02770eb582807add5f8d7dbb7941549
2021-01-08 12:16:08 -08:00
Kshitij KotasthaneandFacebook GitHub Bot b64ffd70cd Added missing examples for TouchableHighlight and TouchableWithoutFeedback (#30364)
Summary:
Added example for the following missing props in TouchableHighlight
   * onHideUnderlay
   * onShowUnderlay

**Motivation** - Missing examples for these props in the RNTester app
## 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] [Added] - Added example to ToucableHighlight

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

Test Plan:
* Tested on an Android device
![under_2](https://user-images.githubusercontent.com/26821140/98783116-0a47dd00-241f-11eb-95a1-feffb5c8a00b.png)
![under_1](https://user-images.githubusercontent.com/26821140/98783118-0c11a080-241f-11eb-907a-498cdfceee13.png)
![Screenshot_1605441612](https://user-images.githubusercontent.com/26821140/99184542-946aab00-2769-11eb-847c-e5f71ff5093a.png)

Reviewed By: TheSavior

Differential Revision: D25563070

Pulled By: rickhanlonii

fbshipit-source-id: c8a10601cda28f4884e1444039a208d0b70cbdf1
2021-01-08 12:11:20 -08:00
Joseph SemraiandFacebook GitHub Bot 2aeb6545bc Add remaining prop examples for the Image component (#30554)
Summary:
Adds missing prop examples for the Image component in rn-tester.

## Changelog
[Internal] [Added] New examples for LoadingIndicatorSource, Accessibility, AccessibilityLabel, fadeDuration, onLayout, onPartialLoad, accessibilityLabel, etc.

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

Test Plan:
- [x] Build rn-tester and verify that it runs
- [x] Interact with each component
- [x] Verify that the examples function as intended

Reviewed By: shergin

Differential Revision: D25680504

Pulled By: rickhanlonii

fbshipit-source-id: bf797c92f8d0b4e66cdede2e32445ea4941b19fe
2021-01-08 12:07:33 -08:00
Lukas MüllerandFacebook GitHub Bot 6bfd89d277 Update OkHttp to 3.14.9 to improve security (#30609)
Summary:
Okhttp 3.12.X allows Connections using TLS 1.0 and TLS1.1.
TLS 1.0 and TLS 1.1 are no longer secure.
Google, Mozilla, Microsoft, and Apple announced that their browsers will require TLSv1.2 or better starting in early 2020.

https://square.github.io/okhttp/changelog_3x/#version-310
https://github.com/facebook/react-native/wiki/Changelog

Starting from 3.13.0 TLSv1 and TLSv1.1 are no longer enabled by default.
3.13.0 requires JAVA 8 and Android SDK 21 (which was blocking the Upgrade in the Past).

## Changelog

[Android] [Changed] - Update Okhttp to version 3.14.19

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

Test Plan:
Current tests should pass.
Connections using TLS 1.0 and TLS 1.1 should not be possible.

Reviewed By: mdvacca

Differential Revision: D25843511

Pulled By: fkgozali

fbshipit-source-id: f0b648c8037f945130c6f9983404ee7f75b178cb
2021-01-07 20:30:26 -08:00
Ramanpreet NaraandFacebook GitHub Bot 9215980471 Remove moduleSpecName
Summary:
All our codegen JavaScript now simply uses libraryName instead of moduleSpecName. In our buck infra, we assign native_module_spec_name to libraryName.

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D25842696

fbshipit-source-id: efd3af402585f9ad4ff3b593179147eea91cc331
2021-01-07 19:39:56 -08:00
Ramanpreet NaraandFacebook GitHub Bot d5cfad5519 Make android codegen target generate static library
Reviewed By: fkgozali

Differential Revision: D25835846

fbshipit-source-id: 214b8059d73c6e675a5006c7ca46db9ebc425e9b
2021-01-07 19:39:56 -08:00
Pieter VanderwerffandFacebook GitHub Bot a4920ed909 Deploy 0.142.0 to xplat
Reviewed By: Hans-Halverson

Differential Revision: D25839306

fbshipit-source-id: 8d59a57647ce33b17f7e006d5ab14916f80ff044
2021-01-07 17:26:45 -08:00
Samuel SuslaandFacebook GitHub Bot deda35134a Make EventQueue a virtual class
Summary:
Changelog: [internal]

EventQueue is used as a virtual class, this diff makes it one.

Reviewed By: JoshuaGross, shergin

Differential Revision: D25826983

fbshipit-source-id: 60e6937514cd3b837b0ca9f61bfaa081823ffc61
2021-01-07 13:42:24 -08:00
Pieter VanderwerffandFacebook GitHub Bot f2052fedc2 Land suppressions for 0.142.0 release to xplat
Summary:
This change contains the suppressions for the up coming v0.142.0 Flow release.

The new suppressions are a result the following changes:
* Disallow flowing functions or inexact objects to indexed objects to improve object soundness. This can cause errors if you are passing a function or inexact objects when an indexed object is expected.
* Flow now processes imports before checking the body of a file. In some rare cases this can expose previously skipped errors due to the processing order.

Reviewed By: mroch

Differential Revision: D25820434

fbshipit-source-id: 59cc1d852ffc8cc39f0d5112ce485fb33f05c092
2021-01-07 11:33:45 -08:00
Rubén NorteandFacebook GitHub Bot fa406ac2aa Implement typed event emitters
Summary:
Adds types to Event Emitters and migrates the most relevant modules using them in `react-native`.

The most relevant file of this diff is `react-native/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js` with the Flow tests showing and testing the behavior of the new types

Changelog: [Internal] Add types for Event Emitters and subclasses

Reviewed By: motiz88

Differential Revision: D25587936

fbshipit-source-id: feeb09f9ad15d383cdd82deaaaba0d12b94e868b
2021-01-07 03:19:04 -08:00
David VaccaandFacebook GitHub Bot 2027d6236a Revert D25746024: Refactor initialization of Fabric to avoid loading UIManagerModule
Differential Revision:
D25746024 (https://github.com/facebook/react-native/commit/d3a3ce857ef5a54e7014e06af194b596ec18a03e)

Original commit changeset: 3d12d29973a1

fbshipit-source-id: 67a7f045e5c6b1bc0201ad58b569fc870c3a89f9
2021-01-06 21:37:24 -08:00
Panagiotis VekrisandFacebook GitHub Bot 6651b7c59b restore core lib Flow definitions for Request, Response, etc.
Summary:
The main change of this diff is in file react-native-github/interface.js.
This file used to override the definitions for `fetch`, `Headers`, `Request`,
`Response`, `requestAnimationFrame` of flow/lib/bom.js and type them
as `any` instead.

This is inconsistent with the rest of the flow library definitions that expect
`Request`, for example, to be adequately typed. Overriding this defnition
with `any` raises `[value-as-type]` errors in the library definitions themselves.

Due to a Flow bug, these errors were silently suppressed, leading to loss of
coverage. I'm trying to clean-up these errors and fix the Flow bug so that
library errors are always surfaced.

This diff also:
* Removes 53 unused suppression comments
* Adds 110 new error suppressions

Changelog: [Internal]

Reviewed By: pieterv

Differential Revision: D25806504

fbshipit-source-id: e312bc5d64818b63c3b8b4f86dea51e13aacfac0
2021-01-06 17:24:51 -08:00
David VaccaandFacebook GitHub Bot d3a3ce857e Refactor initialization of Fabric to avoid loading UIManagerModule
Summary:
This diff refactors the intialization of Fabric in order to avoid loading UIManagerModule as part of the creation of FabricJSIModuleProvider.

One caveat is that now we are not taking into consideration the flag mLazyViewManagersEnabled
```
master/xplat/js/react-native-github/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java177

if (mLazyViewManagersEnabled) {
```
As a side effect of this diff view managers will be initialized twice if the user has fabric and paper enabled

This diff was originally backed out in D25739854 (https://github.com/facebook/react-native/commit/4984c1e525e310f15c7d89230fdb2fa8fea91f05) because it produced a couple of bugs:
- https://fb.workplace.com/groups/rn.support/permalink/4917641074951135/
- https://fb.workplace.com/groups/rn.support/permalink/4918163014898941/

These bugs are fixed by D25667987 (https://github.com/facebook/react-native/commit/2e631471092090e743245377742166ecae1d7e26).

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D25746024

fbshipit-source-id: 3d12d29973a12b1edfea75f4dd954790f835e9bd
2021-01-06 00:49:50 -08:00
David VaccaandFacebook GitHub Bot 2e63147109 Refactor creation of views in Fabric Android
Summary:
This diff refactors the createViewInstance method in order to ensure that viewID is set before props are updated in the view.
This is necessary because there are components that deliver events at the same time their props are set. This means that some components might not have their viewId set correctly when events are delivered.
Since viewId is used to determine if a view belongs to Fabric or Paper, there are cases when the events are not delivered to the right renderer

changelog: [internal]

Reviewed By: JoshuaGross

Differential Revision: D25667987

fbshipit-source-id: 4acfa8f80d66e9e59514354481957d7d3b571248
2021-01-05 23:28:28 -08:00
Jayme DeffenbaughandFacebook GitHub Bot 381fb395ad Expose the testID to black-box testing frameworks on Android (#29610)
Summary:
There has been a long-standing issue where black-box testing frameworks like Appium and Xamarin UITest have not been able to access the `testID` view prop for Android (see https://github.com/facebook/react-native/issues/7135). A natural place for this to be exposed is via a view's `resource-id`. The `resource-id` is what I have used when working on UIAutomator-based tests for native Android apps and is a non-localized, development-only identifier. As mentioned in the linked ticket, you can dynamically set the resource-id using the view's AccessibilityNodeInfo. This change simply checks to see if a testID is provided for a view and then exposes it through the view's accessibility node delegate.

## 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] - Fixes https://github.com/facebook/react-native/issues/7135,  https://github.com/facebook/react-native/issues/9942, and https://github.com/facebook/react-native/issues/16137. Display the `testID` as the `resource-id` for black-box testing frameworks

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

Test Plan:
I used the `uiautomatorviewer` tool to verify that the resource-id is populated with the `testID` of a few different views of the RNTester app.
<img width="912" alt="Screen Shot 2020-08-10 at 3 38 27 PM" src="https://user-images.githubusercontent.com/875498/89838534-55044100-db20-11ea-9be2-ba507a81f6fb.png">
<img width="1096" alt="Screen Shot 2020-08-10 at 3 40 41 PM" src="https://user-images.githubusercontent.com/875498/89838542-5897c800-db20-11ea-9895-462c6fea1130.png">

Reviewed By: JoshuaGross

Differential Revision: D25799550

Pulled By: fkgozali

fbshipit-source-id: e64ff1b90fb66b427fce7af533aa94792cfbcad3
2021-01-05 23:22:57 -08:00
DulmandakhandFacebook GitHub Bot dc9132e297 remove -javadoc.jar, -sources.jar from NPM package validation (#30686)
Summary:
In https://github.com/facebook/react-native/commit/a4d8632890df43c40ee3f892dc2817238de143db, I removed javadoc.jar, and sources.jar generation, but forgot to change artifact validation for NPM publish. This PR removes javadoc.jar and sources.jar from validation.

## Changelog

[Internal] [Changed] - remove javadoc.jar, sources.jar from NPM package validation

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

Test Plan: publish_npm_package CI job must succeed.

Reviewed By: mdvacca

Differential Revision: D25775320

Pulled By: fkgozali

fbshipit-source-id: b2cff66986818c5216754dcf14d9fcd756d14231
2021-01-05 17:44:51 -08:00
David VaccaandFacebook GitHub Bot 08eacf8acd Ship optimization of ReadableNativeMaps
Summary:
Ship optimization of ReadableNativeMaps - see D25361169 (https://github.com/facebook/react-native/commit/503a6f4463f5d2f7576b33158c18d8d8e99f3291)

QE showed neutral metrics

changelog: [internal]

Reviewed By: JoshuaGross

Differential Revision: D25776019

fbshipit-source-id: 7fd32087bf2ca81236fe0aebe082be01330de2fa
2021-01-05 11:49:44 -08:00
MikeandFacebook GitHub Bot a4526bcc3f fix: incorrect ScrollView offset on update (#30647)
Summary:
This pull request is to fix https://github.com/facebook/react-native/issues/30258.

After an investigation, I found out the scroll offset of the list seems to be calculated incorrectly due to a workaround in the source code.

Instead of fixing the `calculateOffsetForContentSize`, I chose to remove it, the reason why I do so is because this workaround is for fixing the offset when `contentSize` is set manually, but according to the source code, there is no interface for a react-native user to set the `contentSize` of ScrollView, it is just set to `GCSizeZero` and will never be changed ([ref](https://github.com/facebook/react-native/pull/30647/files#diff-cf6f991f585ebf4cfdd555fe474e1f9ce40c2e4f823fc3f42b549414639c8c30L304)).

Also I changed the function name from `updateContentOffsetIfNeeded` to  `updateContentSizeIfNeeded` according what the function is actually doing.

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

[iOS] [Fixed] - Incorrect ScrollView offset on update

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

Test Plan:
1. Create a fresh new project named `testapp` using npx create-react-native-app
2. Apply example code to `testapp` from https://snack.expo.io/lokomass/flatlist
3. Run `testapp` on iOS emulator and reproduce the bug
4. Make changes to files in `testapp/node_modules/react-native/`
5. Rebuild `testapp` and run on iOS emulator again, the bug is no more exist
6. Apply changes from step 4 to react-native, make a pull request.

#### Screenshots

Before: The scroll offset is incorrect after children of FlatList has changed

https://user-images.githubusercontent.com/48589760/103155130-b54a0580-47d7-11eb-97af-bdfd3e728714.mov

After: No more incorrect scroll offset if children of FlatList has changed

https://user-images.githubusercontent.com/48589760/103155091-6ef4a680-47d7-11eb-89fa-6f708bfef1c9.mov

Reviewed By: sammy-SC

Differential Revision: D25732958

Pulled By: shergin

fbshipit-source-id: dac6eff15ac3bbfec502452ac14b3d49fee76c29
2021-01-05 11:06:30 -08:00
Joshua GrossandFacebook GitHub Bot 0db56f1888 Ship IntBufferBatchMountItem experiment
Summary:
This experiment has been successfully running for several weeks and show small but statsig perf improvements. Delete the old code and ship this 100% in code to simplify Fabric code.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D25775668

fbshipit-source-id: d2b41dfe691775e52b1e89c2fb6790a6500e560e
2021-01-05 10:44:44 -08:00
Joshua GrossandFacebook GitHub Bot a2164f429a Ship lockfree mountitems
Summary:
Ship lockfree mountitems experiment.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D25775521

fbshipit-source-id: 15811b15a9dc7d463a6d46d7fefd0d433ba86280
2021-01-05 10:44:44 -08:00
Valentin SherginandFacebook GitHub Bot 934275f931 Fabric: Changeing debouncing logic of onLayout event
Summary:
This changes the way we throttle `onLayout` events in Fabric.

The approach we used before has several issues:
* Every event-dispatching action initiated a lambda scheduled on JavaScript thread (which is a bit inefficient).
* If an event had {0,0,0,0} frame, it might be skipped because this is the default frame value.
* An event was always delivered by the exact block scheduled at the moment of the event initiation (even though some other blocks might be called before). In case of events being initiated rapidly, it can delay actual event delivery and maybe even overwhelm the JavaScript thread.

The new implementation uses a different approach: we maintain the shared storage with recent frame value and use the very first opportunity to deliver it. Alse see comments in the code.

Changelog: [Internal] Fabric-specific internal change.

Reviewed By: sammy-SC

Differential Revision: D25676336

fbshipit-source-id: 275b08990f7c5cf1f05a8f954ebc795a14e10ec2
2021-01-04 15:02:32 -08:00
Héctor RamosandFacebook GitHub Bot 7a9e4ba4e9 Optionally override codegen script defaults via envvars
Summary:
The codegen helper script, `generate-specs.sh`, is being used to generate code for the FBReactNativeSpec and React-Fabric/rncore pods. The script now supports overriding several defaults by setting the following environment variables:

- SRCS_DIR: Path to JavaScript sources, defaults to $RN_DIR/Libraries/
- LIBRARY_NAME: Defaults to FBReactNativeSpec
- MODULES_OUTPUT_DIR: Defaults to Libraries/$LIBRARY_NAME/$LIBRARY_NAME
- COMPONENTS_LIBRARY_NAME: Defaults to rncore
- COMPONENTS_OUTPUT_DIR: Defaults to ReactCommon/react/renderer/components/$COMPONENTS_LIBRARY_NAME

The CocoaPods codegen integration has been updated to take advantage of these.

**Example CocoaPods usage:**

```
# packages/rn-tester/NativeModuleExample/RNTesterSpecs.podspec
Pod::Spec.new do |s|
  s.name = "RNTesterSpec"
  # ...
  use_react_native_codegen!(s, { :srcs_dir => __dir__, :modules_output_dir => __dir__ })
end
```

Changelog:
[Internal]

Reviewed By: fkgozali

Differential Revision: D25738466

fbshipit-source-id: c68f5a3cd0996283a7af287e992e2f973024f44c
2021-01-04 13:34:16 -08:00
Vladimir MorozovandFacebook GitHub Bot 8aea93022b Remove dependency on Folly in TurboModuleUtils.h (#30672)
Summary:
The TurboModuleUtils.h includes "folly/Optional.h" which is not used and creates an unnecessary dependency on Folly.
In this PR we remove this unnecessary include.

It is required for the https://github.com/microsoft/react-native-windows/pull/6804 where we add an experimental support for the C++ TurboModules. While the C++ TurboModules use the same JSI and TurboModule code defined in react-native, we provide a layer that let them to work over the ABI-safe Microsoft.ReactNative.dll boundary. The RNW Nuget distribution with DLL files includes a few source files to create native/turbo modules that work through the ABI-safe API. The TurboModuleUtils.h is one of such files. By removing the dependency on Folly we reduce requirements for the native module code. After this PR is merged we will remove the fork of the TurboModuleUtils.h  added in https://github.com/microsoft/react-native-windows/pull/6804.

## Changelog

[Internal] [Fixed] - Remove dependency on Folly in TurboModuleUtils.h

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

Test Plan:
The change does not bring any functional changes. It may only affect code compilation where some code may depend on TurboModuleUtils.h when it needs the "folly/Optional.h". The fix is add the `#include <folly/Optional.h>` there explicitly.

I had run the iOS tests and they passed:
```
yarn
pod install in packages\rn-tester
./scripts/objc-test.sh test
```

Reviewed By: mdvacca

Differential Revision: D25758927

Pulled By: fkgozali

fbshipit-source-id: 347d8f6bc333a3df67095ea0dc7221c818432fab
2021-01-04 12:04:58 -08:00
Agastya DarmaandFacebook GitHub Bot 5b34c98fa2 WIP: Add an explicit NDK version to RNTester and ReactAndroid (#29987)
Summary:
When I try to run RNTester with Gradle the RNTester Required me to use **NDK 20.0.5594570**. I can't seem to find an explicit NDK version anywhere in ReactAndroid and RNTester. This PR Aims to add an explicit NDK version to RNTester and ReactAndroid.

![Screenshot from 2020-09-19 21-13-17](https://user-images.githubusercontent.com/8868908/93669563-444fcf00-fabf-11ea-8822-93264c5bb736.png)

## Changelog
[Android] [Added] - Add an explicit NDK version to RNTester and ReactAndroid.

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

Test Plan: Build manually from RNTester

Reviewed By: fkgozali

Differential Revision: D23911371

Pulled By: ShikaSD

fbshipit-source-id: 2f297c73890c0eb0bfec0e2ba7ec5755b4d84243
2021-01-04 09:15:08 -08:00
Micha ReiserandFacebook GitHub Bot 306edff62c Pass Systrace and Refresh as globals
Summary:
The `Systrace` and `Refresh` dependencies are injected into the `metroRequire` implementation by assigning the values to e.g. `require.Systrace = ...`.

The issue with this approach is that some `require` implementations might not support extending the `require` object or doing so results in a degraded performance. An example where this is the case is Hermes where changing the `require` object forces Hermes to opt out of the static require optimization.

This diff extends Metro so that the `Systrace` and `Refresh` implementation can either be injected by assigning to `require.Systrace` or by exposing the implementation in the global scope. It further changes the `Systrace` and `Refresh` modules to inject the instances using the global scope instead of extending `require`.

Changelog:
[Internal][Changed] - Expose Systrace and ReactRefresh as globals instead of extending require.

Reviewed By: motiz88

Differential Revision: D25693381

fbshipit-source-id: 254d66d43e7a56d3310cf1a17d5146b8d1307562
2021-01-04 07:40:19 -08:00
Samuel SuslaandFacebook GitHub Bot 1bafd0086f Remove v1 event coalescing
Summary:
Changelog: [internal]

Old event coalescing isn't used anymore and there haven't been any problems with the new one.

Reviewed By: shergin

Differential Revision: D25701311

fbshipit-source-id: 359f0361edffa22130cfa8322038acdbe26fd599
2021-01-04 04:12:30 -08:00
Rubén NorteandFacebook GitHub Bot e2033c5b7b Add FlowFixMes for future violations of typed EventEmitter
Summary:
This prevents having to modify too many files when we add the proper typing for that module

Changelog: [Internal]

Reviewed By: nadiia

Differential Revision: D25586848

fbshipit-source-id: 16001ada4a37a58f83b6e5a4400daebf9257be72
2021-01-04 03:56:57 -08:00
Rubén NorteandFacebook GitHub Bot c7463f0059 Add FlowFixMes for future violations of typed NativeEventEmitter
Summary:
Migrates all usages of `NativeEventEmitter` to `NativeEventEmitter<$FlowFixMe>`.

This prevents having to modify a very large number of files in the same change that adds support for typed events. It adds an unused typed parameter to `NativeEventEmitter` so we can change all usages to add `$FlowFixMe`.

Changelog: [Internal]

Reviewed By: nadiia

Differential Revision: D25575774

fbshipit-source-id: c7979e1502e980401d9c03456282eba333c1606d
2021-01-04 03:56:57 -08:00