Commit Graph

1086 Commits

Author SHA1 Message Date
Michel Weststrate
dd47d08444 move device dispatchers to server
Summary: move_complexity

Reviewed By: passy, timur-valiev

Differential Revision: D30250314

fbshipit-source-id: 92510b0ed2555d039b75b6de1c14fc92d94fbb19
2021-08-12 05:43:44 -07:00
Michel Weststrate
5e8c968222 Move devices to server folder
Summary:
This is the first of many diffs that extracts the connection, device, client detection out of the flipper core, to create a reusable flipper-server library that can be used in e.g. flipper-dump.

To keep diffs a little smaller, the current connection logic is first moved to the `server/` directory, and decoupled manually from the rest of the core, before moving it over to a separate package.

This first diffs moves the `comms/`, `devices/` and certificate utilities to the `server` directory.

Further untangling will follow in next diffs

Reviewed By: timur-valiev

Differential Revision: D30246551

fbshipit-source-id: c84259bfb1239119b3267a51b015e30c3c080866
2021-08-12 05:43:43 -07:00
Pascal Hartig
6544e5a7a3 Fix large debugbutton numbers being cut off
Summary: One more.

Reviewed By: timur-valiev

Differential Revision: D30254356

fbshipit-source-id: 473532b1aeef00d95d1da0ca8f1ca047672bc432
2021-08-12 03:19:38 -07:00
Pascal Hartig
4d295fa261 Prevent NUX from being cut off in plugin bar
Summary: See test plan.

Reviewed By: timur-valiev

Differential Revision: D30253538

