15861 Commits

Author SHA1 Message Date
Emiel Mols
84e2636004 ReactAndroid: JS errors during bundle load were reported as UnknownCppException (#24648)
Summary:
This fixes a regression on Android introduced by f3e5cce where JS errors thrown during bundle load were lost (shown only as UnknownCppException). It is especially tough to debug (custom) bundling errors without seeing the javascript error.

Root cause hypothesis: since switching to clang, `JSError`s thrown in ReactCommon's `JSCRuntime::checkException` were never matched as `std::exception` in ReactAndroid's `convertCppExceptionToJavaException` due to these missing flags.

I'm a bit shy on low-level details concerning how C++ rtti works exactly around catching exceptions thrown in other libraries. All I can say that with this change, a `bundle.android.js` that only contains `throw new Error("wtf");` now nicely outputs a message and stack trace in the logcat. Before (and since DanielZlotin's switch to clang) it just outputted:

```
2019-04-29 12:17:59.365 1162-1306/com.rntest E/unknown:ReactNative: Exception in native call
    com.facebook.jni.UnknownCppException: Unknown
        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29)
        at android.os.Looper.loop(Looper.java:214)
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:232)
        at java.lang.Thread.run(Thread.java:764)
```

[Android] [Fixed] - JS errors during bundle load were reported as UnknownCppException.
Pull Request resolved: https://github.com/facebook/react-native/pull/24648

Differential Revision: D15123525

Pulled By: mdvacca

