Commit Graph

1070 Commits

Author SHA1 Message Date
John Knox
d6f7d75e83 Remove sheet animation delay
Summary: I noticed every time you open a sheet it feels laggy and unresponsive. This removes the wait time to make it immediate.

Reviewed By: passy

Differential Revision: D17684407

fbshipit-source-id: f918bf8ca3bb0ef68c3fe01991c67d50f3967d68
2019-10-01 03:27:40 -07:00
Pascal Hartig
31f9d865b2 Fix screenshot taking and video recording for Windows
Summary: Turns out Windows really doesn't like colons in filenames. Sigh.

Reviewed By: jknoxville

Differential Revision: D17664236

fbshipit-source-id: 664885308815d862007c8a9a9d1278c426b4e756
2019-09-30 05:24:19 -07:00
Pascal Hartig
0039d5be4a Use 'open' module to open stuff
Summary:
Instead of our ad-hoc mechanism. There's quite a bit
of trickery involved to make this work reliably on Windows
so I'd rather take an off-the-shelf solution than reimplement this
myself.

Reviewed By: jknoxville

Differential Revision: D17628949

fbshipit-source-id: 98806b60a107231d9ee07b721ebb70f2cbd8aec1
2019-09-30 03:49:06 -07:00
Alexander Putilin
dda800c4a3 Initial support for KaiOS device plugins
Summary: Introduces basic KaiOSDevice class. Since kaios phones support adb, it is inherited from AndroidDevice

Reviewed By: jknoxville

Differential Revision: D17608605

fbshipit-source-id: 6b2c5834a1f5862b864c8e76202d0d401e58cbcc
2019-09-27 06:11:18 -07:00
John Knox
1c9fc75457 Add some uncached icons to the preloaded set
Reviewed By: passy

Differential Revision: D17602891

fbshipit-source-id: f06b2de37eec0909dd7098dd0b2ea0f0514c5ab5
2019-09-27 03:36:27 -07:00
John Knox
2bd8548252 Warn when uncached icons are used
Reviewed By: passy

Differential Revision: D17602743

fbshipit-source-id: 8f7dc0cc8d181ad4f7784ed3aafe064d816832c9
2019-09-27 03:36:27 -07:00
John Knox
9d4cc64bc9 Fix outline icon caching
Summary:
The build-release script was using different logic to construct the local url, than the lookup file.
Changed so they both use the same function.
And unit tests added.

Reviewed By: passy

Differential Revision: D17602476

fbshipit-source-id: 6aaedd58eafb2cc59adcdc0ebb4dd329bf99c33a
2019-09-27 03:00:49 -07:00
John Knox
6796a87e76 Enable adbConfig test
Summary:
I noticed this didn't have the node prefix so isn't run during `yarn test`.
Now it runs and passes :)
Also checked `ls **/__tests__/*.js` for any similar files and found none.

Reviewed By: passy

Differential Revision: D17601931

fbshipit-source-id: cf45a0ba578d5d0000ba1d25ae4fb26a4f7fc7af
2019-09-27 02:45:28 -07:00
Daniel Büchele
2c66e3d4d0 install dependencies
Summary:
In the previous implementation plugins were downloaded from npm, but dependencies weren't. This diff uses the `live-plugin-manager` which does mostly what we want. It install a package from NPM with all its dependencies.
live-plugin-manager puts the plugin and its dependencies in the same folder. We expect the plugins to be in `node_modules`. For this reason, we are installing the plugin into `$pluginName/node_modules` and move the plugin after the installation out of the `node_modules` folder.

* Fixed plugin loading path for thirdparty plugins.
* Disabled hot reloading for plugins in the flipper folder to prevent reloads when moving around files and installing dependencies here.
* an empty `.watchmanconfig` is created, because metro requires it
* tsx files are added to the list of supported extensions for metro

Reviewed By: passy

Differential Revision: D17570413