fbshipit-source-id: c98a9b3ddaa29d6ff11260ce5756fd85f120e749
2021-08-12 03:19:38 -07:00
Pascal Hartig
eb27796571 Fix Windows test (#2682)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/2682

Run path-specific tests only on Unix-like OSes. We could
easily change the path to Windows, but honestly it's enough
to confirm this on one platform.

Reviewed By: timur-valiev

Differential Revision: D30255014

fbshipit-source-id: 7db36bc1738d721625e3c86c210d46dfaf8f0ab8
2021-08-11 14:35:12 -07:00
Pascal Hartig
7df77e2620 Asyncify screenshot helper
Summary: Suggested by mweststrate. Much more readable now!

Reviewed By: mweststrate

Differential Revision: D30251322

fbshipit-source-id: 269fefce3f63fa4eababb4c541ff09a660cc5cc0
2021-08-11 11:03:45 -07:00
Pascal Hartig
757ba91bf6 Simplify bridge types
Summary: This turns the bridge type into a simpler struct with always-present methods so you don't need to add additional null check to the calling logic which are hard to deal with.

Reviewed By: mweststrate

Differential Revision: D30248628

fbshipit-source-id: cdaee44efcbb19dcbb301099b4a7d0eb0c350e67
2021-08-11 11:03:45 -07:00
Pascal Hartig
52b3edc5ad Move screenshot to iOSBridge
Summary:
In order to support IOS cloud devices, we need to abstract
over the direct uses of idb/xcrun so we can switch them
out based on more than the device type.

Note that there's a bit of a type weirdness in there. I'll
clean this up with the next diff.

Reviewed By: mweststrate

Differential Revision: D30248036

fbshipit-source-id: ec8571429e04abe059850ef334a6645ae4a5e034
2021-08-11 11:03:45 -07:00
Pascal Hartig
f515df1c01 Restructure iOS dispatcher initialization
Summary:
Avoid nested promises and log errors during initialization that were
previously thrown away.

Reviewed By: mweststrate

Differential Revision: D30247859

fbshipit-source-id: 1d9ef871d1861a25a64ed4e895978b04f5b51c7b
2021-08-11 11:03:45 -07:00
Pascal Hartig
a630020ea0 Remove promisify use
Summary:
The results are often unpredictable, poorly typed and we have
dependencies that do the wrapping for us.

Listen, I'll get to writing some real code soon, I promise,
but I need to clean up my workspace first, okay?

Reviewed By: mweststrate

Differential Revision: D30247484

fbshipit-source-id: f5326ff71ff43af2dc64ab85ca1368f95fe87083
2021-08-11 11:03:45 -07:00
Pascal Hartig
4e17fb9c48 Extract temp path util
Summary:
`electron.remote` access is slow so we can cache this
like we do in other places. Also means one fewer `electron`
import which is gonna add up for Flipper Decap.

Reviewed By: mweststrate

Differential Revision: D30247431

fbshipit-source-id: 90f0e8df99af8bed40fbebcfd445abaca2965b7c
2021-08-11 11:03:45 -07:00
Pascal Hartig
11c1c39bdc Improve screen recording logging
Summary:
Error is handled, doesn't need a task. Also, prefix is wrong here
as it's used.

Reviewed By: mweststrate

Differential Revision: D30247416

fbshipit-source-id: 049490cb7e45b7ce6f433bf7366eb94893947625
2021-08-11 11:03:45 -07:00
Pascal Hartig
8223051905 Mute eslint rule
Summary:
A few drive-by changes ahead of the sustainathon.
(More to come.)

Reviewed By: mweststrate

Differential Revision: D30247395

fbshipit-source-id: e707377a1169eb634a42f08c3d27fe3e065b63bb
2021-08-11 11:03:45 -07:00
Pascal Hartig
dd536b9d1a Gracefully handle socket closures
Summary:
Got my first auto-created crashbot task. {emoji:1f973}

We do have some pretty granular handling for errors during disconnects but this one has fallen through the cracks.

I'm not 100% sure if this is the right way to handle it which is why I added mweststrate. :)

Reviewed By: mweststrate

Differential Revision: D30218833

fbshipit-source-id: 2b4c9201ee7faf1c278b1cc5268ad2648dc4c820
2021-08-10 16:12:02 -07:00
Michel Weststrate
8d7caa9dd4 Introduce Dialog.alert
Summary: Introduce `Dialog.alert` to show users a FYI message, and be able to wait for it to be handled, as utility around several `Modal` utilities.

Reviewed By: jknoxville

Differential Revision: D29875484

fbshipit-source-id: 5d2ea83e486631ac18a81800b467f97dfaac6d34
2021-08-10 13:24:23 -07:00
Michel Weststrate
4b892e7373 Check Flipper version when handling deeplinks
Summary: Check if Flipper is up to date before handling deeplink.

Reviewed By: nikoant

Differential Revision: D29846236

fbshipit-source-id: 011d05958346c3d18c76cf0ae63c3cb087f5933c
2021-08-10 13:24:23 -07:00
Michel Weststrate
38473121ba Check connection & user login when entering deeplink [1/n]
Summary: First steps in smoother deeplink flow, where connection and login status is being checked before trying to handle the deeplink.

Reviewed By: lblasa

Differential Revision: D29790461

fbshipit-source-id: e1e42ceb5db59c695077f316e836f1f216c7204a
2021-08-10 13:24:23 -07:00
Pascal Hartig
47faeade61 Patch dep bump
Summary: Excluding `react-virtual` which seems to include a breaking change with the patch release.

Reviewed By: jknoxville

Differential Revision: D30189687

fbshipit-source-id: b40cb5edd407fd03009ee38c0af5202c8deaaa26
2021-08-10 11:08:22 -07:00
Anton Nikolaev
cc4064ec9f Force Sec-Fetch-Site header to 'none'
Reviewed By: bartoszniemczura

Differential Revision: D30047497

fbshipit-source-id: 0d9376c09d63176031291f19bfe82a56d5677641
2021-08-05 02:40:41 -07:00
Ananya Arun
a5b83dc148 Add tracking for usage statistics
Summary:
- This diff adds usage statistics for
    - How often was the troubleshooting button opened
    - What were its end states ( Problem solved or file a support request)

- I am using the tracked flipper plugin to obtain and analyse the stats on Infinity analytics events dev in Scuba backend.
(Since this is not yet productionized we are using the dev version now )

Reviewed By: nikoant

Differential Revision: D30098054

fbshipit-source-id: 871cc18872bccf70a829dc1dd173a337b02ec6e6
2021-08-04 04:16:52 -07:00
Ananya Arun
84ec5813b6 Add modal dialogue for the end screen
Summary:
- Added a dialogue with 2 possible end state buttons
    - Problem Solved
    - File Support Request
- This diff is the start of the implementation of the troubleshooting wizard.
- The previously implemented troubleshooting button (D29993355 (921a65bc17)) now links to a modal dialogue box.
- This is essentially the last screen of the troubleshooting guide to be implemented.
- We have options for a user to either select file a support request if the issue persists after navigating the guide or click on problem solved if the guide helped them solve it.
- Selecting option 2 (file support request) links to the pre-existing form

The modal has been implemented as an independent reusable component and can be easily extended.

Reviewed By: passy

Differential Revision: D30069270

fbshipit-source-id: f61bf8c03de786e11b7f06194328dbee703abf8b
2021-08-03 12:49:49 -07:00
Lorenzo Blasa
4e6b895fc9 WebSocket server GK
Summary:
This change enables a WebSocket server if the user is on the 'flipper_websocket_server' GK.

I don't expect this change to make it as the final product of the entire solution. Instead, it can be used to quickly enable/disable WebSocket during development/testing without requiring any code changes.

Reviewed By: passy

Differential Revision: D30069694

fbshipit-source-id: 75daac75e6dad7f63cf194d8287971c33d3abb61
2021-08-03 09:34:57 -07:00
Lorenzo Blasa
b76ce357eb Addresses an issue with Flipper message identifier
Summary:
This change addresses a problem with using data.id straight into the if statement.

If `data.id` is not undefined but has a value of 0 then the expression evaluates to false.

Right now, that wasn't the intended usage.

Using this change to also export some types from Client.

Reviewed By: passy

Differential Revision: D30069746

fbshipit-source-id: 04a8d161efceadf7a38ee556be70c15b45c11056
2021-08-03 09:30:47 -07:00
Pascal Hartig
6791b29e45 Big dep bump
Summary: The markdown bump required ignoring another prop, the rest was smooth.

Reviewed By: timur-valiev

Differential Revision: D30067682

fbshipit-source-id: 6038ffe29d2e0041c81bac132eed747cbfe40f54
2021-08-03 05:18:34 -07:00
Andrey
6349ebe05d Fixed plugin installer overflow (#2652)
Summary:
https://user-images.githubusercontent.com/33036510/127777930-34ede219-0fb9-4486-8f2e-3d73ff8cb84d.mov

Content of plugin installer modal has no scroll and it is overflowing

## Changelog

- Fixed PluginInstaller table overflow

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

Test Plan:
The video, demonstrating how the problem was fixed:
https://user-images.githubusercontent.com/33036510/127777930-34ede219-0fb9-4486-8f2e-3d73ff8cb84d.mov

Reviewed By: passy

Differential Revision: D30044703

Pulled By: cekkaewnumchai

fbshipit-source-id: 6d00ef766aaa295cc43fd944ca3b849371192a79
2021-08-02 14:30:46 -07:00
Ananya Arun
19f6b29879 Remove cyclic dependancy on components
Summary:
- Minor change on Diff - D30040808
- Removed cyclic dependancy on AppSelector
- Previous dependancy chain : AppSelector -> TroubleshootingGuide -> AppSelector
- Now the NoDevices component that troubleshooting guide was importing has been moved to an independent file.

Reviewed By: passy

Differential Revision: D30041820

fbshipit-source-id: 17856aad7d2a569ec4e0f19e63f458472b22dcf8
2021-08-02 09:43:03 -07:00
Ananya Arun
921a65bc17 Add troubleshooting button and a GK
Summary:
- Added a troubleshooting guide button which on clicking will open the expert chat bot system of flipper. ( Will be implemented in future diffs)
- This has been added only in the internal version of flipper available to FB.
- The public version shall continue to link to the troubleshooting guide for now.
- Also a new gatekeeper flipper_self_sufficiency was set up.
- This currently gives access to ongoing changes only to a few team members.
- In the future access shall be extended to the entire team, followed by the entire org and then finally all internal FB users in the final stages of the project.

Reviewed By: passy

Differential Revision: D29993355

fbshipit-source-id: afdb76baef6fde2c785c50ad6530ea2f76ce7284
2021-08-02 09:16:48 -07:00
Pascal Hartig
754100d9ed Revert D30012637: Bump antd from 4.16.8 to 4.16.9 in /desktop
Differential Revision:
D30012637 (069af92d12)

Original commit changeset: 5ebdb3f8bb6c

fbshipit-source-id: ac7c1f165ae401fdbaa66c1746fefe1ae634c323
2021-08-02 08:34:08 -07:00
dependabot[bot]
069af92d12 Bump antd from 4.16.8 to 4.16.9 in /desktop (#2645)
Summary:
allow-large-files
Bumps [antd](https://github.com/ant-design/ant-design) from 4.16.8 to 4.16.9.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/ant-design/ant-design/releases">antd's releases</a>.</em></p>
<blockquote>
<h2>4.16.9</h2>
<ul>
<li>{emoji:1f41e} Fix Typography <code>ellipsis</code> calculation bug when browser zoomed. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31449">#31449</a></li>
<li>{emoji:1f484} Fix Input wrong class when using <code>prefixCls</code>. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31479">#31479</a> <a href="https://github.com/spawnia"><code>@​spawnia</code></a></li>
<li>{emoji:1f484} Fix Input.Password unexpected focus style of error status. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31456">#31456</a></li>
<li>{emoji:1f484} Fix Badge color transition issue when toggle visibility. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31458">#31458</a></li>
<li>{emoji:1f484} Fix Tabs <code>tabBarGutter</code> abnormal style behaviors. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31469">#31469</a></li>
<li>{emoji:1f310} Internationalization
<ul>
<li>{emoji:1f1f7_1f1fa} Update translation for Image in ru_RU. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31448">#31448</a> <a href="https://github.com/KirillSBarsukov"><code>@​KirillSBarsukov</code></a></li>
<li>{emoji:1f1e9_1f1f0} Add missing translation for Table in da_DK. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31486">#31486</a> <a href="https://github.com/bischmlb"><code>@​bischmlb</code></a></li>
</ul>
</li>
</ul>
<hr />
<ul>
<li>{emoji:1f41e} 修复 Typography <code>ellipsis</code> 在屏幕放大缩小时计算错误的问题。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31449">#31449</a></li>
<li>{emoji:1f484} 修复 Input 使用 <code>prefixCls</code> class 错误的问题。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31479">#31479</a> <a href="https://github.com/spawnia"><code>@​spawnia</code></a></li>
<li>{emoji:1f484} 修复 Input.Password 校验错误时的聚焦样式。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31456">#31456</a></li>
<li>{emoji:1f484} 修复 Badge 切换显隐时的颜色问题。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31458">#31458</a></li>
<li>{emoji:1f484} 修复 Tabs <code>tabBarGutter</code> 的一些样式异常行为。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31469">#31469</a></li>
<li>{emoji:1f310} 国际化
<ul>
<li>{emoji:1f1f7_1f1fa} 更新 ru_RU 中 Image 字段。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31448">#31448</a> <a href="https://github.com/KirillSBarsukov"><code>@​KirillSBarsukov</code></a></li>
<li>{emoji:1f1e9_1f1f0} 补充 da_DK 中 Table 文案。<a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31486">#31486</a> <a href="https://github.com/bischmlb"><code>@​bischmlb</code></a></li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/ant-design/ant-design/blob/master/CHANGELOG.en-US.md">antd's changelog</a>.</em></p>
<blockquote>
<h2>4.16.9</h2>
<p><code>2021-07-27</code></p>
<ul>
<li>{emoji:1f41e} Fix Typography <code>ellipsis</code> calculation bug when browser zoomed. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31449">#31449</a></li>
<li>{emoji:1f484} Fix Input wrong class when using <code>prefixCls</code>. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31479">#31479</a> <a href="https://github.com/spawnia"><code>@​spawnia</code></a></li>
<li>{emoji:1f484} Fix Input.Password unexpected focus style of error status. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31456">#31456</a></li>
<li>{emoji:1f484} Fix Badge color transition issue when toggle visibility. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31458">#31458</a></li>
<li>{emoji:1f484} Fix Tabs <code>tabBarGutter</code> abnormal style behaviors. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31469">#31469</a></li>
<li>{emoji:1f310} Internationalization
<ul>
<li>{emoji:1f1f7_1f1fa} Update translation for Image in ru_RU. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31448">#31448</a> <a href="https://github.com/KirillSBarsukov"><code>@​KirillSBarsukov</code></a></li>
<li>{emoji:1f1e9_1f1f0} Add missing translation for Table in da_DK. <a href="https://github-redirect.dependabot.com/ant-design/ant-design/pull/31486">#31486</a> <a href="https://github.com/bischmlb"><code>@​bischmlb</code></a></li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="4a9f82e289"><code>4a9f82e</code></a> docs: update changelog date</li>
<li><a href="ace54fcceb"><code>ace54fc</code></a> docs: Update index.en-US.md (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/31533">#31533</a>)</li>
<li><a href="a9a329d37c"><code>a9a329d</code></a> fix: deps and TypeScript types (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/31519">#31519</a>)</li>
<li><a href="c7e0cda393"><code>c7e0cda</code></a> docs: add changelog 4.16.9 (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/31515">#31515</a>)</li>
<li><a href="3549554a80"><code>3549554</code></a> docs: Update typography/index.zh-CN.md (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/31506">#31506</a>)</li>
<li><a href="474ada1384"><code>474ada1</code></a> docs: Add jish resource</li>
<li><a href="9fd2940fdd"><code>9fd2940</code></a> docs: update tree-select demo (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/31500">#31500</a>)</li>
<li><a href="d4d0b9be5e"><code>d4d0b9b</code></a> ci: add default.less forbid (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/31497">#31497</a>)</li>
<li><a href="5fc7396024"><code>5fc7396</code></a> feat: implemented missing table daDK locale  props (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/31486">#31486</a>)</li>
<li><a href="0431b1430a"><code>0431b14</code></a> docs(Steps): responsive doc (<a href="https://github-redirect.dependabot.com/ant-design/ant-design/issues/31490">#31490</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/ant-design/ant-design/compare/4.16.8...4.16.9">compare view</a></li>
</ul>
</details>
<br />

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

Reviewed By: timur-valiev

Differential Revision: D30012637

Pulled By: passy

fbshipit-source-id: 5ebdb3f8bb6c8ec727d0296c2be96128947e0c93
2021-08-02 07:17:01 -07:00
dependabot[bot]
38b87f784f Bump rsocket-flowable from 0.0.25 to 0.0.27 in /desktop (#2647)
Summary:
Bumps [rsocket-flowable](https://github.com/rsocket/rsocket-js) from 0.0.25 to 0.0.27.
<details>
<summary>Commits</summary>
<ul>
<li><a href="23da9b0e93"><code>23da9b0</code></a> v0.0.27</li>
<li><a href="067dde0837"><code>067dde0</code></a> fixes format</li>
<li><a href="9b712e9db1"><code>9b712e9</code></a> updates version</li>
<li><a href="6e2617fff6"><code>6e2617f</code></a> v0.0.26</li>
<li><a href="3961e7febe"><code>3961e7f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/rsocket/rsocket-js/issues/149">https://github.com/facebook/flipper/issues/149</a> from rsocket/feature/scripts-support-windows</li>
<li><a href="002c6d3372"><code>002c6d3</code></a> fix: update scripts to support windows</li>
<li><a href="97ab802352"><code>97ab802</code></a> adds README to each published sub package (<a href="https://github-redirect.dependabot.com/rsocket/rsocket-js/issues/147">https://github.com/facebook/flipper/issues/147</a>)</li>
<li><a href="1d9e675483"><code>1d9e675</code></a> changes build status badge</li>
<li><a href="db50a84b0f"><code>db50a84</code></a> migrates to GHA (<a href="https://github-redirect.dependabot.com/rsocket/rsocket-js/issues/145">https://github.com/facebook/flipper/issues/145</a>)</li>
<li><a href="b994f7d6b0"><code>b994f7d</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/rsocket/rsocket-js/issues/139">https://github.com/facebook/flipper/issues/139</a> from rsocket/replace-fbjs-round-3</li>
<li>Additional commits viewable in <a href="https://github.com/rsocket/rsocket-js/compare/v0.0.25...v0.0.27">compare view</a></li>
</ul>
</details>
<br />

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

Reviewed By: timur-valiev

Differential Revision: D30012638

Pulled By: passy

fbshipit-source-id: 27f91f3347b7919d150f3691a705368d217c6a07
2021-08-02 05:36:00 -07:00
Lorenzo Blasa
d0a0f1bc5b WebSocket server
Summary:
WebSocket implementation of ServerAdapter.

About the setup payload:

RSocket uses a setup payload sent by the client when the initial handshake takes place.

WebSocket handshake doesn't use one.

Instead, it is proposed to use the URL query string to embed any arguments that the server may require to correctly identify and verify a client.

This is the case for the existing Browser WebSocket server.

The only extra adjustment was made for the CSR, proposed to be Base64 encoded.
There's no particular reason to Base64 encode it, as it was already tested by simply escaping any necessary characters.

I feel Base64 adds a layer of simple obfuscation that although doesn't offer any security, it abstracts the content to the URL reader.

The only concern was about the URL maximum length. It seems to be accepted that URL lengths should be at most 2048 characters.

Also, it seems to be the case that the PEM encoded public key size is 451 characters.

That, combined with all the extra necessary arguments, the final URL seem to fit well within the 2048 characters limit.

Reviewed By: passy

Differential Revision: D30014341

fbshipit-source-id: f3e13754b9e513eb84473e45de03f9e101c73862
2021-08-02 02:44:20 -07:00
Lorenzo Blasa
2a39738ece ServerController switch to use the refactored components
Summary:
This is the change that will pull the previous diffs together by making ServerController use the refactored components.

There are no logical changes.

The only additions are the ServerEventsListener interface implementation that re-use logic that was previously scattered around this same type.

Reviewed By: passy

Differential Revision: D29989270

fbshipit-source-id: 9ed7ff84ae8cd8ca46fad0db0737456eb705241c
2021-07-30 06:04:16 -07:00
Lorenzo Blasa
0f37d488bb ServerFactory to be used to create server instances for Flipper to use
Summary:
ServerController creates, configures, and contains any necessary servers to be used by Flipper.

ServerFactory is added as a means to abstract the creation of servers from it.

Reviewed By: passy

Differential Revision: D29987328

fbshipit-source-id: ff60a408710dbd51ea28ff27a9f85c0020741f4b
2021-07-30 05:08:37 -07:00
Lorenzo Blasa
5c99170abd WebSocket-based server, base class and browser
Summary:
Introduce a base class for WebSocket based servers and a Browser-based implementation which is in use by Kite.

The implementation for the Browser-based one is basically taken as is from ServerController but slightly adapted to match the existing interface.

As with the RSocket-based implementation, this diff doesn't put this implementation into use but is a good opportunity to revisit the existing implementation.

Reviewed By: passy

Differential Revision: D29985886

fbshipit-source-id: 32abba37ec31478b6497ef5cfe90bb9aedc282d3
2021-07-30 02:01:16 -07:00
Lorenzo Blasa
6c72e78d04 RSocket server
Summary:
RSocket server which implements the ServerAdapter interface.

Most of the code was taken from the ServerController class with a few minor adjustments.

Once ServerController starts using ServerAdapter instances the code will be removed from there.

Reviewed By: fabiomassimo

Differential Revision: D29984578

fbshipit-source-id: e35e7635dff995314b3c1fbc85177f90384e025d
2021-07-29 03:20:31 -07:00
Lorenzo Blasa
b0e47bf75e Introduce ServerAdapter
Summary:
Introduce ServerAdapter which should be used as a base class for different server implementations e.g. RSocket, WebSocket.

The type is not used elsewhere at this point but this is a good chance to look at the API and suggest changes and/or improvements.

Reviewed By: passy

Differential Revision: D29958434

fbshipit-source-id: 50ba46332d40e836b0a87bcf354d3237bf8fe7c5
2021-07-28 08:05:56 -07:00
Lorenzo Blasa
554f8146d7 Extracting utility methods
Summary:
Extract the following utility functions from ServerController:

transformCertificateExchangeMediumToType
appNameWithUpdateHint

The functions are not tied to the ServerController and will be used outside of it.

Reviewed By: passy

Differential Revision: D29938355

fbshipit-source-id: ea489f54a3a6bf46ae4e108579d48ede1f891093
2021-07-27 12:21:02 -07:00
Pascal Hartig
27eaf4f03d Tuesday dep bump
Summary:
allow-large-files
Got a ton of open bumps in GitHub. Want to address a bunch of them in one swoop.

Reviewed By: jknoxville, nikoant

Differential Revision: D29933570

fbshipit-source-id: d5dc18fab22e8c5b300ab318e60dd1514aecfd52
2021-07-27 11:42:46 -07:00
Lorenzo Blasa
204c075782 Move BrowserClientFlipperConnection to a better location
Summary:
Move BrowserClientFlipperConnection to a better location.

All communication types should be located inside the comms/ directory.

Reviewed By: jknoxville

Differential Revision: D29937942

fbshipit-source-id: 7fbf92c60d53a8f4f16d738bcbd6c451ce367ff1
2021-07-27 10:00:52 -07:00
Lorenzo Blasa
1f1f41c81e Rename websocketClientFlipperConnection
Summary:
At the moment Flipper spawns a WebSocket server which can be used to debug Web applications in the Browser i.e. Kite.

This diff renames websocketClientFlipperConnection to BrowserClientFlipperConnection.

Renamed to make it clearer what type of connection it really is. WebSocket connections will no longer have the same meaning once RSocket is removed and WebSockets are used instead.

Reviewed By: jknoxville

Differential Revision: D29937656

fbshipit-source-id: 99d55fcfe256865add1ba3aada2c23f935f5cabe
2021-07-27 09:22:24 -07:00
Pascal Hartig
38c8c9b2d2 Set required prop for PluginInstaller
Summary: TSC is raising this for a missing property.

Reviewed By: timur-valiev

Differential Revision: D29933795

fbshipit-source-id: 2acb3ea3b504f1bce1fb4bd0f7e4b52fd49e00b0
2021-07-27 08:40:42 -07:00
Lorenzo Blasa
c1496f621e FlipperClientConnection no longer redefines the RSocket Socket interface
Summary:
FlipperClientConnection used to define an interface which closely matched the Socket interface defined in RSocket.

Presumably it tried to 'decouple' RSocket from consumers of the client socket connection. It also limited the amount of actions that could be triggered on said socket connection.

This diff does two things:
- Renames FlipperClientConnection to ClientConnection.
- Changes the interface so that it no longer matches the RSocket Socket interface. The new interface doesn't use RSocket reactive types either.

As a result, current implementations of the interface will act as a proxy to the RSocket Socket type. The change allows the usage of other implementations such as WebSocket.

Reviewed By: fabiomassimo

Differential Revision: D29934090

fbshipit-source-id: 02742e50cd6e801310698969c81b3bf1ef0fa2a2
2021-07-27 08:30:21 -07:00
Lorenzo Blasa
8bb47a38a1 Rename server as ServerController
Summary:
In the file server.tsx was defined the Server type.

Server is being renamed to ServerController and the new file is ServerController.tsx

This is the last diff where things are being moved or renamed in a way that will make harder to review future changes.

Reviewed By: fabiomassimo

Differential Revision: D29912626

fbshipit-source-id: ae583671d98823a10f7efceeefd8215621f59dcf
2021-07-27 02:25:10 -07:00
Lorenzo Blasa
3e334e1a0e Create a new comms directory and move the server type inside
Summary:
A new comms/ directory is introduced which will contain all the communication code between client and server.

This change just moves server.tsx to its new location, it will make the next changes easier to follow.

Reviewed By: fabiomassimo

Differential Revision: D29911904

fbshipit-source-id: ae319dc8f9fd7af9d8b5b5c0ee87b56102cc0a18
2021-07-27 02:25:10 -07:00
dependabot[bot]
2eac7507be Bump rsocket-core from 0.0.19 to 0.0.27 in /desktop (#2607)
Summary:
Bumps [rsocket-core](https://github.com/rsocket/rsocket-js) from 0.0.19 to 0.0.27.
<details>
<summary>Commits</summary>
<ul>
<li><a href="23da9b0e93"><code>23da9b0</code></a> v0.0.27</li>
<li><a href="067dde0837"><code>067dde0</code></a> fixes format</li>
<li><a href="9b712e9db1"><code>9b712e9</code></a> updates version</li>
<li><a href="6e2617fff6"><code>6e2617f</code></a> v0.0.26</li>
<li><a href="3961e7febe"><code>3961e7f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/rsocket/rsocket-js/issues/149">https://github.com/facebook/flipper/issues/149</a> from rsocket/feature/scripts-support-windows</li>
<li><a href="002c6d3372"><code>002c6d3</code></a> fix: update scripts to support windows</li>
<li><a href="97ab802352"><code>97ab802</code></a> adds README to each published sub package (<a href="https://github-redirect.dependabot.com/rsocket/rsocket-js/issues/147">https://github.com/facebook/flipper/issues/147</a>)</li>
<li><a href="1d9e675483"><code>1d9e675</code></a> changes build status badge</li>
<li><a href="db50a84b0f"><code>db50a84</code></a> migrates to GHA (<a href="https://github-redirect.dependabot.com/rsocket/rsocket-js/issues/145">https://github.com/facebook/flipper/issues/145</a>)</li>
<li><a href="b994f7d6b0"><code>b994f7d</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/rsocket/rsocket-js/issues/139">https://github.com/facebook/flipper/issues/139</a> from rsocket/replace-fbjs-round-3</li>
<li>Additional commits viewable in <a href="https://github.com/rsocket/rsocket-js/compare/v0.0.19...v0.0.27">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-core since your current version.</p>
</details>
<br />

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

Reviewed By: fabiomassimo

Differential Revision: D29791147

Pulled By: priteshrnandgaonkar

fbshipit-source-id: 2bf3527cb2eb4abe118ef86e8d766dd850618180
2021-07-23 06:28:04 -07:00
Michel Weststrate
ba6ab0ff38 Use spinner when loading Flipper trace
Summary: When loading a Flipper trace, the loading dialog was no longer show. This diff fixes that.

Reviewed By: nikoant

Differential Revision: D29844892

fbshipit-source-id: 23d1f53962a3f64f93cc42127cd008c03486c14c
2021-07-22 04:17:45 -07:00
Michel Weststrate
f74029699f Introduce Dialog abstraction
Summary: Introduce convenience abstractions to make it easier to manage dialogs imperatively, by promisyfying common dialog abstractions.

Reviewed By: jknoxville, nikoant

Differential Revision: D29790462

fbshipit-source-id: c092c15cf569ec353b9c1042f25cd67e6c76db01
2021-07-22 04:17:45 -07:00
Michel Weststrate
226cf8ccf9 Set up deeplink handling for open-plugin deeplink
Summary: Introduce open-plugin deeplink protocol. Implementation steps will follow in rest of this diff

Reviewed By: jknoxville

Differential Revision: D29761801

fbshipit-source-id: 47070c063df2cb3286e418b2fb20f9d8855a95d5
2021-07-22 04:17:45 -07:00
Michel Weststrate
860f723521 Make deeplinks manual- and unittestable
Summary: This diff makes sure we can manually & unit tests deeplinks more easily, by introducing a dialog in which a deeplink can be entered manually and extracting deeplink handling logic from the application dispatcher.

Reviewed By: jknoxville

Differential Revision: D29760933

fbshipit-source-id: 0fc8f577204ecdd278716853b87786557a6e2194
2021-07-22 04:17:45 -07:00
Michel Weststrate
a78b6124d7 Add option to jest to run tests only locally, or on linux (#2609)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/2609

Make it possible to mark some tests to run on non-CI, or unix only

Reviewed By: nikoant

Differential Revision: D29813506

fbshipit-source-id: 140f8a4eaed5af3282ab9d139b46a52818be0934
2021-07-21 05:43:11 -07:00