Summary:
Design doc: https://docs.google.com/document/d/1HLCFl46RfqG0o1mSt8SWrwf_HMfOCRg_oENioc1rkvQ/edit#
Some files on the devices could be unavailable due to lack of permissions (hello SELinux and enterprise builds of iOS apps). Instead of failing the export, we should fetch what we can.
Reviewed By: passy
Differential Revision: D40551931
fbshipit-source-id: 698e157b1283b9e959909b6439cd09d2dc8dc8d6
Summary:
Design doc: https://docs.google.com/document/d/1HLCFl46RfqG0o1mSt8SWrwf_HMfOCRg_oENioc1rkvQ/edit#
Exporting all files form a device and export Flipper's own state could take a long time. We need to keep our users updated on the status.
Reviewed By: passy
Differential Revision: D40551661
fbshipit-source-id: d5c94fb99d4bc8b4495ce463915b77c475548f01
Summary:
Design doc: https://docs.google.com/document/d/1HLCFl46RfqG0o1mSt8SWrwf_HMfOCRg_oENioc1rkvQ/edit#
In later diffs, we'll start fetching the actual files as well. The list of available files itself might be useful already to see what we have in our folder on the device
Reviewed By: passy
Differential Revision: D40508960
fbshipit-source-id: 96193fef3fed64d509cd3397513ae3e94438ae22
Summary:
Design doc: https://docs.google.com/document/d/1HLCFl46RfqG0o1mSt8SWrwf_HMfOCRg_oENioc1rkvQ/edit#
Add a button to export all possible debug data at once. IN subsequent diffs, I'll add more extensive data collection.
Reviewed By: antonk52
Differential Revision: D40467606
fbshipit-source-id: 6a4225945b1feb6c1a8073b5209a62ba0beb6148
Summary:
Replace draft inspectors with read-only components.
This is a first step into having a richer UI. At the moment, these are read-only components but will likely be extended in the future as to allow editing of values.
Reviewed By: LukeDefeo
Differential Revision: D40345016
fbshipit-source-id: a6aef5861474b4aa8353c00ef257ab17b4cff00e
Summary:
Utility function that transforms lower camel case attribute names to a more readable name.
e.g. sizeToFit -> Size To Fit
Reviewed By: antonk52
Differential Revision: D40344715
fbshipit-source-id: f0745b892a78cc262133197a4d4b7624a7e2141d
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:
There were some situations were we would hang waiting for new clients but one had connected.
Additionally the old approach would close and reopen the dialog every time a state update happened in the redux store which was a little jarring. Now the polling of the update is independant the dialog
The dialog still flashes for other parts of the flow (when scanning for devices) and would be nice to fix this too in the future
Reviewed By: mweststrate
Differential Revision: D40477502
fbshipit-source-id: d1ff161f262493cf5b3fb74e22b49ed65de8c292
Summary: We were incorrectly assuming a client did not support a plugin because it was not fully initialized. This issue was only apparant on start deep links
Reviewed By: mweststrate
Differential Revision: D40477503
fbshipit-source-id: 5fd9db765f559b8eb80cc3680ee694dfd2cf9a37
Summary: pull/push might fail when run-as fails on insufficient permissions. When this happens, try to perform the command as root.
Reviewed By: aigoncharov
Differential Revision: D40623363
fbshipit-source-id: a4cc71d70f83ce1a390b14c9af9d3a3fa09f1307
Summary:
This change adds support for more inspectables and also introduces more complex types to be used as a value.
This become specially useful for more complex yet primitive types like coordinate, size, bounds, etc.
Reviewed By: LukeDefeo
Differential Revision: D40307885
fbshipit-source-id: 125e832f06d6b31f56eb5405182d1c0d61388930
Summary:
Bumps [emotion/styled](https://github.com/emotion-js/emotion) from 11.8.1 to 11.10.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/emotion-js/emotion/releases"><code>@emotion/styled</code>'s releases</a>.</em></p>
<blockquote>
<h2><code>@emotion/styled</code><a href="https://github.com/11"><code>@11</code></a>.10.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="https://github-redirect.dependabot.com/emotion-js/emotion/pull/2867">https://github.com/facebook/flipper/issues/2867</a> <a href="89b6dbb3c1"><code>89b6dbb3</code></a> Thanks <a href="https://github.com/Andarist"><code>@Andarist</code></a>! - Externalized code referencing <code>React.useInsertionEffect</code> to a separate <code>emotion/use-insertion-effect-with-fallbacks</code> package. This package should be used in your defined externals if you bundle Emotion for whatever reason. It references <code>useInsertionEffect</code> in a very specific way that allows us to use it conditionally. However, if the code consuming Emotion is bundled as a library with Emotion in it then some bundlers might change the way in which we reference <code>useInsertionEffect</code> and that might create problems for bundlers used to consume the said library code. By externalizing this new package you can still bundle Emotion if you want to without running into this problem as you won't "destroy" the carefully crafted reference to <code>useInsertionEffect</code> in the process.</p>
<p>Note that we don't recommend bundling Emotion. You should have very specific reasons to do so.</p>
</li>
<li>
<p>Updated dependencies [<a href="89b6dbb3c1"><code>89b6dbb3</code></a>]:</p>
<ul>
<li><code>@emotion/use-insertion-effect-with-fallbacks</code><a href="https://github.com/1"><code>@1</code></a>.0.0</li>
</ul>
</li>
</ul>
<h2><code>@emotion/styled</code><a href="https://github.com/11"><code>@11</code></a>.10.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a href="https://github-redirect.dependabot.com/emotion-js/emotion/pull/2819">#2819</a> <a href="bbad8c7993"><code>bbad8c79</code></a> Thanks <a href="https://github.com/nicksrandall"><code>@nicksrandall</code></a>! - <code>exports</code> field has been added to the <code>package.json</code> manifest. It limits what files can be imported from a package but we've tried our best to allow importing all the files that were considered to be a part of the public API.</p>
</li>
<li>
<p><a href="https://github-redirect.dependabot.com/emotion-js/emotion/pull/2819">#2819</a> <a href="bbad8c7993"><code>bbad8c79</code></a> Thanks <a href="https://github.com/nicksrandall"><code>@nicksrandall</code></a>! - Thanks to the added <code>exports</code> field, the package now includes a <code>worker</code> condition that can be utilized by properly configured bundlers when targeting worker-like environments. It fixes the issue with browser-specific files being prioritized by some bundlers when targeting workers.</p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a href="bbad8c7993"><code>bbad8c79</code></a>, <a href="bbad8c7993"><code>bbad8c79</code></a>]:
<ul>
<li><code>@emotion/babel-plugin</code><a href="https://github.com/11"><code>@11</code></a>.10.0</li>
<li><code>@emotion/is-prop-valid</code><a href="https://github.com/1"><code>@1</code></a>.2.0</li>
<li><code>@emotion/serialize</code><a href="https://github.com/1"><code>@1</code></a>.1.0</li>
<li><code>@emotion/utils</code><a href="https://github.com/1"><code>@1</code></a>.2.0</li>
</ul>
</li>
</ul>
<h2><code>@emotion/styled</code><a href="https://github.com/11"><code>@11</code></a>.9.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a href="https://github-redirect.dependabot.com/emotion-js/emotion/pull/2759">https://github.com/facebook/flipper/issues/2759</a> Thanks <a href="https://github.com/srmagura"><code>@srmagura</code></a>, <a href="https://github.com/Andarist"><code>@Andarist</code></a>! - Change the argument of the <code>shouldForwardProp</code> option of <code>styled</code> from <code>PropertyKey</code> to <code>string</code> in the TypeScript definitions.</p>
</li>
<li>
<p><a href="https://github-redirect.dependabot.com/emotion-js/emotion/pull/2333">https://github.com/facebook/flipper/issues/2333</a> <a href="3055efddf8"><code>3055efdd</code></a> Thanks <a href="https://github.com/Andarist"><code>@Andarist</code></a>! - <code>shouldForwardProp</code> has been changed from being a bivariant method to a contravariant function - it improves the type-safety for those that type this option.</p>
</li>
<li>
<p><a href="https://github-redirect.dependabot.com/emotion-js/emotion/pull/2333">https://github.com/facebook/flipper/issues/2333</a> <a href="3055efddf8"><code>3055efdd</code></a> Thanks <a href="https://github.com/antongolub"><code>@antongolub</code></a>! - <code>FilteringStyledOptions</code> and <code>StyledOptions</code> types no longer require a type argument for the <code>Props</code> generic.</p>
</li>
<li>
<p>Updated dependencies [<a href="26e4e3e8b6"><code>26e4e3e8</code></a>, <a href="5e81f21398"><code>5e81f213</code></a>, <a href="3055efddf8"><code>3055efdd</code></a>]:</p>
<ul>
<li><code>@emotion/serialize</code><a href="https://github.com/1"><code>@1</code></a>.0.4</li>
<li><code>@emotion/is-prop-valid</code><a href="https://github.com/1"><code>@1</code></a>.1.3</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="6835850e39"><code>6835850</code></a> Version Packages (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2872">https://github.com/facebook/flipper/issues/2872</a>)</li>
<li><a href="89b6dbb3c1"><code>89b6dbb</code></a> Move conditional <code>useInsertionEffect</code> declarations into separate package (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2867">https://github.com/facebook/flipper/issues/2867</a>)</li>
<li><a href="28522cd3ca"><code>28522cd</code></a> Upgrade Yarn (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2870">https://github.com/facebook/flipper/issues/2870</a>)</li>
<li><a href="f2608b3a54"><code>f2608b3</code></a> Version Packages (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2865">https://github.com/facebook/flipper/issues/2865</a>)</li>
<li><a href="b9b8b7493d"><code>b9b8b74</code></a> Fixed a regression that could cause a crash when looking for an ignoring comm...</li>
<li><a href="c60d646ff5"><code>c60d646</code></a> Version Packages (<a href="https://github-redirect.dependabot.com/emotion-js/emotion/issues/2860">https://github.com/facebook/flipper/issues/2860</a>)</li>
<li><a href="df434eaf9d"><code>df434ea</code></a> Pass <code>--no-immutable</code> to Yarn when regenerating lockfile after versioning pac...</li>
<li><a href="2de94aee23"><code>2de94ae</code></a> Regenerate lockfile after versioning packages</li>
<li><a href="005e211d53"><code>005e211</code></a> Fixed an issue in the styles minifier that caused interpolations to be someti...</li>
<li><a href="0ffd6068fe"><code>0ffd606</code></a> Fixed the ignore flag not disabling the warning when there are multiple block...</li>
<li>Additional commits viewable in <a href="https://github.com/emotion-js/emotion/compare/emotion/styled@11.8.1...@emotion/styled@11.10.4">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/4118
Reviewed By: aigoncharov
Differential Revision: D40335000
Pulled By: mweststrate
fbshipit-source-id: 7427a4ebb0d6b4e643288ae10e4db34a3781bb88
Summary:
In a headless mode we do not have access to local storage. As a result, headless plugins that try to use `persistToLocalStorage` option crash. We should ignore the option for these plugins for now and add a way to persist the plugin state to the disk in a headless mode in the future.
CHANGELOG: Ignore persistToLocalStorage in headless mode
Resolves https://github.com/facebook/flipper/issues/4190
Reviewed By: lblasa
Differential Revision: D40341873
fbshipit-source-id: 40774c0024f79cf1652f24146fd16f6a101ca99e
Summary:
Without seeing the specific messages it might be hard to debug what is taking so long.
CHANGELOG: Enhance a warning about taking too much time to process plugin messages
Differential Revision: D40340272
fbshipit-source-id: a4dbd639cf389763a3cb00a190216c0e653c08e4
Summary:
When we start using Flipper from the CLI for automation, we want to have the list of currently connected devices as soon as flipper server is alive.
Otherwise, we would have to poll flipper server waiting for some magical moment in the future when devices connect.
This way, we can be certain that if flipper server started, but we do not see a device, it is not connected at all.
Reviewed By: mweststrate
Differential Revision: D40184106
fbshipit-source-id: ce4c2b897a2df0081e3a0b6a8c26640599e0f9e8
Summary:
Show users a way to fix Flipper EADDRINUSE on their own without filing a support request
CHANGELOG: Better error message for EADDRINUSE
Reviewed By: mweststrate
Differential Revision: D40338164
fbshipit-source-id: ec0419c78983b55736aa773757775b5302da51e0
Summary: This makes the vizualiser a lot less cluttered
Reviewed By: lblasa
Differential Revision: D40021837
fbshipit-source-id: 8901c9bff6f05ee3fa4517e103c770be1fcfa403
Summary: Previously opening a deep link would always fail with flipper thinking the plugin did not exist. In this diff we wait for plugins to be initialized
Differential Revision: D40142275
fbshipit-source-id: 7894fc60a6df57e13395e05263b0905847b11ad3
Summary:
Related GH issue: https://github.com/facebook/flipper/issues/4139
Context:
The current direction is that all plugins should be able to run in browser envs. Opening external windows, deeplinks and etc. should be abstracted away in getFlipperLib().
For plugin developers, it could be challenging to upgrade the existing plugins that rely on electron being present. We should not failing the build process for them because their plugins depend on electron.
Allow desktop plugin to build
Relevant ticket: https://github.com/facebook/flipper/issues/4139
Pull Request resolved: https://github.com/facebook/flipper/pull/4145
Reviewed By: mweststrate
Differential Revision: D39887902
Pulled By: mweststrate
fbshipit-source-id: 4132912b5a2b598c7897d434647cffed6980de19
Summary: It didnt need to exist and can be seen as a subtree update of type full scan
Reviewed By: lblasa
Differential Revision: D39731552
fbshipit-source-id: e351413d9480e118fc000c5e55eae0e7980233f2
Summary:
A side affect of the new tree implementation was unecessary renders. For very large trees this was noticable to the user.
A condition is added to the props are equal function for the memoized component to consider if this nodes path is a prefix to the new or previous hover path. This indicates whether it needs to rerender or wether the change in hover state is unconsequential to this component.
changelog: Fixed a bug in the nested highlighting of the data inspector, previously it could remain highlighted while moving the mouse away quickly and multiple highlights could be visible at the same time
Reviewed By: mweststrate
Differential Revision: D39883905
fbshipit-source-id: abdac71574695000addb4ba6477503b7d44a4faf
Summary:
There were 2 issues with the previous implementation of the nested hover.
1. If you moved the mouse out of the inspector quickly we would miss the event and we would have a hover state of the root element when we shouldnt
2. The hover state was stored per node, it was possible to have mulitple children hovered at the same time if you moved the mouse fast enough in a very complex tree
The new implementation has the hovered id stored in the Datainspector root. This solves the multiple state issue since there can only be one. Finally There is an onMouseLeave hook added to the parent div which seems to reliably fire no mouse how erractic my mouse movements :) Also the new implementation is a lot easier to understand
Reviewed By: mweststrate
Differential Revision: D39855733
fbshipit-source-id: 96b43f216deef72b81cd52001f8de26df55ea693
Summary:
^
This change allows to take different snapshots for different nodes and render them each on the visualiser.
At the moment, more than likely, this is not really used. At the same time, it fixes an issue whereas any subtree update can override and set the only visible snapshot.
Reviewed By: LukeDefeo, antonk52
Differential Revision: D39821920
fbshipit-source-id: ab8f6a4a2a5e96801c951a4e3009cc571a617f22
Summary:
^
TODO: the snapshot corresponds to the referring subtree update. However, the snapshot is getting applied as if it was the current top view of the running app. This is true in most cases but it doesn't for some. To solve this, we need to use the rootId for the subtree and apply the snapshot only if appropriate.
Having said that, is good enough for the current submission as we keep iterating on it.
Reviewed By: LukeDefeo
Differential Revision: D39813307
fbshipit-source-id: 33b6aff6e9dd085934150ebd2f247062447a59ff
Summary: We have a list of modules that we do not bundle with the plugins, but provide externally to them from Flipper. For the mechanism to work correctly, we have to stop importing from nested paths of these modules.
Reviewed By: mweststrate
Differential Revision: D39776237
fbshipit-source-id: 06eae9bf9d5b11b48d2720bf592bfea749773847