Commit Graph

2175 Commits

Author SHA1 Message Date
Pascal Hartig
c4a9b603e2 Make network a separate plugin
Summary: Per title.

Reviewed By: jknoxville

Differential Revision: D17419678

fbshipit-source-id: aee00f077b7ed955c60884853dc1128d27366ee8
2019-09-19 03:02:51 -07:00
Pascal Hartig
7ac82bec4e Make fresco a stand-alone gradle project (#548)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/548

First project to pull out of the "fat distribution" we currently have.
Still needs setup for Maven and registration in Bintray.

Reviewed By: jknoxville

Differential Revision: D17395660

fbshipit-source-id: 6244495a2e25d705dd930ef87c7e5e1f038eb921
2019-09-19 03:02:51 -07:00
Daniel Büchele
a77faa5318 update PluginManager links
Summary: Adding Plugin Manager to menu bar and update wording in sidebar

Reviewed By: passy

Differential Revision: D17450840

fbshipit-source-id: 9426e6053f454a8e3776e9e0e061cd119f8dc7b5
2019-09-19 02:34:18 -07:00
Daniel Büchele
8c623867bd PluginManager
Summary: Adding the plugin installer to the plugin sheet as a second tab

Reviewed By: passy

Differential Revision: D17450842

fbshipit-source-id: 211c9f15ed2614a1dd46d974b86f50c825f81fb0
2019-09-19 02:34:18 -07:00
Daniel Büchele
039d1cca99 publish example plugin
Summary:
Prepare package.json to publish to NPM.
This should set an example on how plugins can be shared via NPM.

Reviewed By: passy

Differential Revision: D17450841

fbshipit-source-id: 95bfe7331e5a95d4a8d201e5fea148cbdec6859f
2019-09-19 02:34:18 -07:00
Daniel Büchele
735aee7682 Add Tabs container
Summary: Adding an additional style for tabs on top of a container, similar to the ones used in macOS

Reviewed By: passy

Differential Revision: D17450843

fbshipit-source-id: 6b58c2aa290e0221d917e60bb3ac0751f77ea1ce
2019-09-19 02:34:17 -07:00
Pascal Hartig
2a6462641b Limit concurrency during plugin compilation
Summary:
My MBP just crashed again during startup. I would like to
understand why every plugin compilation appears to start
up a new electron process, but until that's understood
and hopefully fixed, it's probably best to limit the number
of processes we spawn by setting an upper bound here.

N.B. My Linux box doesn't mind this at all.

Reviewed By: jknoxville, danielbuechele

Differential Revision: D17419289

fbshipit-source-id: a11562a21a984059dc35e826eb20d869df218546
2019-09-17 12:21:15 -07:00
Daniel Büchele
ada2327520 refactor sidebar styles
Summary: Using styled components rather than class names to follow Flipper's guidelines

Reviewed By: jknoxville

Differential Revision: D17419665

fbshipit-source-id: 17e0a3bd9292327a4b34eb4e87e5271af8fa22c7
2019-09-17 10:18:26 -07:00
Daniel Büchele
108c49f572 Bookmark from TitleBar
Summary: Add action to bookmark current location

Reviewed By: passy

Differential Revision: D17419666

fbshipit-source-id: 69e845e802260c150ae2f17649cea05bea1ae4ec
2019-09-17 10:18:26 -07:00
Daniel Büchele
bd1fc342c8 Keyboard navigation
Summary: Adding keyboard navigation for bookmarks

Reviewed By: jknoxville

Differential Revision: D17419667

fbshipit-source-id: 851f93d662b6071c3478dca5c9d20b9814e15c1b
2019-09-17 10:18:26 -07:00
Daniel Büchele
1666cf5ee5 Background events
Summary:
`this.client.subscribe` was used to listen for navigation events. This means, navigation events are not collected while the plugin is in background.
In this diff, this is changed to a persistedStateReducer, so the events are collected with the plugin not active.

Reviewed By: jknoxville

Differential Revision: D17419668

fbshipit-source-id: 88d9476cb7461ff6774d42a992d32b4c8948ac86
2019-09-17 10:18:26 -07:00
John Knox
1d6fc9e3ac Don't make simultaneous ios device queries
Summary:
Fixes this:
https://fb.workplace.com/groups/967178219989117/permalink/3178405185533065/

Reviewed By: passy

Differential Revision: D17421166

fbshipit-source-id: 6ee14a05d157063d7646076175b6cdaf918a7caa
2019-09-17 09:02:31 -07:00
John Knox
199658aeef Fix ios device certificate exchange
Summary: `idb file pull` no longer accepts a directory name as a destination to pull a file to. This passes the destination file name instead.

Reviewed By: passy

Differential Revision: D17420100

fbshipit-source-id: 9e2f5bfda3733832fc71944f1dbbdb7ac0f08acb
2019-09-17 08:59:21 -07:00
Pritesh Nandgaonkar
84dcecb271 Override the serialize and deserialize function for Network Plugin
Summary: This diff overrides the serializer and deserializer methods for the plugins.

Reviewed By: danielbuechele

Differential Revision: D17402442

fbshipit-source-id: 245990b6060a84995c6637c2d8e5d6a814d546e1
2019-09-17 07:35:16 -07:00
Pritesh Nandgaonkar
4c7227d35e Refactor Map to Javascript object
Summary: This diff refactors Map to Javascript Object so that we can avoid custom serializer.

Reviewed By: danielbuechele

Differential Revision: D17402444

fbshipit-source-id: afd1919b0bea7925fcd26b54cc58f588a116bbcb
2019-09-17 07:35:15 -07:00
Daniel Büchele
a72eac27a7 add flipper-plugin keyword to package.json
Summary: For plugins to be discoverable through NPM, they need to have `flipper-plugin` as a keyword. This adds this keyword to all existing plugins (although they are currently not distributed via NPM) and the webside/docs.

Reviewed By: passy

Differential Revision: D17395079

fbshipit-source-id: e42dd31ca39c3754cf729052ee783687748bafe8
2019-09-17 06:21:29 -07:00
Daniel Büchele
97b814d70e installed plugins
Summary: Checking `~/.flipper/thirdparty` for already installed plugins and displaying them on top of the table

Reviewed By: jknoxville

Differential Revision: D17394821

fbshipit-source-id: 65f392c8beaf72d9effcae9f47a60bcbb9194025
2019-09-17 06:21:29 -07:00
Daniel Büchele
f3326f8874 install/remove
Summary: Installing/removing plugins in/from `~/.flipper/thirdparty`.

Reviewed By: jknoxville

Differential Revision: D17394822

fbshipit-source-id: b62f62fa2415403e4377fba445e77534be87350d
2019-09-17 06:21:29 -07:00
Daniel Büchele
3b46eb82d8 NPM search
Summary: Using yarn's algolia index to search NPM packages with the tag `flipper-plugin`.

Reviewed By: jknoxville

Differential Revision: D17394823

fbshipit-source-id: d7c88ddf5d4ce017f2672755436ef3ae7ed4e7f0
2019-09-17 06:21:28 -07:00
Daniel Büchele
109e871a76 UI
Summary: Setting up a sheet to list plugins that can be installed from NPM

Reviewed By: jknoxville

Differential Revision: D17394824

fbshipit-source-id: 26c6ffea9de9cf3fe8488ea1a757eae7b7aaa7ef
2019-09-17 06:21:28 -07:00
Pritesh Nandgaonkar
98bc01618f Override the default serializer for the Layout Plugin
Summary: Overrides the default serializer and deserializer for the Layout Plugin. This diff uses `JSON.stringify` and `JSON.parse` to serialize and deserialize the object respectively. It turns out the our custom serializer is slower than the `JSON.stringify` and the export is way quicker.

Reviewed By: danielbuechele

Differential Revision: D17402443

fbshipit-source-id: 0d36783858ec1972130bdbc57ba7d3cdc5a73774
2019-09-17 04:12:04 -07:00
Pritesh Nandgaonkar
e1e8760f12 Show the status message of uploading Flipper trace
Summary: This diff shows the status message of "Uploading Flipper Trace..." when we upload it.

Reviewed By: danielbuechele

Differential Revision: D17402445

fbshipit-source-id: ab2927de34ab5d7e49e7c7ea005d40816a0365bd
2019-09-17 04:12:04 -07:00
Pascal Hartig
6b58e813e5 Add GA
Summary: Add Google Analytics code.

Reviewed By: danielbuechele

Differential Revision: D17398649

fbshipit-source-id: 79acd7a9d3ac19a25deea3f84989860308f2787e
2019-09-17 03:12:18 -07:00
John Knox
ea4b62c458 Fix unhandled promise rejections at startup
Summary: I like the idea, but these reject by default promises cause the global rejection handler to fire at startup, looking like things are broken.

Reviewed By: danielbuechele

Differential Revision: D17397614

fbshipit-source-id: 88601d6c65cb79d61efc27c34a4b7f2dd8716d39
2019-09-16 09:49:06 -07:00
Pascal Hartig
2fcd0cbcac Convert logs plugin to TypeScript
Summary: _typescript_

Reviewed By: danielbuechele

Differential Revision: D17184173

fbshipit-source-id: c7a055544ee4d9e07e5685fa84669d68fd68bf31
2019-09-16 09:14:09 -07:00
John Knox
25de8ee90a If sdk_version is missing, consider it old in server.tsx
Summary: Just noticed this. There are probably not many version 0's around, but if there are they should be treated as old.

Reviewed By: passy

Differential Revision: D17397155

fbshipit-source-id: fab6f8b2557ecb983441b282ceb29b5b744ae900
2019-09-16 09:03:41 -07:00
Pascal Hartig
fd8d28ca11 Remove fbjni from release script
Summary:
for_shame

Failing here: https://circleci.com/gh/facebook/flipper/1529

Reviewed By: danielbuechele

Differential Revision: D17375600

fbshipit-source-id: 9765b476f70f96a33e9ef6f4557fd062bedcfe61
2019-09-16 08:20:37 -07:00
Pascal Hartig
a884f1a4ac Bump Android SDK to 29 (#547)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/547

Only affecting the Gradle/Open Source build.

Reviewed By: danielbuechele

Differential Revision: D17394866

fbshipit-source-id: 0bb77847173018a27b7552407b1d5dce10f52d0d
2019-09-16 08:13:54 -07:00
Chaiwat Ekkaewnumchai
22351311ae Change Key of LRU Plugins to Only Name
Summary:
Plugin keys which are used to record the least recently used plugins to show on sidebar on android emulators depend on the port (connected order), so it can cause unexpected order (swapping between two devices).

This will ensure that for the same app it will have the same order regardless of device it is running

Reviewed By: jknoxville

Differential Revision: D17395033

fbshipit-source-id: 94ef4ef51bd5545f2ef7ce47bf8bc931d0140dbd
2019-09-16 05:33:19 -07:00
Chaiwat Ekkaewnumchai
d297b7bae2 Indicate Outdated SDK Version after App Name
Summary:
Per title

Earlier SDK version and this version (3) of Flipper determine a device for an app differently, so there is a case that both versions of the same app can refer to the same device which uses mutual name.

To resolve this problem, we change the name of previous SDK version of an app, so that
1) Both versions will be shown on the sidebar
2) Users know and hopefully update their apps to resolve the connection issue

