Summary: Trying to make some bumps a daily habit.
Reviewed By: mweststrate
Differential Revision: D28260273
fbshipit-source-id: 29d163af3e3acc55139b52320992123b72de22c4
Summary: We can't fix the underlying issue but it's quite frustrating when you get an error from Preview or QuickTime after the file was pulled. This improves the messaging a little.
Reviewed By: mweststrate
Differential Revision: D28096087
fbshipit-source-id: 0428fa821a225a02e81574f16d066085e8775251
Summary: Bump a few more devDeps that are safe.
Reviewed By: mweststrate
Differential Revision: D28227971
fbshipit-source-id: 3b35b098230b604930d875ddf8867cfc6f56a9c7
Summary:
The migration to Sandy (D28060888) breaks the existing integration we have with importing Flipper traces from bug reports. Given that, I broke this diff out from that one just to highlight the changes.
`pluginStates2` appears to be the field to use for Sandy traces (rather than `store`, which we were using before)
Differential Revision: D28209561
fbshipit-source-id: 9803e1a60b1b1deba6403b50b4079aac2a19efa6
Summary:
Moved a lot of utility logic in separate files for Android and iOS, to make cleanup in next diffs easier by having a bit smaller files.
Purely a code shuffle, no functional changes
Reviewed By: passy
Differential Revision: D28102399
fbshipit-source-id: 2fd8f6669bdd2804fa8a7e1791c610ae7883eda6
Summary:
Changelog: Fixed application crash notifications not opening the crash log
Crashlog notifications were quite blatantly broken:
1. Because I force all GK's to true locally during testing, and the feature gate is negative, I never had any crash reports in the first place. The GK was empty so removed it.
2. The notifications overview would always cause a NPE when the notification came from a device plugin (it assumed a client to be present). This made the button do nothing and the device name not show up near the notification
3. The OS level notifications would link to the notification screen, which was a static screen in the classic UI and would always render to an empty page in Sandy. Removed that screen from the code base. Instead the click the notification will now trigger the notification action.
Reviewed By: passy
Differential Revision: D28119719
fbshipit-source-id: 5b28dd854260fd479d09e3ee6206301cc669ab40
Summary:
Code blocks are quite common in Flipper, and a bit verbose in Ant, so let's standardize!
Changelog: Standardize CodeBlock component
Reviewed By: passy
Differential Revision: D28117560
fbshipit-source-id: 5a5538a49b59ef40c814d22055fac56e7598cbbb
Summary:
Moving Value/renderValue API to "database" plugin as these APIs used exclusively by this plugin.
Alternative to that could be moving this API to "flipper-plugin" instead, but I think it doesn't make sense to expose public API which is only used in one plugin.
Reviewed By: mweststrate
Differential Revision: D28110483
fbshipit-source-id: 1576444681c1e0531fe45f0c15f442d65a28f803
Summary: Fixed loading of source maps when dev server is running with --fast-refresh flag set. Looks like it was broken after last metro upgrade because it changed the way how module paths are passed to dev server. We also had a hack to workaround bug when requested module paths were malformed, but it looks this hack is not needed now, so I deleted it as well.
Reviewed By: passy
Differential Revision: D28120080
fbshipit-source-id: 03a39c9840da8f4c8c72be6189c0b71c62fac7f0
Summary:
This addresses my biggest gripe with Flipper right now (maybe after it occasionally crashing my entire Mac, but that's beyond our control, sadly). When you try to switch your current device and hover over the picker, move your mouse quickly to where you expect the menu to open, it will immediate close. You have to wait for about 200ms before moving your cursor down into the expanded dropdown menu. "Well, it's only 200ms, Passy, chill." That's fair, but I still think that hovering to open a dropdown is unnatural behaviour. Looking around here in Phabricator, none of the dropdowns behave like this. And they definitely don't just disappear under my cursor if I'm Moving (too) Fast.
Changelog: The app selector no longer reacts on hover events now requites a click
Reviewed By: mweststrate
Differential Revision: D28118657
fbshipit-source-id: 67867d597b21b80a0de87ecbc8c86a7334f81952
Summary:
Changelog: Fixed an issue where Android logs would get stuck
Our adb and rsocket connection are fundamentally unstable; every now and then it looses connection (at least on my machine). This happens both for emulators and real devices.
If the logcat connection closes, it isn't restarted, so occassionaly the the logs would get 'stuck'. Fixed it by automatically restarting the stream if the close wasn't intentional.
Investigated the stack of the disconnects, but it isn't caused on our end, the closures originate from (R)socket itself, so this band aid seems unavoidable.
Using a near-zero timeout does work as well. Gave it a 100ms grace time though, in case starvation is a factor in the original problem. This might cause a few messages to be missed though, but it doesn't seem to happen to often (every few minutes in my case)
Reviewed By: passy
Differential Revision: D28095802
fbshipit-source-id: f22336ad46c04a3d886ff9dbc4d787591ac75eea
Summary:
Trying to get ahead of dependabot by bumping a bunch of things at once
that are minor or patch level bumps.
Reviewed By: muraziz
Differential Revision: D28094201
fbshipit-source-id: b6b53ae2d582686201124b82fed4f436a60b3172
Summary: This diff exposes the createTablePlugin from flipper-plugin, so that createTablePlugin based plugins can be converted to Sandy as well
Reviewed By: jknoxville
Differential Revision: D28031227
fbshipit-source-id: 8e9c82da08a83fddab740b46be9917b6a1023117
Summary: Moved Toolbar to flipper-plugin. No further changes.
Reviewed By: nikoant
Differential Revision: D28027334
fbshipit-source-id: 35de13d87734ae3a8af037166945b1a669106274
Summary: Fixed minor dark mode issue. Will address the ugly scrollbars in dark mode later.
Reviewed By: nikoant
Differential Revision: D28039447
fbshipit-source-id: eb0f545d224decb0334dca68b11277ddab612c2e
Summary: Additional deprecation warnings for components that should be imported from flipper-plugin
Reviewed By: nikoant
Differential Revision: D28027382
fbshipit-source-id: e46a40a950adb615d206bc08334893263c56dd1f
Summary:
Ant'd tabs didn't allow for vertical fill out. Introduced our own tiny wrapper that has `grow` by default.
Also made sure the users last selection is remembered.
Reviewed By: cekkaewnumchai
Differential Revision: D28026345
fbshipit-source-id: 7703bc241cd1427336b7c917bdb5be9f56bba9b9
Summary:
I was a dummy and ran into this. Tried to make it easier
for the next person to figure out what this means.
Reviewed By: mweststrate
Differential Revision: D28026376
fbshipit-source-id: ad3455938ef30b448b475cb990f86351e76628bf
Summary: Dropped the welcome-to-the-Sandy-redesign screen, should be pretty well established by now :)
Reviewed By: nikoant
Differential Revision: D27966658
fbshipit-source-id: 8f8943cbb242ef5625f0c19ffe4aed28e320377f
Summary: Expose a Panel api from Sandy, which is quite similar to the old one, except that it uses Antd, and it will remember the users closed / open preference through sessions, a much requested feature.
Reviewed By: nikoant
Differential Revision: D27966607
fbshipit-source-id: 9b18df377215c1e6c5844d0bf972058c8c574cbb
Summary:
Some styling fixes and minor improvements in DataTable, used by network plugin:
- be able to customise the context menu
- be able to customise how entire rows are copied and presented on the clipboard to be able to deviate from the standard JSON
- deeplink handling was made async, this gives the plugin the opportunity to first handle initial setup and rendering before trying to jump somewhere which is a typical use case for deeplinking
Reviewed By: passy
Differential Revision: D27947186
fbshipit-source-id: a56f081d60520c4bc2ad3c547a8ca5b9357e71a1
Summary: We received questions several times from plugin authors on how to find usage for particular app/platform and I wanted to add that data on plugin usage dashboard, but right now it's impossible. We're only collecting plugin ID as a part of plugin usage analytics. That means it's impossible to filter some plugin usage (e.g. "Network") by particular platform or mobile app. This diff improves plugin usage analytics to collect enhanced data.
Reviewed By: passy
Differential Revision: D27935801
fbshipit-source-id: c2fc7d8cf84f9a28823ae56a1dda7158e0b12f1f
Summary:
Tiny change, hours of debugging. Big thanks to jknoxville for
answering all my stupid questions.
Our number one "error" right now by users affected is
```
Unhandled Promise Rejection:
Error: RSocketTcpClient:
Socket closed unexpectedly.
```
Of course no stacktrace, because JavaScript and Promises.
The underlying problem is that RSocket keeps track of recently used
"receivers" which is every method that has sent a request. When someone disconnects their device or closes an emulator/simulator, the socket's `end` event is treated the same way any other connection error would be: a85a4db041/packages/rsocket-tcp-client/src/RSocketTcpClient.js (L74)
This then causes "errors" like these to appear:
{F609810187}
This could previously be handled in plugin-code by wrapping all `client.call()` invocations in try/catch, which nobody did, meaning we'd get rejected promises everywhere. We can instead handle this centrally and properly disconnect the connection.
Changelog: Severed RSocket connections are no longer treated as an error in plugin code
Reviewed By: jknoxville
Differential Revision: D27910514
fbshipit-source-id: ea9c0726ab0e959b0eb4a5fca67ddaa04a6f1d14
Summary:
This diff moves the core of ElementsInspector to flipper-plugin and decouples it from legacy design system and Electron, without any significant improvements or API changes yet, which will follow later.
Colors and docs will be added later in this stack.
Reviewed By: passy
Differential Revision: D27660300
fbshipit-source-id: 96abfa3b3174fa852cf04ae119c23c3d629fee74
Summary:
Bumps [react-refresh](https://github.com/facebook/react/tree/HEAD/packages/react) from 0.9.0 to 0.10.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-refresh's releases</a>.</em></p>
<blockquote>
<h2>v0.10.0</h2>
<h3>React Core</h3>
<h4>New Features</h4>
<ul>
<li>Added warnings to help migrate towards descriptors</li>
<li>Made it possible to server render without React-related markup (<code>data-reactid</code>, <code>data-react-checksum</code>). This DOM will not be mountable by React. <a href="http://facebook.github.io/react/docs/top-level-api.html#react.rendercomponenttostaticmarkup">Read the docs for <code>React.renderComponentToStaticMarkup</code></a></li>
<li>Added support for more attributes:
<ul>
<li><code>srcSet</code> for <code><img></code> to specify images at different pixel ratios</li>
<li><code>textAnchor</code> for SVG</li>
</ul>
</li>
</ul>
<h4>Bug Fixes</h4>
<ul>
<li>Ensure all void elements don’t insert a closing tag into the markup.</li>
<li>Ensure <code>className={false}</code> behaves consistently</li>
<li>Ensure <code>this.refs</code> is defined, even if no refs are specified.</li>
</ul>
<h3>Addons</h3>
<ul>
<li><code>update</code> function to deal with immutable data. <a href="http://facebook.github.io/react/docs/update.html">Read the docs</a></li>
</ul>
<h3>react-tools</h3>
<ul>
<li>Added an option argument to <code>transform</code> function. The only option supported is <code>harmony</code>, which behaves the same as <code>jsx --harmony</code> on the command line. This uses the ES6 transforms from <a href="https://github.com/facebook/jstransform">jstransform</a>.</li>
</ul>
<h2>v0.10.0-rc1</h2>
<p>No release notes provided.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/react/blob/master/CHANGELOG.md">react-refresh's changelog</a>.</em></p>
<blockquote>
<h2>0.10.0 (March 21, 2014)</h2>
<h3>React Core</h3>
<h4>New Features</h4>
<ul>
<li>Added warnings to help migrate towards descriptors</li>
<li>Made it possible to server render without React-related markup (<code>data-reactid</code>, <code>data-react-checksum</code>). This DOM will not be mountable by React. <a href="https://reactjs.org/docs/top-level-api.html#react.rendercomponenttostaticmarkup">Read the docs for <code>React.renderComponentToStaticMarkup</code></a></li>
<li>Added support for more attributes:
<ul>
<li><code>srcSet</code> for <code><img></code> to specify images at different pixel ratios</li>
<li><code>textAnchor</code> for SVG</li>
</ul>
</li>
</ul>
<h4>Bug Fixes</h4>
<ul>
<li>Ensure all void elements don’t insert a closing tag into the markup.</li>
<li>Ensure <code>className={false}</code> behaves consistently</li>
<li>Ensure <code>this.refs</code> is defined, even if no refs are specified.</li>
</ul>
<h3>Addons</h3>
<ul>
<li><code>update</code> function to deal with immutable data. <a href="https://reactjs.org/docs/update.html">Read the docs</a></li>
</ul>
<h3>react-tools</h3>
<ul>
<li>Added an option argument to <code>transform</code> function. The only option supported is <code>harmony</code>, which behaves the same as <code>jsx --harmony</code> on the command line. This uses the ES6 transforms from <a href="https://github.com/facebook/jstransform">jstransform</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/facebook/react/commits/v0.10.0/packages/react">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/2186
Reviewed By: passy
Differential Revision: D27760972
Pulled By: nikoant
fbshipit-source-id: a998232901ee6c02686069d119ef7818be4d7404
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/2172
New script which runs "tsc" for all plugins, receives list of errors and then checks which plugins are affected. It works for shared libs too, e.g. if there is an error in a shared library, then all plugins dependant on it will be counted as affected. For convenience, script saves list of errors affecting each plugin to "tsc-errors.log" in plugin folder.
This script will be used for automatic type-checking plugins against current "stable" and "insiders" versions of Flipper.
An alternative to this implementation would be to simply run "tsc" for each plugin individually, but such implementation takes a lot of time (5+ sec per plugin) and so cannot be effectively used on diffs.
Reviewed By: mweststrate
Differential Revision: D27499765
fbshipit-source-id: fcbbfc94a13e6c7c5beff0c889a929f84c41b2dd
Summary:
Here I'm changing plugin repository structure to allow re-using of shared packages between both public and fb-internal plugins, and to ensure that public plugins has their own yarn.lock as this will be required to implement reproducible jobs checking plugin compatibility with released flipper versions.
Please note that there are a lot of moved files in this diff, make sure to click "Expand all" to see all that actually changed (there are not much of them actually).
New proposed structure for plugin packages:
```
- root
- node_modules - modules included into Flipper: flipper, flipper-plugin, react, antd, emotion
-- plugins
--- node_modules - modules used by both public and fb-internal plugins (shared libs will be linked here, see D27034936)
--- public
---- node_modules - modules used by public plugins
---- pluginA
----- node_modules - modules used by plugin A exclusively
---- pluginB
----- node_modules - modules used by plugin B exclusively
--- fb
---- node_modules - modules used by fb-internal plugins
---- pluginC
----- node_modules - modules used by plugin C exclusively
---- pluginD
----- node_modules - modules used by plugin D exclusively
```
I've moved all public plugins under dir "plugins/public" and excluded them from root yarn workspaces. Instead, they will have their own yarn workspaces config and yarn.lock and they will use flipper modules as peer dependencies.
Reviewed By: mweststrate
Differential Revision: D27034108
fbshipit-source-id: c2310e3c5bfe7526033f51b46c0ae40199fd7586
Summary:
This diff moves the rest of the DataInspector jungle to flipper-plugin. No actual improvements are made yet, but the code is decoupled from Electron and the legacy theming. For example by using Antd based context menus.
Note that `ManagedDataInspector` is now rebranded `DataInspector`, as that is the only variation that should (and is) used publicly.
For the interactionTracker removal, see next diff.
SearchableDataInspector will be addressed in a next diff
Reviewed By: passy
Differential Revision: D27603125
fbshipit-source-id: 188bd000260e4e4704202ce02c7fc98319f0bc22
Summary:
Another utility component used by DataInspector.
Colors have been hardcoded for now, to decouple from the classic Flipper color palette. Will organize this better later in this stack, and when addressing / adding support for dark mode.
Buttons, checkboxes, selects have been replaced by Antd's counterpart.
Unlike ManagedDataTable, the DataInspector is primarily moved rather than copied & adapted, as the underlying abstraction / API won't change significantly. So the changes here will immediately affect all plugins in Flipper using this component.
Reviewed By: passy
Differential Revision: D27603126
fbshipit-source-id: bacd48c9af2b591033e7f2352627f11acb4df589
Summary: This stack moves the DataInspector component to flipper-plugin. The first diffs will move some utility abstractions to turn this into smaller steps
Reviewed By: passy
Differential Revision: D27591890
fbshipit-source-id: d0285ca31b6c9b334000dd15c722b9bda7638d73
Summary: Made datatypes used by DataInspector more strictly typed (in the hope to be able to drop some, but all are still in use, although the distinction between different elements isn't always clear).
Reviewed By: passy
Differential Revision: D27266825
fbshipit-source-id: 6a1c74b0ae3daff6299ca598b18a205d17c42e22
Summary:
It looks like electron creates new native window object after each window refresh, but we hold previous objects because of listeners attached to them. In dev mode, Electron signalises about that in console log each time when window is focused / blured after refresh:
```
Attempting to call a function in a renderer window that has been closed or released.
Function provided here: init-fast-refresh.bundle?platform=web&dev=true&minify=false:800356:19
```
Reviewed By: passy
Differential Revision: D27619305
fbshipit-source-id: 51d1590903a37dba721fb7a711fdebb9f0034b98
Summary:
According to Google, ANDROID_HOME is deprecated.
This means, that having only ANDROID_SDK_ROOT as environment variable leading to Android SDK is enough.
Flipper supports only ANDROID_HOME, so I would like to add ANDROID_SDK_ROOT support.
However, there is a set of rules of ANDROID_HOME and ANDROID_SDK_ROOT priority.
Everything is mentioned on a this page: https://developer.android.com/studio/command-line/variables
## Changelog
Added ANDROID_SDK_ROOT environment variable support
Pull Request resolved: https://github.com/facebook/flipper/pull/2106
Test Plan: Probably I would need a help with this
Reviewed By: mweststrate
Differential Revision: D27505024
Pulled By: passy
fbshipit-source-id: 8bdc66a9652c673fd44944d87af1efc9e93d0f1b
Summary:
Bumps [rsocket-types](https://github.com/rsocket/rsocket-js) from 0.0.16 to 0.0.25.
<details>
<summary>Commits</summary>
<ul>
<li><a href="a85a4db041"><code>a85a4db</code></a> v0.0.25</li>
<li><a href="b279d67569"><code>b279d67</code></a> ammend versions</li>
<li><a href="1e15f3c975"><code>1e15f3c</code></a> v0.0.24</li>
<li><a href="a4b7a93dc0"><code>a4b7a93</code></a> provides a temporary fix for <a href="https://github-redirect.dependabot.com/rsocket/rsocket-js/issues/110">https://github.com/facebook/flipper/issues/110</a></li>
<li><a href="c271a37128"><code>c271a37</code></a> exports missing TlsClient</li>
<li><a href="844b10b35b"><code>844b10b</code></a> updates docs</li>
<li><a href="39a86dfa5f"><code>39a86df</code></a> updates docs</li>
<li><a href="97e1e9f922"><code>97e1e9f</code></a> updates versions</li>
<li><a href="90e70580d1"><code>90e7058</code></a> fixes RSocketMachine leak on the server-side (<a href="https://github-redirect.dependabot.com/rsocket/rsocket-js/issues/120">https://github.com/facebook/flipper/issues/120</a>)</li>
<li><a href="f665cd1038"><code>f665cd1</code></a> adds METADATA_PUSH support (<a href="https://github-redirect.dependabot.com/rsocket/rsocket-js/issues/119">https://github.com/facebook/flipper/issues/119</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/rsocket/rsocket-js/compare/v0.0.16...v0.0.25">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~shadowgun">shadowgun</a>, a new releaser for rsocket-types since your current version.</p>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/2159
Reviewed By: nikoant
Differential Revision: D27589269
Pulled By: mweststrate
fbshipit-source-id: 11b728374a2ab39faf7cbaba9f27dfeb23ef9a5e
Summary: Found an NPE during testing a prod build that I encountered a few times before, which occurs when the user isn't logged in. Maked types stricter and this probably fixes an old bug where login status icon could be out of sync as well.
Reviewed By: nikoant
Differential Revision: D27589740
fbshipit-source-id: 419aaca77a997e01e8d9b0067e604a8dad019551
Summary:
Changelog: Added an explicit autoscroll indicator in logs and fixed snapping
We got several reports that auto scrolling was to aggressive, so revisited the implementation and the new one is a lot more reliable. Also added an explicit indicator / button to toggle tailing.
Exposed ant's active color as well in our theme, as it gives better contrast on the buttons than Flipper purple.
Reviewed By: passy
Differential Revision: D27397506
fbshipit-source-id: 5e82939de4b2f8b89380bd55009e3fa2a7c10ec9