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
Summary:
We would like to version control Flipper and some of our custom plugins that are installed on developers' systems.
Flipper by default prompts users to upgrade so they sometimes do the update and then all our custom plugins break because they were compiled for an older version.
See https://github.com/facebook/flipper/issues/3947 for feature request info.
## Changelog
Adds notifyAvailable flag to config.json to disable prompting for users that "an update is available"
Pull Request resolved: https://github.com/facebook/flipper/pull/3992
Test Plan:
Tested by running locally.
Had to comment out the isProduction() check to confirm this it worked properly because this flag is false on dev versions.
Couldn't figure out how to manually test the handleOpenPluginDeeplink.tsx change but made a similar change there; happy to test that if you can tell me how to exercise that path.
Reviewed By: antonk52
Differential Revision: D39654481
Pulled By: antonk52
fbshipit-source-id: cef6b48d870915c48f620269c42d24b8ef1f4c29
Summary:
This is mainly an RFC version (happy to land it as a seed for a plugin that can be used to debug and/or control status) the plan is to have the following:
- One place to track the full life-cycle of status.
- Control and visualize playback and state.
- Troubleshoot errors and details of a given status (e.g. media links, evets, latencies .. etc).
Differential Revision: D38123193
fbshipit-source-id: 49229d604434d575d6aaddc818064598e7ccee92
Summary: Relay message to the React app via postmessage. Later, we will subscribe to these messages and update the plugins
Reviewed By: lblasa
Differential Revision: D39539590
fbshipit-source-id: c6742e45330e71b63c135c0267e6e9c5817fc9ff
Summary:
Scaffolded desktop UI for UI debugger
I changed getroot from an rpc call to an event sent on connect. The root should never change as its the application object.
Reviewed By: lblasa
Differential Revision: D38866008
fbshipit-source-id: ca0f1908bedb643238f11ed796922e3359619167
Summary:
After the upgrade to Electron in `92cdb81`, the reload functionality no
longer works. I believe this is due to the main menu creation being
moved to the main process where the `window` global variable is undefined
(whereas previously it was on the render process, where `window` would
be defined). Rather than rely on the `window` global, when a reload is
requested just reload the given `focusedWindow`.
Similarly, zooming was also broken, so fix that by going through `focusedWindow` rather than `webFrame` (since `webFrame` only exists in the render process).
Fixes https://github.com/facebook/flipper/issues/3839, https://github.com/facebook/flipper/issues/3820
## Changelog
changelog: Fixed reload & zoom in Flipper Desktop application.
Pull Request resolved: https://github.com/facebook/flipper/pull/3840
Test Plan: Built the application locally, verified that reload worked as expected (and would reload the application), verified that zooming (in, out, actual size) worked as expected.
Reviewed By: passy
Differential Revision: D38784319
Pulled By: mweststrate
fbshipit-source-id: c219063a8aaf42425678c2c8824f6fcde1cadd52
Summary:
This diff updates the Flipper plugin for UIQR+DDR to upsell people to use `arc uiqr` on the "Upload and Get Link" tab. At the moment I'm not showing the upsell on the "Upload Screens to Diff" tab since this functionality isn't really supported through `arc uiqr` yet.
The upsell uses localstorage to maintain its open/close state so it will show up by default but will be permanently dismissed (unless localstorage is cleared somehow :) ).
NOTE: I hacked out this UI using some existing reusable UIQR Flipper components and some extra styling for the background, but definitely open to feedback on the UI!
Differential Revision: D38232117
fbshipit-source-id: e1745e32974bd9e750bbbaaa2f47bafdd0ac87eb