Reviewed By: jknoxville

Differential Revision: D17376199

fbshipit-source-id: 3dc7c9b0bf99ff06c11c83eff0c72b6ce12f1a5a
2019-09-16 05:33:19 -07:00
Chaiwat Ekkaewnumchai
2239ca65a5 Fix Android Connection Swap Issue (Server Side)
Summary:
- Take device id retrieved by matching CSR to the given CSR destination
  - Otherwise, use the previous way

Note:
- Backward compatibility will be fixed next diff

Reviewed By: jknoxville

Differential Revision: D17346422

fbshipit-source-id: 59b2fb9849373db1ba930dde702194c5fb201678
2019-09-16 05:33:19 -07:00
Chaiwat Ekkaewnumchai
88197a7076 Fix Android Connection Swap Issue (Client Side)
Summary:
- Add CSR and CSR destination to request body
- (unrelated) Rearrange the list of include files

Reviewed By: jknoxville

Differential Revision: D17346429

fbshipit-source-id: ce775998884b73e82a931f4dd8986c659a892b51
2019-09-16 05:33:19 -07:00
Pascal Hartig
3b33abf035 Flipper Bump: v0.23.8-SNAPSHOT
Summary: Back to snapshots.

Reviewed By: danielbuechele, priteshrnandgaonkar

