Summary:
Add support for io_uring based async read/recvmsg
(Note: this ignores all push blocking failures!)
Reviewed By: kevin-vigor
Differential Revision: D21208891
fbshipit-source-id: 21b3b5e0f201e982ecb50a284d03ab53413ec3e3
Summary: Added in D14209157, but the JavaScript no longer ever calls this method.
Reviewed By: jknoxville
Differential Revision: D21290792
fbshipit-source-id: df1969d83f0dc096a24977c15c27100d2f2bdfc0
Summary:
Background for this diff: https://fb.quip.com/KqEfAlKYlgme
Some plugins don't respect that stuff (livefeed and graphql), but for others it seems to work fine.
This is just a PoC, there are some present bugs concerning the combination of selecting and bg plugins
Questions to investigate:
- [x] make sure that LiveFeed and GraphQL disconnect properly. There might be more plugins that need that
- [x] verifiy that we don't loose one of the original goals of background plugins, e.g. QPL collecting and sending data from device start. Does this still work as intended after this change?
- [x] how can we observe / measure improvements? Are dev builds more responsive after this? Is the layout inspector smoother for example because no QPL plugins are interweaved?
- [x] how is forward and backward compatibility?
- If Flipper is updated, but device not: No change I think, as getBackgroundPlugins() will return an empty set, and background plugins are initiated as usual, so old behavior
- If device is updated, but Flipper not, background plugins won't be started until they are selected. This is a degradation, but hopefully explainable.
- [x] Verify QPL buffer is not unbounded
- [x] Share architecutre changes with team
For Graphql updates: D20943455
Added runtime stats to monitor network traffic (sadly had to redo that since scuba couldn't handle the data format used at first, so probably will hold of landing this diff a week to make sure we can see some effects)
Follow up work:
[x] wait until we released the stat tracking before we release this, to be able to measure the effect?
[x] make sure graphql fix lands
[ ] use side effects abstraction
[ ] fix other background plugins (android only) or fix it in a generic way:
{F234394286}
Changelog: Background plugins will no longer receive a Flipper connection if they are disabled. This should significantly reduce the overall load of Flipper both on the device and desktop when unused plugins are disabled used, which could otherwise generate 10MB/s of network traffic certain scenarios. All plugins *should* be able to handle to this gracefully, but since this is quite a fundamental change, reach out to the Flipper team when in doubt!
Reviewed By: jknoxville
Differential Revision: D20942453
fbshipit-source-id: b699199cb95c1b3e4c36e026b6dfaee7d1652e1f
Summary: Currently subdescriptors are *always* rendered. Allow them to return `nil` to signal that they don't need to be rendered.
Reviewed By: cuva
Differential Revision: D21157249
fbshipit-source-id: 68a83424efc50723e1ec71c069feef8e10037671
Summary:
Before this diff, Flipper showed *leaf* views created by ComponentKit, but not any intermediate views. Now we show both.
A new node type `SKComponentMountedView` is used for this purpose. Its descriptor `SKComponentMountedViewDescriptor` mostly delegates to its view's descriptor, but redirects back into ComponentKit for children.
Reviewed By: Andrey-Mishanin
Differential Revision: D21130997
fbshipit-source-id: b3c12ea7cc1200962b3ba7c269c48d68b1809948
Summary:
This change makes it possible to remove preferences. I also added a `Delete` context menu option to `DataInspector` because I needed it to implement this feature. passy confirmed that it makes sense to add this because delete is a common action.
Fixes https://github.com/facebook/flipper/issues/451
Pull Request resolved: https://github.com/facebook/flipper/pull/1018
Reviewed By: jknoxville
Differential Revision: D21086308
Pulled By: passy
fbshipit-source-id: 551ff0908d5e6c93f58d6012b42e1ee3531de997
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1016
YogaKit's version is compatible recent version of swift and also before the last release its swift version was not mentioned, which caused issues, but now there is no need to set the swift version.
Reviewed By: passy
Differential Revision: D21054723
fbshipit-source-id: 2210cf4beab86088533302028091e0bc44b9d232
Summary: Component classes do not reflect the source of the component anymore.
Reviewed By: fabiomassimo
Differential Revision: D20595754
fbshipit-source-id: 645a63f78ee6aaaf75ac0c1e08bf67229a3f906b
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/992
Right now our sample app's fail to build when built against "Generic iOS Device", but it built successfully when built against simulator. Reason being all the simulators are 64 bit's, but when built against generic iOS device type, it didn't work for all the architecture as our Flipper and Flipper-Folly pod had 64bit architecture in their settings. But as soon as you build Flipper-Folly for standard architecture, RCU.cpp fails to build as that file is incompatible for lower standard architecture. Got the following error
{F233400670}
But, we do not need that file of Folly to build Flipper and RSocket. Thus in the podfile I have excluded it from its source. Also along with it I upgraded both Folly and RSocket to the latest releases.
Even with this changes i got one more problem, our openssl static library is not bitcode enabled for arm architecture, this error popped up when built against "Generic iOS Device". Right now I have disabled bitcode, the proper fix of this would be to find a dependency of openssl which is bitcode enabled. Its really hard to find the proper cocoapod dependency of openssl which is bitcode enabled. But disabling bitcode is not a big ask, also people will face this error only when they try to publish flipper in their release.
I discovered this problem from an issue posted in [RN](https://github.com/react-native-community/upgrade-support/issues/35), it also takes care of this issue.
Reviewed By: passy
Differential Revision: D20897590
fbshipit-source-id: 8c79d239572bb7efe2d65b2a7f1cfe8c608c1df4
Summary:
Updates the instructions to integrate iOS pods for the case with the usage of `use_frameworks!` for cocoapods 1.9. Also changed our podfile for Tutorial app and add travis test for the same, so that in future if there are any further changes with the API in new releases of cocoapods, we can catch it.
## Changelog
- Added travis test for iOS Tutorial app
- Updated the getting started guide for iOS
Pull Request resolved: https://github.com/facebook/flipper/pull/892
Test Plan: Travis test passed and also tested that tutorial app builds with cocoapods 1.9
Reviewed By: mweststrate
Differential Revision: D20587989
Pulled By: priteshrnandgaonkar
fbshipit-source-id: b297e6b1298a20a9279ad6414e9d099917876fb1
Summary:
Original commit changeset: 41028c11da6c
I will use mitmproxy for offline support, but till then lets back out the diff and make our tests work for all cases
Reviewed By: passy
Differential Revision: D20514538
fbshipit-source-id: c081baba0a0c7189ae862a66b6116f26b1401177
Summary: It took me a few tries to understand what this was for.
Reviewed By: jknoxville
Differential Revision: D20462208
fbshipit-source-id: f6dac7836409c8d4ec1ffb90a74f632624fb68f7
Summary:
- Avoid holding lock while calling out to `send:withParams:`; it's hard to reason about whether we could trigger deadlock.
- Remove unnecessary `lastInvalidateMessage` ivar; we already ensure that we send at most one invalidate batch per 500ms by using `invalidateMessageQueued`.
- Misc code style items
Reviewed By: Andrey-Mishanin
Differential Revision: D20462193
fbshipit-source-id: 80f61e5a7ce5021e16ebc19a2ec40adfc46f9b92
Summary: All current implementations of `CKComponentHostingViewProtocol` *contain* a `CKInspectableView`, so there is no need for the hosting view itself to conform. This also simplifies the Flipper plugin.
Reviewed By: d16r
Differential Revision: D20457822
fbshipit-source-id: 472f80f5bb2ee507862487d076cfb0e3de6416fa
Summary: Change compiler flag "-Wno-unguarded-availability" to "-Wunguarded-availability" in order to make build time safety check for unsafe newly introduced api without guarding it with available conditional.
Reviewed By: priteshrnandgaonkar
Differential Revision: D20335903
fbshipit-source-id: b4b0e492a9244233f1bc3b5ba2a63c6415c92bb4
Summary: Adding the new "Identity" section to CK components' description.
Reviewed By: cuva
Differential Revision: D19948738
fbshipit-source-id: cbd9bc9c77b6f6503e10cfc75581ef4b94dd0247
Summary:
This diff updates the podfile.lock and also updates all the dependencies in the lfs. Actually we don't need all the dependencies to be reuploaded in the lfs, but current script packs everythin in Pods folder and uploads it, I will upload the logic to look for the diff and only upload the changed dependencies.Also we can merge this logic in our release script. I will put this up in later diffs.
Right now the CK folks are stuck due to the release of CK dependency and their OSS job is failing and this should fix the failing oss-ios job on diff D19948738
Reviewed By: Andrey-Mishanin
Differential Revision: D20378076
fbshipit-source-id: 56ed996cd75fba77a15e7264f9e5c27b262f00d2
Summary:
React Native v0.62.0’s template still uses iOS 9 as deployment target, bumping it to 10 this late in the release cycle is probably not a good idea, so instead I made this tiny change to make it iOS 9 compatible again.
⚠️ I made this change on top of the `v0.32.2` **tag**, as `master` was giving me a build failure and in any case it would be better to release _just_ this change as a patch release so the RN `v0.62.0-rc.3` release can go out without having to test Flipper as thoroughly again.
## Changelog
Make FlipperKit compatible with iOS 9 again.
Pull Request resolved: https://github.com/facebook/flipper/pull/874
Test Plan:
- `pod install` with a Podfile that has iOS 9 as its deployment target passes again.
- Building the Flipper Sample works.
- Building with a RN application created with the `v0.62.0-rc.3` template works.
Reviewed By: priteshrnandgaonkar
Differential Revision: D20307073
Pulled By: passy
fbshipit-source-id: 0dd02dfb810b7382c52ca81b8f1322f807fb3f29
Summary:
This diff adds the ability to run iOS tests without doing pod install in sandcastle. For this, the repo will already have the dependencies archived and checked into the repo. For this I have already added the script, `recreate_offline_mirrors` which takes the first argument, which is the sample app's name, in our case it will be `Sample` and `SampleSwift`. There is one more script `prepare_pods` which untars the dependencies and copies it into the Pods folders.
Reason we are moving away from using `pod install` is that internet is unreliable in sandcastle and there have been many instances that the job fails due to flaky internet.
Reviewed By: passy
Differential Revision: D20136440
fbshipit-source-id: 41028c11da6c66b484f36c7d1090ac7ffd847ec2
Summary:
Original diff broke OSS flipper. Need a new OSS release of CK first
Original commit changeset: 3e7564b25610
Reviewed By: kfirapps
Differential Revision: D20304743
fbshipit-source-id: 08a56359a42bc56b576d212e7cf642197a064076
Summary: Use `component.className` in sonar for the layout inspector.
Reviewed By: kfirapps
Differential Revision: D20184486
fbshipit-source-id: 3e7564b2561016ee59f3b1fc9d21313e068bacb3
Summary:
The target selector was broken on iOS. The overlay view which has the gesture recognizer, was never added to the window, due to which the gestures were not registered and the feature broke.
This diff adds the overlay view in the window object as the subview and then discards it in its view descriptor as otherwise we will capture all our touches in this view.
This was the most popular bug in our research trip and almost everyone reported it.
Reviewed By: fabiomassimo
Differential Revision: D20225594
fbshipit-source-id: af4041859d7e662152b2575d1eb258dd0c2d990e
Summary:
== Highlights ==
- Android: Theme information for Application, Activity and View descriptors are now visible in the Layout plugin. (6f4de969fb)
- App Visualiser: When importing an archived device, you can now see and inspect the last screen of the app. (20db85adf4)
== Fixes ==
- Fix `FlipperKit` warnings in XCode. (972277b031)
- Upgrade Folly to v2020.02.17.00 (GH809)
- Several performance improvements, originally caused by unnecessary rerenders.
- Crash reports weren't scrollable. (e1e8bb841c)
- Kill orhpaned instruments processes. (GH819)
Reviewed By: nikoant
Differential Revision: D20067792
fbshipit-source-id: 3f0ebcb03881373fd909f513e5d82e23a5f9f1f1
Summary: Adding the new "Identity" section to CK root views' description.
Reviewed By: cuva
Differential Revision: D19948784
fbshipit-source-id: f5e7fe51afd387a476f6500db32b8b5149594007
Summary:
This diff fixes the warnings raised from FlipperKit. Also this diff updates the deployement target of FlipperKit to iOS 10. Even wilde assumes the min deployment OS version to be iOS 10. In layout plugin we use [UIAccessibiltyTraiTabBar](https://developer.apple.com/documentation/uikit/uiaccessibility/uiaccessibilitytraits/1648592-tabbar), which assumes iOS 10 and above.
Partially fixes https://github.com/facebook/flipper/issues/803
Still there are some warnings which are coming from the dependencies outside of Flipper.
Reviewed By: passy
Differential Revision: D19941558
fbshipit-source-id: 31809fedb9aa297bc318b5af72e29e8444f0142f
Summary: This diff runs CLANGFORMAT lint on SonarKitTests. I have added CLANGFORMAT as the lint engined for objc files in xplat/sonar. Right now the iOS folder is not formatted according to CLANGFORMAT.
Reviewed By: cekkaewnumchai
Differential Revision: D19942169
fbshipit-source-id: d4a51dd4ffba3acb30177345c51eb469124f9f5f
Summary: This diff runs CLANGFORMAT lint on sample. I have added CLANGFORMAT as the lint engined for objc files in xplat/sonar. Right now the iOS folder is not formatted according to CLANGFORMAT.
Reviewed By: passy
Differential Revision: D19942174
fbshipit-source-id: bef3e67bf31f13bb52417c81c4c330d6c258872d
Summary:
This diff runs CLANGFORMAT lint on plugins. I have added CLANGFORMAT as the lint engined for objc files in xplat/sonar. Right now the iOS folder is not formatted according to CLANGFORMAT.
Ran `arc lint -a --paths-cmd "find ./iOS/Plugins -type f" --verbose`
Reviewed By: passy
Differential Revision: D19942173
fbshipit-source-id: 8b975b0a344df073b02d69cd1f9ee5629af2799d
Summary:
This diff runs CLANGFORMAT lint on FlipperKitTestUtils. I have added CLANGFORMAT as the lint engined for objc files in xplat/sonar. Right now the iOS folder is not formatted according to CLANGFORMAT.
Ran `arc lint -a --paths-cmd "find ./iOS/FlipperKitTestUtils -type f" --verbose`
Reviewed By: passy
Differential Revision: D19942175
fbshipit-source-id: a5067100e604aad438fef1842157217a8cd1734c
Summary:
This diff runs CLANGFORMAT lint on FlipperKitTestUtils. I have added CLANGFORMAT as the lint engined for objc files in xplat/sonar. Right now the iOS folder is not formatted according to CLANGFORMAT.
Ran `arc lint -a --paths-cmd "find ./iOS/FlipperKitTests -type f" --verbose`
Reviewed By: passy
Differential Revision: D19942172
fbshipit-source-id: 58322ef6a3a93f9666b3114e872a3a81a3c1cb35
Summary:
This diff runs CLANGFORMAT lint on FlipperKitTestUtils. I have added CLANGFORMAT as the lint engined for objc files in xplat/sonar. Right now the iOS folder is not formatted according to CLANGFORMAT.
Ran `arc lint -a --paths-cmd "find ./iOS/FBDefines -type f" --verbose`
Reviewed By: passy
Differential Revision: D19942171
fbshipit-source-id: a5e33c7dce2bee8ed29a58f72f5cf5935391f499
Summary:
This diff runs CLANGFORMAT lint on FlipperKit. I have added CLANGFORMAT as the lint engined for objc files in xplat/sonar. Right now the iOS folder is not formatted according to CLANGFORMAT.
Ran `arc lint -a --paths-cmd "find ./iOS/FlipperKit -type f" --verbose`
Reviewed By: passy
Differential Revision: D19942170
fbshipit-source-id: af677323af4edb761f61f8f7e289cab743aa31f2
Summary: Releasing Flipper 0.31.2 as preview for the improved React Native support (blog post will follow)
Reviewed By: cekkaewnumchai
Differential Revision: D19939347
fbshipit-source-id: 4bff1aabdd4e63003de9c9c0af2002ed67504da1