Commit Graph

6926 Commits

Author SHA1 Message Date
Pascal Hartig
7c1251075f Dep bump for /desktop
Summary:
Combining a bunch of dependabot PRs.

N.B. I had to manually clean up the `yarn.lock` a few times because some dependencies resolved to multiple version numbers, catching tsc off-guard.
allow-large-files

Reviewed By: nikoant

Differential Revision: D34579180

fbshipit-source-id: a4848e1010ff240d9b0e721d3878585e7b4bd078
2022-03-03 04:11:52 -08:00
Andres Orozco Gonzalez
5b5ce92519 Add support to binding both IPv6 and IPv4 ports
Summary: Add support for binding the same port in flipper in both the IPv6 and IPv4 interfaces

Reviewed By: mweststrate

Differential Revision: D34591022

fbshipit-source-id: e28239c24425885ee442d93b84bb38902d521a0c
2022-03-03 00:31:08 -08:00
Adam Fiksen
7222437beb Add plumbing icon to flipper
Summary: Adds a reference to plumbing icon for plugins to use

Reviewed By: svaithia

Differential Revision: D34467457

fbshipit-source-id: 21d95f663309224742f4f93ac584998e1a470f28
2022-03-02 14:59:50 -08:00
Andrey Goncharov
5068c8273b Add deprecation notice notification
Summary: Add deprecation notice device icon and notification

Reviewed By: lblasa

Differential Revision: D34582475

fbshipit-source-id: 90fde15caf1925b42f50fbfc77dece88c82833cf
2022-03-02 09:18:15 -08:00
Flipper Bot
ed6e589bec Flipper Snapshot Bump: v0.137.1-SNAPSHOT
Summary: Releasing snapshot version 0.137.1-SNAPSHOT

Reviewed By: passy

Differential Revision: D34577712

fbshipit-source-id: 9d00f9fb5a6eec45a8578ece953faf89457928b4
2022-03-02 07:41:24 -08:00
Flipper Bot
f2e60ab6cb Flipper Release: v0.137.0
Summary: Releasing version 0.137.0

Reviewed By: passy

Differential Revision: D34577711

