Commit Graph

730 Commits

Author SHA1 Message Date
Michel Weststrate
ba74b074c2 Fix employee detection in OSS version
Summary: Changelog: Fix incorrect warning in OSS builds hinting to install a closed source build. Fixes #1853

Reviewed By: passy

Differential Revision: D26019227

fbshipit-source-id: 61a0270997d0aa67d55224e4f6268ed3103099c7
2021-01-22 09:14:34 -08:00
Anton Nikolaev
592d4b9227 Pass release channel when checking for update
Summary: Retrieve updated version in accordance to the currently selected release channel. Also changed message for "insiders" channel - removed mention of fbsource pinning.

Reviewed By: mweststrate

Differential Revision: D26011703

fbshipit-source-id: 7f3396e89db047cb24b4e00b224f79ca0fd64327
2021-01-22 08:21:47 -08:00
Anton Nikolaev
8ce69975a5 Re-enable asar and unpack PortForwardingMacApp
Summary: Enabled asar packaging for Flipper resources, and set PortForwardingMacApp as unpacked from it, because it is launched as external app.

Reviewed By: passy

Differential Revision: D26006771

fbshipit-source-id: 91c8401a469a390144bf9867996a66d754ea90e6
2021-01-22 08:21:47 -08:00
Michel Weststrate
ab31ad69e9 Fix keyboard events to incorrectly listen / propagate globally
Summary:
As reported in https://fb.workplace.com/groups/flippersupport/permalink/1033379297142728/,

using keyboard shortcuts in one component, can change the state of another.

This was caused by two problems:
1. ManagedTable established a global keyboard listener, rather than a local one
2. The Layout Inspector did not stop its keyboard events from propagating up in the DOM

This diff fixes both issues

Reviewed By: timur-valiev

Differential Revision: D26018248

fbshipit-source-id: 23d9cc38ad56d47213cb553ffaf528b05fbe1929
2021-01-22 06:11:50 -08:00
Michel Weststrate
e67ed8030d Make settings dialog scrollable
Summary: Make settings dialog content scrollable, which is more natural than scrolling the entire window, as reported in https://fb.workplace.com/groups/flippersupport/permalink/1063196077494383/

Reviewed By: nikoant

Differential Revision: D26015864

fbshipit-source-id: 8c74e105c290e62313e332ed1b47040eff548a97
2021-01-22 02:06:19 -08:00
Michel Weststrate
a6c1a95be7 Bump Immer to fix potential security issue
Summary:
Immer had security issues. Noobs.

Only the patches feature was affected, which at this moment isn't used by any known plugin, but just in case.

Reviewed By: passy

Differential Revision: D25993961

fbshipit-source-id: 9bfe7065c90865d912ebcfd14c1117697bf714f7
2021-01-21 04:20:21 -08:00
Michel Weststrate
18ff69bacd Clean up home screen
Summary: The default screen without any devices or magic GK's was a bit noisy, this diffs cleans it up

Reviewed By: jknoxville

Differential Revision: D25946004

fbshipit-source-id: 76b7eec16b433544e9872e726e8f57dd1ce02b0f
2021-01-19 11:37:24 -08:00
Michel Weststrate
69c8413c57 Check for most recent Flipper version in internal builds as well
Reviewed By: passy

Differential Revision: D25945643

fbshipit-source-id: 4a831fa8d69c38004c8660597659ebd7007a3230
2021-01-19 07:10:00 -08:00
Michel Weststrate
84c05d441d Turn update message into notification
Summary: Based on discussion in D25805957 (ffeb47ed75), instead of showing a warning icon in the siderail, Flipper now shows a notification if there is a version / launcher issue or an update available

Reviewed By: nikoant

Differential Revision: D25924534

fbshipit-source-id: 625e46e41d9aa58f49e8bb77e5c513de0ddfbd6a
2021-01-19 07:09:59 -08:00
Michel Weststrate
6f75e39ca5 Clean up employee warning
Summary: Replaced in-your-face warning with a but more subtle one. Means also less usage of component lib.

Reviewed By: nikoant

Differential Revision: D25944965

fbshipit-source-id: 02a66ff96df2ab8b648f8b8cbeb30d025adfd5a8
2021-01-19 07:09:59 -08:00
Michel Weststrate
7a1717fa87 Clean up App duplication
Summary: fb/App didn't really have a difference with fb-stubs/App, except that one checks for employee presence. However, since that is already controlled by config.checkFbEmployee, de-duped this to a single `<AppWrapper>` component, making the code a bit more easy to follow

Reviewed By: priteshrnandgaonkar

Differential Revision: D25824521

fbshipit-source-id: 8e16f0b29ec5d12475eaf14acd9dbc7df91191a2
2021-01-18 06:48:03 -08:00
Michel Weststrate
bf6655a640 Clean up SandySettingsPanel
Summary: The fb and non-fb sandy settings are now identical (see diff 1 of this stack), so inlined the component and dropped the files

Reviewed By: priteshrnandgaonkar

Differential Revision: D25824522

