Summary:
Whenever there was a connectivity error, we would show an error message and setup a retry mechanism as to refresh the page as to make it transparent for engineers to have a working workspace again.
The problem is that there are two different channels:
- HTTP server
- WS server
If the HTTP server is healthy but there is a WS error, it is not entirely correct to try to reload the page. If the error conditions for the WS remain, then we end up in a loop.
Reviewed By: passy, antonk52
Differential Revision: D49373335
fbshipit-source-id: 4e0a08fe2384860db0bf92a22edc87402d41651c
Summary:
The existing loading page was not behaving the way it was intended. The previous implementation triggered a page reload which made the whole retry mechanism useless.
Instead, a new endpoint was defined to expose whether the server is ready or not. Use this instead as a way of knowing whether we are good to reload the page.
Reviewed By: passy
Differential Revision: D49314749
fbshipit-source-id: eb67765d7deab8610fa5d31e710070da43a18c1c
Summary: A few improvements to the installation wizard.
Reviewed By: antonk52
Differential Revision: D49145069
fbshipit-source-id: 1aadd85e1d187bd61983a0b4201b530cbdbf509a
Summary: Push the timeout to one second. Users are not going to mind if we try to load after a second but they can mind if they see their tab attempt to reload several times a second.
Reviewed By: ivanmisuno
Differential Revision: D49054898
fbshipit-source-id: 132168a1d6d381f76500bcc9c0a00e05ef0c541b
Summary:
Before this change, opening deep-links or importing files would open new windows.
Instead, just use an existing window if there is one.
Documentation: https://developer.chrome.com/docs/web-platform/launch-handler/
Reviewed By: lawrencelomax
Differential Revision: D48865950
fbshipit-source-id: 80c3fb58f1fcc3b8ace00fd9241bf1e374c8345e
Summary:
Flipper Launcher downloads, unpacks, launches Flipper, and closes itself.
This is fine except for the fact that Flipper may be initiating and thus there's a gap of a few seconds until engineers see the main Flipper UI.
This change improves this by launching earlier, even if just showing a loading page until Flipper is actually ready.
Reviewed By: passy, aigoncharov
Differential Revision: D48824479
fbshipit-source-id: aa6147a09f313d80592c9b08d089660ba73773a4
Summary:
This change adds the necessary scaffolding to enable deep-link for PWA.
1. Registers the protocol/scheme in the manifest.json
2. Add a skeleton handler that parses the received arguments
Notes for reviewers:
PWA cannot reuse the 'flipper://' scheme as is not allowed. PWA schemes are limited. The only extension point is 'web+...' which is the one that is used.
Reviewed By: antonk52
Differential Revision: D48562301
fbshipit-source-id: e191fcb1a6604d20a55c1acdadf6a8eb0194895b
Summary:
This updates minor and patch level dependencies. Frustratingly, I had to revert a bunch
of changes in that version range that still caused incompatibilities and test failures.
If I find time, I'll dig a bit deeper.
Reviewed By: ivanmisuno
Differential Revision: D48433210
fbshipit-source-id: 9ab12e774c1992d4f22cc1428d34f102ce820b75
Summary:
If there server disconnects, we used to show a red box message on the lower left section of the screen. It didn't say much other than the server had disconnected.
If you are aware of what the server is, then you may try to manually restart it.
Instead of doing that, a much better experience is to show the no connection troubleshoot with the button to start the server or with instructions on how to achieve this.
Reviewed By: antonk52
Differential Revision: D48467308
fbshipit-source-id: 0ffded95789c7548d9f1e1a9127409e02e72ab8c
Summary: This change only adds the PWA as capable of handling files with the ".flipper" extension.
Reviewed By: aigoncharov
Differential Revision: D48353437
fbshipit-source-id: fd78942ac4dffb7d26d5ca5be826290018465b93
Summary:
1. Add indent guidess to all tree depths
2. Monospaced font
3. cleaned up alignment of icons
4. Gave everything a bit more space to breathe
Changelog: UI Debugger Tree UI refresh, added indent guides and fixed alignment
Reviewed By: mweststrate
Differential Revision: D47626869
fbshipit-source-id: e4509621cda6c254f7dd5a7ec9b99c13efb577f4
Summary:
Requested by litho team
Changelog: UIDebugger Add seperate icon for litho mountables
Changelog: UIDebugger Serialize all props using java.lang.toString
Changelog: UIDebugger show drawables mounted by litho
Reviewed By: lblasa
Differential Revision: D47295799
fbshipit-source-id: ce5b9384e4796a5c58080a289709ed9f7afdf329
Summary:
Right now, both Launcher and PWA share the same icon.
As to make it easier to identify which one is which, PWA will have a greyed icon instead.
Reviewed By: antonk52
Differential Revision: D47436998
fbshipit-source-id: 69d4d273c35e327263fbbf02d4ac7a005013f1d9
Summary:
Usage tracking comes from Electron's `main.tsx`. There's a timer that dispatches an IPC event every 60 seconds.
This is all good for Electron builds.
For non-electron builds, there's no such thing as IPC.
So, react to the IPC event whenever necessary but also handle the interval internally such that usage is tracked independently of explicit callers.
Reviewed By: antonk52
Differential Revision: D47053404
fbshipit-source-id: f17694e65eed18678b45a2e815813bafab69c3f1
Summary:
This just adds a link next to each request in the Flipper GraphQL plugin to take you to the mobile GraphQL efficiency tool. We want this to be a kind of hub for mobile devs using GraphQL, alongside GraphiQL.
This was a suggestion from a product dev who attended our demo. Later we could also pull down actually efficiency info and show it directly in Flipper.
Reviewed By: ginfung
Differential Revision: D47029548
fbshipit-source-id: 05185e57bfbfaab9169a6b154822ede82d50fd4d
Summary: Add a check to prevent the odd error when the box is no longer available to display an error.
Reviewed By: antonk52
Differential Revision: D46763634
fbshipit-source-id: 6ac2c404c842ff989b037c991b5f085baacd2f9a
Summary:
This change improves our offline page. Mainly:
- Remove Oops! wording as it may imply some error took place.
- Remove the reload button. Automatic reload takes place at 2.5s intervals so this is unnecessary.
Changelog: Improved offline page (reload button removal)
Reviewed By: antonk52
Differential Revision: D46720650
fbshipit-source-id: 522f86d1a4d3d4b091672077cba1a26f898d19e8
Summary:
{F1026310422}
I think it's quite nice having a matching title bar and buttons?
Changelog: The Flipper PWA now uses the Flipper purple as theme color
Reviewed By: lblasa
Differential Revision: D46646266
fbshipit-source-id: 1bc6573c3cd863678ceed5b9358a78d19606ee8a
Summary:
The existing error message was not in the centre and didn't give any possible remediation steps.
{F1015240268}
Reviewed By: passy
Differential Revision: D46394149
fbshipit-source-id: 09d450bef9df83c5b3af3ba49c7e0fafb81bfdce
Summary:
The file manifest.json is injected with the auth token and it happens with every launch.
Because the file is tracked, these changes will always get picked no matter what the .gitignore file specifies, because is a tracked file.
So, the solution is to have a template with a different name, that gets copied into the right location during build time.
Reviewed By: LukeDefeo
Differential Revision: D46184772
fbshipit-source-id: 938b9433045485d9846a6a50c1c955ebe7925581
Summary: If Flipper server is not running, the offline landing site will offer an option to start it by trying to open 'start-server' under the `flipper-launcher://` scheme.
Reviewed By: mweststrate
Differential Revision: D45950872
fbshipit-source-id: 0d4e22c8474413e914c3c7b4fc9154ae628a8b42
Summary:
Until now, launching flipper-server with TCP would accept any incoming connection as long as it comes from the same origin (localhost) using web socket host origin verification.
This is not entirely secure as origin can be spoofed with tools like curl.
Our team created a security review and a proposal was written:
https://docs.google.com/document/d/16iXypCQibPiner061SoaQUFUY9tLVAEpkKfV_hUXI7c/
Effectively, Flipper can generate a token which is then used by the client to authenticate.
This diff contains the changes required to generate, obtain, and validate authentication tokens from clients connecting to flipper over TCP connections.
The token itself is a JWT token. JWT was chosen because it is a simple industry standard which offers three features which can immediately benefit us:
- Expiration handling. No need for Flipper to store this information anywhere.
- Payload. Payload can be used to push any data we deem relevant i.e. unix username.
- Signing. Signed and verified using the same server key pair which is already in place for certificate exchange.
Additionally, the token is stored in the Flipper static folder. This ensures that the browser and PWA clients have access to it.
Reviewed By: mweststrate
Differential Revision: D45179654
fbshipit-source-id: 6761bcb24f4ba30b67d1511cde8fe875158d78af
Summary:
The plugin is inteded to record intents being dispatched and handled
Current version is pretty simple and just records the intents correctly handled by IG app only (for now, integration is simple enough to add to FB, too)
Plugin prints the data associated with the target
Differential Revision: D43494264
fbshipit-source-id: 3e3cd41ade1d083990d15b3c2eb815db157c7163
Summary: Combining a bunch of individual tasks for dep upgrades into one diff.
Reviewed By: ivanmisuno
Differential Revision: D42706074
fbshipit-source-id: 054b2545ad1295699f47f4c6eb5065b7b9a1d6a0
Summary: As part of BE, this diff creates the initial Flipper plugin for VR Call Hub using `scarf flipper-plugin` from the tutorial https://www.internalfb.com/intern/staticdocs/flipper/docs/tutorial/intro/
Differential Revision: D42146201
fbshipit-source-id: 8bc52184b21b2e47304f694068d11fd962b07b9d
Summary: If there are no attributes for a given section, display a 'No data available' message rather than having an empty panel.
Reviewed By: antonk52
Differential Revision: D41400252
fbshipit-source-id: 0337702f638b9b917e6b3be5962838d2eb15c20d
Summary:
^
This laids the foundation for the inspector. It just reorganises a few bits.
Reviewed By: LukeDefeo
Differential Revision: D40319611
fbshipit-source-id: 8cf9b151c631faa1f26a7a6dfaa86b01abc42fe5