fbshipit-source-id: fc0ceb7676d1f7a8f5d1e271d78b489c61919bf6
2022-03-02 07:41:24 -08:00
dependabot[bot]
8018b0144a Bump gradle-maven-publish-plugin from 0.18.0 to 0.19.0 (#3482)
Summary:
Bumps [gradle-maven-publish-plugin](https://github.com/vanniktech/gradle-maven-publish-plugin) from 0.18.0 to 0.19.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/vanniktech/gradle-maven-publish-plugin/releases">gradle-maven-publish-plugin's releases</a>.</em></p>
<blockquote>
<h2>0.19.0</h2>
<p><a href="https://github.com/vanniktech/gradle-maven-publish-plugin/blob/master/CHANGELOG.md#version-0190-2022-02-26">Changelog</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/vanniktech/gradle-maven-publish-plugin/blob/master/CHANGELOG.md">gradle-maven-publish-plugin's changelog</a>.</em></p>
<blockquote>
<h2>Version 0.19.0 <em>(2022-02-26)</em></h2>
<ul>
<li><strong>Behavior Change:</strong> When using version 7.1.0 or newer of the Android Gradle Plugin we will now publish all variants
of a library unless <code>androidVariantToPublish</code> was set in the DSL. This means that for example both <code>debug</code> and <code>release</code>
or all flavors.</li>
<li>Deprecated <code>androidVariantToPublish</code>. In the future the main plugin will always publish all variants of an Android
library. If you need to publish only one variant or a subset take a look at the <a href="https://github.com/vanniktech/gradle-maven-publish-plugin/blob/master/README.md#base-plugin">base plugin</a>
APIs.</li>
<li>Base plugin: Added <code>AndroidSingleVariantLibrary</code> and <code>AndroidMultiVariantLibrary</code> options that use the new AGP 7.1
APIs under the hood.</li>
<li>Base plugin: Deprecated <code>AndroidLibrary</code> option in favor of the above</li>
<li>The integration with Sonatype Nexus has been extracted into it's own artifact and is available as <code>com.vanniktech:nexus:&lt;version&gt;</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="c1267766d9"><code>c126776</code></a> Prepare version 0.19.0</li>
<li><a href="a91b7655b9"><code>a91b765</code></a> add AGP 7.1.2 support (<a href="https://github-redirect.dependabot.com/vanniktech/gradle-maven-publish-plugin/issues/293">https://github.com/facebook/flipper/issues/293</a>)</li>
<li><a href="6b8661bd33"><code>6b8661b</code></a> change how integration tests are run, update dependencies/build (<a href="https://github-redirect.dependabot.com/vanniktech/gradle-maven-publish-plugin/issues/327">https://github.com/facebook/flipper/issues/327</a>)</li>
<li><a href="224c2fb4d5"><code>224c2fb</code></a> Fix maven local path (<a href="https://github-redirect.dependabot.com/vanniktech/gradle-maven-publish-plugin/issues/316">https://github.com/facebook/flipper/issues/316</a>)</li>
<li><a href="6f455427ae"><code>6f45542</code></a> Fix partial(confusing) sign detail for windows (<a href="https://github-redirect.dependabot.com/vanniktech/gradle-maven-publish-plugin/issues/286">https://github.com/facebook/flipper/issues/286</a>)</li>
<li><a href="c76feb19ce"><code>c76feb1</code></a> Extract <code>nexus</code> as a separate module (<a href="https://github-redirect.dependabot.com/vanniktech/gradle-maven-publish-plugin/issues/309">https://github.com/facebook/flipper/issues/309</a>)</li>
<li><a href="42a748d1f7"><code>42a748d</code></a> Fixing variable names (group and version) in base plugin configuration in doc...</li>
<li><a href="3b0d49a9a9"><code>3b0d49a</code></a> Prepare next development version.</li>
<li>See full diff in <a href="https://github.com/vanniktech/gradle-maven-publish-plugin/compare/0.18.0...0.19.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.vanniktech:gradle-maven-publish-plugin&package-manager=gradle&previous-version=0.18.0&new-version=0.19.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/3482

Reviewed By: nikoant

Differential Revision: D34578848

Pulled By: passy

fbshipit-source-id: f3e0f8271b0a0d1632a105dbf798afaff467e257
2022-03-02 04:48:01 -08:00
Andrey Goncharov
e26ba0d945 Encapsulate styleguide styles
Summary: Prevent leaking Flipper styles and antd styles into the website by embedding the styleguide into an iframe.

Reviewed By: nikoant

Differential Revision: D34522771

fbshipit-source-id: a05bf1e7f54fe172fb012a0a02296b3a4e0100f1
2022-02-28 09:54:03 -08:00
Andrey Goncharov
8ee788239b Update version number for default plugins
Summary: Prior to this fix, plugins were copied with verion 0.0.0 which forced them to be updated with "newer" versions from marketplace

Reviewed By: nikoant

Differential Revision: D34457087

fbshipit-source-id: a3242578c570447f8ecf9c62bcaa69e5d9688c42
2022-02-28 03:50:34 -08:00
Andrey Goncharov
b82cdfb664 Fix starting dev Flipper without bundled plugins
Summary: --no-embedded-plugins does not seem to exist. Replaced with --no-bundled-plugins which removes plugins from defaultPlugins/idex.tsx (as in prod).

Reviewed By: antonk52

Differential Revision: D34445364

fbshipit-source-id: e52c2e327bf43a3f682b6d9e18315e6ecadad5d8
2022-02-28 03:50:34 -08:00
Andrey Goncharov
3ec5b56263 Polyfill fetch
Summary: Provide server add-on writers with a well-known fetch API

Reviewed By: mweststrate

Differential Revision: D34447630

fbshipit-source-id: 70386940c12f9e53aa97b3530a7edf1d40b5f2e2
2022-02-28 03:50:34 -08:00
Andrey Goncharov
aec05533d7 Expose a subset of flipper-plugin to flipper server
Summary: Flipper plugins rely on 'flipper-plugin' package being accessible from 'global'. Expose a subset (without UI stuff) of flipper-plugin to server add-ons

Reviewed By: mweststrate

Differential Revision: D34400811

fbshipit-source-id: e0079ddfa67e66c1b24ab02d7682917ddfc84aaf
2022-02-28 03:50:34 -08:00
Andrey Goncharov
9449f61adb Add server add-on babel transform
Reviewed By: antonk52

Differential Revision: D34393126

fbshipit-source-id: d910392d9ac7e7a44e2e9ede690a6bed77f018c7
2022-02-28 03:50:34 -08:00
Andrey Goncharov
01a5f3da90 Add generics to server add-on connection
Reviewed By: mweststrate

Differential Revision: D34307356

fbshipit-source-id: 27e61355a85995368ebb197c42d58f4145473567
2022-02-28 03:50:34 -08:00
Andrey Goncharov
673bb9135e Allow Node APIs for server add-ons
Reviewed By: antonk52

Differential Revision: D34386916

fbshipit-source-id: b2484dff15b0a1b0d08f8b0b2e17916d037570c8
2022-02-28 03:50:34 -08:00
Andrey Goncharov
dcfc84cce6 Add onServerAddOnStart and onServerAddOnStop plugin hooks
Reviewed By: mweststrate

Differential Revision: D34378231

fbshipit-source-id: e086eebcf94c01da76bfe8b88c6528bd21d89968
2022-02-28 03:50:34 -08:00
Andrey Goncharov
9e4ac0aaa9 Add unit tests for PluginManager
Reviewed By: mweststrate

Differential Revision: D34307076

fbshipit-source-id: 7cb6c808bea10d15627958e8fabc02b4563183d4
2022-02-28 03:50:34 -08:00
Andrey Goncharov
d96cf8127f Add unit tests for ServerAddOn
Reviewed By: mweststrate

Differential Revision: D34303780

fbshipit-source-id: 03a4570a6e891d979b87caca14f51068d74df877
2022-02-28 03:50:34 -08:00
Andrey Goncharov
81d0057a8d Fix potential race conditions for starting/stopping server add-ons
Reviewed By: mweststrate

Differential Revision: D34301593

fbshipit-source-id: 2950de8a8567318cd3e87eff176657df5ba8fd1b
2022-02-28 03:50:34 -08:00
Andrey Goncharov
bdbf79e3e1 Limit events and methods in server contact to strings only
Reviewed By: antonk52

Differential Revision: D34300854

fbshipit-source-id: 79cd3e3da9bb5dbac75243ac90118f32e12d8177
2022-02-28 03:50:34 -08:00
Andrey Goncharov
8b94186783 Load installed server add-ons
Reviewed By: nikoant

Differential Revision: D34300475

fbshipit-source-id: 6bb6c0ab811e28806a0924b3487931bdb0dd2c59
2022-02-28 03:50:34 -08:00
Andrey Goncharov
b4b9c0ab28 Implement receiving messages from add-on on the client
Reviewed By: mweststrate

Differential Revision: D34249101

fbshipit-source-id: 07297b84ed8640e3b41599726ba613b6b4e2b62e
2022-02-28 03:50:34 -08:00
Andrey Goncharov
4067f5bd88 Implement sending messages from desktop to add-on
Reviewed By: antonk52

Differential Revision: D34239803

fbshipit-source-id: 1a18d522ba877ade3d0703fbb374c15b596241d7
2022-02-28 03:50:34 -08:00
Andrey Goncharov
2ce037d96b Load bundled server add-ons
Reviewed By: antonk52

Differential Revision: D34238883

fbshipit-source-id: 01b4b1c1c0a63cbfb639e903f6a77307ae370330
2022-02-28 03:50:34 -08:00
Andrey Goncharov
b655efc78e Migrate to default exports for server add-ons
Reviewed By: antonk52

Differential Revision: D34201906

fbshipit-source-id: 3ee2bf831d5a1f5c6c9252acce1b1731462871f1
2022-02-28 03:50:34 -08:00
Andrey Goncharov
5cdb7c952e Update build scripts to support bundling server add-ons
Summary: Summary

Reviewed By: nikoant

Differential Revision: D34170565

fbshipit-source-id: be9904809bf33e85536a4c6ead0e753ef05209ff
2022-02-28 03:50:34 -08:00
Andrey Goncharov
47dd675dc8 Update schema
Reviewed By: mweststrate

Differential Revision: D34169727

fbshipit-source-id: 4df1eeb17ff3894e60b7b857a571524dba7de085
2022-02-28 03:50:34 -08:00
Andrey Goncharov
04eab80c98 Move server add-on interfaces to flipper-common
Reviewed By: antonk52

Differential Revision: D34169419

fbshipit-source-id: 69fcc8da7d98f59818fbb5b486a488f19830cd81
2022-02-28 03:50:34 -08:00
Andrey Goncharov
b9294645d3 Limit methods server add on can access
Reviewed By: mweststrate

Differential Revision: D34076174

fbshipit-source-id: e51a1b08dab54de6b7dc82ca59ec18a10f81ddd7
2022-02-28 03:50:34 -08:00
Andrey Goncharov
b80755721c Draft communication with server add-ons from the client side
Reviewed By: nikoant

Differential Revision: D34075379

fbshipit-source-id: 09f575f5cced866ad7b9290d7739ce60f38edeee
2022-02-28 03:50:34 -08:00
Andrey Goncharov
db976d5113 Implement sending messages from a server add-on
Reviewed By: mweststrate

Differential Revision: D34074383

fbshipit-source-id: de85e7a22dc9bb780163fc5b522708e8bc976df3
2022-02-28 03:50:34 -08:00
Andrey Goncharov
842b2c810a Implement sending messages to server add-on
Reviewed By: mweststrate

Differential Revision: D34073403

fbshipit-source-id: eacd73811b436f2b5c4255a83d8eb09367a96a67
2022-02-28 03:50:34 -08:00
Andrey Goncharov
12151e4a71 Extend Flipper commands to support server add-on messaging
Reviewed By: mweststrate

Differential Revision: D34046466

fbshipit-source-id: 9acc172c1805ec724b8709999bacf9e899c39e6b
2022-02-28 03:50:34 -08:00
Andrey Goncharov
3b390b74ff Track client connections and autostop server add-ons when all clients leave
Reviewed By: mweststrate

Differential Revision: D34045584

fbshipit-source-id: 1ad0cfffb9d304f0359c973d76d6956f7e932f72
2022-02-28 03:50:34 -08:00
Andrey Goncharov
9113006851 Make Client initialize server add-ons
Reviewed By: mweststrate

Differential Revision: D34044353

fbshipit-source-id: 99bcb1559787b2a904bdd796233666a7a4783ea4
2022-02-28 03:50:34 -08:00
Andrey Goncharov
a60865f0be Intergrate ServerAddOn with PluginManager
Reviewed By: lblasa

Differential Revision: D34042338

fbshipit-source-id: 2ae3992738e647075f19c4dba0ebfb01e6c12b8f
2022-02-28 03:50:34 -08:00
Andrey Goncharov
016299b374 Add server-side ServerAddOn entity
Reviewed By: lblasa

Differential Revision: D33982373

fbshipit-source-id: a07589e515fe82d3735402cc26d1258e1d212931
2022-02-28 03:50:34 -08:00
Andrey Goncharov
fc20abf392 Add Flipper server command definitions
Reviewed By: lblasa

Differential Revision: D33980529

fbshipit-source-id: b64f48134d4816d3502c70d15beff90a044490a4
2022-02-28 03:50:34 -08:00
Jong Hyun Park
035ba5613c Add neighbouring lines feature to Flipper Logs plugin
Summary:
Adding a feature to Flipper's Logs plugin where:
1) you search for something,
2) click on a line among the filtered search results,
3) press control,
4) get taken back to unfiltered list of all messages, centered on your selected line

This is to help debugging where the user may add a print statement but the error happens after it, and it's difficult to catch without a lot of scrolling.

Reviewed By: mweststrate

Differential Revision: D33446285

fbshipit-source-id: 19aa472a12de074e561dbe37b44821fc29bf5c91
2022-02-25 10:07:42 -08:00
Lorenzo Blasa
30becc1ced Remove RSocket
Summary:
^
Changelog: Remove rsocket dependency for Android

Reviewed By: aigoncharov

Differential Revision: D34418565

fbshipit-source-id: d2bfd6cede3c85709e252a8205525aa4595b4791
2022-02-25 02:33:22 -08:00
Lorenzo Blasa
9aed8ce02d Remove RSocket
Summary:
^
Changelog: Remove rsocket dependency for iOS

Reviewed By: aigoncharov

Differential Revision: D33656299

fbshipit-source-id: aab00c425976273112a127e06aca82dfd63194eb
2022-02-25 02:02:24 -08:00
Lorenzo Blasa
c4f80a826e Remove RSocket
Summary:
^
Changelog: Remove rsocket references from xplat

Reviewed By: aigoncharov

Differential Revision: D34418118

fbshipit-source-id: bd49b9da119e3a2a1ce396d14e0dca73e1b9c692
2022-02-24 23:56:22 -08:00
Scott Kyle
c15605afd3 Fixes for Mac Catalyst
Summary: When building for Mac Catalyst, it mostly appears as if it's targeting iOS (`TARGET_OS_OSX` is `0`) and the behavior should be aligned with iOS Simulator builds.

Reviewed By: lblasa

Differential Revision: D34413681

fbshipit-source-id: 1e56bbb3f16f8cd78e77771ff641c5cfcbc49955
2022-02-23 09:22:15 -08:00
Flipper Bot
faddf82317 Flipper Snapshot Bump: v0.136.1-SNAPSHOT
Summary: Releasing snapshot version 0.136.1-SNAPSHOT

Reviewed By: jknoxville

Differential Revision: D34414614

fbshipit-source-id: 176dd6c48587ea3b6a1bd24203210a5a649438d5
2022-02-23 08:22:34 -08:00
Flipper Bot
e1746932ce Flipper Release: v0.136.0
Summary: Releasing version 0.136.0

Reviewed By: jknoxville

Differential Revision: D34414615

fbshipit-source-id: 7239b27687b1af22cf26597e0d1fca138f9f9c7f
2022-02-23 08:22:34 -08:00
Lorenzo Blasa
5993a748ba C++ WebSocket
Summary:
^

Changes include:
- C++ WebSocket integration
- Explicit asio namespace usage as namespace asio = websocketpp::lib::asio; this way we don't care if boost::asio or just asio is used in the end.

Reviewed By: javache

Differential Revision: D34388770

fbshipit-source-id: d0b3ee8ac687751ab1b93d483729eb2baccb8687
2022-02-23 04:23:07 -08:00
Chris Hogan
4c91382e09 Synchronize access to dict in FLEXNetworkRecorder (#3457)
Summary:
All our read/write to `identifierDict` in FLEXNetworkRecorder are done in their own thread-safe queue except one read and one write call.

Those two non-thread-safe read/write calls are causing ThreadSanitizer crashes in `react-native-macOS` when we consume flipper. By adding these calls to the `dispatch_async(self.queue` a few lines lower in the method, their access becomes thread safe as well.

Never having worked on Flipper I don't have much context on what FLEXNetworkRecorder actually does and the git history for this file shows the bug has existed since the "Initial commit" so it's unclear to me if we've purposefully not included these calls in the dispatch queue for some reason.

That said, I'd propose this as a fix as the thread sanitizing crash no longer repros for me downstream and I don't see anything immediately obvious for why this can't be in the self.queue as well.

## Changelog

Fix thread sanitizer crash in FLEXNetworkRecorder.

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

Test Plan:
Running react-native-macOS with the ThreadSanitizer consistently hits this race condition on a library object in Flipper with the error below.

```
WARNING: ThreadSanitizer: race on NSMutableDictionary (pid=32575)
  Read-only access of NSMutableDictionary at 0x000133ae5c60 by thread T11:
    #0 -[__NSDictionaryM objectForKeyedSubscript:] <null>:130036204 (CoreFoundation:arm64+0x1897d8)
    https://github.com/facebook/flipper/issues/1 __85-[FLEXNetworkRecorder recordRequestWillBeSentWithRequestID:request:redirectResponse:]_block_invoke FLEXNetworkRecorder.mm:130 (RNTester:arm64+0x1007afc48)
    https://github.com/facebook/flipper/issues/2 __tsan::invoke_and_release_block(void*) <null>:130036204 (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x70514)
    https://github.com/facebook/flipper/issues/3 _dispatch_client_callout <null>:130036204 (libdispatch.dylib:arm64+0x581c)

  Previous modifying access of NSMutableDictionary at 0x000133ae5c60 by thread T1:
    #0 -[__NSDictionaryM setObject:forKeyedSubscript:] <null>:130036204 (CoreFoundation:arm64+0x188808)
    https://github.com/facebook/flipper/issues/1 -[FLEXNetworkRecorder recordRequestWillBeSentWithRequestID:request:redirectResponse:] FLEXNetworkRecorder.mm:118 (RNTester:arm64+0x1007af754)
    https://github.com/facebook/flipper/issues/2 __73-[FLEXNetworkObserver(NSURLSessionTaskHelpers) URLSessionTaskWillResume:]_block_invoke FLEXNetworkObserver.mm:1690 (RNTester:arm64+0x1007adc70)
    https://github.com/facebook/flipper/issues/3 __tsan::invoke_and_release_block(void*) <null>:130036204 (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x70514)
    https://github.com/facebook/flipper/issues/4 _dispatch_client_callout <null>:130036204 (libdispatch.dylib:arm64+0x581c)
```
After moving the only non-thread safe read/write call into the appropriate dispatch queues I'm not longer able to repro this thread access crash after many attempts.

Reviewed By: fabiomassimo

Differential Revision: D34388079

Pulled By: lblasa

fbshipit-source-id: 2e654d601bc6a7d8d78d9a824e0aee66889b7fb9
2022-02-22 10:22:23 -08:00
Andrey Goncharov
bed23c586b Replace style guide references
Summary:
allow-large-files
See D34339758

Reviewed By: jknoxville

Differential Revision: D34378570

fbshipit-source-id: ad451afc1774e6d38902d510629ce1b92457adf0
2022-02-22 08:25:28 -08:00
Andrey Goncharov
342c316c84 Add style guide
Summary:
allow-large-files
See D34339758

Reviewed By: jknoxville

Differential Revision: D34378571

fbshipit-source-id: a7c845f4676b25998dc63bf3029c5d1ec8205611
2022-02-22 08:25:28 -08:00
Andrey Goncharov
3d8d43b562 Update babel config
Summary:
allow-large-files

During decapitation the style guide was accidentally removed. In this diff we bring it back and embed it into our docs.
The only caveat is that the fonts have slightly changes because we included antd.css. It does not change too much from my point of view, but I would love to hear from the team.

Reviewed By: jknoxville

Differential Revision: D34339758

fbshipit-source-id: 10d347bc805f9314ae717de483bf8b766000280f
2022-02-22 08:25:28 -08:00