Differential Revision: D17368397

fbshipit-source-id: 92159fd86c87402516d253aa5f601bd60a551090
2019-09-13 10:37:30 -07:00
Pascal Hartig
29c9379ae6 Flipper Release: v0.23.7
Summary:
**Highlights**

- Changed to the upstream `adbkit` instead of the Facebook-specific fork of it.
- Migrate the rest of Flipper core from Flow to (strict) TypeScript.
- UI docs use the TypeScript code as basis.

Reviewed By: danielbuechele

Differential Revision: D17368399

fbshipit-source-id: 5ba92c4f0d4ca627ffac58052ef6e4d9fd07bd95
2019-09-13 10:37:30 -07:00
Pascal Hartig
0298ae74d0 Disable openssl in libevent by default
Summary: It's getting really tedious to turn these off one by one.

Reviewed By: jknoxville

Differential Revision: D17366198

fbshipit-source-id: 25443d7a18c81cd18edea21d75cfa70e4fbf4171
2019-09-13 08:56:41 -07:00
Pascal Hartig
b3a41bd38d Fix RSocket build.gradle
Summary: This got really badly mauled by a codemod I reckon.

Reviewed By: jknoxville

Differential Revision: D17366199

fbshipit-source-id: 6f1863e5e3d3ed26753723cf666b70655601a8de
2019-09-13 08:56:41 -07:00
Pascal Hartig
23766ebf39 Remove easywsclient
Summary: This seems to be entirely unused now.

