Commit Graph

2515 Commits

Author SHA1 Message Date
Flipper Bot
8bbc3fda69 Flipper Release: v0.146.1
Summary: Releasing version 0.146.1

Reviewed By: aigoncharov

Differential Revision: D36543493

fbshipit-source-id: 0eaf1e3c4cb51440aa8d22cbe721dc44938c9246
2022-05-20 08:46:00 -07:00
Pascal Hartig
02adfa79e9 Add sourcemap support to server build
Summary:
Provide the same build parameters as for the main build and move
the two bundles to a folder where we can pick them up.

For consistency, I'm keeping the naming scheme with the main build.

Reviewed By: antonk52

Differential Revision: D36521046

fbshipit-source-id: 9ea992d6e5dc299d88083d751ca8e84eadb1430b
2022-05-20 04:04:06 -07:00
Muzammil Mahmood
ec6f732b09 Prevent TypeError exception on missing column.
Summary: Fix a TypeError exception in TableHead.tsx when an ordered column is not present in the row.

Reviewed By: aigoncharov

Differential Revision: D36497494

fbshipit-source-id: 18c961468fc2bc3cca16290fd9e6c973e5e18ebf
2022-05-20 02:54:00 -07:00
Andrey Goncharov
a7b148fcc2 Refactor tic-tac-toe plugin to Sandy architecture
Summary:
CHANGELOG: Refactor tic-tac-toe plugin to Sandy architecture

Sandy architecture unblocks using the plugin in a headless mode. Eventual goal - platy tic-tac-toe form a terminal

Reviewed By: passy

Differential Revision: D36513795

fbshipit-source-id: 5a967a325cfb52cc3ae72840240b22b0a4e8f031
2022-05-19 09:13:33 -07:00
Pascal Hartig
3c3610662a Change build to make use of offline cache
Summary:
pkg-fetch is a bit weird in that it doesn't use the offline cache
if an output path is defined. That makes building in Sandcastle a lot harder.

Reviewed By: lawrencelomax, aigoncharov

Differential Revision: D36485283

fbshipit-source-id: 27596999c69441bc25e341db77b409ed0caaf0fe
2022-05-19 04:14:47 -07:00
Pascal Hartig
1e20ec7d27 Bump pkg-fetch
Summary: Seems to have improvements to the cache which we need in Sandcastle

Reviewed By: lawrencelomax

Differential Revision: D36483459

fbshipit-source-id: 4dfe1dcccddd21c3966508b1260644630c1082f5
2022-05-18 16:11:59 -07:00
Flipper Bot
47238f0d7d Flipper Release: v0.146.0
Summary: Releasing version 0.146.0

Reviewed By: nikoant

Differential Revision: D36473300

fbshipit-source-id: 076031a8acef8d37fd71a8832ba2bd4918a3e724
2022-05-18 10:11:13 -07:00
Andrey Goncharov
0f038218f8 Share uuid
Summary: Expose uuid from flipper-common as it is required in multiple packages

Reviewed By: lblasa

Differential Revision: D36441889

fbshipit-source-id: 1fa539cb437976dbefe7d5d9a52e5e098a6402a7
2022-05-18 03:13:31 -07:00
Andrey Goncharov
88bc3110a5 Add server add-on documentation
Reviewed By: nikoant

Differential Revision: D36446375

fbshipit-source-id: dfa9098428413bff454b5893f022735267dba5b8
2022-05-18 02:20:53 -07:00
Andrey Goncharov
810e5840c6 Remove stale TODO
Reviewed By: passy

Differential Revision: D36441402

fbshipit-source-id: 5b0a7ed035a68d75e4c86c56686e302a80bd9fd0
2022-05-17 08:23:33 -07:00
Lorenzo Blasa
eabc1c556e Extract flipper server instantiation
Summary:
^

This is a very small refactoring and addition to the Flipper Desktop app.

The instantiation of FlipperServer was extracted to a separate function.

This a very tiny change that allows to switch the implementation we use for FlipperServer in a more convenient way.

In this same change, an unused function is added which will create a separate FlipperServer instance that uses a web-socket underneath which makes it possible to use with flipper-server.