fbshipit-source-id: ecbedc60841b36188fec9c83da41ef1f27e5e155
2019-09-26 07:57:54 -07:00
Pritesh Nandgaonkar
8d4d642330 Attach Flipper Trace in the support form
Summary: This diff sets up Flipper to attach flipper trace to the support form. This diff adds a property named `exportResult` in the redux store. This will hold the export url or the path of the export, depending on the type of the flipper export. Once the exportResult is populated, we listen for this change and update the button style and fill the comment box.

Reviewed By: passy

Differential Revision: D17478491

fbshipit-source-id: 10dd5e130a9e3df5f41afde42b92b08959d9ed9e
2019-09-25 06:09:13 -07:00
Assaf Gelber
34d96fa262 Fix documentation on options property in Select
Summary: Just updating the apparently copy-pasted comment about the `options` prop.

Reviewed By: passy

Differential Revision: D17567256

fbshipit-source-id: ed4ff93ad42ef8bdcadb5371fe11ae90dba47ca3
2019-09-25 01:41:15 -07:00
John Knox
e871822a05 Use API for eligibility check
Summary: Change flipper from using the dodgy webview check that requires auth, to using the interngraph api for eligibility checking.

Reviewed By: passy

Differential Revision: D17498724

fbshipit-source-id: b81fd8b7b0bd36a7fcf73ba05d9885b61e420c61
2019-09-23 06:44:38 -07:00
Daniel Büchele
4e5ede6d37 Allow navigation to URI in Wilde via Flipper
Summary:
Here I add functionality to Wilde that allows navigation to internal deeplinks via Flipper. I beleive this was once a feature by allowing access to non whitelisted URL's but this has since been removed.

The Flipper plugin can now receive a navigate_to command which then emits a url over the navigateTo socket. This is picked up by the FBNavigationFlipperLogger plugin where it gets an instance of the NavigationCoordinator and opens the url.

Reviewed By: kolinkrewinkel

Differential Revision: D17282530

fbshipit-source-id: 0ba29aeac2a32d5464e8fa1dfa4e53af7cf94159
2019-09-23 06:41:32 -07:00
John Knox
976101449d Fix infinite spinner after cert exchange
Summary:
After the '(Outdated SDK)' addition to apps when they need to be updated, the uninitilaized clients weren't matching up with the fully initialized ones, so instead of being replaced by the full client in the side bar, they sit there forever looking like they are loading.

This applies the same name change to both fully and non-initialized clients so they always match up.

Reviewed By: passy

Differential Revision: D17501718

fbshipit-source-id: 6f2090b717a17c16c2cff37701e184363c82d36f
2019-09-23 06:22:01 -07:00
John Knox
1d29120715 Enable sandbox plugin (#554)
Summary:
Removes a gatekeeper that shouldn't be there.
Reported in https://github.com/facebook/flipper/issues/535
Pull Request resolved: https://github.com/facebook/flipper/pull/554

Reviewed By: danielbuechele

Differential Revision: D17502725

Pulled By: jknoxville

fbshipit-source-id: 1865db3f5c8cd81b0ec747687d0a7312e5f2332b
2019-09-23 03:36:05 -07:00
Pritesh Nandgaonkar
84c5067210 Create Support Requests from Flipper
Summary: This diff adds an initial support to prefill the app information and the revision information. This diff also copies the workplace url in the clipboard.

Reviewed By: passy

Differential Revision: D16990925

fbshipit-source-id: 4f354e52de5fea07c2ea36336761d6963c27ef66
2019-09-20 11:39:05 -07:00
John Knox
3b94dfe9c4 Make certificate files world readable
Summary:
This is useful for system apps. The files are owned by root, but they need to be readable by the app. There's nothing secret in these files, so it's not a problem.

This doesn't address all issues with system apps, e.g. https://github.com/facebook/flipper/issues/536 but does go some way towards it.

I was able to get a system app to connect successfully, but there may be different states that they can be in, so I don't think it's a fix all.

Reviewed By: passy

Differential Revision: D17499438

fbshipit-source-id: ab82583b5d607f75ff4578ab9ac2baf9d74241f8
2019-09-20 06:50:52 -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
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
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
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
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
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
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