fbshipit-source-id: 5a388b3f7259cb96f0e45ceb3363c40e4f198d7b
2021-01-18 06:48:03 -08:00
Michel Weststrate
ffeb47ed75 Move title bar functionality to rail (#1816)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1816

Now that Sandy is the default in OSS builds as well, we can remove the temporarily title bar and switch to small topbar windows in Electron.

This diff removes any remaining elements in the titlebar

- version number went into the title bar
- the update check warning is shown on top of the bottom section of the left rail (orange triangle)
- the development only perf graphs are moved to the left bar as well and are now aligned vertically.

Reviewed By: jknoxville

Differential Revision: D25805957

fbshipit-source-id: fba4b60c246b8f5d99a93087af31af9ac55defe8
2021-01-18 06:48:03 -08:00
Michel Weststrate
bd6c5c0f71 Remove AutoUpdateVersion
Summary: With Sandy we don't have a designed UI for the auto updater, and since this functionality has been disabled for almost a year, we can safely remove it for now until we have the underlying infra, and then rethink the UI if we ever re-introduce it

Reviewed By: passy

Differential Revision: D25804854

fbshipit-source-id: fd96624ffd44e373e8f2c454a67b3797b16779a6
2021-01-18 06:48:02 -08:00
Michel Weststrate
1d23e043de Open Sandy by default to OSS users
Summary:
Removed all `GK.get('flipper_sandy') ` checks to make Sandy the default in public builds as well.

Changelog: Public OSS builds will now use Sandy by default

Reviewed By: passy

Differential Revision: D25803498

fbshipit-source-id: 17b0b431cd30ebcf1c308af0ce63a05b3798741e
2021-01-18 06:48:02 -08:00
Pritesh Nandgaonkar
439601e20c Fix Screen recorder not stopping
Summary:
This fixes the issue raised [here](https://fb.workplace.com/groups/flippersupport/permalink/1059080941239230/) I added the `-l` tag which is for sending signal

{F360746398}

Reviewed By: jknoxville

Differential Revision: D25945336

fbshipit-source-id: a1d8eaf3888072a64ab682fbbc60c03c15ac023a
2021-01-18 06:17:52 -08:00
dependabot[bot]
109ee4e4e5 Bump ws from 7.3.0 to 7.4.2 in /desktop (#1827)
Summary:
Bumps [ws](https://github.com/websockets/ws) from 7.3.0 to 7.4.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/websockets/ws/releases">ws's releases</a>.</em></p>
<blockquote>
<h2>7.4.2</h2>
<h1>Bug fixes</h1>
<ul>
<li>Silenced a deprecation warning (d1a8af4d).</li>
</ul>
<h2>7.4.1</h2>
<h1>Bug fixes</h1>
<ul>
<li>Added a workaround for a double <code>'error'</code> event bug in Node.js &lt; 13 which
caused an uncaught error during the WebSocket handshake (38d6ab3b).</li>
</ul>
<h2>7.4.0</h2>
<h1>Features</h1>
<ul>
<li>The callback of <code>WebSocketServer.prototype.handleUpgrade()</code> now takes the
client HTTP GET request as second argument (7d39f19e).</li>
</ul>
<h1>Bug fixes</h1>
<ul>
<li>Read-only properties are now read-only (eabed8fc).</li>
<li>The <code>CONNECTING</code>, <code>OPEN</code>, <code>CLOSING</code>, <code>CLOSED</code>, <code>binaryType</code>, <code>bufferedAmount</code>,
<code>extensions</code>, <code>onclose</code>, <code>onerror</code>, <code>onmessage</code>, <code>onopen</code>, <code>protocol</code>,
<code>readyState</code>, and <code>url</code> properties are now enumerable (2069e684).</li>
</ul>
<h2>7.3.1</h2>
<h1>Bug fixes</h1>
<ul>
<li>Improved <code>websocket.bufferedAmount</code> accuracy (e1349c04, a1629426).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="d1a8af4ddb"><code>d1a8af4</code></a> [dist] 7.4.2</li>
<li><a href="48a2349d22"><code>48a2349</code></a> [pkg] Update eslint-config-prettier to version 7.1.0</li>
<li><a href="a2c0d447af"><code>a2c0d44</code></a> [minor] Silence deprecation warning</li>
<li><a href="c171962844"><code>c171962</code></a> [dist] 7.4.1</li>
<li><a href="38d6ab3b06"><code>38d6ab3</code></a> [fix] Handle cases where the <code>'error'</code> event is emitted multiple times</li>
<li><a href="3d5066a7ca"><code>3d5066a</code></a> [test] Check configurability and enumerability of WebSocket properties</li>
<li><a href="eb36a63183"><code>eb36a63</code></a> [dist] 7.4.0</li>
<li><a href="3f185bf34a"><code>3f185bf</code></a> [minor] Use the public <code>binaryType</code> property</li>
<li><a href="2069e68470"><code>2069e68</code></a> [fix] Fix the enumerability of some properties</li>
<li><a href="eabed8fcc3"><code>eabed8f</code></a> [fix] Make read-only properties read-only</li>
<li>Additional commits viewable in <a href="https://github.com/websockets/ws/compare/7.3.0...7.4.2">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ws&package-manager=npm_and_yarn&previous-version=7.3.0&new-version=7.4.2)](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/1827

Reviewed By: mweststrate

Differential Revision: D25870560

Pulled By: passy

fbshipit-source-id: e71365ab725d18bd89f93854087437703da477c4
2021-01-12 09:47:47 -08:00
dependabot[bot]
02da9baa4b Bump axios from 0.21.0 to 0.21.1 in /desktop (#1811)
Summary:
Bumps [axios](https://github.com/axios/axios) from 0.21.0 to 0.21.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/axios/axios/releases">axios's releases</a>.</em></p>
<blockquote>
<h2>v0.21.1</h2>
<h3>0.21.1 (December 21, 2020)</h3>
<p>Fixes and Functionality:</p>
<ul>
<li>Hotfix: Prevent SSRF (<a href="https://github-redirect.dependabot.com/axios/axios/issues/3410">#3410</a>)</li>
<li>Protocol not parsed when setting proxy config from env vars (<a href="https://github-redirect.dependabot.com/axios/axios/issues/3070">#3070</a>)</li>
<li>Updating axios in types to be lower case (<a href="https://github-redirect.dependabot.com/axios/axios/issues/2797">#2797</a>)</li>
<li>Adding a type guard for <code>AxiosError</code> (<a href="https://github-redirect.dependabot.com/axios/axios/issues/2949">#2949</a>)</li>
</ul>
<p>Internal and Tests:</p>
<ul>
<li>Remove the skipping of the <code>socket</code> http test (<a href="https://github-redirect.dependabot.com/axios/axios/issues/3364">#3364</a>)</li>
<li>Use different socket for Win32 test (<a href="https://github-redirect.dependabot.com/axios/axios/issues/3375">#3375</a>)</li>
</ul>
<p>Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:</p>
<ul>
<li>Daniel Lopretto <a href="mailto:timemachine3030@users.noreply.github.com">timemachine3030@users.noreply.github.com</a></li>
<li>Jason Kwok <a href="mailto:JasonHK@users.noreply.github.com">JasonHK@users.noreply.github.com</a></li>
<li>Jay <a href="mailto:jasonsaayman@gmail.com">jasonsaayman@gmail.com</a></li>
<li>Jonathan Foster <a href="mailto:jonathan@jonathanfoster.io">jonathan@jonathanfoster.io</a></li>
<li>Remco Haszing <a href="mailto:remcohaszing@gmail.com">remcohaszing@gmail.com</a></li>
<li>Xianming Zhong <a href="mailto:chinesedfan@qq.com">chinesedfan@qq.com</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/axios/axios/blob/v0.21.1/CHANGELOG.md">axios's changelog</a>.</em></p>
<blockquote>
<h3>0.21.1 (December 21, 2020)</h3>
<p>Fixes and Functionality:</p>
<ul>
<li>Hotfix: Prevent SSRF (<a href="https://github-redirect.dependabot.com/axios/axios/issues/3410">#3410</a>)</li>
<li>Protocol not parsed when setting proxy config from env vars (<a href="https://github-redirect.dependabot.com/axios/axios/issues/3070">#3070</a>)</li>
<li>Updating axios in types to be lower case (<a href="https://github-redirect.dependabot.com/axios/axios/issues/2797">#2797</a>)</li>
<li>Adding a type guard for <code>AxiosError</code> (<a href="https://github-redirect.dependabot.com/axios/axios/issues/2949">#2949</a>)</li>
</ul>
<p>Internal and Tests:</p>
<ul>
<li>Remove the skipping of the <code>socket</code> http test (<a href="https://github-redirect.dependabot.com/axios/axios/issues/3364">#3364</a>)</li>
<li>Use different socket for Win32 test (<a href="https://github-redirect.dependabot.com/axios/axios/issues/3375">#3375</a>)</li>
</ul>
<p>Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:</p>
<ul>
<li>Daniel Lopretto <a href="mailto:timemachine3030@users.noreply.github.com">timemachine3030@users.noreply.github.com</a></li>
<li>Jason Kwok <a href="mailto:JasonHK@users.noreply.github.com">JasonHK@users.noreply.github.com</a></li>
<li>Jay <a href="mailto:jasonsaayman@gmail.com">jasonsaayman@gmail.com</a></li>
<li>Jonathan Foster <a href="mailto:jonathan@jonathanfoster.io">jonathan@jonathanfoster.io</a></li>
<li>Remco Haszing <a href="mailto:remcohaszing@gmail.com">remcohaszing@gmail.com</a></li>
<li>Xianming Zhong <a href="mailto:chinesedfan@qq.com">chinesedfan@qq.com</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a64050a6cf"><code>a64050a</code></a> Releasing 0.21.1</li>
<li><a href="d57cd976f3"><code>d57cd97</code></a> Updating changelog for 0.21.1 release</li>
<li><a href="8b0f373df0"><code>8b0f373</code></a> Use different socket for Win32 test (<a href="https://github-redirect.dependabot.com/axios/axios/issues/3375">#3375</a>)</li>
<li><a href="e426910be7"><code>e426910</code></a> Protocol not parsed when setting proxy config from env vars (<a href="https://github-redirect.dependabot.com/axios/axios/issues/3070">#3070</a>)</li>
<li><a href="c7329fefc8"><code>c7329fe</code></a> Hotfix: Prevent SSRF (<a href="https://github-redirect.dependabot.com/axios/axios/issues/3410">#3410</a>)</li>
<li><a href="f472e5da5f"><code>f472e5d</code></a> Adding a type guard for <code>AxiosError</code> (<a href="https://github-redirect.dependabot.com/axios/axios/issues/2949">#2949</a>)</li>
<li><a href="768825589f"><code>7688255</code></a> Remove the skipping of the <code>socket</code> http test (<a href="https://github-redirect.dependabot.com/axios/axios/issues/3364">#3364</a>)</li>
<li><a href="820fe6e41a"><code>820fe6e</code></a> Updating axios in types to be lower case (<a href="https://github-redirect.dependabot.com/axios/axios/issues/2797">#2797</a>)</li>
<li>See full diff in <a href="https://github.com/axios/axios/compare/v0.21.0...v0.21.1">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=axios&package-manager=npm_and_yarn&previous-version=0.21.0&new-version=0.21.1)](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)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/facebook/flipper/network/alerts).

</details>

Pull Request resolved: https://github.com/facebook/flipper/pull/1811

Reviewed By: mweststrate

Differential Revision: D25804193

Pulled By: passy

fbshipit-source-id: a3040f4927690a27893bf972e180a7f257f6cc54
2021-01-07 03:53:58 -08:00
dependabot[bot]
603595eccf Bump @testing-library/dom from 7.26.3 to 7.29.0 in /desktop (#1796)
Summary:
Bumps [testing-library/dom](https://github.com/testing-library/dom-testing-library) from 7.26.3 to 7.29.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/testing-library/dom-testing-library/releases">testing-library/dom's releases</a>.</em></p>
<blockquote>
<h2>v7.29.0</h2>
<h1><a href="https://github.com/testing-library/dom-testing-library/compare/v7.28.1...v7.29.0">7.29.0</a> (2020-12-11)</h1>
<h3>Features</h3>
<ul>
<li>migrate some files to typescript (<a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/848">https://github.com/facebook/flipper/issues/848</a>) (<a href="accb6cc606">accb6cc</a>)</li>
</ul>
<h2>v7.28.1</h2>
<h2><a href="https://github.com/testing-library/dom-testing-library/compare/v7.28.0...v7.28.1">7.28.1</a> (2020-11-20)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>suggestions:</strong> don't suggest byLabelText when using byLabelText (<a href="53f29f70c8">53f29f7</a>)</li>
</ul>
<h2>v7.28.0</h2>
<h1><a href="https://github.com/testing-library/dom-testing-library/compare/v7.27.1...v7.28.0">7.28.0</a> (2020-11-19)</h1>
<h3>Features</h3>
<ul>
<li>warn when the test environment fake timers change unexpectedly (<a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/832">https://github.com/facebook/flipper/issues/832</a>) (<a href="e3fc7f3a0d">e3fc7f3</a>), closes <a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/830">https://github.com/facebook/flipper/issues/830</a></li>
</ul>
<h2>v7.27.1</h2>
<h2><a href="https://github.com/testing-library/dom-testing-library/compare/v7.27.0...v7.27.1">7.27.1</a> (2020-11-18)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>suggestions:</strong> only warn about inaccessible elements when actually showing the suggestion (<a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/827">https://github.com/facebook/flipper/issues/827</a>) (<a href="9494fdc690">9494fdc</a>)</li>
</ul>
<h2>v7.27.0</h2>
<h1><a href="https://github.com/testing-library/dom-testing-library/compare/v7.26.7...v7.27.0">7.27.0</a> (2020-11-18)</h1>
<h3>Features</h3>
<ul>
<li>allow TextMatch to be any non-nullable type (<a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/829">https://github.com/facebook/flipper/issues/829</a>) (<a href="9b688f8600">9b688f8</a>)</li>
</ul>
<h2>v7.26.7</h2>
<h2><a href="https://github.com/testing-library/dom-testing-library/compare/v7.26.6...v7.26.7">7.26.7</a> (2020-11-17)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>use node property instead of selector for type=text input (<a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/823">https://github.com/facebook/flipper/issues/823</a>) (<a href="7e5da11655">7e5da11</a>)</li>
</ul>
<h2>v7.26.6</h2>
<h2><a href="https://github.com/testing-library/dom-testing-library/compare/v7.26.5...v7.26.6">7.26.6</a> (2020-11-10)</h2>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="accb6cc606"><code>accb6cc</code></a> feat: migrate some files to typescript (<a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/848">https://github.com/facebook/flipper/issues/848</a>)</li>
<li><a href="f753c8adb4"><code>f753c8a</code></a> Feature: adds aria-expanded filter to *ByRole (<a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/821">https://github.com/facebook/flipper/issues/821</a>)</li>
<li><a href="21c4db385b"><code>21c4db3</code></a> chore: update all dependencies</li>
<li><a href="86179525b2"><code>8617952</code></a> chore: Add 'Cancel Previous Runs' step (<a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/840">https://github.com/facebook/flipper/issues/840</a>)</li>
<li><a href="c6e7a83948"><code>c6e7a83</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/835">https://github.com/facebook/flipper/issues/835</a> from testing-library/feature/fix-find-by-label-text-s...</li>
<li><a href="53f29f70c8"><code>53f29f7</code></a> fix(suggestions): don't suggest byLabelText when using byLabelText</li>
<li><a href="010f8be965"><code>010f8be</code></a> docs: add nickmccurdy as a contributor (<a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/833">https://github.com/facebook/flipper/issues/833</a>)</li>
<li><a href="e3fc7f3a0d"><code>e3fc7f3</code></a> feat: warn when the test environment fake timers change unexpectedly (<a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/832">https://github.com/facebook/flipper/issues/832</a>)</li>
<li><a href="9494fdc690"><code>9494fdc</code></a> fix(suggestions): only warn about inaccessible elements when actually showing...</li>
<li><a href="9b688f8600"><code>9b688f8</code></a> feat: allow TextMatch to be any non-nullable type (<a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/829">https://github.com/facebook/flipper/issues/829</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/testing-library/dom-testing-library/compare/v7.26.3...v7.29.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@testing-library/dom&package-manager=npm_and_yarn&previous-version=7.26.3&new-version=7.29.0)](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/1796

Reviewed By: jknoxville

Differential Revision: D25802071

Pulled By: passy

fbshipit-source-id: a776b39718cbf1cf1e04662a6b7dc660f96848de
2021-01-06 08:53:41 -08:00
Michel Weststrate
30ea098a63 Hide app selector if no devices are available
Summary:
As reported in https://fb.workplace.com/groups/748354712423318/permalink/773382183253904/, special case no devices being present and suggest to launch an emulator.

Also extends `useStore()` hook to accept no arguments, in which case it works as Redux's own `useStore` hook, except that it is strongly typed.

Reviewed By: passy

Differential Revision: D25803497

fbshipit-source-id: d448ac41e0ba7b713ee883caeb27736a2901975c
2021-01-06 08:26:12 -08:00
Michel Weststrate
cfd1c22814 Detect Flipper reloads, to remove false positives in quick restart detection
Reviewed By: nikoant

Differential Revision: D25783368

fbshipit-source-id: 35a9cbbbb5bac4c7b6b7b40c45db2055ff4cfa09
2021-01-06 02:08:43 -08:00
Michel Weststrate
ef3da0e530 Fix deferred loaded plugins not showing up
Summary:
See previous diff, plugins that are not available during the initial client connection setup didn't show up in the UI, until selecting another device first. This diff fixes that by listening to the `plugins-change` event of the client.

Changelog: Fix issue where React Native plugins didn't show up in the Sandy layout

Reviewed By: passy

Differential Revision: D25755812

fbshipit-source-id: d865d912ecca85d868831c4da7c56b5f0be6c3bf
2021-01-04 12:17:56 -08:00
Amir Katz
805071fa49 Flipper support fallback also when not debuggable
Summary: For Whitehat adjustment to work with flipper. I would like to enable running the su for emulators and rooted device to enable work with flipperr.

Reviewed By: jknoxville

Differential Revision: D25527298

fbshipit-source-id: 0d3f19891eec7c09d7136867a7aceea40aeac60d
2021-01-04 09:29:39 -08:00
Pascal Hartig
9ac01ab0e2 Update sign-in URL
Reviewed By: cekkaewnumchai

Differential Revision: D25679289

fbshipit-source-id: 9d4b8e89d1695a7b363e756628a7c15446f205ca
2020-12-22 05:41:46 -08:00
Chaiwat Ekkaewnumchai
28cd62bc99 Fix Screen Recording Not Working on Android Marshmallow
Summary: [Reported in the support group](https://fb.workplace.com/groups/flippersupport/permalink/1040131853134139/), screen recording can't be stopped on Android Marshmallow (SDK version 23). This is because the shell commands used in screen recording are different in SDK 23 compared to higher SDK. First, `pgrep` in SDK 23 doesn't have `-L` option. Second, `ls -l` of SDK 23 returns different pattern; we've relied on the 5th number to indicate the file size of a video, while it is on 4th number for SDK 23.

Reviewed By: passy

Differential Revision: D25641605

fbshipit-source-id: 110cb779ef4b2dc63a862bf5e4e5f3a304a0d8ec
2020-12-21 09:54:31 -08:00
Chaiwat Ekkaewnumchai
1e34561ae3 Force Restart Flipper When Applying Sandy
Summary:
Discovered while testing D25584424, Sandy can't be applied and unapplied by regularly changing the setting.

This diff forces restart Flipper to correctly apply or unapply Sandy. This diff adds forced restart updated setting to check if restart is needed or not. Then, it disables regular `Apply` when restart is needed

Reviewed By: nikoant

Differential Revision: D25632887

fbshipit-source-id: 88b31fd740d4a639e20fe45a82e2615b53cad5c3
2020-12-20 21:45:19 -08:00
Anton Nikolaev
a826a240ce Do not load installed plugins in dev mode by default
Summary: Installed plugins loaded and make it impossible to debug plugin changes. We need to disable them by default for `yarn start`. To debug plugin installation and auto-update, need to use command `yarn start --plugin-auto-update` instead.

Reviewed By: passy

Differential Revision: D25639345

fbshipit-source-id: 99b59a90dc09ac33a3604487fe501774e5e6fc39
2020-12-18 08:50:16 -08:00
Anton Nikolaev
3a65f86c68 Analytics events for plugin management
Summary: Send some analytics events related to plugin management: auto-update, install, uninstall, load.

Reviewed By: passy

Differential Revision: D25557788

fbshipit-source-id: 14dc9ae5793e9b18be13f2d483069d8d00c8b863
2020-12-15 09:31:59 -08:00
Anton Nikolaev
31ace3bd09 Do not show warnings for unhandled messages
Summary: Flipper receives a lot of messages which cannot be handled when plugins unbundled. Showing them as warnings is un-actionable with such big amount, so I disabled them.

Reviewed By: mweststrate

Differential Revision: D25557790

fbshipit-source-id: 1a0bc3df2848b194b72ea6d775ffabe416672fee
2020-12-15 09:31:58 -08:00
Anton Nikolaev
3d6afdb529 Allow "uninstallation" of bundled plugins
Summary:
Allow "uninstallation" of bundled plugins which means we mark them as uninstalled and not auto-updating anymore. Uninstalled bundled plugins are shown in "Detected in App" section together with Marketplace plugins where user can install them back.

Changelog:
Plugins can be uninstalled from sidebar in new Sandy UI.

Reviewed By: passy

Differential Revision: D25557789

fbshipit-source-id: 751cad68456313c069af639584541086efc7102b
2020-12-15 09:31:58 -08:00
Anton Nikolaev
756edf9860 Unload uninstalled plugins from Electron cache
Summary: Electron/Node.js does not garbage collects unloaded modules by default. Need to cleanup require.cache to fully unload them.

Reviewed By: passy

Differential Revision: D25545962

fbshipit-source-id: 4dce32f39e22adcd2b4f5a55853551379e786e7b
2020-12-15 09:31:58 -08:00
Anton Nikolaev
965559ee65 Auto-install favorite plugins
Summary: After unbudling plugins users will need to manually install them. To simlify this transition we can auto-install favorite plugins on every app connection, so users won't need to install plugins which they marked as favorite before.

Reviewed By: passy

Differential Revision: D25538638

fbshipit-source-id: 4ac3ad0c8c026d149f7ce0c4af07da3e8b909772
2020-12-15 09:31:58 -08:00
Anton Nikolaev
bd01b58566 Sandy-based plugin auto-update UI
Summary:
New UX/UI for plugin auto-updates based on Sandy:
- disabled plugins auto-updated silently without any notifications as there is no active state for them so there is nothing to loose.
- enabled plugins can have some state and user can actually work with them, so we cannot reload them automatically. Instead, we show notification in the top of the plugin container asking user to reload the plugin when she is ready.
- if the auto-updated plugin failed to reload - show error notification.
- for non-sandy we continue using notifications as before.

Reviewed By: mweststrate

Differential Revision: D25530384

fbshipit-source-id: de3d0565ef0b930c9343b9e0ed07a4acb51885be
2020-12-15 09:31:57 -08:00
Anton Nikolaev
5383017299 Separate interfaces for installed, bundled and downloadable plugins
Summary:
I've re-designed interfaces describing plugins as I found that mental overhead working with them became too expensive because of slightly flawed design. However this cascaded changes in many files so you can see how extensively these interfaces used in our codebase.

Before this change we had one interface PluginDetails which described three different entities: 1) plugins installed on the disk 2) plugins bundled into Flipper 3) plugins available on Marketplace. It's hard to use this "general" PluginDetails interface because of this as you always need to think about all three use cases everywhere.

After this change we have 3 separate interfaces: InstalledPluginDetails, BundledPluginDetails and DownloadablePluginDetails and things became much type-safer now.

Reviewed By: mweststrate

Differential Revision: D25530383

fbshipit-source-id: b93593916a980c04e36dc6ffa168797645a0ff9c
2020-12-15 09:31:57 -08:00
Anton Nikolaev
efb82e80b5 Plugin download progress and error handling
Summary: Show progress reporting in sidebar during plugin download. Also handle plugin download errors and show them to user as notifications.

Reviewed By: mweststrate

Differential Revision: D25530385

fbshipit-source-id: 42bf0e65b4434d00c1465705ce9ec5c723df6841
2020-12-15 09:31:56 -08:00
Anton Nikolaev
c3d61cc32d Persist uninstalled plugins list
Summary: This diff changes uninstallation procedure for plugins. Instead of deleting plugin files immediately we are keeping them, but mark them as "uninstalled". This makes it possible to re-install plugins quickly in case when user clicked "delete" by mistake.

Reviewed By: mweststrate

Differential Revision: D25493479

fbshipit-source-id: 9ff29d717cdd5401c55388f24d479599579c8dd3
2020-12-15 09:31:56 -08:00
Anton Nikolaev
df03ccbeab Uninstall plugins from sidebar
Summary: Added UI for uninstalling plugins from sidebar. To avoid confusion between "disable" and "uninstall" and to reduce possibility of errors when plugins uninstalled accidentally by misclicks, I made it only possible to uninstall plugins after they are disabled. So for enabled plugins two steps are required for uninstalling.

Reviewed By: mweststrate

Differential Revision: D25454117

fbshipit-source-id: 28e67dc1ff2d39ad67e6d2770302a996affd9723
2020-12-15 09:31:56 -08:00
Anton Nikolaev
97d37abbb2 Install plugins from sidebar
Summary:
This diff adds "download" button to the plugins shown in "Detected in App" section, so they can be downloaded, installed and enabled just in one click.

For now UI is very simple - there is no progress indication and no error handling for failed downloads. I'll add them in next diffs.

Please note that we are explicitly "star" every installed plugin to enable it straight away without additional clicks in "disabled" section.

Reviewed By: mweststrate

Differential Revision: D25393472

fbshipit-source-id: 0a224ea6d03db0ee9a70b7fa35ede9616c03d824
2020-12-15 09:31:55 -08:00
Anton Nikolaev
ab441d8226 Tests for plugin installer with in-memory file system (#1761)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1761

Plugin installed logic is quite complex and heavily relies on file system. So I added integration tests which uses in-memory file system. Here I've covered complex functions added in the previous diff of this stack.

Reviewed By: mweststrate

Differential Revision: D25393473

fbshipit-source-id: a823eb7d6707152a1c3717a6da25b6beee85801d
2020-12-15 09:31:55 -08:00
Anton Nikolaev
02d695cb28 Keep multiple installed versions of each plugin
Summary:
This diff changes directory structure for installed plugins to allow installation of multiple versions simultaneously, e.g. to to allow downloading new plugin version while user is still using the previous one, and to have possibility of fast rollback to the previous installed if necessary. The new folder for installed plugins is located in `~/.flipper/installed-plugins` and has the following structure:

  flipper-plugin-reactotron
    1.0.0
      ...
      package.json
    1.0.1
      ...
      package.json
  flipper-plugin-network
    0.67.1
      ...
      package.json
    0.67.2
      ...
      package.json

The tricky part here is that we also need to migrate already installed plugins from the old folder `~/.flipper/thirdparty` to the new folder and maintain the new structure for them.

Another tricky part is that we need to periodically cleanup old versions. For now we will just keep 2 versions of each plugin. Cleanup is performed in background right after Flipper startup.

Reviewed By: mweststrate

Differential Revision: D25393474

fbshipit-source-id: 26617ac26114148f797cc3d6765a42242edc205e
2020-12-15 09:31:54 -08:00
Anton Nikolaev
9c5f59e109 "Detected in App" section added to sidebar
Summary:
New section "Detected in App" in the main sidebar showing plugins which are supported by the currently selected client app, but not installed in Flipper.

Note that in this diff we only show them, there is no "install" button yet. I will add it in a next diff.

Reviewed By: mweststrate

Differential Revision: D25361915

fbshipit-source-id: 8fff6887a8ec04b3b59c939a758c8f801f42490f
2020-12-15 09:31:54 -08:00
Anton Nikolaev
f3e1a48ff3 Plugin Marketplace state refresh and cache
Summary:
Separate dispatcher for periodic refreshing available plugins data from the Marketplace backend and caching it locally.

The plugin auto update downloader subscribes to these state refreshes and automatically schedules plugin update downloads when required.

Reviewed By: passy

Differential Revision: D25360897

fbshipit-source-id: 5b6d95b63ff47b8ae9ad8b12e2480d1fed524ca5
2020-12-15 09:31:54 -08:00
Anton Nikolaev
5b26f36672 Plugin Marketplace API
Summary: Extracted plugin marketplace API to a separate file and updated it to load full plugin manifests.

Reviewed By: passy

Differential Revision: D25181759

fbshipit-source-id: a63f9ce16249ccc170df148cef5c209fdc6d4d6d
2020-12-15 09:31:54 -08:00
Michel Weststrate
658b3e8a91 Make sure Lite app uses FB branding
Summary: Fixes https://fb.workplace.com/groups/flippersupport/permalink/1038883216592336/

Reviewed By: passy

Differential Revision: D25557366

fbshipit-source-id: 7b821ad7cd52454294482a00c5dc59c57b85f757
2020-12-15 08:22:31 -08:00
dependabot[bot]
dd8403bb8c Bump async-mutex from 0.1.4 to 0.2.6 in /desktop (#1748)
Summary:
Bumps [async-mutex](https://github.com/DirtyHairy/async-mutex) from 0.1.4 to 0.2.6.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/DirtyHairy/async-mutex/blob/master/CHANGELOG.md">async-mutex's changelog</a>.</em></p>
<blockquote>
<h2>0.2.6</h2>
<ul>
<li>Fix a nasty <a href="https://github-redirect.dependabot.com/DirtyHairy/async-mutex/issues/27">bug</a> related to
consecutive calls to <code>mutex::release</code>.</li>
</ul>
<h2>0.2.5</h2>
<ul>
<li>Nothing new thanks to NPM. Go away. Install 0.2.6.</li>
</ul>
<h2>0.2.4</h2>
<ul>
<li>Calling Semaphore::release on a semaphore with concurrency &gt; 1 will not work
as expected; throw an exception in this case</li>
<li>Make the warning on using Semaphore::release and Mutex::release more prominent</li>
</ul>
<h2>0.2.3</h2>
<ul>
<li>Add alternate Semaphore::release and Mutex::release API</li>
<li>Work around build warnings with react native (and probably other bundlers)</li>
</ul>
<h2>0.2.2</h2>
<ul>
<li>Improve compatibility with older versions of node 13, thanks to <a href="https://github.com/josemiguelmelo">josemiguelmelo</a></li>
</ul>
<h2>0.2.1</h2>
<ul>
<li>Remove sourcemaps</li>
</ul>
<h2>0.2.0</h2>
<ul>
<li>Add a <code>Semaphore</code>, reimplement <code>Mutex</code> on top of it</li>
<li>Add a <code>withTimeout</code> decorator that limits the time the program waits
for the mutex or semaphore to become available</li>
<li>Support native ES6 imports on Node &gt;= 12</li>
<li>Provide an ES6 module entrypoint for ES6 aware bundlers</li>
<li>Dependency bump</li>
<li>Switch from TSlint to ESlint</li>
<li>Enable code coverage in tests</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="6cec83aa0b"><code>6cec83a</code></a> F*** NPM.</li>
<li><a href="2593cedbaa"><code>2593ced</code></a> Bump version.</li>
<li><a href="8331143c13"><code>8331143</code></a> Fix consecutive calls to mutex::release.</li>
<li><a href="e7bc6a43c9"><code>e7bc6a4</code></a> Dependency bump.</li>
<li><a href="2bfeb96e22"><code>2bfeb96</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/DirtyHairy/async-mutex/issues/24">https://github.com/facebook/flipper/issues/24</a> from nnoodle/master</li>
<li><a href="6191e6d22c"><code>6191e6d</code></a> Fixed a few spelling errors</li>
<li><a href="0ccb014c91"><code>0ccb014</code></a> Forbid Semaphore::release for concurrency &gt; 1, documentation, bump version.</li>
<li><a href="391433bf0c"><code>391433b</code></a> Changelog, bump version.</li>
<li><a href="4b99572248"><code>4b99572</code></a> Add alternate release API.</li>
<li><a href="1dc676d2cf"><code>1dc676d</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/DirtyHairy/async-mutex/issues/16">https://github.com/facebook/flipper/issues/16</a> from ranma42/patch-1</li>
<li>Additional commits viewable in <a href="https://github.com/DirtyHairy/async-mutex/compare/v0.1.4...v0.2.6">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async-mutex&package-manager=npm_and_yarn&previous-version=0.1.4&new-version=0.2.6)](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/1748

Reviewed By: mweststrate

Differential Revision: D25373190

Pulled By: passy

fbshipit-source-id: 4e45c55391aa136c78abeeb25a0783a0d37ccbce
2020-12-15 04:44:33 -08:00
Michel Weststrate
08b5644253 Killed Flipper headless
Reviewed By: nikoant

Differential Revision: D24160480

fbshipit-source-id: 221e60473dddc0a49cea674e210beb6f85b1b03c
2020-12-15 01:46:44 -08:00
Michel Weststrate
41a1af33cb Kill metrics reducer
Reviewed By: nikoant

Differential Revision: D24332440

fbshipit-source-id: 0a48b25f98d93b181b622e8477a74c7ef0094816
2020-12-15 01:44:27 -08:00
Michel Weststrate
092a286bc8 Update several deps at once
Summary: Fixes #1771, #1770, #1769, #1768, #1767, #1766

Reviewed By: nikoant

Differential Revision: D25533717

fbshipit-source-id: 86b90e1ec93f0255edcf1cf3cf5fb2311f0ca23f
2020-12-14 09:14:23 -08:00
Michel Weststrate
a1a53391d5 Make sure JS Web launcher is accessible from launcher dialog
Summary: Addresses https://fb.workplace.com/groups/748354712423318/permalink/1038486449965346/

Reviewed By: timur-valiev

Differential Revision: D25533227

fbshipit-source-id: 7e961df301a6dbf99c158612c7c5d80191082697
2020-12-14 09:05:13 -08:00
Michel Weststrate
2ad81f2c63 Reduce sign in errors
Summary:
A lot of the errors in our monitoring / logs are mere sign in errors. Many of them are unnecessary as they are features triggered automatically even when the user isn't logged in.

This diff improves error handling and prevents requires from being made / features from being used by introducing a `<RequireLogin>` component that will hide an underlying feature if the user isn't logged in.

This also prevents the support request form from failing after the user has filled in all details.

This also fixes an issue where mobilebuilds plugin didn't refresh after the user did log in.

From our monitoring error 1,9 and 10:

{F350458668}

Reviewed By: jknoxville

Differential Revision: D25494356

fbshipit-source-id: 95701381bb74c27b9ea9658dc4df678e5f0710e0
2020-12-14 02:01:27 -08:00