So, if interested, it is enough to call that function instead of the one currently in use and it will make Flipper connect to flipper-server instead.

https://pxl.cl/24j8R

Reviewed By: passy

Differential Revision: D36440574

fbshipit-source-id: 94ea2ab7208b898a82ac5e7fd7edd9cb824b4810
2022-05-17 04:20:30 -07:00
Lorenzo Blasa
23b551c8bf Host and port as function args
Summary:
^

Before this change, the client assumed the host and port came from location.host which is fine on the browser.

In all other cases, that object/properties may be undefined.

As such, add host and port as function args and use that instead.

Reviewed By: passy

Differential Revision: D36440423

fbshipit-source-id: 5f931f1d610d583db6a2e549e1213585f0d03dee
2022-05-17 04:20:30 -07:00
Lorenzo Blasa
aca1aca29c Accept connections from localhost coming from port 3000
Summary:
^

flipper-server verifies the origin of incoming connections as a way of preventing any host from connecting to flipper.

That's good.

This change expand the list of allowed origins to include localhost:3000 which is the default origin for Electron apps.

Error without this change:
```
Refused socket connection from cross domain request, origin: http://localhost:3000, host: localhost:52342. Expected origins: http://localhost:52342 or http://[::1]:52342 or http://::1:52342. Expected hosts: localhost:52342 or [::1]:52342 or ::1:52342
```

Reviewed By: passy

Differential Revision: D36440363

fbshipit-source-id: 883cadb49f245bca5d0a53a4f58c08cf45dd0189
2022-05-17 04:20:30 -07:00
Lorenzo Blasa
d4e623c376 Use right path for icons (static)
Summary:
^

I noticed this issue whilst using the Desktop app connected to flipper-server.

So, Flipper Desktop should run as usual with icons being displayed. If connected to flipper-server, behaviour should be the same.

https://pxl.cl/24j73

Reviewed By: passy

Differential Revision: D36440268

fbshipit-source-id: 4c79852d94c8bde95c6e82e2a56bef35a337599d
2022-05-17 04:20:30 -07:00
Lorenzo Blasa
bfcdb82b43 Move flipper-server client to flipper-frontend-core
Summary: ^

Reviewed By: aigoncharov

Differential Revision: D36410944

fbshipit-source-id: 2adb5904cd0f5f15d08be22c611d6774e7533f94
2022-05-17 03:54:16 -07:00
Michel Weststrate
e51e95af2e supportsMethod should return false if not connected
Summary: https://www.internalfb.com/logview/details/flipper_javascript/7e72d9f75d047791d9de43b72915cbd4/?selected-logview-tab=latest shows an exception for just checking whether a feature is supported, while the client is not connected. there is no point in checking if a feature is supported if not connected, so just returning false instead of throwing

Reviewed By: timur-valiev

Differential Revision: D36371047

fbshipit-source-id: 6e83bed6fc53cc41ddef30eeeb41d030b2c4c175
2022-05-13 06:40:06 -07:00
Kevin Strider
d511cd0980 setup.mdx (setup - Sandbox)
Summary: Restyle of page, including changes to spelling, grammar, links, and structure (where relevant).

Reviewed By: lblasa

Differential Revision: D36372379

fbshipit-source-id: 5bf1e93f7901c9ceec9a06c4d9c46a2b06fb201c
2022-05-13 05:28:01 -07:00
Kevin Strider
1d552972db setup.mdx (setup - Network)
Summary: Restyle of page, including changes to spelling, grammar, links, and structure (where relevant).

Reviewed By: lblasa

Differential Revision: D36348417

fbshipit-source-id: 4e32ff6c2ce25ebcb403f203809dccb5d10ea01d
2022-05-13 03:48:28 -07:00
Kevin Strider
280f5fda15 setup.mdx (setup - Shared Preferences Viewer)
Summary: Restyle of page, including changes to spelling, grammar, links, and structure (where relevant).

Reviewed By: passy

Differential Revision: D36349176

fbshipit-source-id: 079aeb8462bcdf71501e8f49636327f16a4ea18c
2022-05-13 03:35:31 -07:00
Kevin Strider
02d9d4ec7c setup.mdx (setup - Navigation)
Summary: Restyle of page, including changes to spelling, grammar, links, and structure (where relevant).

