Summary: changing the payload to work with the updated logs plugin
Reviewed By: passy
Differential Revision: D13376392
fbshipit-source-id: ccfb1b1a7a2ec3e9d3899e70c9bdd199a489da88
Summary:
The log plugin subscribed to the device logs, when it was mounted. Then, the device replayed all log messages that happened in before the plugin became active. While this works, this was not the most performant way to handle this, because it caused multiple rerenders.
In this diff, a method is added to `BaseDevice` to get all buffered logs. This method is called once the logs plugin becomes active. The processing of the logs is split into a couple smaller functions.
Reviewed By: jknoxville
Differential Revision: D13376393
fbshipit-source-id: bb151659c3335e10f647ae2dbf66e93b32d22913
Summary:
Improves the UI of crash reporter plugin
- Added max height on the value container with scrollable capabilities
- Fixed the bug in UI of the plugin where it showed the latest crash data even though one navigated to the plugin from old crash notification
Reviewed By: danielbuechele
Differential Revision: D13307302
fbshipit-source-id: 97eb96d3d9947a2835cd5572053256e0bdc01e27
Summary: Adds crash reporter plugin in wilde under a gatekeeper `flipper_crash_reporter_plugin`. By default all the employees will be part of this gatekeeper
Reviewed By: passy
Differential Revision: D13258265
fbshipit-source-id: 1baa2a342f492781d8fb3e86c2a30140537c23f1
Summary:
- New improved UI
- Instead of sending the callstack as a string from android, now sending it as an array
- Deeplink to Logs support just for android. In iOS crash is not automatically logged in Logs plugin, atleast thats what happens in sample app
Reviewed By: jknoxville
Differential Revision: D13216477
fbshipit-source-id: d8b77549c83572d0442e431ce88a8f01f42c9565
Summary: Makes a crash reporter plugin as a device plugin
Reviewed By: passy
Differential Revision: D13203954
fbshipit-source-id: 02ef2aff05d5a240eaff588f9b515d3d610fc182
Summary:
Some network requests are yielding error: e.getMessage() is not a function.
It shouldn't be .getMessage(), it should be .message
Reviewed By: priteshrnandgaonkar
Differential Revision: D13137334
fbshipit-source-id: 72c782376c8e62a05c5e9ce1b956566ce1fc5bf0
Summary:
Plugins were loaded in `/plugins/index.js` which was loaded once at launch of the app. This moves the list of available plugins to redux. This way, plugins can be dynamically added. The redux store keeps to Maps of plugins (devicePlugins and clientPlugins) with their ID as key:
```
devicePlugins: Map<string, Class<FlipperDevicePlugin<>>>,
clientPlugins: Map<string, Class<FlipperPlugin<>>>,
```
On launch of the app, all plugins bundled with the app and the one found in `pluginsPath` are dynamically added.
This changes now allows to add new plugins at any time. All components that need to know which plugins are available (e.g. the sidebar) are connected to the redux store. This way, they will automatically update, whenever a new plugin is added.
- add `plugins` to the redux store to keep the list of available plugins
- add a plugins dispatcher, responsible for loading the plugins on launch
- connecting all React components that imported `plugins/index.js` before to the redux store to get the plugins from there.
- moved the updating of the MenuBar to the plugins dispatcher as it needs to update whenever a new plugin is added.
Reviewed By: jknoxville, passy
Differential Revision: D12449236
fbshipit-source-id: 6ef3e243e2c80443614b901ccbfde485fcb4301c
Summary:
* adds a button to hide notifications by category
* adds a quick action to report notifications as not helpful
* fixes type of network plugin's notifications to be string instead of number
Reviewed By: jknoxville
Differential Revision: D12999883
fbshipit-source-id: 32be5bde5931cca4a27ab1ad34418300196452cc
Summary: This is a re-do of D9720987. Now that the Litho version has been bumped to 20 in D12838684, this diff can land safely.
Reviewed By: danielbuechele
Differential Revision: D12969979
fbshipit-source-id: b12d14e3b292d8cd110967f84f770f3725a800de
Summary: If one throws an exception, we'd skip all the other ones. I don't think that's the behaviour we want.
Reviewed By: passy
Differential Revision: D12958926
fbshipit-source-id: dd82b750197b6fc1380496be4147fe63454d39da
Summary:
Currently HTML renders as a blank response panel which is not helpful for seeing erros.
Adding a formatter for `text/html` so we can see error responses, or other HTML responses, correctly.
Note, this adds the xml beautifier package from npm.
Reviewed By: danielbuechele
Differential Revision: D12883274
fbshipit-source-id: c49b60984f10bba471b5bbb8aabcb385a171d0d6
Summary:
This is a collection of small UI fixes for the network plugin:
- image maxWidth is set to 100% to not cause vertical scrolling
- Panels now have horizontal scrollbars, if their content overflows
- fixing missing icon for failed network requests
- removing position sticky from table headers as it was not used and causing some rendering issues and performance problems
- Adding a `label` and `grow` option to the `Select`-component which is used in the sidebar of the network plugin.
Reviewed By: passy
Differential Revision: D12956336
fbshipit-source-id: 6e7e9cf97c058a2ff626576d4afdc6df65007ea1
Summary: This allows sidebar extensions to have more information as to whether they should be enabled or not
Reviewed By: danielbuechele
Differential Revision: D12930405
fbshipit-source-id: 649d3f01da1c535f7d60b7b525b012a888ea78e0
Summary: Completes D9667222 to allow force rendering of accessibility in litho when an accessibility service is not actually running.
Reviewed By: ikenwoo
Differential Revision: D9720987
fbshipit-source-id: 000a7413fcbe775a525ca3aca64443c3669cdf9e
Summary:
`flipper` does a lot of stuff at import time. I copied the `styled` reexport
to the UI module, so it's possible to just depend on that.
`remote` is another one of those pot holes that can easily ruin your journey
if you aren't careful navigating around it. Added some defensive fallbacks here
which ultimately allows the lint test to run (and pass) without Electron.
Reviewed By: danielbuechele
Differential Revision: D10507655
fbshipit-source-id: 6dad5665ba15b5cb73caa4ea46262cf337173eb8
Summary:
Added a basic communication flows and a button to trigger notification
{F142016937}
Reviewed By: jknoxville
Differential Revision: D10492428
fbshipit-source-id: b65fc46b3be695852f9197771a253d9e8596f328
Summary:
We were using `fill={true}` as an attribute to make flexbox containers fill the entire available space.
However, `fill` is an HTML attribute (see: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill) This caused warnings printed to the console.
This diff renames the attribute to `grow` with is also more in line with the Flexbox terminology.
Reviewed By: priteshrnandgaonkar
Differential Revision: D10488389
fbshipit-source-id: ed8553c6203cdf6df94d26c731164ecec4c9fbd2
Summary:
The start of an example plugin.
My intention is for this to be a place that we keep up to date with the current best practice for doing things.
For example, with the introduction on persistedStateReducer, there are two ways to receive incoming messages, but only one of them works in the background. This should act as a guideline.
For this reason, don't hold back on reviewing it. I want it to be 👌
Reviewed By: priteshrnandgaonkar
Differential Revision: D10448592
fbshipit-source-id: d5fa978c14e47a7fa3c9a29d0929d5a6109267af
Summary: Deep link from the QPL plugin into the network plugin
Reviewed By: passy
Differential Revision: D10462528
fbshipit-source-id: cc044863191fc4375390165f6b7b7d5c5e9c77e3
Summary:
When sending a message from the mobile side, you call something like:
`send(method: string, params: Object)`
But when receiving it in the reducer, you only get the params. Adding method so you can distinguish them.
Reviewed By: passy
Differential Revision: D10447890
fbshipit-source-id: f1fe925e82355866f86b322ecd3c72c604ae86af
Summary: Trigger notifications for all network requests having an error status code.
Reviewed By: passy
Differential Revision: D10401402
fbshipit-source-id: 8fa63cbc251457142abd71845fb6f1c735b247cc
Summary: This is meant to reduce the friction of getting network response payloads. Simple switch allows developers to go to "formatted" body ui which shows the json in a text blob.
Reviewed By: passy
Differential Revision: D10378877
fbshipit-source-id: 87aeff5318f0c2c6d3d91d7e3b491595794e69bf
Summary:
Restore the logic for setting and computing notifications that was
partially removed with D10300838.
Reviewed By: jknoxville
Differential Revision: D10361547
fbshipit-source-id: 4d229d5f4dbeda3139463e1c348909b9c5dba66f
Summary: Handles the case when persisted state is undefined which will be the case when the initially selected plugin is not the one running in background
Reviewed By: danielbuechele
Differential Revision: D10269073
fbshipit-source-id: b7a17b0daa37a486cc7f456338cb97123ad813b7
Summary: implements `persistedStateReducer` for the network plugins to merge messages into the persistedState even when the plugin is not running.
Reviewed By: danielbuechele
Differential Revision: D10256311
fbshipit-source-id: 53011a2123342825e8404b1c2c798aeb550c596d
Summary:
* move CPU and Logs plugin to plugins directory, set up package.json for them
* adjust plugins/index.js to expose device and client plugins in the same place, adding two new exports
Reviewed By: danielbuechele
Differential Revision: D10247606
fbshipit-source-id: 347bf8b3f9629987ad29d1d2ed025e0c88b9c967
Summary:
- Adds the Flipper notifications UI from the hackweek
- The notifications plugin is hidden behind a GK `flipper_notifications`
- Plugins currently can not dispatch any notifications
Reviewed By: jknoxville, passy
Differential Revision: D10300838
fbshipit-source-id: 2a3a823f09fee3370ce725b506b162e57751c382
Summary: Also acts as a model for using the computeNotifications api.
Reviewed By: passy
Differential Revision: D10240659
fbshipit-source-id: 610512de7484e10c9c0ed8e661913c2fe10869da
Summary:
Plugins need to be self-contained. The can not require any dependency from Flipper's main app. This was a soft requirement before, but with the new version of metro, we now make this a hard requirement.
This speeds up plugin compile times, because only the files in the plugin's folder are watched and not all of Flipper's files. Moreover, this ensures "plugins" are real plugins and can be added and removed and are not mixed with the apps core.
Reviewed By: passy
Differential Revision: D9940735
fbshipit-source-id: 47e120429fc3c4c985731478ffa35c3359ff78f9
Summary:
Litho renders differently based on whether applicable accessibility services are enabled. In Flipper's accessibility mode this will be forced (with the option to turn it off) so that you don't have to be running an accessibility service to actually see what someone running an accessibility service would.
Here's an example video of what the re-rendering does (this also happens on toggle of accessibility mode, this is just the settings option to force it):
{F137856647}
Reviewed By: jknoxville
Differential Revision: D9667222
fbshipit-source-id: 292353d89f07734f1e525f795b1d7daf4130e203
Summary: Looks like some flow-disables were no longer necessary.
Reviewed By: jknoxville
Differential Revision: D9700398
fbshipit-source-id: 5514c16294624c1bed1d3818f9e271b07e320803