fbshipit-source-id: 74b5ce9ebae38d172446b6e31739d795c601947b
2019-04-30 22:32:23 +02:00
zhongwuzw
c37e9c8905 Add convert compatible of NSString for bridge message data (#24630)
Summary:
Fixes https://twitter.com/estevao_lucas/status/1117572702083190785?s=215 in #24626 . Now we try to convert any id to `NSString`, not throw error.

cc. cpojer .

[iOS] [Fixed] - Add convert compatible of NSString for bridge message data
Pull Request resolved: https://github.com/facebook/react-native/pull/24630

Differential Revision: D15120205

Pulled By: cpojer

fbshipit-source-id: 4849a8e941410b292f971608a9cdb38c11502445
2019-04-30 22:32:00 +02:00
Estevão Lucas
0a3bbcd1b2 Fix accessibility event properties for TextInput (#24641)
Summary:
When a `TextInput` receives any accessibility event prop (`onAccessibilityTap`, `onMagicTap`, `onAccessibilityEscape`, `onAccessibilityEscape`), causes a crash.

<p align=center><img src=https://user-images.githubusercontent.com/20709038/56871548-84f00980-69ed-11e9-8906-0206899e5435.jpg width=300></p>

[iOS] [Fixed] - Fix accessibility event properties for `TextInput`
Pull Request resolved: https://github.com/facebook/react-native/pull/24641

Differential Revision: D15120211

Pulled By: cpojer

fbshipit-source-id: 7996ab9f9b78588fab4986c3de6114817ec37296
2019-04-30 22:31:06 +02:00
Spencer Ahrens
39776a82f0 don't throttle below 16ms
Summary: For some reason the scroll events are sometimes generated with highly irregular spacing, some coming less than a millisecond apart. For interactions that must track scrolling exactly, this can cause them to glitch. With a scroll throttle of less than 17 ms, the intention is clear that the UI should be updated in sync with the scroll view so we shouldn't drop any events.

Reviewed By: PeteTheHeat

Differential Revision: D15068841

fbshipit-source-id: 730e7cb29cc3ddae66f37cf7392e02e0cc9d7844
2019-04-30 22:29:11 +02:00
Thorben Primke
379874dc49 Adds Logic To Catch MissingWebViewPackageException (#24533)
Summary:
We are seeing crash reports that the webview is missing. In this case
it should fail gracefully so that a missing webview does not block
from using an app built with React Native.

The contains could also be changed to check for "webview" in general
to catch all webview related exception. It's currently checking on
for the specific string that I'm seeing in our app's crashreporting tool.

<img width="1507" alt="Screen Shot 2019-04-19 at 11 26 19 AM" src="https://user-images.githubusercontent.com/741767/56438307-5e1c2f80-6297-11e9-970b-a5095d18e9d7.png">

<img width="935" alt="Screen Shot 2019-04-19 at 11 32 58 AM" src="https://user-images.githubusercontent.com/741767/56438213-fa920200-6296-11e9-8008-5eb344eca8a8.png">

[Android] [Fixed] - The ReactCookieJarContainer/ForwardingCookieHandler now handles the missing WebView  gracefully.
Pull Request resolved: https://github.com/facebook/react-native/pull/24533

Differential Revision: D15062824

Pulled By: cpojer

fbshipit-source-id: 80805a47494f0d924b7ee029ce8ca0504eaeee57
2019-04-30 22:27:25 +02:00
Christoph Nakazawa
f3801d90fa Revert "improve RTL (#24069)" (#24580)
Summary:
This reverts commit b3c74967ca6b20d7bda84c690ae3a99dfe255843.

Fixes #24267

[Android] [Fixed] - Invalid text alignment for RTL fonts.
Pull Request resolved: https://github.com/facebook/react-native/pull/24580

Differential Revision: D15061667

Pulled By: cpojer

fbshipit-source-id: 6d02c9e938f1f8630ba691f57bdf79fd57db3bb2
2019-04-30 22:26:35 +02:00
James Treanor
2b7d7999e1 Fix nullability warnings in RCTExceptionsManager (#24467)
Summary:
There are a number of nullability warnings in `RCTExceptionsManager` when building React Native for iOS with Xcode 10.2. This resolves them without changing the existing behavior.

See the warnings here:

![image](https://user-images.githubusercontent.com/1773641/56201323-89551380-6038-11e9-9998-b6a8d3d28f36.png)

[iOS] [Fixed] - Fix nullability warnings in RCTExceptionsManager
Pull Request resolved: https://github.com/facebook/react-native/pull/24467

Differential Revision: D14973485

Pulled By: cpojer

fbshipit-source-id: 2fac9f067ac9418397c3913760a2403f9a2cc147
2019-04-30 22:25:24 +02:00
Mike Grabowski
df4e67fe75 [0.59.6] Bump version numbers 2019-04-18 14:53:24 +02:00
Mike Grabowski
130a2241a1 Update lock 2019-04-18 14:39:00 +02:00
Mike Grabowski
b1c5937826 Downgrade Prettier 2019-04-18 14:38:26 +02:00
Eli White
5f00f4c6ea React sync
Summary:
This sync includes the following changes:
- **[1b2159acc](https://github.com/facebook/react/commit/1b2159acc )**: [React Native] measure calls will now call FabricUIManager (#15324) //<Eli White>//
- **[c7a959982](https://github.com/facebook/react/commit/c7a959982 )**: [React Native] Add tests to paper renderer for measure, measureLayout (#15323) //<Eli White>//
- **[aece8119c](https://github.com/facebook/react/commit/aece8119c )**: Refactor EventComponent logic + add onOwnershipChange callback (#15354) //<Dominic Gannaway>//
- **[183d1f42e](https://github.com/facebook/react/commit/183d1f42e )**: Fix: Measure expiration times relative to module initialization (#15357) //<Andrew Clark>//
- **[b4bc33a58](https://github.com/facebook/react/commit/b4bc33a58 )**: Fix areHookInputsEqual method  warning params order (#15345) //<砖家>//
- **[29fb5862f](https://github.com/facebook/react/commit/29fb5862f )**: Move EventComponent state creation to complete phase + tests (#15352) //<Dominic Gannaway>//
- **[745baf2e0](https://github.com/facebook/react/commit/745baf2e0 )**: Provide new jsx transform target for reactjs/rfcs#107 (#15141) //<Ricky Vetter>//
- **[81a61b1d1](https://github.com/facebook/react/commit/81a61b1d1 )**: React events: add delay props to Press module (#15340) //<Nicolas Gallagher>//
- **[4064ea9fa](https://github.com/facebook/react/commit/4064ea9fa )**: Experimental event API: Support EventComponent onUnmount responder callback (#15335) //<Dominic Gannaway>//
- **[4fbbae8af](https://github.com/facebook/react/commit/4fbbae8af )**: Add full TouchHitTarget hit slop (experimental event API) to ReactDOM (#15308) //<Dominic Gannaway>//
- **[958b6173f](https://github.com/facebook/react/commit/958b6173f )**: Add delay props to Hover event module (#15325) //<Nicolas Gallagher>//
- **[c3cc936da](https://github.com/facebook/react/commit/c3cc936da )**: Add Hover,Focus,Press docs to REAMDE (#15328) //<Nicolas Gallagher>//
- **[49595e921](https://github.com/facebook/react/commit/49595e921 )**: [New Scheduler] Fix: Suspending an expired update (#15326) //<Andrew Clark>//
- **[b93a8a9bb](https://github.com/facebook/react/commit/b93a8a9bb )**: Experimental event API: refactor responder modules for lifecycle inclusion (#15322) //<Dominic Gannaway>//
- **[937d262f5](https://github.com/facebook/react/commit/937d262f5 )**: React events: keyboard press, types, tests (#15314) //<Nicolas Gallagher>//
- **[7a2dc4853](https://github.com/facebook/react/commit/7a2dc4853 )**: Allow DevTools to toggle Suspense fallbacks (#15232) //<Dan Abramov>//
- **[43b1f74c8](https://github.com/facebook/react/commit/43b1f74c8 )**: Alternate fix for #14198 //<Andrew Clark>//
- **[41aa345d2](https://github.com/facebook/react/commit/41aa345d2 )**: Fix a crash in Suspense with findDOMNode //<Dan Abramov>//
- **[6d0effad7](https://github.com/facebook/react/commit/6d0effad7 )**: Expose extra internals in FB build of react-dom/unstable-new-scheduler (#15311) //<Andrew Clark>//
- **[3a44ccefe](https://github.com/facebook/react/commit/3a44ccefe )**: Fix feature flags react-dom/unstable-new-scheduler (#15309) //<Andrew Clark>//
- **[92a1d8fea](https://github.com/facebook/react/commit/92a1d8fea )**: mark react-events as private so we publish script skips it for now (#15307) //<Sunil Pai>//
- **[e5c59359c](https://github.com/facebook/react/commit/e5c59359c )**: Prevent bundling of Node polyfills when importing TestUtils/TestRenderer (#15305) //<Dan Abramov>//
- **[73187239a](https://github.com/facebook/react/commit/73187239a )**: writing unit tests in experimental event Drag API (#15297) //<Behzad Abbasi>//
- **[89064fe68](https://github.com/facebook/react/commit/89064fe68 )**: Adds displayName to EventComponent and EventTarget (#15268) //<Dominic Gannaway>//
- **[fc6a9f1a1](https://github.com/facebook/react/commit/fc6a9f1a1 )**: Add test for async event dispatching (#15300) //<Nicolas Gallagher>//
- **[38fa84088](https://github.com/facebook/react/commit/38fa84088 )**: Experiemental event API - wrap async dispatched events (#15299) //<Dominic Gannaway>//
- **[4d5cb64aa](https://github.com/facebook/react/commit/4d5cb64aa )**: Rewrite ReactFiberScheduler for better integration with Scheduler package (#15151) //<Andrew Clark>//
- **[aed0e1c30](https://github.com/facebook/react/commit/aed0e1c30 )**: await act(async () => ...) (#14853) //<Sunil Pai>//
- **[4c75881ee](https://github.com/facebook/react/commit/4c75881ee )**: Remove maxDuration from tests (#15272) //<Sebastian Markbåge>//
- **[9307932fe](https://github.com/facebook/react/commit/9307932fe )**: Refactor event object creation for the experimental event API (#15295) //<Dominic Gannaway>//
- **[6a1e6b2f7](https://github.com/facebook/react/commit/6a1e6b2f7 )**: Experimental event API: loosen EventTarget constraints and warnings (#15292) //<Dominic Gannaway>//
- **[f243deab8](https://github.com/facebook/react/commit/f243deab8 )**: Add tests for Press responder event module (#15290) //<Nicolas Gallagher>//
- **[296c4393d](https://github.com/facebook/react/commit/296c4393d )**: Add Press event prop types and fix a check in Safari (#15288) //<Nicolas Gallagher>//
- **[4482fdded](https://github.com/facebook/react/commit/4482fdded )**: Fix host context issues around EventComponents and EventTargets (#15284) //<Dominic Gannaway>//
- **[5ef0d1d29](https://github.com/facebook/react/commit/5ef0d1d29 )**: Rename hover props in experimental event API and write unit tests (#15283) //<Behzad Abbasi>//
- **[9444a5472](https://github.com/facebook/react/commit/9444a5472 )**: Warn on nested EventTragets in experimental event API (#15287) //<Dominic Gannaway>//
- **[7f1f5ddc3](https://github.com/facebook/react/commit/7f1f5ddc3 )**: Rename press props in experimental event API (#15263) //<Nicolas Gallagher>//
- **[2e02469fa](https://github.com/facebook/react/commit/2e02469fa )**: ReactNative's ref.measureLayout now takes a ref (#15126) //<Eli White>//
- **[1b94fd215](https://github.com/facebook/react/commit/1b94fd215 )**: Make setNativeProps a no-op with Fabric renderer (#15094) //<Eli White>//
- **[08055a625](https://github.com/facebook/react/commit/08055a625 )**: Fix Press module in experimental event API (#15262) //<Nicolas Gallagher>//
- **[f4625f518](https://github.com/facebook/react/commit/f4625f518 )**: Fix on(Long)PressChange events in experimental press event API (#15256) //<Nicolas Gallagher>//
- **[a41b21770](https://github.com/facebook/react/commit/a41b21770 )**: Add additional event API responder surfaces (#15248) //<Dominic Gannaway>//
- **[700f17be6](https://github.com/facebook/react/commit/700f17be6 )**: Fix longpress in experimental Press event module (#15246) //<Nicolas Gallagher>//
- **[5d336df70](https://github.com/facebook/react/commit/5d336df70 )**: Allow for null targetFiber for root event handling (#15247) //<Dominic Gannaway>//
- **[c6f3524df](https://github.com/facebook/react/commit/c6f3524df )**: Adds React event component and React event target support to SSR renderer (#15242) //<Dominic Gannaway>//
- **[c7a2dce50](https://github.com/facebook/react/commit/c7a2dce50 )**: Disable JS urls at build level for www (#15230) //<Sebastian Markbåge>//
- **[fb6b50871](https://github.com/facebook/react/commit/fb6b50871 )**: Update versions for 16.8.6 //<Dan Abramov>//
- **[1cfd25668](https://github.com/facebook/react/commit/1cfd25668 )**: Fix circular module imports causing file size increase (#15231) //<Dominic Gannaway>//
- **[669cafb36](https://github.com/facebook/react/commit/669cafb36 )**: Adds experimental event component responder surfaces (#15228) //<Dominic Gannaway>//
- **[d8cb10f11](https://github.com/facebook/react/commit/d8cb10f11 )**: Enabled warnAboutDeprecatedLifecycles flag by default (#15186) //<Brian Vaughn>//
- **[80f8b0d51](https://github.com/facebook/react/commit/80f8b0d51 )**: Add part of the event responder system for experimental event API (#15179) //<Dominic Gannaway>//
- **[5c2b2c085](https://github.com/facebook/react/commit/5c2b2c085 )**: Warn about async infinite useEffect loop (#15180) //<Dan Abramov>//
- **[8e9a013c0](https://github.com/facebook/react/commit/8e9a013c0 )**: Release 16.8.5 //<Dan Abramov>//
- **[f33e5790b](https://github.com/facebook/react/commit/f33e5790b )**: eslint-plugin-react-hooks@1.6.0 //<Dan Abramov>//
- **[b1cccd1ed](https://github.com/facebook/react/commit/b1cccd1ed )**: Warn about setState directly in dep-less useEffect (#15184) //<Dan Abramov>//
- **[78f2775ed](https://github.com/facebook/react/commit/78f2775ed )**: Flip event passive logic on passiveBrowserEventsSupported (#15190) //<Dominic Gannaway>//
- **[f161ee2eb](https://github.com/facebook/react/commit/f161ee2eb )**: React.warn() and React.error() (#15170) //<Brian Vaughn>//
- **[78968bb3d](https://github.com/facebook/react/commit/78968bb3d )**: Validate useEffect without deps too (#15183) //<Dan Abramov>//
- **[4b8e1641b](https://github.com/facebook/react/commit/4b8e1641b )**: Fork performWork instead of using boolean flag (#15169) //<Sebastian Markbåge>//
- **[56035dac6](https://github.com/facebook/react/commit/56035dac6 )**: unstable_Profiler -> Profiler (#15172) //<Brian Vaughn>//
- **[31518135c](https://github.com/facebook/react/commit/31518135c )**: Strengthen nested update counter test coverage (#15166) //<Dan Abramov>//
- **[66f280c87](https://github.com/facebook/react/commit/66f280c87 )**: Add internal logic for listening to event responders (#15168) //<Dominic Gannaway>//
- **[b1a56abd6](https://github.com/facebook/react/commit/b1a56abd6 )**: Fork ReactFiberScheduler with feature flag //<Andrew Clark>//
- **[45f571736](https://github.com/facebook/react/commit/45f571736 )**: ReactFiberScheduler -> ReactFiberScheduler.old //<Andrew Clark>//
- **[c05b4b81f](https://github.com/facebook/react/commit/c05b4b81f )**: Link to useLayoutEffect gist in a warning (#15158) //<Dan Abramov>//
- **[061d6ce3c](https://github.com/facebook/react/commit/061d6ce3c )**: fix(react-dom): access iframe contentWindow instead of contentDocument (#15099) //<Renan Valentin>//
- **[b83e01cad](https://github.com/facebook/react/commit/b83e01cad )**: Adds more scaffolding for experimental event API (#15112) //<Dominic Gannaway>//
- **[daeda44d8](https://github.com/facebook/react/commit/daeda44d8 )**: Follow up to 15150 (#15152) //<Dominic Gannaway>//
- **[acd65db5b](https://github.com/facebook/react/commit/acd65db5b )**: Deprecate module pattern (factory) components (#15145) //<Sebastian Markbåge>//
- **[55cc921c5](https://github.com/facebook/react/commit/55cc921c5 )**: Adds react-events package for internal testing (#15150) //<Dominic Gannaway>//
- **[7ad738630](https://github.com/facebook/react/commit/7ad738630 )**: Improve warning for invalid class contextType (#15142) //<Dan Abramov>//
- **[1e3364e76](https://github.com/facebook/react/commit/1e3364e76 )**: Test that we don't suspend when disabling yielding (#15143) //<Sebastian Markbåge>//
- **[42c3c967d](https://github.com/facebook/react/commit/42c3c967d )**: Compile invariant directly to throw expressions (#15071) //<Andrew Clark>//
- **[df7b87d25](https://github.com/facebook/react/commit/df7b87d25 )**: Warn for Context.Consumer with contextType (#14831) //<Brandon Dail>//
- **[2b93d686e](https://github.com/facebook/react/commit/2b93d686e )**: Add more info to invalid hook call error message (#15139) //<Jared Palmer>//
- **[d926936f0](https://github.com/facebook/react/commit/d926936f0 )**: Eager bailout optimization should always compare to latest reducer (#15124) //<Andrew Clark>//
- **[4162f6026](https://github.com/facebook/react/commit/4162f6026 )**: Add feature flag to disable yielding (#15119) //<Sebastian Markbåge>//
- **[8d60bd4dc](https://github.com/facebook/react/commit/8d60bd4dc )**: [Shallow] Implement setState for Hooks and remount on type change (#15120) //<Dan Abramov>//
- **[035e4cffb](https://github.com/facebook/react/commit/035e4cffb )**: Change passive checker to use defineProperty (#15121) //<Dominic Gannaway>//
- **[b283d75c1](https://github.com/facebook/react/commit/b283d75c1 )**: Support React.memo in ReactShallowRenderer (#14816) //<Brandon Dail>//
- **[f0621fe23](https://github.com/facebook/react/commit/f0621fe23 )**: Use same example code for async effect warning (#15118) //<Dan Abramov>//
- **[52c870c8d](https://github.com/facebook/react/commit/52c870c8d )**: Fix shallow renderer not allowing hooks in forwardRef render functions (#15100) //<Sebastian Silbermann>//
- **[f1ff4348c](https://github.com/facebook/react/commit/f1ff4348c )**: Don't suggest a function as its own dep (#15115) //<Dan Abramov>//
- **[371bbf36b](https://github.com/facebook/react/commit/371bbf36b )**: Add infrastructure for passive/non-passive event support for future API exploration (#15036) //<Dominic Gannaway>//
- **[ab5fe174c](https://github.com/facebook/react/commit/ab5fe174c )**: Don't set the first option as selected in select tag with `size` attribute  (#14242) //<Mateusz>//
- **[935f60083](https://github.com/facebook/react/commit/935f60083 )**: eslint-plugin-react-hooks@1.5.1 //<Dan Abramov>//
- **[0c03a4743](https://github.com/facebook/react/commit/0c03a4743 )**: Adds experimental event API scaffolding (#15108) //<Dominic Gannaway>//
- **[1204c7897](https://github.com/facebook/react/commit/1204c7897 )**: [eslint] Wording tweaks (#15078) //<Sophie Alpert>//
- **[9d77a317b](https://github.com/facebook/react/commit/9d77a317b )**: Improve async useEffect warning (#15104) //<Dan Abramov>//
- **[103378b1e](https://github.com/facebook/react/commit/103378b1e )**: Warn for javascript: URLs in DOM sinks (#15047) //<Sebastian Markbåge>//
- **[5d0c3c6c7](https://github.com/facebook/react/commit/5d0c3c6c7 )**: [Partial Hydration] Render client-only content at normal priority (#15061) //<Sebastian Markbåge>//
- **[6a4a261ee](https://github.com/facebook/react/commit/6a4a261ee )**: Test suspended children are hidden before layout in persistent mode (#15030) //<Andrew Clark>//
- **[bc8bd24c1](https://github.com/facebook/react/commit/bc8bd24c1 )**: Run persistent mode tests in CI (#15029) //<Andrew Clark>//
- **[3f4852fa5](https://github.com/facebook/react/commit/3f4852fa5 )**: Run Placeholder tests in persistent mode, too (#15013) //<Andrew Clark>//
- **[d0289c7e3](https://github.com/facebook/react/commit/d0289c7e3 )**: eslint-plugin-react-hooks@1.5.0 //<Dan Abramov>//
- **[03ad9c73e](https://github.com/facebook/react/commit/03ad9c73e )**: [ESLint] Tweak setState updater message and add useEffect(async) warning (#15055) //<Dan Abramov>//
- **[eb6247a9a](https://github.com/facebook/react/commit/eb6247a9a )**: More concise messages (#15053) //<Dan Abramov>//
- **[197703ecc](https://github.com/facebook/react/commit/197703ecc )**: [ESLint] Add more hints to lint messages (#15046) //<Dan Abramov>//
- **[6d2666bab](https://github.com/facebook/react/commit/6d2666bab )**: Fix ESLint rule crash (#15044) //<Dan Abramov>//
- **[9b7e1d138](https://github.com/facebook/react/commit/9b7e1d138 )**: [ESLint] Suggest moving inside a Hook or useCallback when bare function is a dependency (#15026) //<Dan Abramov>//
- **[1e3b6192b](https://github.com/facebook/react/commit/1e3b6192b )**: Import Scheduler directly, not via host config (#14984) //<Andrew Clark>//
- **[5d49dafac](https://github.com/facebook/react/commit/5d49dafac )**: Enforce deps array in useMemo and useCallback (#15025) //<Dan Abramov>//
- **[a9aa24ed8](https://github.com/facebook/react/commit/a9aa24ed8 )**: 16.8.4 and changelog //<Brian Vaughn>//
- **[fa5d4ee43](https://github.com/facebook/react/commit/fa5d4ee43 )**: [ESLint] Treat functions that don't capture anything as static (#14996) //<Dan Abramov>//
- **[fd557d453](https://github.com/facebook/react/commit/fd557d453 )**: Warn on mount when deps are not an array (#15018) //<Dan Abramov>//
- **[ce45ca9ba](https://github.com/facebook/react/commit/ce45ca9ba )**: Prettier //<Andrew Clark>//
- **[757a70b25](https://github.com/facebook/react/commit/757a70b25 )**: ReactNoop.yield -> Scheduler.yieldValue (#15008) //<Andrew Clark>//
- **[9d756d903](https://github.com/facebook/react/commit/9d756d903 )**: Revert #14756 changes to ReactFiberScheduler (#14992) //<Andrew Clark>//
- **[f16442a10](https://github.com/facebook/react/commit/f16442a10 )**: eslint-plugin-react-hooks@1.4.0 //<Dan Abramov>//
- **[e1e45fb36](https://github.com/facebook/react/commit/e1e45fb36 )**: [ESLint] Suggest to destructure props when they are only used as members (#14993) //<Dan Abramov>//
- **[59ef28437](https://github.com/facebook/react/commit/59ef28437 )**: Warn about dependencies outside of render scope (#14990) //<Dan Abramov>//
- **[df7b4768c](https://github.com/facebook/react/commit/df7b4768c )**: [ESLint] Deduplicate suggested dependencies (#14982) //<Dan Abramov>//
- **[02404d793](https://github.com/facebook/react/commit/02404d793 )**: Avoid dynamic dispatch for scheduler calls (#14968) //<Dan Abramov>//
- **[bb2939ccc](https://github.com/facebook/react/commit/bb2939ccc )**: Support editable useState hooks in DevTools (#14906) //<Brian Vaughn>//
- **[69060e1da](https://github.com/facebook/react/commit/69060e1da )**: Swap expect(ReactNoop) for expect(Scheduler) (#14971) //<Andrew Clark>//
- **[ccb2a8a44](https://github.com/facebook/react/commit/ccb2a8a44 )**: Replace test renderer's fake Scheduler implementation with mock build (#14970) //<Andrew Clark>//
- **[53e787b45](https://github.com/facebook/react/commit/53e787b45 )**: Replace noop's fake Scheduler implementation with mock Scheduler build (#14969) //<Andrew Clark>//
- **[3ada82b74](https://github.com/facebook/react/commit/3ada82b74 )**: Allow extraneous effect dependencies (#14967) //<Dan Abramov>//
- **[00748c53e](https://github.com/facebook/react/commit/00748c53e )**: Add new mock build of Scheduler with flush, yield API (#14964) //<Andrew Clark>//
- **[4186952a6](https://github.com/facebook/react/commit/4186952a6 )**: Fixed incompatibility between react-debug-tools and useContext() (#14940) //<Brian Vaughn>//
- **[0b8efb229](https://github.com/facebook/react/commit/0b8efb229 )**: Allow omitting constant primitive deps (#14959) //<Dan Abramov>//
- **[875d05d55](https://github.com/facebook/react/commit/875d05d55 )**: Include full error messages in React Native build (#15363) //<Andrew Clark>//
- **[c64b33003](https://github.com/facebook/react/commit/c64b33003 )**: Move EventTypes to ReactTypes (#15364) //<Dominic Gannaway>//
- **[4c78ac0b9](https://github.com/facebook/react/commit/4c78ac0b9 )**: Track Event Time as the Start Time for Suspense (#15358) //<Sebastian Markbåge>//

Changelog:
[General][Changed] - React sync for revisions 8e25ed2...c64b330

Reviewed By: hramos

Differential Revision: D14862650

fbshipit-source-id: 350447246d26c69e7f462c5eb4e3ec02e99d05bb
2019-04-18 14:04:53 +02:00
Mike Grabowski
822bdd4a0b [0.59.5] Bump version numbers 2019-04-17 23:51:44 +02:00
Mike Grabowski
f5a31801a0 Enforced thread safety on UIImplementation methods that mutate the shadowNodeRegistry 2019-04-17 21:32:29 +02:00
AntoineDoubovetzky
54af5b151e Remove wrapper around ListEmptyComponent (#24339)
Summary:
This pull request fixes #24257.

The wrapper around ListEmptyComponent doesn't allow to use flex on the ListEmptyComponent.
The wrapper was removed in this [commit](db061ea8c7), and then put back in this [commit](e94d3444dc) but I think the relevant part was removing the condition on `itemCount !== 0` to apply the inversionStyle on the ScrollView and everything is still working without the wrapper.

[GENERAL] [FIXED] - Remove wrapper around ListEmptyComponent
Pull Request resolved: https://github.com/facebook/react-native/pull/24339

Differential Revision: D14822221

Pulled By: cpojer

fbshipit-source-id: 623e1ab3f228e9b75b92cdcd568683232a403c1a
2019-04-17 21:26:51 +02:00
Mike Diarmid
d7bd6cce38 JSStackTrace -> Ensure lineNumber exists before consuming (#24399)
Summary:
Fixes https://github.com/facebook/react-native/issues/24382

[ANDROID] [INTERNAL] - Fixed a `NoSuchKeyException` when parsing JS stack frames without line numbers.
Pull Request resolved: https://github.com/facebook/react-native/pull/24399

Differential Revision: D14890746

Pulled By: cpojer

fbshipit-source-id: cea3653076484ad624084c370439f8a39c303083
2019-04-17 21:23:35 +02:00
Ryan Donnelly
72b4cc091d Calculate Correct Window Dimensions for iOS (#19932)
Summary:
Fixes: #16152

[iOS] [Fixed] - Pass back correct dimensions for application window in Dimensions module
Pull Request resolved: https://github.com/facebook/react-native/pull/19932

Reviewed By: cpojer

Differential Revision: D14312906

Pulled By: PeteTheHeat

fbshipit-source-id: aacb729c89862267465eefc3534c48d9d4b5d746
2019-04-17 21:22:56 +02:00
Vishwesh Jainkuniya
b8aac029f1 Fix: mostRecentEventCount is not updated. (#17990)
Summary:
<!--
Thank you for sending the PR! We appreciate you spending the time to work on these changes.

Help us understand your motivation by explaining why you decided to make this change.

You can learn more about contributing to React Native here: http://facebook.github.io/react-native/docs/contributing.html

Happy contributing!

-->

Update it's value as it changes on the JS thread, so that updated value is used (f7f5dc6649/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java (L243)) whenever setSelection(int start, int end) is called (f7f5dc6649/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java (L315)).
Pull Request resolved: https://github.com/facebook/react-native/pull/17990

Differential Revision: D14255969

Pulled By: mdvacca

fbshipit-source-id: 555d6752eabca5c31c1762955a56f99cc1828546
2019-04-17 21:21:46 +02:00
Seph Soliman
effb028ad5 Fix #23755 ("RCTImagePickerManager requires main queue setup" warning) (#24314)
Summary:
Fix #23755 - Which is to remove the warning:
```
Module RCTImagePickerManager requires main queue setup since it overrides `init` but doesn't implement `requiresMainQueueSetup`. In a future release React Native will default to initializing all native modules on a background thread unless explicitly opted-out of.
```

General Fixed - Warning "RCTImagePickerManager requires main queue setup
Pull Request resolved: https://github.com/facebook/react-native/pull/24314

Differential Revision: D14788772

Pulled By: cpojer

fbshipit-source-id: e2017136008367d36468debb258afa698b5402bc
2019-04-17 21:20:15 +02:00
Mike Grabowski
d60a2fbb01 [0.59.4] Bump version numbers 2019-04-08 23:51:19 +02:00
PIYUSH GUPTA
dc29f29f18 Revert "Remove react-clone-referenced-element dependency (#23933)"
ListView is still part of 0.59. We cant cherry-pick this one. Solved conflict manually.

This reverts commit 27872cf97c9addfc70982bf687b9d8e7594d469c.
2019-04-08 23:27:05 +02:00
Craig_Martin
e3ac3293d9 Add scrollToOverflowEnabled prop to ScrollView (#24296)
Summary:
ScrollView's scrollTo behavior on iOS was recently changed to limit the offset to the content size plus any content inset (see #23427). This departure from the old behavior created UI issues for anyone that is using the over-scroll ability for the purpose of positioning elements at specific coordinates on the screen. Examples include using this behavior to position TextInputs above the virtual keyboard programmatically when focused or moving drop down elements positioned near the bottom of the content toward the top of the screen when selected to show a larger absolutely positioned item list. Default behavior does not change and this is an "opt-in" type of prop to re-enable the old behavior.

[iOS] [Added] - Added scrollToOverflowEnabled prop to ScrollView
Pull Request resolved: https://github.com/facebook/react-native/pull/24296

Differential Revision: D14762619

Pulled By: cpojer

fbshipit-source-id: d2a552b5cb321d52e8ea4116327bf9ec647a3aae
2019-04-08 23:22:33 +02:00
Michał Pierzchała
17292c9db2 Make Jest transform @react-native-community packages by default (#24294)
Summary:
Currently, `react-native` Jest preset will not automatically transpile extracted Lean Core modules (all under `react-native-community` org), so maintainers will likely need to update their docs on how to do that (it's a common pain in RN testing story).

We can make it easier for users and maintainers by adding RNC modules to the `transformIgnorePatterns` whitelist we have in Jest preset. Some of them are not necessary to transpile, but I'd say it's a small sacrifice to make (having first test run possibly slower) for having less friction around migrating to extracted modules.

[General] [Added] - make Jest transform react-native-community/ packages by default
Pull Request resolved: https://github.com/facebook/react-native/pull/24294

Differential Revision: D14748962

Pulled By: cpojer

fbshipit-source-id: 36300ee021f03b8c13275a6e0cf28d988ee5beba
2019-04-08 23:21:52 +02:00
Michał Pierzchała
dc25f209d7 chore: update Jest preset to align with Jest 24 (#24062)
Summary:
Jest 24 includes [`testMatch` and `moduleFileExtensions`](c5fd7aae93/packages/jest-config/src/Defaults.ts (L70)) that align with the ones that are currently there on master, because it added default handling for TypeScript as well. I think it's time for us to move to Jest 24. Is there a way we can tell users to upgrade Jest to certain version?

Fixes https://github.com/facebook/react-native/issues/24060

[General] [Changed] - update Jest preset to align with Jest 24
Pull Request resolved: https://github.com/facebook/react-native/pull/24062

Differential Revision: D14538988

Pulled By: cpojer

fbshipit-source-id: d8d152b8e8517b34144970f1cc1ed0b49f8b4e54
2019-04-08 23:21:49 +02:00
James Ide
27872cf97c Remove react-clone-referenced-element dependency (#23933)
Summary:
This package was a dependency for ListView, which is no longer part of RN. Removed the dependency from package.json and yarn.lock.

Also removed its pattern from the Jest preset -- ListView is not in this repo and also react-clone-referenced-element was written at a time when Node did not support the same modern JS features as RN. The latest Node 8+ supports the features that react-clone-referenced-element uses so we don't need to transform it.

[General] [Removed] - Removed unused react-clone-referenced-element dependency
Pull Request resolved: https://github.com/facebook/react-native/pull/23933

Differential Revision: D14477240

Pulled By: cpojer

fbshipit-source-id: 4f6975133b54cc75088262cedd11da20225cada8
2019-04-08 23:21:38 +02:00
Sunny Luo
d6bca9723e Prevent crash when setting underlineColorAndroid (#24183)
Summary:
Try to prevent the crash described in https://github.com/facebook/react-native/issues/17530

There seems to be a bug in `Drawable.mutate()` in some devices/android os versions even after you check the constant state. This error is hard to reproduce and to fix, so just try to catch the exception to prevent crash.

[Android][Fixed] Prevent random crash when setting underlineColorAndroid
Pull Request resolved: https://github.com/facebook/react-native/pull/24183

Differential Revision: D14710484

Pulled By: cpojer

fbshipit-source-id: 3af20a5cb0ecd40839beaf85118c0f5aa6905414
2019-04-08 23:18:33 +02:00
zhongwuzw
0167cf2813 Fix triangle views on iOS (#23402)
Summary:
Fixes #22824 #21945 , the bug comes from #21208 , it was to fix #11897. Now Let's constrain edge adjust only when view has corners.

[iOS] [Fixed] - Fix triangle views on iOS
Pull Request resolved: https://github.com/facebook/react-native/pull/23402

Differential Revision: D14059192

Pulled By: hramos

fbshipit-source-id: be613bf056d3cc484f281f7ea3d08f251971700a
2019-04-08 23:17:41 +02:00
PIYUSH GUPTA
05723ed08a fixed touchable longpress (#24238)
Summary:
This diff fixes a bug in TouchableNativeFeedback where a long press is not registered.

cause of the bug is _touchableHandleResponderMove_ being invoked **regardless** of a moving gesture ( even when movedDistance is 0) in some devices ( including OnePlus5t ), which was eventually clearing out  the long-press timeout.

fix is to prevent _touchableHandleResponderMove_ from Implementing if the state of touchable is RESPONDER_INACTIVE_PRESS_IN.

[General] [Fixed] - Touchable onLongPress fix.
Pull Request resolved: https://github.com/facebook/react-native/pull/24238

Reviewed By: cpojer

Differential Revision: D14712986

Pulled By: rickhanlonii

fbshipit-source-id: e85a66a7e8b61e0a33146b2472e2e055726a0e93
2019-04-08 23:16:42 +02:00
Ilja Daderko
836a8e0e4d Fix universal links not working in iOS 12 / Xcode 10 (#22764)
Summary:
fix #22716

Changelog:
----------
[iOS][Fixed] - Fix universal links in iOS 12 / Xcode 10
Pull Request resolved: https://github.com/facebook/react-native/pull/22764

Differential Revision: D14576559

Pulled By: cpojer

fbshipit-source-id: 4ef727e1d9aa7646359b63468285fec1f8f1651b
2019-04-08 23:15:49 +02:00
Lorenzo Sciandra
3b91a7ec23 [0.59.3] Bump version numbers v0.59.3 2019-04-01 12:43:47 +01:00
Alfred Zien
df7ea67313 Use constructor attribute instead of +load objc method (#24155)
Summary:
Xcode 10.2 forbids creating categories for swift class that uses `+load` method. In react-native categories like this are used to register swift classes as modules (macro `RCT_EXTERN_MODULE`) This PR changes it to use `__attribute__((constructor))` instead of objc `+load` method.

I introduced new macro for this purpose, `RCT_EXPORT_MODULE_NO_LOAD`, it expands in something like:
```
void RCTRegisterModule(Class);

+ (NSString *)moduleName {
  return @"jsNameFoo";
}

__attribute__((constructor)) static void initialize_ObjcClassFoo{
  RCTRegisterModule([ObjcClassFoo class]);
}
```

Functions marked with `__attribute__((constructor))` are run before main and after all `+load` methods, so it seems like correct thing to do.

Fixes https://github.com/facebook/react-native/issues/24139
Doc about loading order https://developer.apple.com/documentation/objectivec/nsobject/1418815-load?language=objc

[iOS] [Fixed] - Fix runtime crash in xcode 10.2 when using RCT_EXTERN_MODULE for swift classes.
Pull Request resolved: https://github.com/facebook/react-native/pull/24155

Reviewed By: javache

Differential Revision: D14668235

Pulled By: shergin

fbshipit-source-id: 0c19e69ce2a68327387809773848d4ecd36d7461
2019-04-01 12:07:09 +01:00
michalchudziak
e94d3444dc Fix behaviour of Header, Footer and Empty List components in VirtualizedList when it's inverted (#24167)
Summary:
Fixes https://github.com/facebook/react-native/issues/23453
Fixes https://github.com/facebook/react-native/issues/21196

Basically, changes made in https://github.com/facebook/react-native/pull/21496 currently breaks behavior of `<VirtualizedList />`  and any components that are based on it (`<SectionList />, <FlatList />`). This PR solves both issues listed above.

Visual confirmation of the resolved issue:

**Vertical, not inverted, not empty**
![image](https://user-images.githubusercontent.com/7837457/55076839-b005d700-5096-11e9-91de-090934cb0129.png)

**Vertical, not inverted, empty**
![image](https://user-images.githubusercontent.com/7837457/55076971-fb1fea00-5096-11e9-8d73-5a2d86275da8.png)

**Vertical, inverted, not empty**
![image](https://user-images.githubusercontent.com/7837457/55077042-23a7e400-5097-11e9-911f-9dad4d48a578.png)

**Vertical, inverted, empty**
![image](https://user-images.githubusercontent.com/7837457/55079957-87351000-509d-11e9-8f1c-b7134f1f43f9.png)

**Horizontal, not inverted, not empty**
![image](https://user-images.githubusercontent.com/7837457/55077118-44703980-5097-11e9-94e9-e33d4af436ee.png)

**Horizontal, not inverted, empty**
![image](https://user-images.githubusercontent.com/7837457/55077150-52be5580-5097-11e9-9d43-7cb4e983167e.png)

**Horizontal, inverted, not empty**
![image](https://user-images.githubusercontent.com/7837457/55077183-623d9e80-5097-11e9-9e8a-1b2468c7b3a9.png)

**Horizontal, inverted, empty**
![image](https://user-images.githubusercontent.com/7837457/55080033-af247380-509d-11e9-90ae-1ff656d46dd1.png)

[General] [Fixed] - Fixed VirtualizedList, SectionList and FlatList behavior on rendering list headers with inverted prop and zero items
Pull Request resolved: https://github.com/facebook/react-native/pull/24167

Differential Revision: D14642345

Pulled By: cpojer

fbshipit-source-id: b530bbbd57f60e53a976ac5db272ea4b2d2b3e99
2019-03-29 15:20:20 +00:00
David Vacca
13cb5a91ed Fix IllegalStateException when tapping next on Android Keyboard
Summary: This diff fixes an IllegalStateException that is thrown when the user click is on a edit text and tap 'Next' on the keyboard to focus on the next view, but the next view is hidden.

Reviewed By: lunaleaps, mmmulani

Differential Revision: D14598410

fbshipit-source-id: 2999cc468ed24bedff163eedcfaec50f6ee005d6
2019-03-29 15:19:30 +00:00
Mr. Anonymous
775553b7da Update projectRoot in launchPackager.bat (#24115)
Summary:
`launchPackager.bat` starts metro server but does not pass projectRoot to it. So metro server starts in the wrong directory, It is because `startServerInNewWindow` pass `react-native` directory instead of `projectRoot` in the third argument of `spawn()` in `runAndroid.js`

Its working for people
See https://github.com/facebook/react-native/issues/23908#issuecomment-475889443

[Android] [Fixed] - projectRoot in launchPackager.bat
Pull Request resolved: https://github.com/facebook/react-native/pull/24115

Differential Revision: D14597101

Pulled By: cpojer

fbshipit-source-id: fb4155b72e35062cfb41fe1b3ecca0e2b4e849ce
2019-03-29 15:19:06 +00:00
Ali Akbar Azizi
581dc3ed21 Fix bat file (#23967)
Summary:
Add reactNativePath to cli.js

Add reactNativePath to cli.js

[GENERAL] [FIXED] - Internal - Update packagers to the latest CLI
Pull Request resolved: https://github.com/facebook/react-native/pull/23967

Differential Revision: D14502855

Pulled By: hramos

fbshipit-source-id: b9804e4fb364c004215227d938fe7101641f5b3c
2019-03-29 15:19:00 +00:00
zhongwuzw
1a35bc5562 Fix TextInput maxLength when insert characters at begin (#23472)
Summary:
Fixes #21639 , seems we tried to fix this before, please see related `PR` like [D10392176](36507e4a3c), #18627, but they don't solve it totally.

[iOS] [Fixed] - Fix TextInput maxLength when insert characters at begin
Pull Request resolved: https://github.com/facebook/react-native/pull/23472

Reviewed By: mmmulani

Differential Revision: D14366406

Pulled By: ejanzer

fbshipit-source-id: fc983810703997b48824f84f2f9198984afba9cd
2019-03-29 15:16:14 +00:00
Lukas Kurucz
bdf809e817 Fix PerfMonitor appearance when reloading JS (#24073)
Summary:
Fix for this issue I rasied: https://github.com/facebook/react-native/issues/24024
When I toggle `Show Perf Monitor` and reload JS `CMD+R` the Perf Monitor will be hidden, but settings in dev menu will persist. So to fix this state and need to `Hide Perf Monitor` and `Show Perf Monitor` again to see it.

[iOS] [Fixed] - Show Perf Monitor, after reloading JS
Pull Request resolved: https://github.com/facebook/react-native/pull/24073

Differential Revision: D14560025

Pulled By: cpojer

fbshipit-source-id: cd5602bd6ee041b8b3e61d163d10bd8bc47237b9
2019-03-29 15:15:05 +00:00
Sergei Dryganets
e4f9ee913b OkHttp is more strict than other http libraries. (#21231)
Summary:
It crashes with IllegalStateException in case you pass a wrong URL.
It crashes if it meets unexpected symbols in the header name and value,
while standard says it is not recommended to use those symbols not that
they are prohibited.

The headers handing is a special use case as a client might have an auth token in the header. In this case, we want to get 401 error response
from the server to find out that token is wrong. In case of the onerror
client will continue to retry with an existing token.

[ANDROID][Fixed] - Networking: Passing invalid URL not crashes the app instead onerror callback of HttpClient is called. Invalid symbols are stripped from the headers to allow HTTP query to fail with 401 error code in case of the broken token.

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

Reviewed By: axe-fb

Differential Revision: D10222129

Pulled By: hramos

fbshipit-source-id: b23340692d0fb059a90e338fa85ad4d9612275f2
2019-03-29 15:14:57 +00:00
Bartol Karuza
d7e7b3ef50 Fix #24053 prevent division by zero error in VirtualizedList debug overlay (#24058)
Summary:
This PR fixes the case where the content a VirtualizedList loads with a contentLength of 0,  causing a crash in the `renderDebugOverlay` function. The result of that crash is a red screen when turning on debug on FlatList and other VirtualizedList components as described in #24053.

[LIST] [FIX] - Fix VirtualizedList debug mode crash
Pull Request resolved: https://github.com/facebook/react-native/pull/24058

Differential Revision: D14538317

Pulled By: cpojer

fbshipit-source-id: 7b17bf51c388561c517bab1f775a31200abdc5a9
2019-03-29 15:14:45 +00:00
Dulmandakh
871290f33a improve RTL (#24069)
Summary:
Google recommends to use Gravity.START and Gravity.END instead of Gravity.LEFT and Gravity.RIGHT to support RTL better.

[Android] [Changed] - Improve RTL support
Pull Request resolved: https://github.com/facebook/react-native/pull/24069

Differential Revision: D14541569

Pulled By: cpojer

fbshipit-source-id: 5c104d8bd666e1270d5410216c7f2efa6152692a
2019-03-29 15:14:38 +00:00
Mike Grabowski
9bb5c32de9 [0.59.2] Bump version numbers v0.59.2 2019-03-25 22:22:14 +01:00
Mike Grabowski
ad9eb8e935 Re-enable Text tests on iOS 2019-03-25 21:52:07 +01:00
Mike Grabowski
43d56c181c Update reference images for test_ios 2019-03-25 21:51:54 +01:00
zhongwuzw
0e8680f3d1 Fixed test_ios Switch test failed (#24009)
Summary:
In #23977 , it changed switch example, it leads snapshots test failed.

cc hramos .

[iOS] [Fixed] - Fixed test_ios Switch test failed
Pull Request resolved: https://github.com/facebook/react-native/pull/24009

Differential Revision: D14504806

Pulled By: cpojer

fbshipit-source-id: 0c47226a3da0cba2371c627f42f62835b3aac810
2019-03-25 17:04:22 +01:00
Dulmandakh
3b06815272 allow HTTP in debug builds (#24066)
Summary:
It allows HTTP connections in debug builds, and requires no configuration compared to previous/current solution where you need to edit config file to test on device.

Consulted with Salakar about this.

[Android] [Changed] - Allow HTTP in debug builds
Pull Request resolved: https://github.com/facebook/react-native/pull/24066

Differential Revision: D14540255

Pulled By: cpojer

fbshipit-source-id: f1239154c27c36c21c9b080a826f8b1d0eb0fc7d
2019-03-25 16:51:49 +01:00
Dulmandakh
becc15468f fix switch trackColor on Android. fixes #23962 (#23977)
Summary:
fixes #23962, where trackColor is reset when value changed. This PR will set trackColor corresponding trackColor every-time value changes.

[Android] [Changed] - Fix Switch trackColor
Pull Request resolved: https://github.com/facebook/react-native/pull/23977

Differential Revision: D14495206

Pulled By: hramos

fbshipit-source-id: d712f540cd3f8359d6e85f79c12732689870a112
2019-03-22 18:27:23 +01:00
Emily Janzer
4260907b90 Pass through track color values for true/false to native component
Summary:
There's a bug in the OSS Switch component where the track color value is reset to the default value when the switch is toggled. It looks like the Java class resets the track color value in `setOn` (which fires in a press event): https://fburl.com/vmugfzja but these values aren't actually initialized from JS - in Switch.js we only pass through the current track color: https://fburl.com/vytekd0o.

The React component already has an API for defining both true/false track colors. However, we should also make sure not to reset these values for people using the old API of `tintColor`/`onTintColor`, so I'm changing it to only reset the value when both of those props are null.

Reviewed By: mdvacca

Differential Revision: D14035007

fbshipit-source-id: 12d968076bd47d54deedbfc15b12ff3cd77e2fd0
2019-03-22 18:27:21 +01:00
Matthieu Lemoine
392b0845ce fix: Start Metro packager from project root (#24070)
Summary:
Fixes #23342.

Since Metro [v0.47](https://github.com/facebook/metro/releases/tag/v0.47.0), some babel plugins such as [babel-plugin-module-resolver](https://github.com/tleunen/babel-plugin-module-resolver) or [babel-plugin-import-graphql](https://github.com/detrohutt/babel-plugin-import-graphql) fail to resolve files if the packager is started through Xcode. They receive wrong filenames from Babel such as `${projectRoot}/node_modules/react-native/src/index.js` instead of `${projectRoot}/src/index.js`.

It happens because the start command of the local-cli is not executed in the projectRoot directory. In this case, the cwd will be `${projectRoot}/node_modules/react-native`.

This issue doesn't occur if you start the packager yourself using `node node_modules/react-native/local-cli/cli.js start` from your project root.

It comes from this [line](b640b6faf7/scripts/packager.sh (L11)). This script changed the working directory to `${projectRoot}/node_modules/react-native` and started Metro from there.

Starting Metro from the project root fixes this issue.

[iOS] [Fixed] - Start Metro packager from project root
Pull Request resolved: https://github.com/facebook/react-native/pull/24070

Differential Revision: D14563996

Pulled By: cpojer

fbshipit-source-id: cdeff34610f1ebb5fb7bc82a96f4ac9eec750d16
2019-03-22 18:23:28 +01:00
zhongwuzw
f6516d20ca Fix scrollview over bounds of content size (#23427)
Summary:
Fix scrollview `offset` out of content size in iOS, Android uses `scrollTo` and `smoothScrollTo` which not have this issue.

Fixes like #13594 #22768 #19970 .

[iOS] [Fixed] - Fixed scrollView offset out of content size.
Pull Request resolved: https://github.com/facebook/react-native/pull/23427

Differential Revision: D14162663

Pulled By: cpojer

fbshipit-source-id: a95371c8d703b6d5f604af0072f86c01c2018f4a
2019-03-22 18:22:45 +01:00
Danilo Bürger
699fad7d06 Fixed regression in SectionList caused by #21577 not being able to scroll to top on android (#24034)
Summary:
```
let index = params.itemIndex + 1;
```
to
```
let index = Platform.OS === 'ios' ? params.itemIndex : params.itemIndex - 1;
```
to fix an issue on iOS. Note however, how the sign for non iOS changed from `+` to `-` causing a crash on Android when trying to scroll to index 0 as that will be evaluated to -1 instead of 1 and thus be out of bounds.

[Android] [Fixed] - Fixed regression in SectionList caused by #21577 not being able to scroll to top on android
Pull Request resolved: https://github.com/facebook/react-native/pull/24034

Differential Revision: D14520796

Pulled By: cpojer

fbshipit-source-id: bb49619f49752fd3f343ef3b7bf1b86ac48af7f8
2019-03-22 18:22:26 +01:00
Dulmandakh
fab86ee488 use Conscrypt as security provider if available (#23984)
Summary:
This PR adds support to use Conscrypt as Security Provider if available runtime. Consscrypt supports TLS 1.2 on Android 4.x and TLS 1.3 on all Android versions. Fixes issues (ex https://github.com/facebook/react-native/issues/23151) with HTTPS connections on Android 4.x.

Just add below to your project build.gradle and it'll use it.

```gradle
implementation('org.conscrypt:conscrypt-android:2.0.0')
```

[Android] [Changed] - Add TLS 1.3 support to all Android versions using Conscrypt.
Pull Request resolved: https://github.com/facebook/react-native/pull/23984

Differential Revision: D14506000

Pulled By: cpojer

fbshipit-source-id: 58bf18f7203d20519fb4451bae83f01e2f020a44
2019-03-22 18:21:44 +01:00