Reviewed By: passy

Differential Revision: D36348092

fbshipit-source-id: 18c0647a799d45660bb4b935343e1445aa602606
2022-05-13 03:28:51 -07:00
Kevin Strider
e07de9ef43 setup.mdx (setup - LeakCanary)
Summary: Restyle of page, including changes to spelling, grammar, links, and structure (where relevant).

Reviewed By: passy

Differential Revision: D36344933

fbshipit-source-id: 87fe56d24b0591b471b4f36c2dda5bb989db7e5c
2022-05-13 03:28:35 -07:00
Andrey Goncharov
49dbe12d5f Do not start server add-ons for archived devices
Reviewed By: mweststrate

Differential Revision: D36371703

fbshipit-source-id: 16083ed9f0dbee67963ace2284138ee108f696b2
2022-05-13 03:25:55 -07:00
Andrey Goncharov
b8dda9b0a7 Create .flipper/certs folder when necessary
Reviewed By: passy

Differential Revision: D36346367

fbshipit-source-id: 290a4a64ad3266f282f13074b2161d988a2bf2cc
2022-05-13 03:19:47 -07:00
Andrey Goncharov
d1ed676a48 Remove dynamic dependencies from flipper-server
Summary:
Currently, Flipper Server has a few productions dependencies (mac-ca, node-fetch) that are not bundled with the Flipper Server. It makes it harder to distribute Flipper Server, as now all potential consumers need not only to download the bundle, but also install these additional dependencies.
This diff makes it possible to bundle `mac-ca` and `node-fetch` with Flipper Server. As a result, Flipper Server becomes dependency-free in production.

Reviewed By: lblasa

Differential Revision: D36345213

fbshipit-source-id: 2cd6ba1b3301b45dc2295891964ba020fd107586
2022-05-13 03:19:47 -07:00
Kevin Strider
21dfeca756 setup.mdx (setup - Databases)
Summary: Add reference to Features page

Reviewed By: passy

Differential Revision: D36344280

fbshipit-source-id: ef6df2fd647f30bddf53d3c00ea0fa09e54583d6
2022-05-13 02:48:47 -07:00
Kevin Strider
aa172f2c77 setup.mdx (setup - Layout)
Summary: Restyle of page, including changes to spelling, grammar, links, and structure (where relevant).

Reviewed By: passy

Differential Revision: D36344857

fbshipit-source-id: f332a1e3422fb7e19d175a305d51b9b34e279e2a
2022-05-13 02:41:20 -07:00
Kevin Strider
16a0a27672 setup.mdx (SetUp - Crash Reporter and Images)
Summary:
Restyle of pages, including changes to spelling, grammar, links, and structure (where relevant):

Crash Reporter
Images

Reviewed By: lblasa

Differential Revision: D36316967

fbshipit-source-id: aa91459f858e650cb7195436f94239e630373747
2022-05-12 07:54:19 -07:00
Maninder Singh
996132afbd Migrate 'Sandbox' plugin to Sandy API
Summary:
As part of an ongoing effort to migrate Flipper plugins to new Sandy arch, this diff aims to help by migrating the 'Sandbox' Plugin.

Most of the changes were straightforward, as in, could be done by following this excellent migration guide : https://www.internalfb.com/intern/staticdocs/flipper/docs/extending/sandy-migration/

Only thing which caused few issues was the "onready" behaviour. In the old pattern, the 'init' method used to get executed on every render. So it was ok to check for "isconnected" prop there.

Now the 'plugin' method is only executed once => and since the device might not be connected then, the "onReady" method (which is equivalent to old 'init' method) didn't work.

To fix this => the init method has been replace with "onConnect".

Reviewed By: lblasa

Differential Revision: D36284538

fbshipit-source-id: 4b2bf74c6d11625e4bd784fbb29fd270158a41ff
2022-05-12 06:27:22 -07:00
Kevin Strider
0b16f3a031 NEW troubleshooting section (SetUp)
Summary: Restyle of Trobleshooting, which involved changes to sidebar.js and splitting up the previous troubleshooting page into five separate pages.

