Summary:
Extract the following utility functions from ServerController:
transformCertificateExchangeMediumToType
appNameWithUpdateHint
The functions are not tied to the ServerController and will be used outside of it.
Reviewed By: passy
Differential Revision: D29938355
fbshipit-source-id: ea489f54a3a6bf46ae4e108579d48ede1f891093
Summary:
allow-large-files
Got a ton of open bumps in GitHub. Want to address a bunch of them in one swoop.
Reviewed By: jknoxville, nikoant
Differential Revision: D29933570
fbshipit-source-id: d5dc18fab22e8c5b300ab318e60dd1514aecfd52
Summary:
Move BrowserClientFlipperConnection to a better location.
All communication types should be located inside the comms/ directory.
Reviewed By: jknoxville
Differential Revision: D29937942
fbshipit-source-id: 7fbf92c60d53a8f4f16d738bcbd6c451ce367ff1
Summary:
At the moment Flipper spawns a WebSocket server which can be used to debug Web applications in the Browser i.e. Kite.
This diff renames websocketClientFlipperConnection to BrowserClientFlipperConnection.
Renamed to make it clearer what type of connection it really is. WebSocket connections will no longer have the same meaning once RSocket is removed and WebSockets are used instead.
Reviewed By: jknoxville
Differential Revision: D29937656
fbshipit-source-id: 99d55fcfe256865add1ba3aada2c23f935f5cabe
Summary: TSC is raising this for a missing property.
Reviewed By: timur-valiev
Differential Revision: D29933795
fbshipit-source-id: 2acb3ea3b504f1bce1fb4bd0f7e4b52fd49e00b0
Summary:
FlipperClientConnection used to define an interface which closely matched the Socket interface defined in RSocket.
Presumably it tried to 'decouple' RSocket from consumers of the client socket connection. It also limited the amount of actions that could be triggered on said socket connection.
This diff does two things:
- Renames FlipperClientConnection to ClientConnection.
- Changes the interface so that it no longer matches the RSocket Socket interface. The new interface doesn't use RSocket reactive types either.
As a result, current implementations of the interface will act as a proxy to the RSocket Socket type. The change allows the usage of other implementations such as WebSocket.
Reviewed By: fabiomassimo
Differential Revision: D29934090
fbshipit-source-id: 02742e50cd6e801310698969c81b3bf1ef0fa2a2
Summary:
In the file server.tsx was defined the Server type.
Server is being renamed to ServerController and the new file is ServerController.tsx
This is the last diff where things are being moved or renamed in a way that will make harder to review future changes.
Reviewed By: fabiomassimo
Differential Revision: D29912626
fbshipit-source-id: ae583671d98823a10f7efceeefd8215621f59dcf
Summary:
A new comms/ directory is introduced which will contain all the communication code between client and server.
This change just moves server.tsx to its new location, it will make the next changes easier to follow.
Reviewed By: fabiomassimo
Differential Revision: D29911904
fbshipit-source-id: ae319dc8f9fd7af9d8b5b5c0ee87b56102cc0a18
Summary: When loading a Flipper trace, the loading dialog was no longer show. This diff fixes that.
Reviewed By: nikoant
Differential Revision: D29844892
fbshipit-source-id: 23d1f53962a3f64f93cc42127cd008c03486c14c
Summary: Introduce convenience abstractions to make it easier to manage dialogs imperatively, by promisyfying common dialog abstractions.
Reviewed By: jknoxville, nikoant
Differential Revision: D29790462
fbshipit-source-id: c092c15cf569ec353b9c1042f25cd67e6c76db01
Summary: This diff makes sure we can manually & unit tests deeplinks more easily, by introducing a dialog in which a deeplink can be entered manually and extracting deeplink handling logic from the application dispatcher.
Reviewed By: jknoxville
Differential Revision: D29760933
fbshipit-source-id: 0fc8f577204ecdd278716853b87786557a6e2194
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/2609
Make it possible to mark some tests to run on non-CI, or unix only
Reviewed By: nikoant
Differential Revision: D29813506
fbshipit-source-id: 140f8a4eaed5af3282ab9d139b46a52818be0934
Summary:
Fix changelog display in dark mode, as reported in https://github.com/facebook/flipper/issues/2379#issuecomment-851059786
Changelog: Fix dark mode support in changelog dialog.
Reviewed By: timur-valiev
Differential Revision: D29801181
fbshipit-source-id: ffbbd012c99dee897c4fd67653b4f6375294d668
Summary:
Restored sidebar in Flipper messages plugin, by using a Container, as DetailsSidebar is only valid in a PluginContainer context.
Also made tab rendering a bit more condensed while at it.
Reviewed By: timur-valiev
Differential Revision: D29734639
fbshipit-source-id: d3ec6f354e14194035e93daa014985721844416d
Summary:
Some folks were missing the copy as text ManagedTable used to have, so introduced both the options to either copy as text (visible columns or custom copy handler) or as JSON
Changelog: It is now possible to both copy as text or as JSON from data tables
Reviewed By: jknoxville
Differential Revision: D29712096
fbshipit-source-id: 27bd2e869a247bd0896ce2774c08651123fd531d
Summary: As reported in https://fb.workplace.com/groups/flippersupport/permalink/1171595499987773/, the SupportForm doesn't support dark mode. Fixed this by fixing theming in some of the underlying deprecated components.
Reviewed By: timur-valiev
Differential Revision: D29694034
fbshipit-source-id: f8b90ecc87f7f16f6e1f9751d22309d37a052d5a
Summary: A bunch of dropdowns in Flipper are using native context menu to show their items. Rewrote to use Antd instead and reduce coupling with Electron
Reviewed By: timur-valiev
Differential Revision: D29694035
fbshipit-source-id: 5fd80c255c308567daf3e46e03bc27494c8ba142
Summary: Similarly to previous stack, remove the need to import Electron to write things to clipboard. Introduced linter to prevent future use.
Reviewed By: timur-valiev
Differential Revision: D29661777
fbshipit-source-id: 7bc67ede40b65c5f232b69128f3a423e232ddc1b
Summary:
This stack reduces our direct dependency on Electron, for example by exposing our own API to open links.
Also exposing `getFlipperLib` as API from `flipper-plugin`, so that these utility methods are available outside plugin contexts as well.
Reviewed By: timur-valiev
Differential Revision: D29661689
fbshipit-source-id: 0c0523326eeb0d9d8fbe3e03c4609327bb53596b
Summary: If no device/client was selected, no plugins would show up in the plugin status list either, which is very confusing. Changed this to always show all loaded plugins, regardless of selected device / app.
Reviewed By: nikoant
Differential Revision: D29661006
fbshipit-source-id: 720a1697df7ed17b00d5db5a72a8e2b6bb344b1e
Summary:
During component cleanup broke the error handling :'). Causing plugin errors to bubble up and be handled as chrome errors instead. This caused our soft crash metric to spike in the last week.
Changelog: Fixed error handling of UI errors caused by plugins
Reviewed By: passy
Differential Revision: D29585448
fbshipit-source-id: 4c5d40b300a7b71eeb532f7be4765f742d239890
Summary: Found some errors in a CI failure originating from a JavaScript file. The horror!
Reviewed By: jknoxville
Differential Revision: D29549998
fbshipit-source-id: 633100ec9a446050bb0c703dcc37e9b132b17198
Summary:
Going through all the patch updates and other small updates to pre-empt dependabot.
allow-large-files
Reviewed By: jknoxville
Differential Revision: D29547777
fbshipit-source-id: 86ef2408da0564049916cd96d66665074cdc23f2
Summary:
Fixed bug with "Hermes Debugger" and "React Dev Tools" plugin loading reported on GitHub: https://github.com/facebook/flipper/issues/2545.
Changelog: Fixed bug with React Native plugins not loaded: Hermes Debugger, React Dev Tools etc.
Reviewed By: mweststrate
Differential Revision: D29516394
fbshipit-source-id: 4620e3d2b49ca2a1d3a5b2dd76d40d4667a0980b
Summary:
Changelog: Flipper message debugging moved from a separate device to the console tab
This makes message debugging easier accessible, and in production (recently requested at GH). Also it clears up a lot of infra that was created just to make flipper a self recursive inspection device + a separate plugin. While fun, a hardcoded setup is just a bit more simpler (no exception rules and better static verification)
Reviewed By: nikoant
Differential Revision: D29487811
fbshipit-source-id: b412adc3ef5bd831001333443b432b6c0f934a5e
Summary: Removing old components that are no longer used, and cleaning up index.tsx to prevent future for some of those
Reviewed By: nikoant
Differential Revision: D29428621
fbshipit-source-id: 78ae51c09510738cf2d75982fdae35b9ef6d2d7e
Summary: Fury was the last user of this component
Reviewed By: nikoant
Differential Revision: D29426804
fbshipit-source-id: 793135119e70b41eda0391d3fedee1c9b6834cbd
Summary:
This removes all code duplication / old plugin infra that isn't needed anymore when all plugin run on the Sandy plugin infra structure.
The diff is quite large, but the minimal one that passes tests and compiles. Existing tests are preserved by wrapping all remaining tests in `wrapSandy` for classic plugins where needed
Reviewed By: passy
Differential Revision: D29394738
fbshipit-source-id: 1315fabd9f048576aed15ed5f1cb6414d5fdbd40
Summary:
Since the Sandy wrapper is now rolled out to 100%, removing the GK. Further code cleanup in next diffs.
Changelog: Flipper that don't use the new Sandy plugin format yet (see https://fbflipper.com/docs/extending/sandy-migration) will now always be loaded inside a legacy container
Reviewed By: timur-valiev
Differential Revision: D29394736
fbshipit-source-id: f7a7c321c6b6a82470d47e4352d86135c3849b82
Summary: Show a new view when a disabled/uninstalled plugin is selected in open-source Flipper build. I'm going to improve it later with additional info from npm packages metadata. For now it just shows status of the plugin and button to install/enable it.
Reviewed By: mweststrate
Differential Revision: D29482937
fbshipit-source-id: 45d207d3f6e846c354184f2b5fd911751d3164b0
Summary: As we now allow selection of disabled plugins we need to track plugin usage a bit smarter. We'll add a new field "pluginEnabled" to the logged messages to indicate whether selected plugin is enabled or not.
Reviewed By: cekkaewnumchai
Differential Revision: D29455248
fbshipit-source-id: 32c79e0961653edc8f4cc89adecc2662b37cbd7b
Summary: Updated PluginInfo component to show info about uninstalled and unavailable plugins in addition to enabled/disabled. Now any selected plugin will be shown there. For uninstalled plugins we will show "Install" action button. For unavailable plugins we wiil show an alert describing why plugin is unavailable.
Reviewed By: mweststrate
Differential Revision: D29254970
fbshipit-source-id: 0de32da5b5550ff6b7d452abf6ff7259677aebc5
Summary: Changed PluginContainer implementation to allow selecting unavailable/uninstalled plugins which was impossible before that. Please note that for now something is shown only for enabled and disabled plugins. In next diff I'm also adding content for unavailable and uninstalled plugins.
Reviewed By: mweststrate
Differential Revision: D29254788
fbshipit-source-id: da639e5efddc821061abb69df534ffdce8ccd4e0
Summary: Use selectors to re-compute and cache plugin lists according to the selected device and app.
Reviewed By: mweststrate
Differential Revision: D29247845
fbshipit-source-id: 4bc669d5d441d605c4090086c4ce59b6d9684a4c
Summary: Initial layout for Plugin Info view built based on Plugin Manager Flow mockups.
Reviewed By: mweststrate
Differential Revision: D29186006
fbshipit-source-id: 01fafbdba049baf2e573228ff5b939ebc4871db2
Summary: Use set instead of array to keep list of supported plugins per client. It is not used as array anyway, in most places it is used to determine whether a plugin is supported or not and it's much faster to use set for that.
Reviewed By: priteshrnandgaonkar
Differential Revision: D29200673
fbshipit-source-id: 5f3c404a1a668c153867d7c1b6c223941f0b3b36
Summary: Moved PluginEnabler component from PluginContainer into a separate file PluginInfo and also refactored it to not use deprecated components. In following diffs I will be extending PluginInfo to show not only enabler, but also additional information about the currently selected plugin.
Reviewed By: priteshrnandgaonkar
Differential Revision: D29186007
fbshipit-source-id: 4c8af9dcc4dc53476b9c50305f2221aeb009553e
Summary:
This diffs removes restrictions on selecting disabled, uninstalled and unsupported plugins. Now it will be possible to select them, however for now empty view will be shown in such case.
In next diffs I'll add Plugin Info view which will be shown in case disabled plugin is selected. It will show static info about plugin - readme, version, oncall, user feedback group etc. This will make it possible for users to browse info about all plugins, even unsupported by selected device/app.
There is one problem that our analytics will be screwed by this change as even disabled plugins will be counted as used. I'll address this later in this stack.
If you see other potential problems with removing restrictions on selecting disabled plugins - please let me know.
Reviewed By: passy
Differential Revision: D29186005
fbshipit-source-id: 2e55c5fd3bb402594f4dbace6e287725de65bc6f
Summary: Went over all plugins and did superficial fixes to make most plugins look decent or at least usable in dark mode, which before they weren't :)
Reviewed By: priteshrnandgaonkar
Differential Revision: D29456680
fbshipit-source-id: 3952e5da512c68b89434eea081faf121d1049908
Summary:
Changelog: Improved dark mode support!
This diff makes sure that the dark mode preference is written to the Flipper config, and applied during startup, so that the ugly light/dark flash when starting Flipper in dark mode disappears
Reviewed By: passy
Differential Revision: D29436059
fbshipit-source-id: 0f762149848298512026fbd216d9a9e0bf4276db