Summary:
This diff will make it easier to test a plugin in a "fully loaded" Flipper state. This makes it possible to test all the wiring of flipper, rather than the individual reducers.
This is in preparation of processing the message queue async.
Reviewed By: passy
Differential Revision: D19140879
fbshipit-source-id: 5a333abe9c7a4d0c33d1d06a105cd094cb8fc19f
Summary:
Skip Android health-checks when the "Android Developer" option is disabled in Flipper settings.
Also made some refactoring to use immer for healthcheck reducer.
Reviewed By: mweststrate
Differential Revision: D19088322
fbshipit-source-id: 801d874b6e7e5af80802b4bf4313d98f1cee13f6
Summary: Added a setting "Match local fbsource chekout", which inverserly corresponds to the `ignore_local_pin` setting in `flipper-launcher.toml`.
Reviewed By: passy
Differential Revision: D19030456
fbshipit-source-id: deaaf4e873a00bbc4e8bd3034353cf580df95a36
Summary: Replacing this with promisify-child-process, which is better.
Reviewed By: mweststrate
Differential Revision: D18954702
fbshipit-source-id: 2dad756a2cd4dd21b2efc8b1780d589607d6ff05
Summary:
This diff is a refinement of D18780965, which fixed plugin preferences to be stored per device. Instead of storing plugin preferences globally, we now store them per app, so that every app can have their own favorites, which are shared regardless the device
Note that the current favorite selection will be lost.
Reviewed By: nikoant
Differential Revision: D19018169
fbshipit-source-id: acfa05ece8516840bb91aee4059886365b346582
Summary: There were a few warnings printed when starting Flipper. This fixes the last of them!
Reviewed By: nikoant
Differential Revision: D19011385
fbshipit-source-id: 15bc46c4a67e8c8fd3c8b5d96dc67e61911a7e53
Summary: React 16 is not compatible with react-emotion 9 (it prints warnings, see also https://github.com/emotion-js/emotion/issues/644). So we should upgrade to 10.
Reviewed By: mweststrate
Differential Revision: D18905889
fbshipit-source-id: c00d2dbbadb1c08544632cb9bfcd63f2b1818a25
Summary: It fixes the bug, where currently we show all active persistent plugins for the export functionality irrespective of the fact that the plugin is active for the selected client. With this diff we will only show active persistent plugins for the selected client.
Reviewed By: mweststrate
Differential Revision: D18890247
fbshipit-source-id: e567da0ccf04e051ca0eabb497a6bd72cc8a0d76
Summary:
This Pull request makes it possible to automatically generate regression tests for plugins. The idea here is to record all incoming states for a specific plugin, the start state of the plugin, and the enstate of the plugin.
By replaying the same events in a test, the same plugin should result in the same end state. This will make it easy to test regressions and refactorings on real life scenarios. Execution time is recorded as well.
The API's are exposed as
- `flipperStartPluginRecording()`
- `flipperStopPluginRecording()`
This process generates both a data snapshot and unit test.
Reviewed By: passy
Differential Revision: D18907455
fbshipit-source-id: 923f814f534ccfa6aa2ff2bfa2f80bee41a1c182
Summary: Before looking into performance bottlenecks, I thought it wise to upgrade to TypeScript as that is where all plugins are heading
Reviewed By: jknoxville
Differential Revision: D18829689
fbshipit-source-id: 4c515f240d742f77e89f3cbdff500c69afb3ac06
Summary: I noticed a bug where the export data perf events were not logged. The issue was that, it used the `Logger.getTrackTimeSince` method which used the `performance` from `perf-hooks` and not an ordinary performance object available in the global scope. So just importing performance from perf-hooks solved the issue.
Reviewed By: mweststrate
Differential Revision: D18887666
fbshipit-source-id: 66c24f47b95b25d2f3703c16c70cbe8b35fe0ec3
Summary:
Quite a bit of complex slicing going on there, so I think
this is quite useful to guard against future breakages.
Reviewed By: jknoxville
Differential Revision: D18853033
fbshipit-source-id: 36b17b8ce208cb320a193bceed86c89e010107e4
Summary: This had been there for way too long.
Reviewed By: mweststrate
Differential Revision: D18834089
fbshipit-source-id: 563aa04876910a7544a7f62865b146b933dbf570
Summary: I **think** this is the last part of the codebase doing manipulation of strings to produce plugin keys etc.
Reviewed By: passy
Differential Revision: D18831990
fbshipit-source-id: db449d78230adbca66e78f041381a34d9b249a45
Summary: This diff makes it possible to gather stats of plugin usage, and print them from the console by issuing `window.flipperPrintPluginBackgroundStats()`.
Reviewed By: jknoxville
Differential Revision: D18811590
fbshipit-source-id: 4219923f7fd90187c7ec50a9aa68d7b817e3db8f
Summary:
Ok this diff got a bit bigger than expected, but I think it makes it easier to understand what "plugin keys" are, and makes them less prone to error.
Previously pluginKeys were composed of: clientId#pluginName, where clientId was itself: app#os#device#device_id
But also, there were some plugin keys where the clientId was a device_id.
Now you deconstruct a plugin key, and will get a tagged object with type: 'device' or 'client', and the properties that they each have.
There is now no custom parsing of these afaik, let's keep it that way.
Since it took me a while to figure out what all these IDs are, I've documented it a bit in clientUtils.
Reviewed By: passy
Differential Revision: D18811848
fbshipit-source-id: eed2e2b5eedafb9e27900dbcf79a389fcaffae95
Summary: Add tests for client-id / app name parsing. We've had a lot of bugs here in the past. Get some good test coverage so we have some assurance the shared utils for it won't be broken.
Reviewed By: jknoxville
Differential Revision: D18830269
fbshipit-source-id: 07c9755bbeae28c48580f44453d4010d6d3830b0
Summary:
The `error` was not recognized as a string and React was not happy about it.
Change the `error` to a string explicitly. Also, add space between the error and the form box.
Reviewed By: jknoxville
Differential Revision: D18829862
fbshipit-source-id: 0474d411a95bab4bc4f62a3f3d3839029938a9e6
Summary: Just in case anything is broken, this will be helpful
Reviewed By: nikoant
Differential Revision: D18811849
fbshipit-source-id: 53947102dea38e526b4f565396f85fedf4ff2a15
Summary: Delete dead code as we change to static view
Reviewed By: passy
Differential Revision: D18810148
fbshipit-source-id: 17b5a2355abb39a711a95b4ffcd0bcd387259787
Summary:
- Point the Noitifications to the static view
- Add function to check activeness of static view
- Add `SupportRequestDetails` to type (needed?)
Reviewed By: mweststrate
Differential Revision: D18810149
fbshipit-source-id: a33f61f521f3db0dd2a73e56d99b12d029b46a57
Summary: Performed with `react-codemod rename-unsafe-lifecycles`. I'll taskify the components next. This change means that things will still work with React 17 but only if we opt-out from "strict mode".
Reviewed By: mweststrate
Differential Revision: D18810459
fbshipit-source-id: 6954f4e7bb91dbd7fc8b839895308fc193cc4aa0
Summary:
Fixes a couple of typo's and merges two very similar functions into one.
Now that there's a single way to create a clientID, we can get more strict about what it is and what it isn't.
Reviewed By: passy
Differential Revision: D18809741
fbshipit-source-id: 9a68e45bead38cc2917a6d4cd2cf461c309f3ede
Summary: Puts a context menu in the sidebar for the network plugin. Before, user was not able to select the text from sidebar
Reviewed By: passy
Differential Revision: D18808544
fbshipit-source-id: bdbc86972cd1d508e9b7d96da9df5c8e53bec991
Summary: One step towards getting away from constructing and destructing clientIds manually everywhere by splitting and joining #'s. Which has been VERY error prone in the past.
Reviewed By: passy
Differential Revision: D18809442
fbshipit-source-id: bd4d89d3eb3d59694aa735b19dbd73d122e59ba0
Summary:
When launching flipper release build, the initial window focus was wrong, so it appeared unfocussed.
Clicking away and then back to the window would fix it.
This should set the initial focus to be correct from the start.
Task has more details.
Reviewed By: mweststrate
Differential Revision: D18808306
fbshipit-source-id: 2c5828d0b3298594dc30f956bb14141e6cff5918
Summary: This diff fixes the issue with occasionally not workin search by response body in Network plugin
Reviewed By: mweststrate
Differential Revision: D18784394
fbshipit-source-id: 5927919d919625e214fddd1a8b32522694b714ec
Summary: See D18783129, we now want to always link to the new form
Reviewed By: passy
Differential Revision: D18807766
fbshipit-source-id: 2389470b12dc36159cab5d61dbb67dfb56c2408f
Summary: Add a quick banner to give some more context on the bug report feature
Reviewed By: jknoxville
Differential Revision: D18807556
fbshipit-source-id: b2de614ccfd30a22f418b60d6f08066c57759deb
Summary: When importing a flipper trace, while the user was on a static view, the first client would not be selected automatically
Reviewed By: passy
Differential Revision: D18782482
fbshipit-source-id: 6f59e06dead62ffe42acdd36232b92dffd3e30d6
Summary: Removes old GK of the flipper support form
Reviewed By: passy
Differential Revision: D18783129
fbshipit-source-id: dcb55abf4af863e25273648e0482c00e3d16e322
Summary:
This is a change which I am not fully confident in, but I think it will make things better;
previously favorite plugins where stored per device. This means that when ...
- switching between devices
- switching between apps
- when viewing disconnected devices
- when loading devices from flipper traces
... the starred plugin preference would reset (especially for the last two: they have generated unique device names, so there would never be preferred items)
This Diff changes the plugin preferences to be global, so on every app and every device you have the same preferences (if they support the plugin). This assumes most people work mostly with the same limited set of plugins
Reviewed By: jknoxville
Differential Revision: D18780965
fbshipit-source-id: 3a560393b81e7d65ae01fb737938f8562843af13
Summary:
Some lifecycle methods are deprecated now. Where they can be replaced easily I replaced them. Where they can't be updated easily I marked them as unsafe, as if a bigger refactoring is required for those components, we'd better convert them to function components instead.
Didn't update the plugins as they are ideally updated by their owners.
Didn't update styled components, there is a separate task for that.
Reviewed By: jknoxville
Differential Revision: D18780579
fbshipit-source-id: 132a3789875ab6a3caee582b0e5f7feb7dc4a4c1
Summary:
Was getting a react warning whenever the feedback prompt opens.
This stops it from happening.
Reviewed By: mweststrate
Differential Revision: D18780008
fbshipit-source-id: e4635f7a8322e25a3eea1c201974a100d1f1327a
Summary: All subfolders of src/plugins/ need to have a title in their package.json, in this case it doesn't add anything but it's a rare case, so at least stops the linter from complaining.
Reviewed By: mweststrate
Differential Revision: D18764161
fbshipit-source-id: 7a3d7e3dba7633107d9e43c021986ecdf22d3c28