Reviewed By: lblasa

Differential Revision: D36282539

fbshipit-source-id: e60834e2b4d98b70b23bb11309c3438d85e4de0e
2022-05-11 08:58:34 -07:00
Lorenzo Blasa
242d26e199 Rename and documentation for start dev server (attach)
Summary:
Same as with the previous diff.

The function doesn't really start a server. Instead it attaches the routing of messages from the existing server into FlipperServer.

Reviewed By: passy

Differential Revision: D36310703

fbshipit-source-id: 7ac9a742fb36c3806597382c9aadcf96f4770484
2022-05-11 06:56:20 -07:00
Lorenzo Blasa
582966d139 Attach instead of start dev server and documentation updates
Summary:
^

Instead of 'start' use 'attach' as it seems closer to what the function actually does.

Reviewed By: passy

Differential Revision: D36310846

fbshipit-source-id: db90efc6ec3207b1a5a38139a3ba01d2f7d2aebd
2022-05-11 06:56:20 -07:00
Lorenzo Blasa
453ec4bd83 Rename base server to just server
Summary:
^

BaseServer doesn't really have any meaning. So, change it to just Server as it really creates the Express app and HTTP server attached to it.

Reviewed By: passy

Differential Revision: D36310822

fbshipit-source-id: eee5a2a395ca726679c1c4756ed58d4bc6be3cb8
2022-05-11 06:56:20 -07:00
Lorenzo Blasa
2493de75ab Remove unused import
Summary: ^

Reviewed By: passy

Differential Revision: D36310809

fbshipit-source-id: c9faa2b685fc57c8a022cf497a843f3c137716d7
2022-05-11 06:56:20 -07:00
Lorenzo Blasa
1818b87166 Rename startWebServerDev to startDevServer
Summary:
Rename 'startWebServerDev' to just 'startDevServer'.

It isn't really starting a web server though, more like installing routings and middleware to the existing created server.

Reviewed By: passy

Differential Revision: D36310765

fbshipit-source-id: 0af772012525fd7ad19e2aa6fa73cb3e7dcf2bef
2022-05-11 06:56:20 -07:00
Lorenzo Blasa
ec667bc26d Log listening port
Summary: Slight changes to the URL and port logging.

Reviewed By: passy

Differential Revision: D36310796

fbshipit-source-id: 553b9ce932792c471f8e0e2c1a0c7d79897ad59d
2022-05-11 06:56:20 -07:00
Andrey Goncharov
ad76060614 Expose intern graphQL reuqests to plugins
Summary: Some intern plugins use it, an dit is currently missing in FlipperLib

Reviewed By: timur-valiev

Differential Revision: D36313032

fbshipit-source-id: 5ea8e250f1d0bc8831727abd883d953286a022d4
2022-05-11 06:48:05 -07:00
Pascal Hartig
14b83ad050 Don't tear down server on disconnect
Summary: These safeguards were added based on a discussion in D35088208 (56e94394ca) but turned out to be counter-productive. Every time a client disconnects now, we're tearing down the socket and the server, allowing for no future connections.

Reviewed By: lblasa

Differential Revision: D36252605

fbshipit-source-id: c3b6f85dea4054505a47d24a72a4aac403371c0f
2022-05-10 08:45:57 -07:00
Andrey Goncharov
754afd0d2d Fix and re-apply "[flipper] Automatically set Android devices into the permissive mode"
Summary: Reverts D36263724 (0ee8f09fe5) and fixes the underlying crash by setting only physical devices in the permissive mode

Reviewed By: passy

Differential Revision: D36275055

fbshipit-source-id: 25a691e9c07e20a3341630db508795c133a9bd81
2022-05-10 08:42:58 -07:00
Andrey Goncharov
7b31a1c6b6 Add headless-demo plugin and its usage example
Summary:
Next steps:
1. Refactor it TS for consistency
2. Remove it in favor of tic-tac-toe integration

Reviewed By: mweststrate

Differential Revision: D36102002

