Tong Liu
e20335a2ac
Revert D31024459: Merge base AppleTVOS flags into base Apple flags (take #3 )
...
Differential Revision:
D31024459 (https://github.com/facebook/react-native/commit/0a46e5efada5f0be8f2e8ebf721178e685bf5925 )
Original commit changeset: be85296cda36
fbshipit-source-id: ceb8e5a3cda57a40a876b07133d8021942308878
2021-09-21 17:50:56 -07:00
Alex Malyshev
0a46e5efad
Merge base AppleTVOS flags into base Apple flags (take #3 )
...
Summary:
Previous iterations of this diff that were reverted: D30678341 (https://github.com/facebook/react-native/commit/800945982fae92c859f4525e777d016bb61b138b ), D30868627 (https://github.com/facebook/react-native/commit/abd0f387cd9b60887d5d8ad986e7cbda7a49ec40 ).
With the power of selects, we can move the base AppleTVOS flags into the regular
base Apple flags.
While I'm here, drop the third `p` in `get_application_apppletvos_flags()` as
it's driving me insane.
Note - This puts get_visibility_option() on all Apple builds. I believe this is
the right thing to do as everything except macOS static libraries already do it,
and it shouldn't affect binaries.
Changelog: [Internal]
Reviewed By: mzlee, jdonald
Differential Revision: D31024459
fbshipit-source-id: be85296cda3612836c1c74632dc52f6e3f89512e
2021-09-20 09:27:46 -07:00
Ramanpreet Nara
564b944e56
Ensure RCTJSThread is initialized in Bridgeless mode
...
Summary:
## Context
When Venice is enabled app-wide, we won't be creating/initializing the bridge. This means that RCTBridge +(void)initialize; won't execute:
https://www.internalfb.com/code/fbsource/[d8b25a1907ee55baa21e02a69ecab0f7a9442b8e]/xplat/js/react-native-github/React/Base/RCTBridge.m?lines=167%2C171-180
## Problem
When RCTBridge initialize isn't executed, we won't initialize RCTJSThread to kCFNull. RCTJSThread will be nil.
NativeModules like RCTEventDispatcher use RCTJSThread to indicate that their methods must be executed on the JavaScript thread:
https://www.internalfb.com/code/fbsource/[44976912ae618619a394f063c4c942ef020b86e8]/xplat/js/react-native-github/React/CoreModules/RCTEventDispatcher.mm?lines=198-201
If RCTJSThread is nil, these NativeModules will fail to initialize w/ the TurboModule system:
https://www.internalfb.com/code/fbsource/[f6a04f529ac1354b2973bd3553d12aef28ff24f2][blame]/xplat/js/react-native-github/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm?lines=584-589%2C595%2C599%2C610-618
How:
1. The TurboModuleManager will see that each of these NativeModules has a methodQueue getter (line 587 above).
2. It'll invoke that getter (line 588), and get a nil methodQueue out, when **that methodQueue should be kCFNull**.
3. Because the TurboModuleManager gets a nil method queue from the getter, !methodQueue will pass (line 595).
4. So, TurboModuleManager try to create and assign a method queue to these modules (line 611), which'll raise an error (line 613), because none of these modules synthesize the methodQueue (b/c they expose a getter to methodQueue instead).
## Changes
We need to initialize RCTJSThread to kCFNull in all cases, to prevent this breakage. So, I moved RCTJSThread into its own header: RCTJSThread.h. RCTJSThread.h exports a function that initializes the RCTJSThread constant: _RCTInitializeJSThreadConstantInternal. This function gets invoked inside RCTHost initialize, and RCTBridge initialize.
Created from CodeHub with https://fburl.com/edit-in-codehub
Changelog: [Internal]
Reviewed By: p-sun, mdvacca
Differential Revision: D30910515
fbshipit-source-id: 2dd9b0cfcda92c497bb497f12f9fb847da563f47
2021-09-19 16:23:53 -07:00
Kosie van der Merwe
4bf42dd0c6
Revert D30868627: Merge base AppleTVOS flags into base Apple flags (take #2 )
...
Differential Revision:
D30868627 (https://github.com/facebook/react-native/commit/abd0f387cd9b60887d5d8ad986e7cbda7a49ec40 )
Original commit changeset: 86441ff40db1
fbshipit-source-id: eb040f8174f8f0f05943dcd5ae1e2077318810ff
2021-09-16 18:23:03 -07:00
Alex Malyshev
abd0f387cd
Merge base AppleTVOS flags into base Apple flags (take #2 )
...
Summary:
Previous iteraton of this diff that was reverted is D30678341 (https://github.com/facebook/react-native/commit/800945982fae92c859f4525e777d016bb61b138b ).
With the power of selects, we can move the base AppleTVOS flags into the regular
base Apple flags.
While I'm here, drop the third `p` in `get_application_apppletvos_flags()` as
it's driving me insane.
Note - This puts get_visibility_option() on all Apple builds. I believe this is
the right thing to do as everything except macOS static libraries already do it,
and it shouldn't affect binaries.
Changelog: [Internal]
Reviewed By: aniketmathur
Differential Revision: D30868627
fbshipit-source-id: 86441ff40db15dd7cb3ac800d248ce1e074c2773
2021-09-16 10:41:41 -07:00
Tim Yung
504cbf1282
RN: Check ReactSafeMobileConfig Dependents for MobileConfig References
...
Summary:
Modifies `js1 build buckfiles` to also parse files that depend on `ReactSafeMobileConfig` for MobileConfig references.
That module was introduced in {D30470489}.
This fixes a bug where the MobileConfig reference in `ReactNativeInternalFeatureFlags` is not being correctly defined via Metro Buck.
Changelog:
[Internal]
Reviewed By: rickhanlonii
Differential Revision: D30815779
fbshipit-source-id: 156b0838fe47e7ab42c62258a1401875690813a6
2021-09-09 13:29:02 -07:00
Alex Malyshev
c807b69778
Revert D30678341: Merge base AppleTVOS flags into base Apple flags
...
Differential Revision:
D30678341 (https://github.com/facebook/react-native/commit/800945982fae92c859f4525e777d016bb61b138b )
Original commit changeset: be30ba1989b2
fbshipit-source-id: 3165cb4c4f6c479ffd5b27ff79b0cc17e6bf736b
2021-09-08 13:50:12 -07:00
Alex Malyshev
800945982f
Merge base AppleTVOS flags into base Apple flags
...
Summary:
With the power of selects, we can move the base AppleTVOS flags into the regular
base Apple flags.
While I'm here, drop the third `p` in `get_application_apppletvos_flags()` as
it's driving me insane.
Note - This puts get_visibility_option() on all Apple builds. I believe this is
the right thing to do as everything except macOS static libraries already do it,
and it shouldn't affect binaries.
Changelog: [Internal]
Reviewed By: aniketmathur
Differential Revision: D30678341
fbshipit-source-id: be30ba1989b2cadbf8aedd68c4101d346c36da6c
2021-09-08 09:14:19 -07:00
Adlai Holler
4ac42d88ef
Optimize font handling on iOS ( #31764 )
...
Summary:
Few issues I saw when profiling RNTester:
- Repeatedly calling `-lowercaseString` during `weightOfFont` causes a TON of extra memory traffic, for no reason.
- `NSCache` is thread-safe, so no need for a mutex.
- Using `stringWithFormat:` for the cache key is slow. Use `NSValue` to store the data directly instead.
- Calling `-fontDescriptor` in `isItalicFont` and `isCondensedFont` is overly expensive and unnecessary.
- `+fontNamesForFamilyName:` is insanely expensive. Wrap it in a cache.
Unscientific test on RNTester iPhone 11 Pro, memory & time. Before:
<img width="1656" alt="Screen Shot 2021-06-23 at 7 40 06 AM" src="https://user-images.githubusercontent.com/2466893/123092882-f4f55100-d3f8-11eb-906f-d25086049a18.png ">
<img width="1656" alt="Screen Shot 2021-06-23 at 7 41 30 AM" src="https://user-images.githubusercontent.com/2466893/123092886-f6267e00-d3f8-11eb-89f6-cfd2cae9f7b6.png ">
After:
<img width="1455" alt="Screen Shot 2021-06-23 at 9 02 54 AM" src="https://user-images.githubusercontent.com/2466893/123101899-7d2c2400-d402-11eb-97f8-2ee97ee69ec4.png ">
<img width="1455" alt="Screen Shot 2021-06-23 at 8 59 44 AM" src="https://user-images.githubusercontent.com/2466893/123101892-7bfaf700-d402-11eb-9a10-def46b37b87f.png ">
Changelog:
[iOS][Changed] - Optimized font handling
Pull Request resolved: https://github.com/facebook/react-native/pull/31764
Reviewed By: appden
Differential Revision: D30241725
Pulled By: yungsters
fbshipit-source-id: 342e4f6e5492926acd2afc7d645e6878846369fc
2021-08-26 22:47:41 -07:00
Moti Zilberman
8d153729c5
Fix Buck package boundary violation involving RCTEventDispatcher.h ( #31965 )
...
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/31965
Changelog: [Internal]
Reviewed By: GijsWeterings
Differential Revision: D30030580
fbshipit-source-id: 3b4140a831c7ad7282aae0ff79c54014dcd82615
2021-08-05 07:18:38 -07:00
Andrew Clark
a169009095
React Native sync for revisions 419cc9c...19092ac
...
Summary:
This sync includes the following changes:
- **[19092ac8c](https://github.com/facebook/react/commit/19092ac8c )**: Re-add old Fabric Offscreen impl behind flag ([#22018 ](https://github.com/facebook/react/pull/22018 )) //<Andrew Clark>//
- **[215db465a](https://github.com/facebook/react/commit/215db465a )**: [Fabric] Add `flex: 1` to Offscreen view container ([#22019 ](https://github.com/facebook/react/pull/22019 )) //<Andrew Clark>//
- **[8a37b0ef3](https://github.com/facebook/react/commit/8a37b0ef3 )**: typos fixed ([#21955 ](https://github.com/facebook/react/pull/21955 )) //<Sinan Sonmez (Chaush)>//
- **[e3049bb85](https://github.com/facebook/react/commit/e3049bb85 )**: DevTools scheduling profiler: Add React component measures ([#22013 ](https://github.com/facebook/react/pull/22013 )) //<Brian Vaughn>//
- **[27bf6f9a8](https://github.com/facebook/react/commit/27bf6f9a8 )**: Scheduling profiler UX changes ([#21990 ](https://github.com/facebook/react/pull/21990 )) //<Brian Vaughn>//
- **[f0d354efc](https://github.com/facebook/react/commit/f0d354efc )**: [Fabric] Fix reparenting bug in legacy Suspense mount ([#21995 ](https://github.com/facebook/react/pull/21995 )) //<Andrew Clark>//
- **[34308b5ad](https://github.com/facebook/react/commit/34308b5ad )**: Tidy up early bailout logic at start of begin phase ([#21852 ](https://github.com/facebook/react/pull/21852 )) //<Andrew Clark>//
- **[321087d13](https://github.com/facebook/react/commit/321087d13 )**: [Fizz] Don't add aborted segments to the completedSegments list ([#21976 ](https://github.com/facebook/react/pull/21976 )) //<Sebastian Markbåge>//
- **[4cc8ec64c](https://github.com/facebook/react/commit/4cc8ec64c )**: Separate unit tests for ReactFabricHostComponent ([#21969 ](https://github.com/facebook/react/pull/21969 )) //<Timothy Yung>//
- **[d4d786493](https://github.com/facebook/react/commit/d4d786493 )**: Fix `ReactFabricHostComponent` methods if detached ([#21967 ](https://github.com/facebook/react/pull/21967 )) //<Timothy Yung>//
- **[392253a77](https://github.com/facebook/react/commit/392253a77 )**: [Fabric] Use container node to toggle the visibility of Offscreen and Suspense trees ([#21960 ](https://github.com/facebook/react/pull/21960 )) //<Andrew Clark>//
Changelog:
[General][Changed] - React Native sync for revisions 419cc9c...19092ac
jest_e2e[run_all_tests]
Reviewed By: JoshuaGross
Differential Revision: D30092460
fbshipit-source-id: 9f118db2419a9a5db26a9b873868f91ab88f2f89
2021-08-04 13:47:11 -07:00
Moti Zilberman
260c5a393f
Move RCTTestApple into packages/rn-tester
...
Summary: Changelog: [Internal]
Reviewed By: fkgozali
Differential Revision: D30056021
fbshipit-source-id: 9012ca6934f95946ff157ca472aa6a6e84d7d7e9
2021-08-04 13:03:21 -07:00
Moti Zilberman
30d37cfd39
Move RNTester unit/integration test Buck targets to GitHub
...
Summary: Changelog: [Internal]
Reviewed By: GijsWeterings
Differential Revision: D30032476
fbshipit-source-id: d1f9a39a6d2fc92f69b9ee931c2a0f3ba37687f6
2021-08-04 13:03:21 -07:00
Moti Zilberman
b26ae3e0c9
Move RCT* Buck targets to GitHub
...
Summary: Changelog: [Internal]
Reviewed By: GijsWeterings
Differential Revision: D30030454
fbshipit-source-id: 02a4c36f5c5ca519e4de3d1a3d79708d0d0b6d01
2021-08-04 13:03:21 -07:00
Moti Zilberman
df9cd05621
Update OSS Buck definitions ( #31948 )
...
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/31948
Changelog: [Internal]
Adds necessary shims to bring our BUCK files closer to parsing/building correctly in open source. This is part of fixing the Buck-based tests on CircleCI which were broken by https://github.com/facebook/react-native/commit/d4ee734f3297463fe7b54af6d69e4ea151cf4cf9 .
Reviewed By: sammy-SC
Differential Revision: D30072866
fbshipit-source-id: 4aebd9f67dd0a102516603915d9a021032611279
2021-08-04 03:13:19 -07:00
Moti Zilberman
dc15c48434
fbshipit-source-id: 909b2667480ed96ae376896d966f6c27f5e73964
2021-08-04 01:27:28 -07:00