Reviewed By: jknoxville

Differential Revision: D17366175

fbshipit-source-id: f8257bc4e85785407031ed661a48b26a58927412
2019-09-13 08:56:41 -07:00
Pascal Hartig
81b2487b8a Attempt to build with newer SDK/NDK (#543)
Summary:
Current builds are failing and I'm not quite sure why.
Pull Request resolved: https://github.com/facebook/flipper/pull/543

Reviewed By: jknoxville

Differential Revision: D17364947

Pulled By: passy

fbshipit-source-id: 07c418e340cabb70806c8f73b4eb867ba7e0fc4b
2019-09-13 08:56:41 -07:00
Daniel Büchele
e33f72bb21 use adbkit instead of adbkit-fb
Summary: Finally we are able to switch back from our adbkit-fb fork to the original `adbkit`. Replacing all imports

Reviewed By: jknoxville

Differential Revision: D17343236

fbshipit-source-id: e6dd328f1a956544e8be2ab768aa270972463c6b
2019-09-13 05:28:31 -07:00
Daniel Büchele
b3de081f68 clear logs
Summary:
- clear logs using executeShell
- remove unused spawnShell

Reviewed By: jknoxville

Differential Revision: D17343235

fbshipit-source-id: 4353b2ebc00e35b31e815e405534a78b65a3eabb
2019-09-13 05:28:30 -07:00
Daniel Büchele
62a73fff14 use adbkit
Summary: Replace the custom call to ADB with using this.device.adb`.

Reviewed By: jknoxville

Differential Revision: D17343234

fbshipit-source-id: c83fe295ec2c3f994e545a93aa580f44e91291fb
2019-09-13 05:28:30 -07:00
Daniel Büchele
4e7cf077b8 adbkit typing
Summary: Adding proper types for adbkit (extracted from their documentation)

Reviewed By: passy

Differential Revision: D17342184

fbshipit-source-id: da0fc0264961ca3a0fa775ab5165d20872042eb8
2019-09-13 05:28:30 -07:00
Daniel Büchele
01be3dc5d1 refactor screen recording
Summary:
moving logic for screen recordings to the respective devices, instead of having it in the button component.
This is part of my wider effort to unify our use of adb/adbkit and upgrade to the latest version of adbkit.

Reviewed By: passy

Differential Revision: D17318702

fbshipit-source-id: cff4459047d7a197ed6cb8ee8c290b4eaab41479
2019-09-13 05:28:29 -07:00
Pascal Hartig
b7ad035742 Add type annotations to iOSDevice
Summary:
Not ideal to just assert a type based on JSON output
but better than the `ts-ignore` because complete
misuse of the functions is still caught.

Reviewed By: jknoxville

Differential Revision: D17346265

fbshipit-source-id: 52d8109a11f552b912b67b1074cb906cb2cc161b
2019-09-13 02:35:47 -07:00
Pascal Hartig
cf956c91e5 Remove unused flow-type defs
Summary: Per title

Reviewed By: danielbuechele

Differential Revision: D17346048

fbshipit-source-id: 10bd37c0447f898f6e37831c340788d8c6538e58
2019-09-12 10:20:08 -07:00
Pascal Hartig
cbbe32b9b9 Remove FlowFixMe's from TypeScript
Summary: This diff was a joy to draft.

Reviewed By: jknoxville

Differential Revision: D17344676

fbshipit-source-id: 0694d0393fa243edef61408ecfee92912fbbfa32
2019-09-12 10:20:08 -07:00
Pascal Hartig
f41cbcd429 Add land-time eslint job
Summary: This will block us from landing eslint-failing tests.

Reviewed By: jknoxville

Differential Revision: D17342861

fbshipit-source-id: a42e3bc3fffe8f24420203f399fb702907069132
2019-09-12 10:10:49 -07:00
John Knox
9ee487cf43 Proactively ask users for feedback based on ITSREligibilityCheck
Summary:
Gets the rating popover to appear automatically after 30s for selected users, according to ITSR constraints.

The ITSR constraints are to stop it annoying people, such as only happening once a month, and global throttling.

Reviewed By: passy

Differential Revision: D17343435

fbshipit-source-id: c06aa10263a64249f7e2c48b8752c37e4314ac24
2019-09-12 08:21:30 -07:00
John Knox
d3be6357ef Send dismiss event when popover is closed
Summary: Dismissing the popover will stiop the user from being prompted for a while, so we only want to send this event when the user was proactively prompted in the first place - which is when we're using the eligibility check.

Reviewed By: passy

Differential Revision: D17343227

fbshipit-source-id: 95a071e34ce318fe49640c6ee9f68127957f390c
2019-09-12 08:21:29 -07:00
John Knox
25739aebc2 Only show rating button when user is eligible to rate
Summary:
Behind a gk.

This uses a hidden webview to check if a user is eligible for star ratings. This means you can practively ask the user, and makes sure you'll get an unbiased distribution.

Reviewed By: danielbuechele

Differential Revision: D17343118

fbshipit-source-id: fe7471416aef947ec10f4734e4136868ab5ab3e5
2019-09-12 08:21:29 -07:00