fbshipit-source-id: 7dc930f67bed636159a2ec433d7405ab6ee09f97
2022-05-10 05:13:24 -07:00
Andrey Goncharov
b4498f070f Add flipper-server-companion to flipper-server
Summary: Start flipper-server-companion whenever a client connects to flipper-server and sets `server_companion` query parameter in a connection URL to true

Reviewed By: mweststrate

Differential Revision: D36098169

fbshipit-source-id: eb953e7d680b30aef1340f059264112387264c05
2022-05-10 05:13:24 -07:00
Andrey Goncharov
a6d7f98cfd Bundle headless plugins
Summary: Current temporary limitations: all headless plugins are bundled with Flipper.

Reviewed By: antonk52

Differential Revision: D36098168

fbshipit-source-id: c58abe41776157258a5c39a80a5c1a33cf3f42c5
2022-05-10 05:13:24 -07:00
Andrey Goncharov
1f2f799772 Setup globals and initialize flipper-server-companion
Summary:
We want Flipper plugins to share imports with Flipper:
- They must share the same React otherwise different Reacts could conflict with each other
- Other common modules are shared to decrease the bundle size for each plugin.

`setGlobalObject` provides shared modules to Flipper Plugins by adding them to the global context (window or process or global this).

In the headless context, we do not have React and other DOM-related libraries, so we provide stubs instead.

Reviewed By: passy

Differential Revision: D36130161

fbshipit-source-id: d30c59a6c3ae02e7f9244bc0bb5790079b771107
2022-05-10 05:13:24 -07:00
Andrey Goncharov
c1dc1788a5 Initialize flipper lib and render host in headless mode
Reviewed By: mweststrate

Differential Revision: D36130158

fbshipit-source-id: cfdd22456bd4674e027dbcf83e67bf52cd757cf7
2022-05-10 05:13:24 -07:00
Andrey Goncharov
98dde53cda Add companion logging
Summary: Add top-level error logging to flipper-server. Use the top-level logging mechanism in flipper-companion.

Reviewed By: lblasa

Differential Revision: D36252218

fbshipit-source-id: 58d22b3b9bd51e597b5250478640f54d10277861
2022-05-10 05:13:24 -07:00
Andrey Goncharov
e218b79de2 Implement companion
Summary: Add Flipper Server Companion implementation. It extends the list of commands handled by Flipper Server by adding commands to interact with device or app Flipper plugins.

Reviewed By: mweststrate

Differential Revision: D36130159

fbshipit-source-id: 2eb6ba0fbae0fa850eadb7d417aa476240994bd5
2022-05-10 05:13:24 -07:00
Andrey Goncharov
ecb92c195c Implement HeadlessPluginInitializer
Reviewed By: lblasa

Differential Revision: D36130160

fbshipit-source-id: 6edff1c54bf5bf8cb85387bc2877788f947f97a6
2022-05-10 05:13:24 -07:00
Andrey Goncharov
deaf2359b1 Implement HeadlessClient
Reviewed By: lblasa

Differential Revision: D36130082

fbshipit-source-id: 00f9709d9a4f245063ae428521031afe74a521d6
2022-05-10 05:13:24 -07:00
Andrey Goncharov
5d346b4991 Add flipper-server-companion
Summary: Flipper Server Companion starts headless plugins and exposes them over the wire

Reviewed By: passy

Differential Revision: D36098170

fbshipit-source-id: 3b1b077d1fa4adca5c340ad4475b80b229586e1b
2022-05-10 05:13:24 -07:00
Andrey Goncharov
d795117910 Expose exports from the root of flipper-frontend-core
Summary: flipper-frontend-core shares logic between different desktop flipper clients: flipper browser ui, flipper electron, flipper headless

Reviewed By: passy

Differential Revision: D36129747

fbshipit-source-id: 598382ad3897701b307a16a42dc65d4c277b3e15
2022-05-10 05:13:24 -07:00
Andrey Goncharov
7cae3af507 Add plugin initializer to flipper-frontend-core
Summary: Extract plugin initialization

Reviewed By: mweststrate

Differential Revision: D36129748

fbshipit-source-id: db56e24388f7ed858d2173b67affa37de842a9b1
2022-05-10 05:13:24 -07:00