Summary: The previous logic aimed to reuse an existing server during bootstrap if the launched version was higher than the running one. This is no longer required or wanted. ## Risk assessment: LOW ### Rationale It is extremely rare to launch Flipper whilst already having another instance running. This can happen during development, but it is extremely rare in production. Launcher (singleton) launches Server (singleton). Launcher can be executed multiple times and this will not create newer server instances. If anything, if we are unable to kill any other instance, whatever that may be, continue. This is to cover the cases where a shutdown may have been acknowledged but the process is still shutting down. Reviewed By: antonk52 Differential Revision: D51232901 fbshipit-source-id: 8b8b85f4bac68f5670b1878e827871f78dc68999
Flipper Desktop
This folder contains everything to run the Flipper 'Desktop', that is, the UI which you use to interact with the device / app under debug.
Packages provided here:
- flipper-common: utilities & types shared between client, server, and plugins
- flipper-server-core: all device & client management goes in here. Basically flipper's backend
- flipper-ui-core: all UI goes in here, as far as it doesn't depend on Electron
- app: the Electron app, will load flipper-server-core and flipper-ui-core, and glue them together, providing implementations for some electron specific stuff like dialogs
- flipper-server: A node process hosting flipper-server-core that can be connected to over websockets. Also, it can serve a browser version of the UI as well.
- flipper-ui-browser: thin wrapper around flipper-ui-core, providing some browser specific behavior / stubs.
- flipper-dump: (might remove later) as an alternative way to test flipper-server-core.
- flipper-plugin: The flipper SDK used by plugins. Exposes all API's that can be used by plugins
- pkg: CLI tool to manage building flipper plugins
- pkg-lib
- plugin-lib
- babel-transformer
- doctor
- eslint-plugin-flipper
Packages overview
app:
- flipper-server-core (directly embedded)
- flipper-ui-core
- plugins (prebundled)
- plugins (installable)
- flipper-plugin
flipper-server
- flipper-server-core
- flipper-ui-browser (served by webserver)
- flipper-ui-core (communicates using web sockets with server-core)
- plugins (prebundled)
- plugins (installable)?
flipper-dump
- flipper-server-core