-
Notifications
You must be signed in to change notification settings - Fork 135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge from upstream through 2020-09-30 #833
Merge from upstream through 2020-09-30 #833
Commits on Sep 16, 2020
-
Fix initial padding value for TextInput
Summary: Changelog: [internal] # Problem Default padding for TextEdit is top: 26, bottom: 29, left: 10, right: 10 however the default values for LayoutMetrics.contentInsets is {0, 0, 0, 0}. If you try to construct TextEdit with padding 0, Fabric will drop padding update because padding is already 0, 0, 0, 0. # Fix To fix this, I added a special case to `Binding::createUpdatePaddingMountItem`, if the mutation is insert, proceed with updating padding. Reviewed By: JoshuaGross Differential Revision: D23731498 fbshipit-source-id: 294ab053e562c05aadf6e743fb6bf12285d50307
Configuration menu - View commit details
-
Copy full SHA for 4a6039c - Browse repository at this point
Copy the full SHA 4a6039cView commit details
Commits on Sep 17, 2020
-
Fabric: Simplifying ShadowTreeRevision implementation
Summary: The implementation of this class is too complex for the purpose it serves. Making it simpler will make the code simpler and faster. Changelog: [Internal] Fabric-specific internal change. Reviewed By: sammy-SC Differential Revision: D23725688 fbshipit-source-id: 5e1ecddb0dd3c4c4f94786e2ba0af9b67e7426ce
Configuration menu - View commit details
-
Copy full SHA for 0477644 - Browse repository at this point
Copy the full SHA 0477644View commit details -
Fabric: Using ShadowTreeRevision inside ShadowTree to store current c…
…ommited tree Summary: Instead of storing tree separate instance variables, we now store a single object that contains them. We will need it to be able to postpone the mounting stage (we save all info we need for mounting inside the new instance variable). Changelog: [Internal] Fabric-specific internal change. Reviewed By: sammy-SC Differential Revision: D23725690 fbshipit-source-id: 09dd4a0912c6f5b34d805636b62f73ca12287329
Configuration menu - View commit details
-
Copy full SHA for bc5a15d - Browse repository at this point
Copy the full SHA bc5a15dView commit details -
Fabric: Introducing
ShadowTree::getCurrentRevision()
Summary: Previously, to get a current root shadow node for a shadow tree, we called `tryCommit` method and stole a pointer from this. That was not a very straightforward method to get things done, and most importantly we need to do this to change the shape of the ShadowTreeCommitTransaction signature (remove a shared pointer from the callback) to make it simpler, faster and allow future improvements (see the next diff). Changelog: [Internal] Fabric-specific internal change. Reviewed By: JoshuaGross, sammy-SC Differential Revision: D23725689 fbshipit-source-id: 51950b843a0e401828b6c6a38e5e2aaaf21ec166
Configuration menu - View commit details
-
Copy full SHA for 0118cbf - Browse repository at this point
Copy the full SHA 0118cbfView commit details -
Fabric: Removing shared_ptr from ShadowTreeCommitTransaction's argument
Summary: We don't need a shared_ptr here and without it the code will be faster and simpler. This change is aligned with any clone-line callbacks we have in the Core which accepts a `const &` and return `shared_ptr<>`. Changelog: [Internal] Fabric-specific internal change. Reviewed By: JoshuaGross, sammy-SC Differential Revision: D23725687 fbshipit-source-id: 1cd959f4273913175d342302e2f12752f0114768
Configuration menu - View commit details
-
Copy full SHA for 13bc3c8 - Browse repository at this point
Copy the full SHA 13bc3c8View commit details -
Fabric: Using
thread_local
keyword instead on own implementation in…… TransactionTelemetry Summary: Apparently, there is C++ keyword for this. Changelog: [Internal] Fabric-specific internal change. Reviewed By: sammy-SC Differential Revision: D23754284 fbshipit-source-id: 5f9bbcc72d9c586173624869d614f12d2319fb7b
Configuration menu - View commit details
-
Copy full SHA for 04c874b - Browse repository at this point
Copy the full SHA 04c874bView commit details -
Add an explicit NDK version to Android template (facebook#29403)
Summary: Added an explicit NDK version to the Android template. This allows tooling to detect which NDK version to install automatically. ## 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 an explicit NDK version to Android template Pull Request resolved: facebook#29403 Test Plan: Template builds as it should. NDK version gets installed with initial Android set up. Reviewed By: passy Differential Revision: D23752007 Pulled By: fkgozali fbshipit-source-id: 31c33f275f94a4a62338a61e79b31c4b996969bf
Configuration menu - View commit details
-
Copy full SHA for 18ffe12 - Browse repository at this point
Copy the full SHA 18ffe12View commit details -
Fabric: Removing
RCTCGColorRefUnretainedFromSharedColor()
Summary: This diff removes `RCTCGColorRefUnretainedFromSharedColor` function because it's not compatible with future changes we plan to make. Converting SharedColor to unretained CGColorRef is actually quite dangerous because... it's an unowned pointer. Reviewed By: JoshuaGross Differential Revision: D23753509 fbshipit-source-id: df030ade69b63cbb872d6bdbde51575eedc6a4a6
Configuration menu - View commit details
-
Copy full SHA for f2ca6f5 - Browse repository at this point
Copy the full SHA f2ca6f5View commit details -
Fabric: Using RCTUIColorFromSharedColor everywhere
Summary: Even though we have wonderful helper functions converting SharedColor to UIColor and CGColorRef, in many places we still use some hardcoded things. This diff fixes that; it will be important for the next diff. Changelog: [Internal] Fabric-specific internal change. Reviewed By: JoshuaGross Differential Revision: D23753508 fbshipit-source-id: 09d280b132266252753526c2735ab3e41b96c8d5
Configuration menu - View commit details
-
Copy full SHA for d3bb76b - Browse repository at this point
Copy the full SHA d3bb76bView commit details -
Fabric: Color conversion functions now do not depend on internal impl…
…ementations of SharedColor Summary: This diff changes the implementation of `RCTCreateCGColorRefFromSharedColor` and `RCTUIColorFromSharedColor` in such a way that they don't rely on the fact that SharedColor is actually a `shared_ptr<CGColorRef>`. Instead, the methods just extract color components from SharedColor and create UIColor and CGColorRef objects on demand. This allows us to change the implementation of SharedColor without worrying much about the rest of the system, which will do in the next diff. Changelog: [Internal] Fabric-specific internal change. Reviewed By: JoshuaGross Differential Revision: D23753510 fbshipit-source-id: 340127527888776ebd5d241ed60c7e5220564013
Configuration menu - View commit details
-
Copy full SHA for 241795c - Browse repository at this point
Copy the full SHA 241795cView commit details -
Fabric: Using
optional<int>
instead ofCGColorRef
on iOSSummary: Finally, this diff changes the internal implementation of SharedColor to be `optional<int>`. Initially, when we started working on the new renderer, it seemed like a good idea to allocated CGColor objects ahead of time and store them with Props. Now, this idea does not look so good, especially because: * Having `SharedColor` as a `shared_ptr` is a quite big perf overhead for copying this thing. And the size of the object is not small. * Having `SharedColor` as a `shared_ptr` creates huge interconnectedness among pieces of the core and rendering. E.g. improper releasing a pointer in some component view can cause a crash somewhere in the core (because both places might use the same shared `blackColor`. On Android, we already use simple `int` as a representation of a color, and this works great. And this diff implements something very similar to Android, but a bit differently: here we use `optional<int>` instead of custom class with a single `int` field and some magic value that represents "empty value". This approach should fix T75836417 because now we don't have allocation and deallocation when we simply assign color values. If this solution works fine on iOS, I will do unify all implementations among all platforms. Changelog: [Internal] Fabric-specific internal change. Reviewed By: JoshuaGross Differential Revision: D23753507 fbshipit-source-id: 42fd6cee6bf7b39c92c88536da06ba9e8cf4d4db
Configuration menu - View commit details
-
Copy full SHA for e4877ed - Browse repository at this point
Copy the full SHA e4877edView commit details -
Fabric: Using pre-cached UIColor objects for black, white, and clear …
…colors Summary: This change maps the three most used colors (black, white, clear) to corresponding predefined values in UIColor. This should meaningfully reduce the overall amount of allocated UIColor/CGColor objects. In my non-scientific measures, it reduces the number of CGColor objects from ~1500 to ~1000. And... it no much at least in terms of kilobytes. However, I still think it's a good idea to implement this because I hope that can remove some work from memory allocation infra and maybe enable some optimizations that UIKit hopefully does for black and white colors. (I tend to believe that this optimization exists because UIKit even has a classes called UIDeviceWhiteColor and UICachedDeviceWhiteColor.) Changelog: [Internal] Fabric-specific internal change. Reviewed By: JoshuaGross Differential Revision: D23753506 fbshipit-source-id: 46e58dc7e6b0dcab3c83d29c7257c90ffbd95246
Configuration menu - View commit details
-
Copy full SHA for 5b93c49 - Browse repository at this point
Copy the full SHA 5b93c49View commit details -
Summary: Changelog: [Internal] To align more closely with Paper, Fabric should coalesce touchMove events. on iOS it happens: https://www.internalfb.com/intern/diffusion/FBS/browsefile/master/xplat/js/react-native-github/React/Base/RCTTouchEvent.m?lines=43 Reviewed By: JoshuaGross Differential Revision: D23734212 fbshipit-source-id: a9d324a6481884905d7be6637fcafe4e71f2bd9f
Configuration menu - View commit details
-
Copy full SHA for e7dbd84 - Browse repository at this point
Copy the full SHA e7dbd84View commit details -
Fix LayoutAnimations assertion on `adjustDelayedMutationIndicesForMut…
…ation` Summary: `adjustDelayedMutationIndicesForMutation` asserts that the mutation is either Remove or Insert. At one callsite, we weren't checking the mutation type before calling `adjustDelayedMutationIndicesForMutation`. Changelog: [Internal] Reviewed By: shergin Differential Revision: D23746617 fbshipit-source-id: 6046fec2eb4821094937b1b16f40347bbc55c20e
Configuration menu - View commit details
-
Copy full SHA for 012ac09 - Browse repository at this point
Copy the full SHA 012ac09View commit details -
Fix MountingCoordinator override mode
Summary: In MountingCoordinator override mode (used in LayoutAnimations) we must set the start and end `diff` time when no real diff happens, otherwise we will hit an assert in telemetry later. I also ensure that the TransactionNumber is incremented in that case. Changelog: [Internal] Reviewed By: shergin Differential Revision: D23746684 fbshipit-source-id: b1fe3864e453fdba89d43cc827bd37434abf7a4d
Configuration menu - View commit details
-
Copy full SHA for ad400f3 - Browse repository at this point
Copy the full SHA ad400f3View commit details -
Fix MountingCoordinator RN_SHADOW_TREE_INTROSPECTION + LayoutAnimations
Summary: Currently, MountingCoordinator's RN_SHADOW_TREE_INTROSPECTION code will crash often because it assumes there is always a "new" tree to compare the old tree to. In the LayoutAnimations context this is not always the case - in fact, the majority of the time, LayoutAnimations is producing mutations for animation without a "new" tree. Just check that the tree exists before trying to print it. Changelog: [Internal] Reviewed By: shergin Differential Revision: D23747289 fbshipit-source-id: a1ba22aeae32ed8915a53bc33cdc199e8ce5128a
Configuration menu - View commit details
-
Copy full SHA for b64a661 - Browse repository at this point
Copy the full SHA b64a661View commit details -
Fix compilation for LayoutAnimations debug mode
Summary: iOS needs this function to be marked as static. Changelog: [internal] Reviewed By: shergin Differential Revision: D23749613 fbshipit-source-id: a8c160646853450fc7d849448bdbb45e02beb964
Configuration menu - View commit details
-
Copy full SHA for 3585bb4 - Browse repository at this point
Copy the full SHA 3585bb4View commit details -
LayoutAnimations: at the end of every animation, issue an update muta…
…tion Summary: LayoutAnimations: at the end of every animation, issue an update mutation - this is so that the props data on the Mounting layer/StubViewTree layer is pointer-identical to the props data on the ShadowTree. This unblocks iOS debug mode crashes. Changelog: [Internal] Reviewed By: sammy-SC Differential Revision: D23753606 fbshipit-source-id: 407e0c2746a65e6d3ee29c1cce891cd7c1013593
Configuration menu - View commit details
-
Copy full SHA for 0599742 - Browse repository at this point
Copy the full SHA 0599742View commit details -
Layout Events: throttle layout events sent to same node repeatedly
Summary: Under Fabric only, we can enter an infinite layout loop where the emitted layout event oscillates between two height values that are off by a very small amount. The cause is, in part, components that use layoutEvents to determine their dimensions: for example, using onLayout event "height" parameters to determine the height of a child. If the onLayout height changes rapidly, the child's height will change, causing another layout, ad infinitum. This might seem like an extreme case but there are product use-cases where this is done in non-Fabric and layout stabilizes quickly. In Fabric, currently it may never stabilize. Part of this is due to a longstanding issue that exists in Fabric and non-Fabric, that we cannot immediately fix: If in a single frame, C++ emits 100 layout events to ReactJS, ReactJS may only process 50 before committing the root. That will trigger more layout events, even though product code has only partially processed the layout events. At the next frame, the next 50 events will be processed which may again change the layout, emitting more events... etc. In most cases the tree will converge and layout values will stabilize, but in extreme cases in Fabric, it might not. Part of this is because Fabric does not drop *stale* layout events. If 10 layout events are dispatched to the same node, it will process all 10 events in older. Non-Fabric does not have this behavior, so we're changing Fabric to drop stale events when they queue up. Changelog: [Internal] Reviewed By: sammy-SC Differential Revision: D23719494 fbshipit-source-id: e44a3b3e40585b59680299db3a4efdc63cdf0de8
Configuration menu - View commit details
-
Copy full SHA for ee38751 - Browse repository at this point
Copy the full SHA ee38751View commit details -
Copy all blocks generated by TurboModules
Summary: The Apple documentation states: https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Blocks/Articles/bxUsing.html#//apple_ref/doc/uid/TP40007502-CH5-SW1 > Typically, you shouldn’t need to copy (or retain) a block. You only need to make a copy when you expect the block to be used after destruction of the scope within which it was declared. Copying moves a block to the heap. All blocks generated in the TurboModule infra, for callbacks and promise resolve/reject handlers, can be used after the destruction of the scope within which they were declared. Therefore, let's copy them in the hopes that they mitigate T75876134. **Note:** We copy blocks before pushing them into the `retainedObjects` array in the legacy Infra as well. Context: D2559997 (facebook@71da291), D5589246 (facebook@2a6965d) Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D23764329 fbshipit-source-id: e71360977bdff74dc570bd40f0139792860f811f
Configuration menu - View commit details
-
Copy full SHA for 9b76e21 - Browse repository at this point
Copy the full SHA 9b76e21View commit details -
Upgrade Hermes dependency to 0.7.0
Summary: Use the latest published release of hermes-engine. Changelog: [Android] [Changed] - Upgraded to Hermes 0.7.0 allow-large-files Reviewed By: cpojer Differential Revision: D23725129 fbshipit-source-id: 50938433147100e97699b717d77a687fbbfe892b
Configuration menu - View commit details
-
Copy full SHA for bb00381 - Browse repository at this point
Copy the full SHA bb00381View commit details -
Fabric: Enabling state auto-repeating for all state updates (gated)
Summary: This enables a new state auto repeating mechanism built-in mechanism for all state updates which we already use for CK interop. This experiment is supposed to help with T74769670 and co. This change is gated with MC. Changelog: [Internal] Fabric-specific internal change. Reviewed By: JoshuaGross Differential Revision: D23762508 fbshipit-source-id: f535513c724ace9ede570177281324eb507329c5
Configuration menu - View commit details
-
Copy full SHA for c453dbc - Browse repository at this point
Copy the full SHA c453dbcView commit details -
Stop accessing JVM in ~JavaTurboModule
Summary: Inside JavaTurboModule, the native `CallInvoker` is used to schedule work on the NativeModules thread. So, in ~JavaTurboModule(), I scheduled some work on the NativeModules thread. This work holds a copy of the JNI global reference to the Java NativeModule object, and when it's executed, it resets this global reference to the Java NativeModule object. This should ensure that the we don't access the JVM in ~JavaTurboModule, which could crash the program. I also removed the redundant `quitSynchronous()` in `~CatalystInstanceImpl()`, to prevent the NativeModules thread from being deleted before we delete the `jsi::Runtime`. This shouldn't cause an issue, because we delete the NativeModules thread when we call [ReactQueueConfigurationImpl.destroy()](https://fburl.com/codesearch/p7aurwn3). Changelog: [Internal] Reviewed By: ejanzer Differential Revision: D23744777 fbshipit-source-id: a5c8d3f2ac4287dfef9a4b4404a04b335aa0963d
Configuration menu - View commit details
-
Copy full SHA for 9b094ee - Browse repository at this point
Copy the full SHA 9b094eeView commit details
Commits on Sep 18, 2020
-
Improve performance logger definition and type safety
Summary: The way the performance logger is defined now is very unsafe regarding type safety, as all accesses to its properties is untyped (`any`) and it uses several `mixed` types in cases that could be more refined. This migrates the creation of performance loggers to instances of a class to improve its type safety. If there's an impact in performance, it's expected to be positive. Changelog: [Internal][Changed] - Replaced object literals with class instances to create performance loggers Reviewed By: lunaleaps Differential Revision: D23758609 fbshipit-source-id: 0734742eb97d92a4a53f7b66a8ca45a2ae90946c
Configuration menu - View commit details
-
Copy full SHA for 2788ee8 - Browse repository at this point
Copy the full SHA 2788ee8View commit details -
Remove unused timespan descriptions from performance loggers
Summary: The `description` parameter is never used so we can simplify the API. Changelog: [Internal][Changed] Removed `description` option from performance logger timespans Reviewed By: lunaleaps Differential Revision: D23758829 fbshipit-source-id: 10900f86effc3e1f54a408cf8f9fbc9b3b52f569
Configuration menu - View commit details
-
Copy full SHA for 4d84296 - Browse repository at this point
Copy the full SHA 4d84296View commit details -
Remove unnecessary addTimeAnnotation method from performance logger
Summary: Changelog: [Internal][Removed] Removed `addTimeAnnotation` method from performance loggers Reviewed By: lunaleaps Differential Revision: D23758816 fbshipit-source-id: 98e0abae25266f3dcc5953f25f20cde8e3dac190
Configuration menu - View commit details
-
Copy full SHA for fc4f667 - Browse repository at this point
Copy the full SHA fc4f667View commit details -
Remove update option from stopTimestamp method in performance loggers
Summary: Changelog: [Internal][Changed] Removed `update` option from `stopTimestamp` method in performance loggers Reviewed By: lunaleaps Differential Revision: D23759138 fbshipit-source-id: bb83b6f5ff2f640733c2e508779b3bc52800e4f6
Configuration menu - View commit details
-
Copy full SHA for f1b84dd - Browse repository at this point
Copy the full SHA f1b84ddView commit details -
Propagate nativeID in createAnimatedComponent
Summary: Changelog: [internal] https://our.intern.facebook.com/intern/diffusion/FBS/browse/master/xplat/js/react-native-github/Libraries/Animated/createAnimatedComponent.js?commit=1b6ce6c3a69a&lines=82-112 `_isFabric` in `createAnimatedComponent` returns false for Fabric component, that's why nativeID was not being assigned and view got flattened. To fix this, props.nativeID is propagated. SnackBar already has nativeID https://our.intern.facebook.com/intern/diffusion/FBS/browse/master/xplat/js/RKJSModules/Libraries/FDS/FDSLightweightFeedback/DEPRECATED_FDSSnackBar.js?commit=1b6ce6c3a69a&lines=277 Reviewed By: PeteTheHeat Differential Revision: D23757304 fbshipit-source-id: 9e4b4599c95b8af8767793bc8cdce717a347a273
Configuration menu - View commit details
-
Copy full SHA for d1b695d - Browse repository at this point
Copy the full SHA d1b695dView commit details -
Reintroduce experiment flag for Reparenting/Flattening Differ
Summary: This flag was deleted in D23374948 (facebook@6729a3e), reintroduce it. Changelog: [Internal] Reviewed By: sammy-SC Differential Revision: D23771273 fbshipit-source-id: ae9595194bf14bc740d05b2ca6e7b5e22bdd566f
Configuration menu - View commit details
-
Copy full SHA for f72c6f2 - Browse repository at this point
Copy the full SHA f72c6f2View commit details -
Add cause to jsi::instrumentation::collectGarbage
Summary: Continuing the adding of a "cause" field for logging to GCs. This allows embedders of Hermes (such as React Native) to specify the cause of a call to `collectGarbage`. Notably, this allows Hermes to know when a GC is triggered by a memory warning. Changelog: [Internal] Reviewed By: sammy-SC Differential Revision: D23742099 fbshipit-source-id: 99453e632328c00045b92a72f789d41c898dc518
Configuration menu - View commit details
-
Copy full SHA for 22804a6 - Browse repository at this point
Copy the full SHA 22804a6View commit details -
Update Flipper (facebook#29787)
Summary: The current Flipper version included in new React Native is quite old, causing some bugs to be present which have long been solved, such as freezing the UI after inspecting it. Fixes This fixes facebook#29492 / facebook/flipper#1399 ## Changelog <!-- Help reviewers and the release process by writing your own changelog entry. For an example, see: https://github.com/facebook/react-native/wiki/Changelog --> [general][changed] - Update Flipper to 0.54 Pull Request resolved: facebook#29787 Test Plan: Updated the RN 0.63.2 based test project https://github.com/mweststrate/flipper-issue-1399-repo with `use_flipper!('Flipper' => '0.54.0')` (in `ios/Podspec`) / `FLIPPER_VERSION=0.52.1` in `gradle.properties` in the test project https://github.com/mweststrate/flipper-issue-1399-repo and verified that everything builds and connects correctly, and that the bug is no longer present. Tried to run RN-tester project in this repo. For iOS this succeeded, on Android I got a build error: ``` make: Leaving directory '/Users/mweststrate/Desktop/react-native/ReactAndroid/src/main/jni/react/jni' make: Entering directory '/Users/mweststrate/Desktop/react-native/ReactAndroid/src/main/jni/react/jni' fcntl(): Bad file descriptor [armeabi-v7a] Compile++ thumb: folly_json <= FileUtil.cpp /Users/mweststrate/Desktop/react-native/ReactAndroid/build/third-party-ndk/folly/folly/FileUtil.cpp:37:14: error: no matching function for call to 'wrapNoInt' make: Leaving directory '/Users/mweststrate/Desktop/react-native/ReactAndroid/src/main/jni/react/jni' return int(wrapNoInt(open, name, flags, mode)); ^~~~~~~~~ /Users/mweststrate/Desktop/react-native/ReactAndroid/build/third-party-ndk/folly/folly/detail/FileUtilDetail.h:34:9: note: candidate template ignored: couldn't infer template argument 'F' ssize_t wrapNoInt(F f, Args... args) { ^ 1 error generated. make: *** [/opt/android_sdk/ndk/21.3.6528147/build/core/build-binary.mk:478: /Users/mweststrate/Desktop/react-native/ReactAndroid/build/tmp/buildReactNdkLib/local/armeabi-v7a/objs/folly_json/folly/FileUtil.o] Error 1 make: *** Waiting for unfinished jobs.... fcntl(): Bad file descriptor make: Entering directory '/Users/mweststrate/Desktop/react-native/ReactAndroid/src/main/jni/react/jni' [armeabi-v7a] Compile++ thumb: folly_json <= Demangle.cpp ``` No idea if it is related. I guess not since without making the change I got the same error. Reviewed By: mweststrate Differential Revision: D23767388 Pulled By: fkgozali fbshipit-source-id: 35f0d3ddec41942f5bbc96cb391975d84729ef5e
Configuration menu - View commit details
-
Copy full SHA for d8b70b1 - Browse repository at this point
Copy the full SHA d8b70b1View commit details -
Fix flattening/unflattening case on Android
Summary: There are cases where we Delete+Create a node in the same frame. Practically, the new differ should prevent this, but we don't want to rely on that necessarily. See comments for further justification on why deleteView can do less work overall. In reparenting cases, this causes crashes because dropView removes *and deletes* children that shouldn't necessarily be deleted. Changelog: [Internal] Reviewed By: shergin Differential Revision: D23775453 fbshipit-source-id: c577c5af8c27cfb185d527f0afd8aeb08ee3a5fe
Configuration menu - View commit details
-
Copy full SHA for fa44c46 - Browse repository at this point
Copy the full SHA fa44c46View commit details -
Have BatchMountItem log the exact item that crashes
Summary: Because BatchMountItem executes many items, sometimes it's unclear which MountItem causes a crash. Catch and log the exact item. This shouldn't cause perf regressions because we have a try/catch block in FabricUIManager where execute is called. Changelog: [Internal] Reviewed By: shergin Differential Revision: D23775500 fbshipit-source-id: c878e085c23d3d3a7ef02a34e5aca57759376aa6
Configuration menu - View commit details
-
Copy full SHA for 0344871 - Browse repository at this point
Copy the full SHA 0344871View commit details -
Additional differ test: flattening differ should not produce DELETE a…
…nd CREATE mutation for the same tag in the same frame Summary: See additional assertion. Tests still pass, so no other change was necessary. Changelog: [Internal] Differential Revision: D23775553 fbshipit-source-id: 57d3191f25dd55ab4da189207f6d201a31b175e0
Configuration menu - View commit details
-
Copy full SHA for 752e709 - Browse repository at this point
Copy the full SHA 752e709View commit details
Commits on Sep 19, 2020
-
Fabric: Removing catching all exceptions in UIManager::completeRoot
Summary: This is a revert of D23529233 (facebook@902611f). It turns out it was a bad idea. With this catch-all thing, we don't get new information. Yeah, we crash earlier now but seems we have even less information about the crash. :( I think D23754284 (facebook@04c874b) should fix the issue. Changelog: [Internal] Fabric-specific internal change. Original commit changeset: 7ac7fb26ac08 Reviewed By: sammy-SC Differential Revision: D23786086 fbshipit-source-id: 86784df0193abfb7328c4d5a16a9af4214e9a161
Configuration menu - View commit details
-
Copy full SHA for 1ddc654 - Browse repository at this point
Copy the full SHA 1ddc654View commit details -
Fabric: Marking all JS function lambdas
noexcept
in UIManagerBindingSummary: Exceptions in C++ work quite differently from exceptions in other languages. To make exceptions actually work **correctly** all the code needs to be written with "exceptions in mind" (e.g., see https://www.stroustrup.com/except.pdf). In short, if the code is not "exceptions ready", throwing an exception causes memory leaks, dangling pointers, and invariant violations all over the place, which will probably cause another crashes down the road (which will be especially hard to investigate and attribute to the original issue). Fabric Core (Layout, Props parsing, ShadowNodes management, and so on) does not use exceptions because in most (all?) the cases the exception is now recoverable. So, if a program detects some internal state invariant violation or missing some resource, *logically* it's fatal. We also don't want to pay code-size and performance tax for exception support, so that's why we don't use them. It's just not the right fit for Fabric Core. This does not mean that exceptions don't happen though. C++ standard library can throw them... sometimes. And if our library is compiled with exceptions enabled (still the case, unfortunately), an exception can bubble to JavaScript code and losing all context down the road. And it's hard to investigate such crashes. To isolate those occasional exceptions inside C++ core we are marking all C++/JS boundaries with `noexcept` that stops the bubbling. I hope that will give us much more informative crash reports. Changelog: [Internal] Fabric-specific internal change. Reviewed By: sammy-SC Differential Revision: D23787492 fbshipit-source-id: 0822dbf36fc680c15b02b5cd0f2d87328296b642
Configuration menu - View commit details
-
Copy full SHA for 57dd48b - Browse repository at this point
Copy the full SHA 57dd48bView commit details -
Move TurboModule Core from ReactCommon/turbomodule to ReactCommon/rea…
…ct/nativemodule Summary: This diff moves the code of TurboModule Core from ReactCommon/turbomodule to ReactCommon/react/nativemodule For iOS: Pod spec name stays as "ReactCommon/turbomodule/..." for now, only the source/header location is affected. The target will be renamed/restructured closer to TurboModule rollout. changelog: [internal] Internal Reviewed By: RSNara Differential Revision: D23362253 fbshipit-source-id: c2c8207578e50821c7573255d4319b9051b58a37
Configuration menu - View commit details
-
Copy full SHA for 7c93f5b - Browse repository at this point
Copy the full SHA 7c93f5bView commit details -
Notify ViewManagers when a View is deleted
Summary: In a previous recent diff we changed Android's Delete mount instruction to *not* recursively delete the tree. This is fine, but because of that, we stopped calling `onDropViewInstance` when views are normally deleted. Bring back that behaviour. Changelog: [Internal] Reviewed By: sammy-SC Differential Revision: D23801666 fbshipit-source-id: 54e6b52ab51fff2a45102e37077fe41081499888
Configuration menu - View commit details
-
Copy full SHA for 7b82df2 - Browse repository at this point
Copy the full SHA 7b82df2View commit details
Commits on Sep 20, 2020
-
Prevent calling onTextLayout with the same value
Summary: Changelog: [internal] In D23648430 (facebook@a315e4c) I made a mistake. I prevented calling `onTextLayout` unless there are attachments in the component. It fixed the problem because I unintentionally prevented `onTextLayout` to be called. Therefore, changes from D23648430 (facebook@a315e4c) need to be reverted. To prevent infinite loop in `onTextLayout`, ParagraphEventEmitter checks if `linesMeasurements` have changed before dispatching it to JS. Reviewed By: shergin Differential Revision: D23782717 fbshipit-source-id: 0e84ae4f46d79ce0cf4c7340cd32be6f562ae179
Configuration menu - View commit details
-
Copy full SHA for 412fc7d - Browse repository at this point
Copy the full SHA 412fc7dView commit details -
TurboModule Android: compile TurboModule C++ Core into ReactAndroid
Summary: This is to prepare for enabling TurboModule on Android. This commit compiles in all the core files (C++) into the ReactAndroid NDK build step. This doesn't yet enable TurboModule by default, just compiling in the infra, just like for iOS. New shared libs: * libreact_nativemodule_core.so: The TurboModule Android core * libreact_nativemodule_manager.so: The TurboModule manager/delegate To be compatible with `<ReactCommon/` .h include prefix, the files had to move to local `ReactCommon` subdirs. Changelog: [Internal] Reviewed By: sammy-SC Differential Revision: D23805717 fbshipit-source-id: b41c392a592dd095ae003f7b2a689f4add2c37a9
Configuration menu - View commit details
-
Copy full SHA for 5be4445 - Browse repository at this point
Copy the full SHA 5be4445View commit details -
Add additional logging and asserts to StubViewTree
Summary: Helps in testing LayoutAnimations or differ changes. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D23797890 fbshipit-source-id: 1e612c04f9fbb256f2ace8a4a2ed9a477b4695a1
Configuration menu - View commit details
-
Copy full SHA for e1b63ae - Browse repository at this point
Copy the full SHA e1b63aeView commit details -
Deleting unnecessary Differentiator code
Summary: In the new Flattening differ, I experimentally verified that these two code paths are not hit (or redundant) and deleted them. One of the branches did nothing and the other produced duplicate DELETE mutations for the same tag, that is handled elsewhere. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D23806161 fbshipit-source-id: 9ad2929e2d719a7b9b34640ed35f7a696103604b
Configuration menu - View commit details
-
Copy full SHA for df9ada5 - Browse repository at this point
Copy the full SHA df9ada5View commit details -
LayoutAnimations: simplify index adjustment, (un)flattening detection
Summary: In this diff I simplify index adjustment and add comments to rigorously describe what we're doing at each step of index adjustment. I've also made unflattening detection more correct, robust, and slightly more efficient. Bugs that existed before: 1) The reparenting detection that existed in the animations layer had some subtle bugs. I don't have proof that it results in any correctness issues or crashes, but I suspect it. 2) Correctness of index adjustment: there were cases where the Android mounting layer would crash because LayoutAnimations would try to remove a View at an index, but the index was wrong. This is why I sat down and diagrammed the relationships between all the bits of data we have for index readjustment - I believe this to be correct now. 3) Correctness of INSERT index adjustment: I had the insight that when we have batches of INSERTs to consecutive indices, we essentially want them to be treated as a single INSERT for adjustment purposes, so that they're all placed consecutively in the view layer. I added `ConsecutiveAdjustmentMetadata` to deal with this, and there are more comments in the code. Changelog: [Internal] Reviewed By: yungsters Differential Revision: D23806163 fbshipit-source-id: cd9e94945034db8b840f2a806c6377034a91af61
Configuration menu - View commit details
-
Copy full SHA for 81c6170 - Browse repository at this point
Copy the full SHA 81c6170View commit details
Commits on Sep 21, 2020
-
Summary: Changelog: [Internal] Reviewed By: dsainati1 Differential Revision: D23769795 fbshipit-source-id: 520e3974a53ba5961a081219c0cbf19b7dfade06
Configuration menu - View commit details
-
Copy full SHA for 54016fa - Browse repository at this point
Copy the full SHA 54016faView commit details -
Daily
arc lint --take CLANGFORMAT
Reviewed By: zertosh Differential Revision: D23811656 fbshipit-source-id: 4104948d2e4db786998320bcfdb1598d4a497f2d
Configuration menu - View commit details
-
Copy full SHA for 3f85b83 - Browse repository at this point
Copy the full SHA 3f85b83View commit details -
Add extras to timespan and points in performance logger
Summary: Changelog: [Internal][Added] Added point-level extras to performance logger Reviewed By: lunaleaps, rubennorte Differential Revision: D23730275 fbshipit-source-id: 285c5d7ac769bd109df7ce0294da024401edf7d3
Configuration menu - View commit details
-
Copy full SHA for 22b5f32 - Browse repository at this point
Copy the full SHA 22b5f32View commit details -
Making Android versionCodeOverride for new apps using the template hu…
…man-readable (facebook#29808) Summary: The current calculation on versionCodeOverride is not human-readable. Imagine if we have an android app with **versionName** `4.0` and **version code** `4`. In the current implementation, the result of **versionCode** `4` for `armeabi-v7a` will be the seemingly arbitrary **1048580**. This makes the version code to be seemingly arbitrary and hard to read for humans. This PR proposes to change this calculation closer to google implementation of build number in Flutter (`abiVersionCode * 1000 + variant.versionCode`). https://github.com/flutter/flutter/blob/39d7a019c150ca421b980426e85b254a0ec63ebd/packages/flutter_tools/gradle/flutter.gradle#L643-L647 With this change, our app with `versionCode 4 versionName "4.0"` for `armeabi-v7a` will have **1004** as the version code instead of the seemingly arbitrary **1048580**. As you can see adopting the flutter style implementation make the version code easier to read and debug. **1004** **1** - The ABI Type `["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]` **004** - Our versionCode. Hopefully, this can prevent future issues like this facebook#29790. ## Changelog [Android] [Changed] - Making Android versionCodeOverride for new apps using the template human-readable Pull Request resolved: facebook#29808 Reviewed By: sammy-SC Differential Revision: D23804632 Pulled By: fkgozali fbshipit-source-id: 89b2c196b3bfe01fa608dfb595db6d3314ca1d63
Configuration menu - View commit details
-
Copy full SHA for e1bf515 - Browse repository at this point
Copy the full SHA e1bf515View commit details -
Codegen Android: adjust JNI output to compile from Gradle
Summary: This adjusted the C++ output for Android codegen (NativeModule specs) so we can compile it with ndk-build in Gradle: * Use `#include` instead of `#import` for header files * Added `#pragma once` * Removed direct include of `<fb/fbjni.h>` -- this is not necessary * Added generated Android.mk file based on library name Changelog: [Internal] Reviewed By: shergin Differential Revision: D23809082 fbshipit-source-id: 11ddfea7b48c8b2eb6efe885641ace4fc327d50d
Configuration menu - View commit details
-
Copy full SHA for 8cca54a - Browse repository at this point
Copy the full SHA 8cca54aView commit details -
Codegen Android: Compile ReactAndroid codegen C++ output
Summary: Now that the react-native-codegen produces the Android.mk for the JNI C++ output, let's compile them into its own shared library, to be included in the ReactAndroid final deliverable: libreact_codegen_reactandroidspec.so. This is gated behind `USE_CODEGEN` env var. Note: RNTester specific C++ spec files are not compiled here. Changelog: [Internal] Reviewed By: shergin Differential Revision: D23809081 fbshipit-source-id: 7a90f420a923d5d02654facac01ffe025c321e44
Configuration menu - View commit details
-
Copy full SHA for 2b46fd0 - Browse repository at this point
Copy the full SHA 2b46fd0View commit details -
Use Element<> in FindNodeAtPointTest
Summary: Changelog: [Internal] Reviewed By: JoshuaGross Differential Revision: D23815171 fbshipit-source-id: bf420be172a55a966f8881371473e121c3848c78
Configuration menu - View commit details
-
Copy full SHA for 30d170a - Browse repository at this point
Copy the full SHA 30d170aView commit details -
Fix ordering of children in LayoutableShadowNode::findNodeAtPoint
Summary: Changelog: [internal] `LayoutableShadowNode::findNodeAtPoint` was iterating children in incorrect order and wasn't taking zIndex into accout. Reviewed By: JoshuaGross Differential Revision: D23814866 fbshipit-source-id: 38eee297147a5c5912304d139bb10f8b16ae2ee1
Configuration menu - View commit details
-
Copy full SHA for 18f29db - Browse repository at this point
Copy the full SHA 18f29dbView commit details
Commits on Sep 22, 2020
-
Call stopObserving on correct queue
Summary: Since `dealloc` can be called from any thread, this would result `stopObserving` being called on a different thread/queue than the specified `methodQueue`. We specifically encountered this issue with a module needing the main queue having its `stopObserving` called on a background queue. Changelog: [iOS][Fixed] - Call [RCTEventEmitter stopObserving] on specified method queue Reviewed By: RSNara Differential Revision: D23821741 fbshipit-source-id: 693c3be6876f863da6dd214a829af2cc13a09c3f
Configuration menu - View commit details
-
Copy full SHA for 23717e4 - Browse repository at this point
Copy the full SHA 23717e4View commit details -
Pull out construction of Layout from TextLayoutManager.measureText in…
…to separate function Summary: Changelog: [Internal] Construction of Layout will be needed in `TextLayoutManager.measureLines`, pulling it out into separate function prevents code duplication. Reviewed By: shergin Differential Revision: D23782905 fbshipit-source-id: 8ab817559ca154716a190ca1012e809c5fa2fd6e
Configuration menu - View commit details
-
Copy full SHA for acb967e - Browse repository at this point
Copy the full SHA acb967eView commit details -
Wire call from C++ to Java to get lines measurements
Summary: Changelog: [Internal] Reviewed By: shergin Differential Revision: D23782998 fbshipit-source-id: fa9bda274c024d5bbd3ca24f394b5d76f8c07ad2
Configuration menu - View commit details
-
Copy full SHA for c1af56d - Browse repository at this point
Copy the full SHA c1af56dView commit details -
Implement onTextLayout on Text component.
Summary: Changelog: [Internal] Add `Text.onTextLayout` implementation to Android's Text component. Reviewed By: JoshuaGross Differential Revision: D23782311 fbshipit-source-id: fdb5709aaf68efee0ab895a6661396f92cfc768a
Configuration menu - View commit details
-
Copy full SHA for a650696 - Browse repository at this point
Copy the full SHA a650696View commit details -
Fix Xcode bundler in staging and release (facebook#29477)
Summary: Revert "feat: improve monorepo support by removing redundant PROJECT_ROOT (facebook#28354)" This reverts commit a8e8502. This commit a8e8502 somehow broke the bundler when making a staging or release build in Xcode that results in unresolved files and main.jsbundle nonexistance issue. I figured this out by replacing react-native-xcode.sh from RN v0.63.2 by the one from v0.62.2 where everything works just fine and then reverting the changes line by line. It seems like this pr will fix similar issues stated here https://stackoverflow.com/questions/62806319/main-jsbundle-does-not-exist-this-must-be-a-bug-with-main-jsbundle-issue-afte/62829256#62829256 and here facebook#29205 ## Changelog [iOS] [Fixed] - fix "main.jsbundle does not exist" issue Pull Request resolved: facebook#29477 Test Plan: With react-native-xcode.sh from RN v0.63.2 ![image](https://user-images.githubusercontent.com/32848434/88342113-7ce55d80-cd47-11ea-9dab-bf41ec6d6ab5.png) With my changes ![image](https://user-images.githubusercontent.com/32848434/88342376-f0876a80-cd47-11ea-9c08-96b892784da1.png) Reviewed By: sammy-SC Differential Revision: D23817847 Pulled By: hramos fbshipit-source-id: 4b729c1231d30e89073b2520aeadee944c84421c
Configuration menu - View commit details
-
Copy full SHA for 83777cb - Browse repository at this point
Copy the full SHA 83777cbView commit details -
New Share API Use Cases (facebook#29856)
Summary: * New use cases for share API in rn-tester ## Changelog [General] [Changed] - Changed use cases for share API in rn-tester ## Test Plan * Tested app in both Android and iOS ![Screenshot_2020-09-09-21-20-41-322_com facebook react uiapp](https://user-images.githubusercontent.com/42653703/92624772-83bf3400-f2e5-11ea-820f-a7f3d9a44a11.jpg) ![image](https://user-images.githubusercontent.com/42653703/92624985-c1bc5800-f2e5-11ea-9f30-b88ab786963b.png) Pull Request resolved: facebook#29856 Reviewed By: hramos Differential Revision: D23784222 Pulled By: rickhanlonii fbshipit-source-id: f311201a49e0a76abb6634232106ed756143da30
Configuration menu - View commit details
-
Copy full SHA for 891b6b0 - Browse repository at this point
Copy the full SHA 891b6b0View commit details -
Open source react-native-modules ESLint rule
Summary: Open source this ESLint rule so that we can lint our open source NativeModule specs. Changelog: [Internal] Reviewed By: shergin, cpojer Differential Revision: D23791748 fbshipit-source-id: e44444bc87eaa9dc9b7f2b3ed03151798a35e8a5
Configuration menu - View commit details
-
Copy full SHA for 3a6327a - Browse repository at this point
Copy the full SHA 3a6327aView commit details -
feat: enable bitcode (microsoft#365)
Summary: Bitcode is turned on by default in React Native and so, setting it here as well. Changelog: [iOS] [Changed] - Upgraded JSI with a new HERMES_ENABLE_BITCODE flag Pull Request resolved: facebook/hermes#365 Reviewed By: tmikov Differential Revision: D23823228 Pulled By: Huxpro fbshipit-source-id: d43638818a733f6a87b2f4a1ecadad8ea9c7a419
Configuration menu - View commit details
-
Copy full SHA for 311d4e9 - Browse repository at this point
Copy the full SHA 311d4e9View commit details -
Add new ReactMarkers for bridgeless init start/end
Summary: Adding two new ReactMarkers for start and end of bridgeless initialization. Creating new ones instead of reusing existing ones to make it easier to differentiate data from the bridge vs. bridgeless, and also because our existing markers 1) aren't very easy to understand, and 2) don't map cleanly to the new architecture. Reviewed By: PeteTheHeat Differential Revision: D23789156 fbshipit-source-id: 2ed10769e08604e591503a2bc9566aeb1d0563ed
Configuration menu - View commit details
-
Copy full SHA for e125f12 - Browse repository at this point
Copy the full SHA e125f12View commit details
Commits on Sep 23, 2020
-
Set useLineSpacingFromFallbacks when measuring text
Summary: Changelog: [internal] When paper measures text, it sets `useLineSpacingFromFallbacks` flag on the Layout object. In Fabric this was missing and can cause incorrect layout. Reviewed By: JoshuaGross Differential Revision: D23845441 fbshipit-source-id: 538f440cdbbf8df2cba0458837b80db103888113
Configuration menu - View commit details
-
Copy full SHA for 246f746 - Browse repository at this point
Copy the full SHA 246f746View commit details -
Make React-Core compatible with Swift modules (facebook#29995)
Summary: Related to facebook#29633 Support Swift based libraries using Xcode 12’s build system. ## Changelog [iOS] [Fixed] - Support Swift based libraries using Xcode 12’s build system. Pull Request resolved: facebook#29995 Test Plan: * Building RNTester still works * Swift based pod tested in mrousavy/react-native-blurhash#58 Reviewed By: fkgozali Differential Revision: D23824438 Pulled By: appden fbshipit-source-id: 418caf9808cb6326e3d6efdc8b37131a5705e7f6
Configuration menu - View commit details
-
Copy full SHA for 6e08f84 - Browse repository at this point
Copy the full SHA 6e08f84View commit details -
Summary: Rearranging to alphabetically sort, no functionality changes Changelog: [Internal] Reviewed By: rubennorte, motiz88 Differential Revision: D23836997 fbshipit-source-id: 00232b88379e44920ecb74fa6ff43f36d941d93b
Configuration menu - View commit details
-
Copy full SHA for 6d355c0 - Browse repository at this point
Copy the full SHA 6d355c0View commit details -
Add close() to IPerformanceLogger
Summary: To represent a final state where a logger should no longer be used Changelog: [Internal] - To represent a final state where a logger should no longer be used Reviewed By: rubennorte Differential Revision: D23845307 fbshipit-source-id: 4b2bfda4f7425ba6bc8e5e1233d9baea60dd8667
Configuration menu - View commit details
-
Copy full SHA for aebb97b - Browse repository at this point
Copy the full SHA aebb97bView commit details -
RNTester Android: Add stub C++ for TurboModule provider (facebook#30014)
Summary: Pull Request resolved: facebook#30014 This is the base setup to compile C++ as part of RNTester app. There is no dependencies on ReactAndroidNdk lib yet, just a bunch of ndkBuild setup in Gradle. Note: this is using Gradle's `nkdBuild` support instead of calling `ndk-build` manually like in ReactAndroid/build.gradle. Reference: https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.ExternalNativeNdkBuildOptions.html Note that `ANDROID_NDK` env var is honored to pick the right NDK version. For now, this is gated behind `USE_CODEGEN` env variable. Changelog: [Internal] Reviewed By: JoshuaGross Differential Revision: D23887058 fbshipit-source-id: 7a962649461d15af46999a15b900464543e5b05c
Configuration menu - View commit details
-
Copy full SHA for c3ab2a2 - Browse repository at this point
Copy the full SHA c3ab2a2View commit details
Commits on Sep 24, 2020
-
New Button Component Use Cases (facebook#29848)
Summary: * New use cases for button component in rn-tester * E2E tests for the button component ## Changelog [General] [Changed] - Changed use cases for button component in rn-tester ## Test Plan ![image](https://user-images.githubusercontent.com/42653703/92123053-ced6d400-ee19-11ea-8f10-c5e8529c85ca.png) After - ![image](https://user-images.githubusercontent.com/42653703/92625569-70609880-f2e6-11ea-9fb9-f7327d842a34.png) Before - ![image](https://user-images.githubusercontent.com/42653703/92625555-6a6ab780-f2e6-11ea-90d1-8c54ebc60062.png) Pull Request resolved: facebook#29848 Reviewed By: hramos Differential Revision: D23649694 Pulled By: rickhanlonii fbshipit-source-id: 3590eca08ea58c771596ad731f74eb233b1a40d8
Configuration menu - View commit details
-
Copy full SHA for 43abf23 - Browse repository at this point
Copy the full SHA 43abf23View commit details -
Minor Code Improvements in RNTester (facebook#29868)
Summary: * Update single-letter variable names to be more descriptive * Remove event listener on component unmount * Add flow types * Refactor RNTesterNavbar to use descriptive component names Pull Request resolved: facebook#29868 Reviewed By: hramos Differential Revision: D23598579 Pulled By: rickhanlonii fbshipit-source-id: c5cfc61d7b2fcb2942bf149d0a8ba0b58b0192e6
Configuration menu - View commit details
-
Copy full SHA for 99db9f2 - Browse repository at this point
Copy the full SHA 99db9f2View commit details -
Prevent change of delegate in RCTUITextView
Summary: Changelog: [internal] # Problem `[RCTUITextView setDelegate]` is a public method and if something changes the delegate, appropriate events won't be called on the component (onTextChange, onSelectionChange and the others). # Solution Prevent setting of delegate from outside of the class. Ideally we would want to hide `setDelegate` altogether but that would require a rewrite of `RCTUITextView`. Reviewed By: JoshuaGross, shergin Differential Revision: D23813095 fbshipit-source-id: 8b76ac86727d262d0f9b81adfc8e75157847284c
Configuration menu - View commit details
-
Copy full SHA for 64ac01d - Browse repository at this point
Copy the full SHA 64ac01dView commit details -
Fix touch handling in bridged paper components
Summary: Changelog: [internal] If view was bridged from Paper, hit testing would return Paper view which doesn't have reference to Fabric's event emitter. To fix this, if the bridged view is returned from hit testing, it is swapped with interop view which has reference to event emitter. Reviewed By: shergin Differential Revision: D23840054 fbshipit-source-id: d4aa4ee8da4e1da80d2e2b69b79ed82d726f04e3
Configuration menu - View commit details
-
Copy full SHA for c907202 - Browse repository at this point
Copy the full SHA c907202View commit details -
TurboModule Android: add dependency on ReactAndroid codegen output to…
… RNTester Summary: This adds shared libraries dependencies to RNTester so that it can call `ReactAndroidSpec_ReactAndroidSpec_ModuleProvider()` C++ lookup function. That function is generated by the react-native-codegen during build time. This does not make RNTester use TurboModule yet, just the necessary setup to link the C++ libs together. Changelog: [Internal] Reviewed By: sammy-SC Differential Revision: D23901952 fbshipit-source-id: fd5ee0ca266609207962adc5ceaf814956052eec
Configuration menu - View commit details
-
Copy full SHA for 77c1657 - Browse repository at this point
Copy the full SHA 77c1657View commit details -
Fix rounding in Slider component
Summary: Changelog: [Internal] There was a typo in condition. We need to be comparing step prop and not value. The same condition is implemented in Paper. Reviewed By: JoshuaGross Differential Revision: D23903493 fbshipit-source-id: 37506d0fac63f624332041602489ab1cf378bfcc
Configuration menu - View commit details
-
Copy full SHA for 371430d - Browse repository at this point
Copy the full SHA 371430dView commit details -
Do not override decoders to RCTImageLoader (facebook#29711)
Summary: I (actually, [we](expo/expo#9858)) noticed GIFs are no longer animating in Expo client after [enabling TurboModules](expo/expo#9687). ## Changelog [iOS] [Fixed] - Fix `RCTImageLoader` not using decoders provided. <!-- Help reviewers and the release process by writing your own changelog entry. For an example, see: https://github.com/facebook/react-native/wiki/Changelog --> Pull Request resolved: facebook#29711 Test Plan: ![cat](https://user-images.githubusercontent.com/1151041/90775800-90112c00-e2f9-11ea-95cd-ab95a97068f4.gif) The cat is moving! Before applying this commit `RCTGIFDecoder` provided in the initalizer is removed from the `_decoders` array in the ```objc _decoders = [_bridge modulesConformingToProtocol:protocol(RCTImageDataDecoder)]; ``` Also, compare https://github.com/facebook/react-native/blob/8f306cd66a8bc6054ee13701f02329ab5817b69a/Libraries/Image/RCTImageLoader.mm#L243-L250 and https://github.com/facebook/react-native/blob/8f306cd66a8bc6054ee13701f02329ab5817b69a/Libraries/Image/RCTImageLoader.mm#L177-L184 This PR makes `_decoders` behave the same as `_loaders`. Reviewed By: PeteTheHeat Differential Revision: D23908238 Pulled By: fkgozali fbshipit-source-id: 1d7a6e0d180277f23d8c28916734713bc1833b8b
Configuration menu - View commit details
-
Copy full SHA for 663b5a8 - Browse repository at this point
Copy the full SHA 663b5a8View commit details -
Fix rounding issue when setting padding
Summary: Changelog: [Internal] Padding needs to be rounded down (floor function), not rounded to the closest natural number. Otherwise the content of the view might not fit. Reviewed By: JoshuaGross Differential Revision: D23905145 fbshipit-source-id: e84d70155b207144b98646dd0c4fea7a8c4bd876
Configuration menu - View commit details
-
Copy full SHA for d5f7622 - Browse repository at this point
Copy the full SHA d5f7622View commit details -
LayoutAnimations: force props to update when executing "final" mutations
Summary: When an animation is completed or a conflicting animation is detected, force props, state, layout, etc to update. Currently, when a final animation mutation is queued, some attributes can be updated but not others, causing unexpected visual glitches at least on Android. Some of these are arguably component bugs, but it's easier to just flush all attributes by tricking the platforms into updating all attributes. This will also prevent us from having to track down more of these bugs, potentially. Changelog: [Internal] Reviewed By: sammy-SC Differential Revision: D23886519 fbshipit-source-id: 8e5081bbe3b7843c16c0f283fa07fdec0e211aa8
Configuration menu - View commit details
-
Copy full SHA for 9f00752 - Browse repository at this point
Copy the full SHA 9f00752View commit details -
TurboModule Android: compile codegen C++ output into librntester_appm…
…odules.so Summary: The react-native-codegen provides Android.mk in the Android C++ output, but for RNTester (or hosting apps), we should just compile the codegen output with the rest of the app-specific C++ files. This is to simplify the build configuration, and also to not add too many additional .so libs to the APK. With this commit, `RNTesterAppModuleProvider.cpp` should be "complete" for RNTester use-case. This TurboModule lookup function is the one described in react-native-community/discussions-and-proposals#273. Changelog: [Internal] Reviewed By: hramos Differential Revision: D23913149 fbshipit-source-id: d1ca136787b87a0e8e6504318e1f0a78efef46ea
Configuration menu - View commit details
-
Copy full SHA for abff021 - Browse repository at this point
Copy the full SHA abff021View commit details
Commits on Sep 25, 2020
-
Follow-up for fixing xiaomi NullPointer crash
Summary: This is a follow-up for fixing the xiaomi NullPointer crash (D23331828 (facebook@07a597a) D23451929 (facebook@b5b4a70)): 1, Clean up previous temporary fix in js. 2, Cover all cases including caretHidden is set and isn't set, in previous fix if caretHidden isn't set then fix won't be executed. Changelog: [Internal] Reviewed By: makovkastar Differential Revision: D23816541 fbshipit-source-id: a7543f6767430abb74141a747b08391986662958
Configuration menu - View commit details
-
Copy full SHA for c2447d3 - Browse repository at this point
Copy the full SHA c2447d3View commit details -
Workaround for Date Picker in iOS14
Summary: iOS14 has introduced new styles for date picker. The default new calendar style breaks the old spinner type style. This is a workaround to keep the spinner style as a default, until the calendar style is properly supported. According to [this github comment](react-native-datetimepicker/datetimepicker#285) it works well. This will fix DatePicker for both Fabric and Paper, since Fabric uses the interop layer to render it. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D23935328 fbshipit-source-id: 1a7fadba274e0537f0ac4ced60e23e7c809d57dc
Configuration menu - View commit details
-
Copy full SHA for c015f48 - Browse repository at this point
Copy the full SHA c015f48View commit details -
Group accessible views using the view hierarchy
Summary: In iOS when a parent UIView returns YES on [shouldGroupAccessibilityChildren](https://developer.apple.com/documentation/objectivec/nsobject/1615143-shouldgroupaccessibilitychildren), VoiceOver groups together the accessible children of the parent view, regardless of their position on screen. In iOS this defaults to NO. Reviewed By: sammy-SC Differential Revision: D23844265 fbshipit-source-id: eb99bf0873ccfd9fb196f8f7b6eafe055f6ae810
Configuration menu - View commit details
-
Copy full SHA for e2fd9d4 - Browse repository at this point
Copy the full SHA e2fd9d4View commit details
Commits on Sep 26, 2020
-
Fabric: Fixed crash in
colorComponentsFromColor()
Summary: This fixes a recently introduced crash in `colorComponentsFromColor()` (iOS implementation) caused by dereferencing a null pointer. The fix is just a copy of a code fragment from a previous implementation. Reviewed By: fkgozali Differential Revision: D23944812 fbshipit-source-id: 977135dd75c4375affddfd75183e4890618ae819
Configuration menu - View commit details
-
Copy full SHA for 920bd2c - Browse repository at this point
Copy the full SHA 920bd2cView commit details -
round up layoutWidth for Android 11 in ReactTextShadowNode
Summary: in Android 11, there's an issue where Text content is being clipped. The root cause appears to be a breaking change in how Android 11 is measuring text. rounding up the layoutWidth calculation mitigates the issue. Changelog: [Internal] Reviewed By: JoshuaGross Differential Revision: D23944772 fbshipit-source-id: 1639259da1c2c507c6bfc80fed377577316febac
Configuration menu - View commit details
-
Copy full SHA for 1438543 - Browse repository at this point
Copy the full SHA 1438543View commit details -
Don't crash when promise task is cancelled before its resolved (faceb…
…ook#29969) Summary: This pull request fixes a potential `TypeError` in TaskQueue.js, that happens if a promise is added to the task queue, which is cancelled between the promise starting and resolving. The exact error this resolves is ```js TypeError: TaskQueue: Error resolving Promise in task gen1: Cannot set property ‘popable’ of undefined 167 | queueStackSize: this._queueStack.length, 168 | }); > 169 | this._queueStack[stackIdx].popable = true; | ^ 170 | this.hasTasksToProcess() && this._onMoreTasks(); 171 | }) 172 | .catch(ex => { at Libraries/Interaction/TaskQueue.js:169:46 ``` This specific error was also reported in facebook#16321 ## Changelog [General] [Fixed] - Prevent TypeError in TaskQueue when cancelling a started but not resolved promise. Pull Request resolved: facebook#29969 Test Plan: The added test demonstrates the error, if run without the fixed applied to TaskQueue.js. This is a race condition error, so is difficult to replicate! Reviewed By: yungsters Differential Revision: D23785972 Pulled By: appden fbshipit-source-id: ddb8d06b37d296ee934ff39815cf5c9026d73871
Configuration menu - View commit details
-
Copy full SHA for 14042fb - Browse repository at this point
Copy the full SHA 14042fbView commit details -
Android: consolidate various prebuilt C++ .so configuration into Andr…
…oid-prebuilt.mk Summary: To make it easier for hosting app or other lib to get access to the ReactAndroidNdk .so outputs, let's define common targets in a dedicated Android-prebuilt.mk. Hosting app's Android.mk just need to include the mk path. Changelog: [Internal] Reviewed By: yungsters Differential Revision: D23938538 fbshipit-source-id: 850d690326d134212d5f040c6fa54ab50c53cb87
Configuration menu - View commit details
-
Copy full SHA for 45a4a67 - Browse repository at this point
Copy the full SHA 45a4a67View commit details -
TurboModule Android: rename libreact_nativemodule_manager to libturbo…
…modulejsijni Summary: TurboModule Java files are still using the old lib name: `turbomodulejsijni`, so let's keep it that way for now. Changelog: [Internal] Reviewed By: yungsters Differential Revision: D23946945 fbshipit-source-id: ff095ff51dca532c82e67e1c75e9a4e9be392d61
Configuration menu - View commit details
-
Copy full SHA for 4072b18 - Browse repository at this point
Copy the full SHA 4072b18View commit details -
TurboModule Android: Implement TurboModuleManagerDelegate specific to…
… RNTester Summary: This provides the RNTester specific impl of the manager delegate. The class is responsible to provide module lookup during runtime for TurboModule, and the C++ impl is using the codegen-generated lookup functions from :ReactAndroid and :packages:rn-tester:android:app Gradle targets. Note: RNTester still needs to explicitly enable TurboModule and instantiate this manager before it can activate TurboModule. Changelog: [Internal] Reviewed By: yungsters Differential Revision: D23938537 fbshipit-source-id: 7957847ecc58fef8d9a276d9d3d477ecec36a700
Configuration menu - View commit details
-
Copy full SHA for 9dbab5f - Browse repository at this point
Copy the full SHA 9dbab5fView commit details -
TurboModule Android: allow RNTester to activate TurboModule system
Summary: If built with `USE_CODEGEN=1` flag set, RNTester now activates the TurboModule system, also using various codegen output from the previous commits. Note that this is very early integration, and not thoroughly tested yet. To verify: ``` console.warn('TM enabled?', global.__turboModuleProxy != null); ``` {F337454276} Changelog: [Internal] Reviewed By: yungsters Differential Revision: D23946944 fbshipit-source-id: 5838aeb9ded07b1cc0fcb069535d1c6fb3725973
Configuration menu - View commit details
-
Copy full SHA for 8d4b5ef - Browse repository at this point
Copy the full SHA 8d4b5efView commit details -
Fix passing react native path in Podfile template (facebook#29285)
Summary: Since react-native-community/cli@e949e23#diff-d1800049b92343288bcbc1c484575058 the RN cli script returns an object with `:reactNativePath` instead of just JSON. Not super familiar with how objects / JSON works in ruby but using this syntax instead works. ## Changelog [Fixed] [iOS] - Fix passing react native path in Podfile template Pull Request resolved: facebook#29285 Test Plan: Tested in a project inside a monorepo using the latest version of RN CLI that the proper react-native path is now passed. Reviewed By: fkgozali Differential Revision: D23941162 Pulled By: hramos fbshipit-source-id: 0115412ec6d6bca101612d760dfc00cf89d97f1e
Configuration menu - View commit details
-
Copy full SHA for e599d6c - Browse repository at this point
Copy the full SHA e599d6cView commit details
Commits on Sep 27, 2020
-
Animated: Early detection of division by zero in AnimatedDivision
Summary: Same as D20969087 (facebook@be78673) but a bit more sophisticated. We currently see a lot of errors happens because of division by zero in AnimatedDivision module. We already have a check for that in the module but it happens during the animation tick where the context of execution is already lost and it's hard to find why exactly it happens. Adding an additional check to the constructor should trigger an error right inside render function which should make the error actionable. Changelog: [Internal] Fabric-specific internal change. Reviewed By: fkgozali Differential Revision: D23908993 fbshipit-source-id: d21be9a72ec04fe4ff0740777d9ff49cf1bcde73
Configuration menu - View commit details
-
Copy full SHA for 27378b7 - Browse repository at this point
Copy the full SHA 27378b7View commit details -
Fabric: Failing early in case if a argument of `-[RCTComponentViewFac…
…tory registerComponentViewClass:]` is nil Summary: Subject. Changelog: [Internal] Fabric-specific internal change. Reviewed By: JoshuaGross Differential Revision: D23914517 fbshipit-source-id: 1c909e7d21b12326881990ecf855e814bf957f3c
Configuration menu - View commit details
-
Copy full SHA for 308f9a1 - Browse repository at this point
Copy the full SHA 308f9a1View commit details -
Fabric: Adding
#pragma once
toImageTelemetry.h
Summary: Without this thing some stuff does not compile. Changelog: [Internal] Fabric-specific internal change. Reviewed By: fkgozali Differential Revision: D23948622 fbshipit-source-id: f066ada183c0fd6a7b5eec542395d44bbbfe80a3
Configuration menu - View commit details
-
Copy full SHA for 0b96ada - Browse repository at this point
Copy the full SHA 0b96adaView commit details
Commits on Sep 28, 2020
-
Make blocking people work in Dating Settings
Summary: Blocking people didn't work in Dating Settings without the Bridge. Changelog: [Internal] Reviewed By: ejanzer Differential Revision: D23904867 fbshipit-source-id: 4a68b9d99fcc812f6616783a06dc047a3bc64491
Configuration menu - View commit details
-
Copy full SHA for 863dd2d - Browse repository at this point
Copy the full SHA 863dd2dView commit details -
Summary: Changelog: [Internal] value needs to be set after minimum and maximum, otherwise it gets pinned to previous minimum/maximum. Default minimum is 0 and maximum is 1. If we set value to 20 and maximum to 50, previously the value would get pinned to 1 (maximum value). See [Apple Docs](https://developer.apple.com/documentation/uikit/uislider/1621346-value?language=objc) for more. Reviewed By: JoshuaGross Differential Revision: D23903545 fbshipit-source-id: 8e9dd49ced79d43b9591c7d24de59b9eaff5bdfd
Configuration menu - View commit details
-
Copy full SHA for e5006b3 - Browse repository at this point
Copy the full SHA e5006b3View commit details -
Do not attach root view until size is available
Summary: Changelog: [internal] # Why is text laid out twice in Fabric? Layout constraints (min and max size) change during startup of Fabric surface. 1. `Scheduler::startSurface` is called with max size being {inf, inf}. 2. `Scheduler::constraintSurfaceLayout` is called with max size equal to viewport. These are two operations that don't happen one after the other and on Android, CompleteRoot is called from JS before second operation is called. This triggers layout with max size {inf, inf} and later when second operation is called. Layout happens again now with correct size. # Fix Make sure `Scheduler::startSurface` is called with proper values and not {inf, inf}. Reviewed By: JoshuaGross, yungsters Differential Revision: D23866735 fbshipit-source-id: b16307543cc75c689d0c1f0a16aa581458f7417d
Configuration menu - View commit details
-
Copy full SHA for 2c896d3 - Browse repository at this point
Copy the full SHA 2c896d3View commit details -
RNTester: Add TextInput example to RTL tester
Summary: Add a TextInput to RTL screen in RNTester, to test RTL languages with TextInput. Changelog: [Internal] Reviewed By: shergin Differential Revision: D23914627 fbshipit-source-id: 84c62efe7034c0dfa2ef21be3f085880292c3930
Configuration menu - View commit details
-
Copy full SHA for 35b8f76 - Browse repository at this point
Copy the full SHA 35b8f76View commit details -
Update PerformanceLogger to nullable timespans, points, extras
Summary: Changelog: [Internal][Fixed] - When we close performance loggers (D23845307 (facebook@aebb97b)) we cannot rely that a timespan/point/extra will be in perf logger. Update types to reflect that. Reviewed By: rubennorte Differential Revision: D23907741 fbshipit-source-id: 63673aa69cd8c76253e4fee3463e37c86265cf7b
Configuration menu - View commit details
-
Copy full SHA for b85b4f4 - Browse repository at this point
Copy the full SHA b85b4f4View commit details -
Make the Instagram app compile again
Summary: Wrap iOS 14 SDK code in a `#if/#endif` so that the Instagram app compiles again Changelog: [Internal] Reviewed By: PeteTheHeat Differential Revision: D23948336 fbshipit-source-id: 67e6ee48d1951ae405c12b4ad39cf8c9817df627
Configuration menu - View commit details
-
Copy full SHA for 0a0d2c9 - Browse repository at this point
Copy the full SHA 0a0d2c9View commit details
Commits on Sep 29, 2020
-
Pressability: Support Lazy Hook Initialization
Summary: Changes `usePressability` so that it accepts a nullable `config` argument. This makes it possible for a component to use `usePressability` and lazily allocate the `config` and subsequent instance of `Pressability`. This can be useful for components that are commonly allocated but seldom pressed because it lets many usages of `usePressability` avoid allocating many extraneous objects. Changelog: [Internal] Reviewed By: kacieb Differential Revision: D23708206 fbshipit-source-id: 4a5063067131ce8c957fb16c49a2045e8c0b19fa
Configuration menu - View commit details
-
Copy full SHA for 9da4d87 - Browse repository at this point
Copy the full SHA 9da4d87View commit details -
Text: Cleanup Native Component Configuration
Summary: Cleans up the native component configuration for `RCTText` and `RCTVirtualText`. This //does// lead to a breaking change because `Text.viewConfig` will no longer exist. However, I think this is acceptable because `viewConfig` has already long stopped being an exported prop on other core components (e.g. `View`). Changelog: [General][Removed] - `Text.viewConfig` is no longer exported. Reviewed By: shergin Differential Revision: D23708205 fbshipit-source-id: 1ad0b0772735834d9162a65d9434a9bbbd142416
Configuration menu - View commit details
-
Copy full SHA for 06ce643 - Browse repository at this point
Copy the full SHA 06ce643View commit details -
remove most of tvOS remnants from the code (facebook#29407)
Summary: Refs: [0.62 release](https://reactnative.dev/blog/#moving-apple-tv-to-react-native-tvos), facebook#28706, facebook#28743, facebook#29018 This PR removes most of the tvOS remnants in the code. Most of the changes are related to the tvOS platform removal from `.podspec` files, tvOS specific conditionals removal (Obj-C + JS) or tvOS CI/testing pipeline related code. In addition to the changes listed above I have removed the deprecated `Platform.isTVOS` method. I'm not sure how `Platform.isTV` method is correlated with Android TV devices support which is technically not deprecated in the core so I left this method untouched for now. ## Changelog <!-- Help reviewers and the release process by writing your own changelog entry. For an example, see: https://github.com/facebook/react-native/wiki/Changelog --> * **[Internal] [Removed]** - remove most of tvOS remnants from the code: * `TVEventHandler`, `TVTouchable`, `RCTTVView`, `RCTTVRemoteHandler` and `RCTTVNavigationEventEmitter` * **[Internal] [Removed]** - remove `TARGET_TV_OS` flag and all the usages * **[iOS] [Removed]** - remove deprecated `Platform.isTVOS` method * **[iOS] [Removed]** - remove deprecated and TV related props from View: * `isTVSelectable`, `hasTVPreferredFocus` and `tvParallaxProperties` * **[iOS] [Removed]** - remove `BackHandler` utility implementation Pull Request resolved: facebook#29407 Test Plan: Local tests (and iOS CI run) do not yield any errors, but I'm not sure how the CI pipeline would react to those changes. That is the reason why this PR is being posted as Draft. Some tweaks and code adjustment could be required. Reviewed By: PeteTheHeat Differential Revision: D22619441 Pulled By: shergin fbshipit-source-id: 9aaf3840c5e8bd469c2cfcfa7c5b441ef71b30b6
Configuration menu - View commit details
-
Copy full SHA for 2160377 - Browse repository at this point
Copy the full SHA 2160377View commit details -
chore: deduplicate lock, update packages repository fields (facebook#…
…30044) Summary: This small PR includes the following changes: * deduplicate yarn lock file using [`yarn-deduplicate`](https://github.com/atlassian/yarn-deduplicate) package * deduplicate script has been added as `update-lock`, let me know if you would like also to see this in [`postinstall`](https://docs.npmjs.com/misc/scripts) (to automatically optimize lock on every dependency change) * according to the [npm docs](https://docs.npmjs.com/files/package.json#repository): * main `package.json` repository field has been replaced with shorthand * monorepo packages repository field has been extended by `directory` The main goal of introducing deduplication script was to optimize the dependencies footprint while developing and speed up the initial installation process. Running `yarn-deduplicate` also increase the security in some way, because it enforces usage only of the latest version of the package. You can read more about the benefits in the deduplicate script [repository](https://github.com/atlassian/yarn-deduplicate#duplicated-packages). ## Changelog <!-- Help reviewers and the release process by writing your own changelog entry. For an example, see: https://github.com/facebook/react-native/wiki/Changelog --> [Internal] [Added] - add yarn lock deduplication script Pull Request resolved: facebook#30044 Test Plan: `yarn install` was successful, this also should not affect yarn workspaces in any way. Reviewed By: GijsWeterings Differential Revision: D23959812 Pulled By: cpojer fbshipit-source-id: e2455e3718378e1ce6206e79463d4083f8fe5d47
Configuration menu - View commit details
-
Copy full SHA for 29f5dc2 - Browse repository at this point
Copy the full SHA 29f5dc2View commit details -
Daily
arc lint --take CLANGFORMAT
Reviewed By: zertosh Differential Revision: D23986055 fbshipit-source-id: 7bfe9f06f236f8866e812db060edf3d089fe253c
Configuration menu - View commit details
-
Copy full SHA for da8b50c - Browse repository at this point
Copy the full SHA da8b50cView commit details -
Convert AndroidDialogPicker to JS view configs
Summary: Convert AndroidDialogPicker to JS view configs Changelog: [Internal] Reviewed By: ejanzer Differential Revision: D23911673 fbshipit-source-id: d5fefa997432f0096308ab5593ba74c2c07b71e1
Configuration menu - View commit details
-
Copy full SHA for 121141c - Browse repository at this point
Copy the full SHA 121141cView commit details -
Fix dismissal animation of Modal Component
Summary: Changelog: [Internal] Fabric removes components bottom up (from leafs to the root). This means that by the time Fabric hides Modal, it has no content and therefore it appears as if Modal disappears without Animation. To fix this, we snapshot contents of the Modal before any of its contents are removed. Reviewed By: shergin Differential Revision: D23976244 fbshipit-source-id: 01c13b74e97f82816e8946fd9d1add1db10340b1
Configuration menu - View commit details
-
Copy full SHA for 5ccb5f5 - Browse repository at this point
Copy the full SHA 5ccb5f5View commit details -
Allow Java classes to hook into ScrollView scroll and layout events
Summary: For advanced interop cases. Changelog: [Internal] Reviewed By: sammy-SC Differential Revision: D23984345 fbshipit-source-id: f5c2a43a1bf5937f9974bcc5c66c36ec35e679c5
Configuration menu - View commit details
-
Copy full SHA for c06f765 - Browse repository at this point
Copy the full SHA c06f765View commit details -
Remove unused Fabric image instrumentation
Summary: Remove the older implementation of image instrumentation in Fabric by removing, RCTImageInstrumentationProxy, ImageInstrumentation from ImageRequest, and trackURLImageContentDidSetForRequest from RCTImageLoaderWithAttributionProtocol. Changelog: [RN][Fabric][Image] Remove unused Fabric image instrumentation Reviewed By: fkgozali Differential Revision: D23990606 fbshipit-source-id: 004d04025d031af11377a73e5bfb64b1e0449962
Configuration menu - View commit details
-
Copy full SHA for a7c026e - Browse repository at this point
Copy the full SHA a7c026eView commit details -
Split NativeImageStore into iOS and Android counterparts
Summary: Split the two specs, so that that we don't have to use Flow unions in the merged spec. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D23800841 fbshipit-source-id: 28b67578832ebd733bd080877e4ab763c013fded
Configuration menu - View commit details
-
Copy full SHA for ef145ad - Browse repository at this point
Copy the full SHA ef145adView commit details -
Allow NativeModule method return types to use type aliases
Summary: We already support type-aliases in our NativeModule method params. This diff extends the support to NativeModule method returns. **Note:** I need to see if I need to update the generators to handle this case. Will do that in this diff, after working through other higher priority stuff. Changelog: [Internal] Reviewed By: PeteTheHeat Differential Revision: D22828839 fbshipit-source-id: cf5c756d3cacf067df217cdb6212946320a2d4be
Configuration menu - View commit details
-
Copy full SHA for 341e05f - Browse repository at this point
Copy the full SHA 341e05fView commit details -
Delete NativeModuleSchemaBuilderConfig type
Summary: Unecessary, since `NativeModuleShape` is the exact same thing. Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D23119784 fbshipit-source-id: 8c4aded88a97a80aa977c13cc27e32fbe68150aa
Configuration menu - View commit details
-
Copy full SHA for 5142e99 - Browse repository at this point
Copy the full SHA 5142e99View commit details -
Summary: There are two types of types we care about: - Type aliases - Interface Declarations These types can be exported. I think we should build the types dictionary from only those types. Everything else should be ignored. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D23120241 fbshipit-source-id: 9f023081d0f9c85b45407b180ae7c3e7391eb725
Configuration menu - View commit details
-
Copy full SHA for 1435d65 - Browse repository at this point
Copy the full SHA 1435d65View commit details -
Clean up Module/Component detection logic in Flow parser
Summary: Just broke down getConfigType into two separate functions: `isModule` and `isComponent`. - Cleaned up `isComponent`, to check for the the AST node types. - Re-implemented `isModule` - Improved error messages. Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D23121896 fbshipit-source-id: 3df2b2e334c4cea8eabe2e73ecb9f1f1217e7be4
Configuration menu - View commit details
-
Copy full SHA for 22d6e04 - Browse repository at this point
Copy the full SHA 22d6e04View commit details -
Fix parser's buildSchema's return type
Summary: `buildSchema` delegates to two other functions: `buildComponentSchema`, or `buildComponentSchema`. Both return have a return type of *required* `SchemaType`. Therefore, `buildSchema` can have a return type of `SchemaType`. Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D23135499 fbshipit-source-id: f13db17549c93b965f372d9b68d06efc2a40c6cc
Configuration menu - View commit details
-
Copy full SHA for 8c138ba - Browse repository at this point
Copy the full SHA 8c138baView commit details -
Clean up parsers/flow/modules/index.js
Summary: Changes: - Adding type annotations, where possible - Delete unnecessary functions Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D23138227 fbshipit-source-id: b4b47492ddef49f496ed9fcb61ef1c000e3e8f18
Configuration menu - View commit details
-
Copy full SHA for 7805772 - Browse repository at this point
Copy the full SHA 7805772View commit details -
Colocate alias/method generation logic
Summary: ## Changes - Generating the aliases was split over `parsers/flow/modules/index.js`, and `parsers/flow/modules/aliases.js`. I moved everything to the latter file. - Generating methods was split over `parsers/flow/modules/index.js` and `parsers/flow/modules/methods.js`. I moved everything to the latter file. - More type-safety Changelog: [Internal] Reviewed By: PeteTheHeat Differential Revision: D23143382 fbshipit-source-id: e11b76bee7917a7db37ae7f1af64da5f046c5d1e
Configuration menu - View commit details
-
Copy full SHA for 747f493 - Browse repository at this point
Copy the full SHA 747f493View commit details -
Cleanup buildMethodSchema and introduce nullable methods
Summary: ## Changes - Started doing cleanup under `/parsers/flow/modules/methods.js` - Rename `NativeModuleMethodTypeShape` -> `NativeModulePropertyShape` - Moved optional property from `FunctionTypeAnnotation` to the `NativeModulePropertyShape` - Introduced a nullable property inside what was once `FunctionTypeAnnotation`. Changelog: [Internal] Reviewed By: PeteTheHeat Differential Revision: D23146050 fbshipit-source-id: 2fe97bb9c0736242682133e4923131a54bbea54b
Configuration menu - View commit details
-
Copy full SHA for f9ea525 - Browse repository at this point
Copy the full SHA f9ea525View commit details -
Summary: This diff: 1. Simplifies the NativeModule schema Flow types. 2. Simplifies the NativeModule Flow parser, to accomodate the modified schema, and to reduce code duplication. **Notes:** - If the parser detects an unrecognized type within the context of parsing an Array's element type, it'll omit the `elementType` property of the `ArrayTypeAnnotation`. Details: T72031674. **Rationale:** Basically, when an array element type is supported, we use it in our generators. When it's unsupported, we ignore it. In the unsupported case, there's no point in trying to parse the Array element type, which is why I decided to omit the `elementType` property. Ideally, our NativeModule specs would never use unsupported types, in any context. This would allow us to always parse and use the elementType. However, that seems like a it could be a hefty migration: we have > 400 specs. Since, this isn't a battle we need to fight right now, I left a TODO at the relevant lines instead. - The legacy codegen would generate structs for each object literal type in the file. In this re-implementation of the parser, I only insert into the aliases array when we detect a usage of a type-alias to an ObjectLiteral type annotation. With this decision, we won't be able to generate these unnecessary structs. This is good because we get rid of dead code. It's bad because it might make our migration to this codegen bit more difficult. [WARNING] This diff produces flow failures that will be addressed in subsequent diffs. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D23201387 fbshipit-source-id: 55ce0df925a8bae0e7d5bb2a9b63167607eba461
Configuration menu - View commit details
-
Copy full SHA for 2d19037 - Browse repository at this point
Copy the full SHA 2d19037View commit details -
Add unit tests to validate module parser
Summary: ## Test Structure - Parameter Parsing - For type in [optional, nullable, optional and nullable, required]: - Can parse Primitives - Can parse Object - Can parse Arrays - Can parse primitive element types - Can parse Object element types - Can parse Array element types - Can parse Reserved Type element types - Can parse Type alias element types - Can parse Object Literals - Can parse Function - Can parse Reserved Types (e.g: RootTag) - Can parse Type alias - Can parse Object Literals - For prop type in [optional, nullable, optional and nullable, required]: - Can parse primitive prop types - Can parse Object prop types - Can parse Array prop types - Can parse Reserved Type prop types - Can parse Type alias prop types - Can parse Object Literal prop types - Return Parsing - For type in [nullable, required]: - Can parse Promises - Can parse Primitives - Can parse Object - Can parse Arrays - Can parse primitive element types - Can parse Object element types - Can parse Array element types - Can parse Reserved Type element types - Can parse Type alias element types - Can parse Object Literals - Can parse Function - Can parse Reserved Types (e.g: RootTag) - Can parse Type aliases - Can parse Object Literals - For prop type in [optional, nullable, optional and nullable, required]: - Can parse primitive prop types - Can parse Object prop types - Can parse Array prop types - Can parse Reserved Type prop types - Can parse Type alias prop types - Can parse Object Literal prop types Changelog: [Internal] Reviewed By: PeteTheHeat Differential Revision: D23089925 fbshipit-source-id: 73c3b1ef33b402265c14f0ac9e364414a5d54dca
Configuration menu - View commit details
-
Copy full SHA for aba4e87 - Browse repository at this point
Copy the full SHA aba4e87View commit details -
Fix type alias nullability resolution in module parser
Summary: Consider this case: ``` type Animal = ?{| name: string, |}; type B = Animal export interface Spec extends TurboModule { +greet: (animal: B) => void; } ``` The generated output for this spec is: ``` namespace JS { namespace NativeSampleTurboModule { struct Animal { NSString *name() const; Animal(NSDictionary *const v) : _v(v) {} private: NSDictionary *_v; }; } } protocol NativeSampleTurboModuleSpec <RCTBridgeModule, RCTTurboModule> - (void)greet:(JS::NativeSampleTurboModule::Animal &)animal; end ``` Observations: 1. The codegen looks as though we wrote `+greet: (animal: ?Animal) => void;` as opposed to `+greet: (animal: B) => void;` 2. The generated struct is called `Animal`, not `B`. ## After this diff Whenever we detect a usage of a type alias, we recursively resolve it, keeping a track of whether the resolution will be nullable. In this example, we follow B to Animal, and then Animal to ?{|name: string|}. Then, we: 1. Replace the `B` in `+greet: (animal: B) => void;` with `?Animal`, 2. Pretend that `Animal = {|name: string|}`. Why do we make all type alias RHSs required? 2. This design is simpler than managing nullability in both the type alias usage, and the type alias RHS. 3. What does it mean for a C++ struct, which is what this type alias RHS will generate, to be nullable? ¯\_(ツ)_/¯. Nullability is a concept that only makes sense when talking about instances (i.e: usages) of the C++ structs. Hence, it's better to manage nullability within the actual TypeAliasTypeAnnotation nodes, and not the associated ObjectTypeAnnotations. ## Other Changes - Whenever we use the `Animal` type-alias, the e2e jest tests validate that the type alias exists in the module schema. Changelog: [Internal] Reviewed By: PeteTheHeat Differential Revision: D23225934 fbshipit-source-id: 8316dea2ec6e2d50cad90e178963c6264044f7b7
Configuration menu - View commit details
-
Copy full SHA for 572e1da - Browse repository at this point
Copy the full SHA 572e1daView commit details -
Export module type annotations from CodegenSchema
Summary: This diff has a few changes: - All type annotations are now declared top-level, and exported from `CodegenSchema.js`. Changelog: [Internal] Reviewed By: hramos Differential Revision: D23616473 fbshipit-source-id: 1509c304305e56674bd76c44bc49f755dfeaa332
Configuration menu - View commit details
-
Copy full SHA for 1194a36 - Browse repository at this point
Copy the full SHA 1194a36View commit details -
Refactor: Introduce Required<T> generic type
Summary: This diff introduces a `Required<T>` generic type in CodegenSchema. Why? NativeModule aliase RHSs are basically ObjectTypeAnnotations but they have `nullable` fixed to `false`. This generic type reduces duplication in the schema flow types. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D23645208 fbshipit-source-id: da984f64fa17d8533a3ea74b132ce10aae9aa7ed
Configuration menu - View commit details
-
Copy full SHA for 2e0fb69 - Browse repository at this point
Copy the full SHA 2e0fb69View commit details -
Refactor: Make NativeModuleAliasMap $ReadOnly
Summary: We were using `$ReadOnly<NativeModuleAliasMap>` everywhere, so I figured we'd just make the type itself `$ReadOnly`. Changelog: [Internal] Reviewed By: PeteTheHeat Differential Revision: D23645207 fbshipit-source-id: 4e018d5768f4fcfd00492def7d840a5054cb2b73
Configuration menu - View commit details
-
Copy full SHA for 92a6722 - Browse repository at this point
Copy the full SHA 92a6722View commit details -
Rename GenericPromiseTypeAnnotation to PromiseTypeAnnotation
Summary: We have first class support for Promises in our codegen. So, it's more appropriate to just call this PromiseTypeAnnotation, as opposed to GenericPromiseTypeAnnotation. Changelog: [Internal] Reviewed By: hramos Differential Revision: D23645209 fbshipit-source-id: bfc0b909750e221e18be33acf197f342a2918aa9
Configuration menu - View commit details
-
Copy full SHA for 4927de6 - Browse repository at this point
Copy the full SHA 4927de6View commit details -
Refactor: Make NativeModuleArrayTypeAnnotation elementType customizable
Summary: In the future, we'll use `NativeModuleArrayTypeAnnotation` inside JS struct objects. Structs cannot contain `ObjectTypeAnnotations` anywhere. Therefore, we need the elementType of `NativeModuuleArrayTypeAnnotation`'s elementType customizable. Changelog: [Internal] Reviewed By: hramos Differential Revision: D23645210 fbshipit-source-id: 97abb993d59536ebd68ec08b18ce7f2801c68a2d
Configuration menu - View commit details
-
Copy full SHA for 91a7da0 - Browse repository at this point
Copy the full SHA 91a7da0View commit details -
Update generator fixtures to comply with Schema flow types
Summary: In diffs below, we made several changes to the NativeModule schema. This diff just ensures that the input to our generator snapshot tests, which are module schemas, are valid. Changelog: [Internal] Reviewed By: TheSavior Differential Revision: D23633942 fbshipit-source-id: 444ccd60f6ec76e348a8e54b946260464ff3aeee
Configuration menu - View commit details
-
Copy full SHA for 5f5ccfc - Browse repository at this point
Copy the full SHA 5f5ccfcView commit details -
Create utilities for module generators
Summary: There are two operations we do in every NativeModule generator: - We convert the `SchemaType` into a map of NativeModule schemas - If the type-annotation is a TypeAliasTypeAnnotation, we resolve it by doing a lookup on the NativeModuleAliasMap. This is usually followed by an invariant to assert that the lookup didn't fail. Both procedures have been translated into utilities for use across our generators. I also deleted `getTypeAliasTypeAnnotation` which will no longer be used. Changelog: [Internal] Reviewed By: hramos Differential Revision: D23667249 fbshipit-source-id: 4e34078980e2caa4daed77c38b1168bfc161c31c
Configuration menu - View commit details
-
Copy full SHA for c300193 - Browse repository at this point
Copy the full SHA c300193View commit details -
Rewrite ObjC++ module generator
Summary: ## Misc. Improvements * We now have 95%+ flow coverage in all generator files. Henceforth, we can make changes to these files with more confidence, and trust flow to catch more errors. This should also improve the DevX of working on these files. * Better templates: Instead of doing string replace with RegExps, we instead use functions and leverage JS template literals to generate our code. A few benefits: (1) data dependencies of templates are clearly visible, and statically checked by flow, (2) the templates are more readable in VSCode. * Merged the GenerateModuleHObjCpp.js and GenerateModuleMm.js generators. They can share a lot of logic, so it's not a good idea to keep them separate. * The ObjC++ module generator no longer generates “dead” structs (i.e structs that aren’t used by type-safety infra). In fact, it explicitly only supports the types in our Wiki. (I know this wasn’t the case with the legacy codegen, because we were generating native code for enums in the legacy codegen). This is a mixed bag. The test to verify correctness will be more difficult to write. However, keeping structs in the codegen needlessly complicates the parsers + generators, and creates technical debt for us to clean up later. ## Abstractions - **StructCollector:** As we serialize NativeModule methods, when we detect an ObjectTypeAnnotation in the return type of `getConstants()` or inside a method param, we must create a Struct JS object for it. When we detect a type-alias (also in the same locations), we must look up that type-alias and create a Struct from its RHS. A Struct is basically an ObjectTypeAnnotation with a context (i.e: used in getConstants() vs as a method param), that cannot contain other ObjectTypeAnnotations. - **serializeMethod.js** Given a NativeModule method type annotation, output the protocol method, JS return type, selector, a record of which params were structs, and which structs. Basically, this is all the information necessary to generate the declaration and implementation codegen for a partiular NativeModule method. - **serializeStruct/*.js**: After creating all these Structs, we need to loop over all of them, and tranform them into ObjC++ code. - **serializeStruct.js**: Depending on the struct context, calls either `serializeRegularStruct.js` or `serializeConstantsStruct.js`. Both of these files have the same layout/abstractions. They look very similar. - **serializeModule.js:** Outputs RCTCxxConvert categories for transforming `NSDictionary *` into C++ structs. Outputs ObjCTurboModule subclass. ## Algorithm ``` for spec in NativeModuleSpecs structCollector = new StructCollector resolveAlias = (aliasName) => nullthrows(spec.aliases[aliasName]) methodDatas = [] for method in methods(spec) methodData.push(serializeMethod(method, structCollector, resolveAlias)) end structs = structCollector.getStructs() output generateImplCodegen(methodDatas, structs) output generateHeaderCodegen(methodDatas, structs) end ``` Changelog: [Internal] Reviewed By: hramos Differential Revision: D23633940 fbshipit-source-id: 7c29f458b65434f4865ef1993061b0f0dc7d04ce
Configuration menu - View commit details
-
Copy full SHA for c267b8d - Browse repository at this point
Copy the full SHA c267b8dView commit details -
E2E snapshot test ObjC++ generator
Summary: NativeModule specs exist under `react-native-github/packages/react-native-codegen/src/__tests__/modules/fixtures`. `GenerateModuleObjCpp-test.js` runs the RN Codegen on those NativeModule specs, and saves the output inside a snapshot. For convenience, the folowing command runs the legacy codegen on the fixtures: ``` buck build fbsource//xplat/js/react-native-github/packages/react-native-codegen/src/__tests__/modules:RNCodegenModuleFixtures-flow-types-ios --show-output ``` Changelog: [Internal] Reviewed By: hramos Differential Revision: D23637708 fbshipit-source-id: 3319f319515eca42b4499682313fea6e0bdc2a06
Configuration menu - View commit details
-
Copy full SHA for 1ac1255 - Browse repository at this point
Copy the full SHA 1ac1255View commit details -
Summary: Just updating this generator to understand the new RN Codegen Module parser flow types. Changelog: [Internal] Reviewed By: PeteTheHeat Differential Revision: D23667254 fbshipit-source-id: 558dd7ac5b4541edf40248b8ab8bb50d31fa8624
Configuration menu - View commit details
-
Copy full SHA for c0408b5 - Browse repository at this point
Copy the full SHA c0408b5View commit details -
Summary: Just updated the generator to work with the new RN Codegen Flow Parser types. Changelog: [Internal] Reviewed By: PeteTheHeat Differential Revision: D23667252 fbshipit-source-id: 34404a478ddd67446d82b5f98e1051300064e95c
Configuration menu - View commit details
-
Copy full SHA for 4ab7cc2 - Browse repository at this point
Copy the full SHA 4ab7cc2View commit details -
Summary: Just updated the generator to work with the new RN Codegen Flow Parser types. Changelog: [Internal] Reviewed By: hramos Differential Revision: D23667255 fbshipit-source-id: 40b7747aad89f6d5bbb9f42d59a4df9633060c66
Configuration menu - View commit details
-
Copy full SHA for 560ac1a - Browse repository at this point
Copy the full SHA 560ac1aView commit details -
Summary: Just updated the generator to work with the new RN Codegen Flow Parser types. Changelog: [Internal] Reviewed By: PeteTheHeat Differential Revision: D23667250 fbshipit-source-id: f36b5418101c40331964d1f9ede7c6bd7924383d
Configuration menu - View commit details
-
Copy full SHA for cedd628 - Browse repository at this point
Copy the full SHA cedd628View commit details -
Summary: Just updated the generator to work with the new RN Codegen Flow Parser types. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D23667253 fbshipit-source-id: ef94e75287d37dfd7b80f61455a1bfa34bddeb28
Configuration menu - View commit details
-
Copy full SHA for 1b3dc1d - Browse repository at this point
Copy the full SHA 1b3dc1dView commit details -
Fix ObjC++ module generator output
Summary: * Removed extraneous closing brace. * Fixed static method signature, replacing double colon with an underscore (`static facebook::jsi::Value __hostFunction_Native${moduleName}SpecJSI::${methodName}()` -> `static facebook::jsi::Value __hostFunction_Native${moduleName}SpecJSI_${methodName}()`). * Wrap `getConstants` selector name with `selector()`. * Pass through `getConstants` and `constantsToExport` to allow de-duping of `getConstants` method in generator output. Note that the FBReactNativeSpec that is output by the generator still has some issues that need to be addressed before it can be used. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D23910505 fbshipit-source-id: 37d884885b8878f38d40637377c2a74a728c3a13
Configuration menu - View commit details
-
Copy full SHA for 97d3e85 - Browse repository at this point
Copy the full SHA 97d3e85View commit details -
Fix ObjC++ structs and method mapping
Summary: Adjust generated ObjC++ code to resolve a few build time and run time errors: * Suppress CONSTANTS struct implementations * Use type alias name as struct name when serializing arguments that involve a type alias * Use actual number of arguments for a method when generating method map. With these changes in place, RNTester can be built and run using the code that is generated by the new codegen. Changelog: [Internal] Reviewed By: hramos Differential Revision: D23926500 fbshipit-source-id: 88fcbb795fd71dc8155eb26348db943975e13e84
Configuration menu - View commit details
-
Copy full SHA for 6d6e046 - Browse repository at this point
Copy the full SHA 6d6e046View commit details -
Remove header_namespace from module codegen target
Summary: Making this change because I see this error when compiling Internationalization ``` ➜ fbsource buck build //xplat/js/RKJSModules/Libraries/Internationalization:generated_objcpp_modules-InternationalizationApple buck-out/gen/33fbdb84/xplat/js/RKJSModules/Libraries/Internationalization/generate_module_mm-Internationalization/FBReactNativeInternationalizationSpec-generated.mm:15:9: fatal error: 'FBReactNativeInternationalizationSpec.h' file not found #import "FBReactNativeInternationalizationSpec.h" ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated. Command failed with exit code 1. command: [/Applications/Xcode_11.6.0_fb.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++, @/Users/ramanpreet/fbsource/buck-out/bin/33fbdb84/xplat/js/RKJSModules/Libraries/Internationalization/generated_objcpp_modules-InternationalizationApple#compile-FBReactNativeInternationalizationSpec-generated.mm.o... ``` Since the header namespace is "FBReactNativeInternationalizationSpec", we can only import the header file via "FBReactNativeInternationalizationSpec/FBReactNativeInternationalizationSpec.h", according to this buck documentation: https://buck.build/rule/cxx_library.html#headers. Not entirely sure how this target compiled before. The legacy codegen buck target also set the header namespace to "": https://fburl.com/diffusion/3p85qhf9. Changelog: [Internal] Reviewed By: hramos Differential Revision: D23978436 fbshipit-source-id: c9cd7c710edf94df6df10778f8603870f92275a7
Configuration menu - View commit details
-
Copy full SHA for 6e6443a - Browse repository at this point
Copy the full SHA 6e6443aView commit details -
Align multi-line TextInput onSubmitEditing behavior (facebook#29177)
Summary: Aligns behavior to be consistent with Android and the [documentation](https://reactnative.dev/docs/textinput#bluronsubmit). `onSubmitEditing` should not be called when `blurOnSubmit=false`. ## Changelog [iOS] [Fixed] - Align multi-line TextInput onSubmitEditing behavior Pull Request resolved: facebook#29177 Test Plan: ![textinput-blur-align](https://user-images.githubusercontent.com/4123478/85121116-85b4b200-b224-11ea-86c5-065e9e6d22ba.gif) Reviewed By: shergin Differential Revision: D22488870 Pulled By: hramos fbshipit-source-id: 2dec3a55da6384389a8358896ef1fbfd806d0304
Configuration menu - View commit details
-
Copy full SHA for 521b167 - Browse repository at this point
Copy the full SHA 521b167View commit details -
Summary: The sorting function currently forms a partial ordering, not a total ordering. This can cause problems with certain sequences of immediate or conflicting mutations, leading to UI corruption or crashes. Changelog: [Internal] Reviewed By: shergin Differential Revision: D24002668 fbshipit-source-id: edc9b4c1e3104897cb0c5fd6da563ec43d800494
Configuration menu - View commit details
-
Copy full SHA for ca51dc6 - Browse repository at this point
Copy the full SHA ca51dc6View commit details
Commits on Sep 30, 2020
-
TurboModule Android: properly set up RNTester ndkBuild and cleanup de…
…pendencies Summary: Before RNTester compilation starts, it needs to wait for :ReactAndroid NDK build to finish, so that it knows where to find the exported .so files. This tells the `preBuild` task to depends on `:ReactAndroid:prepareReactNdkLibs` task. The .so files are now copied over to the local project build dir, instead of depending on :ReactAndroid's build dir. For cleanup, the reverse ordering is needed: before `clean` removed our temp dir to store the copied .so files, make sure the ndkBuild cleanup tasks execute beforehand. Changelog: [Internal] Reviewed By: hramos Differential Revision: D23982989 fbshipit-source-id: 955d7c9bccb5855b6b066fca89764df2ede89f63
Configuration menu - View commit details
-
Copy full SHA for b931bd3 - Browse repository at this point
Copy the full SHA b931bd3View commit details -
TurboModule Android: move SampleTurboModule impl and spec to OSS
Summary: This is the Java/JNI impl of the NativeSampleTurboModule.js, just like on iOS. The files here are supposed to be generated by the react-native-codegen, but they are checked in to the repo for easier build integration with RNTester. Changelog: [Internal] Reviewed By: hramos Differential Revision: D23985746 fbshipit-source-id: 46340d778f3d964efe5b538d15ebe0f2cab04862
Configuration menu - View commit details
-
Copy full SHA for b9a1ea9 - Browse repository at this point
Copy the full SHA b9a1ea9View commit details -
TurboModule Android: install SampleTurboModule and the playground to …
…RNTester Summary: This compiles SampleTurboModule into RNTester Android. It also adds the NativeModule playground to show case TurboModule system to RNTester examples, just like in iOS. {F337854369} Changelog: [Android][TurboModule] Added TurboModule example to RNTester when `USE_CODEGEN` is set Reviewed By: hramos Differential Revision: D24004711 fbshipit-source-id: b682dd51fa998ee2e60f8d6ffd8c39220d13a7fe
Configuration menu - View commit details
-
Copy full SHA for 94b198c - Browse repository at this point
Copy the full SHA 94b198cView commit details -
TurboModule: exclude NativeSampleTurboModule in the schema
Summary: The sample module is meant for demo only, but it lives alongside other core modules in react-native repo. For now, exclude it in the Flow-type parsing, just like `NativeUIManager.js` Changelog: [Internal] Reviewed By: hramos Differential Revision: D24005108 fbshipit-source-id: 9ef524bfe2778dd983c94d1701f9ce49da5e0a68
Configuration menu - View commit details
-
Copy full SHA for 1d89ef8 - Browse repository at this point
Copy the full SHA 1d89ef8View commit details -
Upgrade Robolectric from 4.3.1 -> 4.4
Summary: Changelog: [Internal] Reviewed By: jiawei-lyu Differential Revision: D23718455 fbshipit-source-id: 39c684722db1269e2179cf9680cb728be1171afb
Configuration menu - View commit details
-
Copy full SHA for 5bb54c9 - Browse repository at this point
Copy the full SHA 5bb54c9View commit details -
TurboModule iOS: Remove module filters
Summary: These native modules are now filtered downstream in `combine-js-to-schema-cli.js`. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D24003572 fbshipit-source-id: d858dbf4a4b6d522ed528f9c2262f37243317160
Configuration menu - View commit details
-
Copy full SHA for c92e767 - Browse repository at this point
Copy the full SHA c92e767View commit details -
Fix React Native Robolectric 4.4 deps (facebook#30073)
Summary: Pull Request resolved: facebook#30073 Changelog: [Android][Added] - Test infra: Robolectric 4.3.1 -> 4.4 upgrade Reviewed By: fkgozali Differential Revision: D24009953 fbshipit-source-id: 70549187f4af0abd2ea10f6725eecadbaef7281b
Configuration menu - View commit details
-
Copy full SHA for d373a8d - Browse repository at this point
Copy the full SHA d373a8dView commit details -
Summary: Changelog: [internal] Components can update state multiple times before the state update queue is flushed. This causes unnecessary layout/diff and mount passes. To solve this, drop stale state updates inside `stateUpdateQueue_ ` for specific `ShadowNodeFamily`. Delivering stale status updates is redundant. Let's take SafeAreaView as an example. It schedules 5-6 state updates before `stateUpdateQueue_` is flushed. That's unnecessary work blocking JS thread. We only care about the latest state update. Same for TextInput and other components using state updates. Reviewed By: JoshuaGross Differential Revision: D23987707 fbshipit-source-id: 2e3f92cc93af61d78ac564aa40aef165af64b8c1
Configuration menu - View commit details
-
Copy full SHA for 0544568 - Browse repository at this point
Copy the full SHA 0544568View commit details -
Remove idx package from inspector msggen
Summary: This was causing a crash in babel: ``` $ babel src --out-dir bin --source-maps Error: Cannot find module 'babel-plugin-idx' from '~/fbsource/xplat/js/react-native-github/ReactCommon/hermes/inspector/tools/msggen' - If you want to resolve "idx", use "module:idx" { code: 'MODULE_NOT_FOUND' } ``` It didn't appear that this module was used, so I deleted it. Changelog: [Internal] Reviewed By: neildhar Differential Revision: D23993272 fbshipit-source-id: dd34f0fc652cb27c87c891ca37d0eba66a19a6cf
Configuration menu - View commit details
-
Copy full SHA for 8c77f70 - Browse repository at this point
Copy the full SHA 8c77f70View commit details -
iOS: fix ios-configure-glog.sh syntax issue
Summary: A `cat` to file was removed accidentally, preventing the configuration script from executing successfully as part of a `pod install`. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D24024824 fbshipit-source-id: 94af0c6e663320bfac04ee8f6fb37bd4bdc379a4
Configuration menu - View commit details
-
Copy full SHA for 7054e58 - Browse repository at this point
Copy the full SHA 7054e58View commit details -
chore: update RNTester example link in PanResponder comment (facebook…
…#30051) Summary: This PR fixes a small leftover after the RNTester migration to the monorepo package - an invalid link in the `PanResponder` comment. Refs: * facebook#29567 * facebook/react-native-website#2177 (the similar correction was a part of merged PR in the RN docs) ## Changelog <!-- Help reviewers and the release process by writing your own changelog entry. For an example, see: https://github.com/facebook/react-native/wiki/Changelog --> [Internal][Fixed] PanResponder: correct example link in comment Pull Request resolved: facebook#30051 Test Plan: N/A Reviewed By: fkgozali Differential Revision: D24025065 Pulled By: hramos fbshipit-source-id: 190486e458fb8e83a35fa2d3c62f4483f3a4334d
Configuration menu - View commit details
-
Copy full SHA for 8a31dfe - Browse repository at this point
Copy the full SHA 8a31dfeView commit details
Commits on Oct 1, 2020
-
Android: removed Robolectric 4.3.1 Buck configuration
Summary: It was recently upgraded to 4.4, so we don't need the 4.3.1 anymore. Changelog: [Android][Removed] Removed Robolectric 4.3.1 setup Reviewed By: jselbo Differential Revision: D24030822 fbshipit-source-id: 09b3c577d32028723e7bbc02f13459a7ae69b749
Configuration menu - View commit details
-
Copy full SHA for 18f7aba - Browse repository at this point
Copy the full SHA 18f7abaView commit details -
Fixed incorrect assert in RCTScrollViewComponentView
Summary: This diff removes an incorrect assert and replaces it with a debug-only verification phase that compares "what we want" with "what we get". Changelog: [Internal] Fabric-specific internal change. Reviewed By: PeteTheHeat Differential Revision: D23983123 fbshipit-source-id: 03a628b4f8baa1f5fe4b55354b7c943e38b5e537
Configuration menu - View commit details
-
Copy full SHA for c421838 - Browse repository at this point
Copy the full SHA c421838View commit details -
Update Android Gradle plugin to 4.0.1 (facebook#29013)
Summary: This is a major version update that needs to be tested thoroughly. Android Studio 4.0.1 is now available in the stable channel https://androidstudio.googleblog.com/2020/05/android-studio-40-available-in-stable.html https://developer.android.com/studio/releases/gradle-plugin#4.0.1 ## Changelog [Android] [Changed] - Update Android Gradle plugin to 4.0.1 Pull Request resolved: facebook#29013 Test Plan: Build project Closes facebook#29044 Reviewed By: shergin Differential Revision: D24041233 Pulled By: fkgozali fbshipit-source-id: 68ef0f313aa773866e65796e323ed0f19f41f834
Configuration menu - View commit details
-
Copy full SHA for 553fb8b - Browse repository at this point
Copy the full SHA 553fb8bView commit details -
Log View hierarchy if removeViewAt crashes
Summary: If removeViewAt crashes, log the children of the parent view, and all of the parent's ancestors. Changelog: [Internal] Reviewed By: shergin Differential Revision: D24019515 fbshipit-source-id: c5b1ca0948ebc47f2648e161770affa8542ca5dd
Configuration menu - View commit details
-
Copy full SHA for 8b7fd37 - Browse repository at this point
Copy the full SHA 8b7fd37View commit details -
Summary: Changelog: [Internal] Reviewed By: mroch Differential Revision: D24040584 fbshipit-source-id: 106caa00cadd6930685c0030ad74685c64572ba9
Configuration menu - View commit details
-
Copy full SHA for dd35bf5 - Browse repository at this point
Copy the full SHA dd35bf5View commit details
Commits on Sep 22, 2021
-
Merge commit '7b82df287d36e39073d29e3ae3adbe82cf424055' into amgleitm…
…an/0.64-merge-head
Configuration menu - View commit details
-
Copy full SHA for 3e0ced8 - Browse repository at this point
Copy the full SHA 3e0ced8View commit details -
Merge commit '54016faa7dfdde321023e729636a45b5bb682856' into amgleitm…
…an/0.64-merge-head
Configuration menu - View commit details
-
Copy full SHA for 100b98f - Browse repository at this point
Copy the full SHA 100b98fView commit details -
Merge commit '23717e48aff3d7fdaea30c9b8dcdd6cfbb7802d5' into amgleitm…
…an/0.64-merge-head
Configuration menu - View commit details
-
Copy full SHA for 2fd7f46 - Browse repository at this point
Copy the full SHA 2fd7f46View commit details -
Merge commit '891b6b0c14d820d38f0a0b8f5ebf749c5cd14a94' into amgleitm…
…an/0.64-merge-head
Configuration menu - View commit details
-
Copy full SHA for 4f80fbd - Browse repository at this point
Copy the full SHA 4f80fbdView commit details -
Merge commit '3a6327a5d9ebfd0de56c37009ab7de1d0e6bdf85' into amgleitm…
…an/0.64-merge-head
Configuration menu - View commit details
-
Copy full SHA for b0c8b79 - Browse repository at this point
Copy the full SHA b0c8b79View commit details
Commits on Sep 23, 2021
-
Merge commit 'e599d6c5d338c1b4d1a0d988e0d9ff83c179fb54' into amgleitm…
…an/0.64-merge-head
Configuration menu - View commit details
-
Copy full SHA for 0e18e8f - Browse repository at this point
Copy the full SHA 0e18e8fView commit details -
Merge commit '06ce64356594a921cd9ae4f71c15dd56dd0e53a3' into amgleitm…
…an/0.64-merge-head
Configuration menu - View commit details
-
Copy full SHA for 7dc9633 - Browse repository at this point
Copy the full SHA 7dc9633View commit details
Commits on Sep 25, 2021
-
Merge commit '216037757494edf990ecb5a3dfdf6f75bab818a1' into amgleitm…
…an/0.64-merge-head
Configuration menu - View commit details
-
Copy full SHA for 648f7dd - Browse repository at this point
Copy the full SHA 648f7ddView commit details -
Merge commit 'dd35bf534c4ced6af853bf2c9a995808e42b8a95' into amgleitm…
…an/0.64-merge-head
Configuration menu - View commit details
-
Copy full SHA for 682b5a2 - Browse repository at this point
Copy the full SHA 682b5a2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 50b0b81 - Browse repository at this point
Copy the full SHA 50b0b81View commit details -
Configuration menu - View commit details
-
Copy full SHA for b5e5c74 - Browse repository at this point
Copy the full SHA b5e5c74View commit details
Commits on Sep 27, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 9fd177f - Browse repository at this point
Copy the full SHA 9fd177fView commit details -
Back out "Align multi-line TextInput onSubmitEditing behavior"
Summary: This is a revert of D22488870 (facebook@521b167). (facebook#29177) We have to revert it because we realized that it's a breaking change without a very good reason. We have to figure out a better way to unify platform behaviors. Changelog: [iOS][Fixed] - Reverted recent change in TextInput (facebook#29177) Reviewed By: fkgozali Differential Revision: D24200517 fbshipit-source-id: af0e561a6b8d9ade487be6b197a5d79d326442b6
Configuration menu - View commit details
-
Copy full SHA for 154fd42 - Browse repository at this point
Copy the full SHA 154fd42View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9af8dcd - Browse repository at this point
Copy the full SHA 9af8dcdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9ae7f5f - Browse repository at this point
Copy the full SHA 9ae7f5fView commit details