Files
flipper/desktop
Luke De Feo 862592e03d Account for race conditions with stream intercetor
Summary:
Given that stream interceptor is async the folling race conditino could occur.

Frame at time t=0 comes in, we yeild to the event loop while fetching metadata, fetch takes 5 ticks

Frame at time t=1 comes in, we yeild to the event loop but fetch takes 1 tick

At time t=2 the second frame is augmented  and display

At time t=5 the first fetch returns and we display and older frame

This is a simple check to avoid this.

Reviewed By: aigoncharov

Differential Revision: D45314013

fbshipit-source-id: 054e7e6beb52dfbfd94bc9f8ee3d0a758a669f66
2023-04-27 07:28:41 -07:00
..
2023-01-25 04:35:09 -08:00
2023-01-25 04:35:09 -08:00
2023-01-25 04:35:09 -08:00
2023-04-26 04:42:43 -07:00
2022-05-30 03:41:33 -07:00
2021-09-27 08:25:20 -07:00
2023-04-26 05:30:21 -07:00
2021-10-08 01:33:03 -07:00
2021-12-17 10:04:23 -08:00

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, flipper-plugin
  • 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
  • flipper-ui-electron: the Electron app, will load server-core and ui-core, and glue them together, providing implementations for some electron * specific stuff like dialgos
  • flipper-server: A node process hosting flipper-server-core, that can be connected to over websockets. And probably 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), but want to hack a quick and dirt flipper dump in here, as 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

flipper-ui-electron:
   - 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 WebSocket with server-core)
           - plugins (prebundled)
   - plugins (installable)?

flipper-dump
   - flipper-server-core