Commit Graph

287 Commits

Author SHA1 Message Date
Pascal Hartig
312fa7ce37 Cache layout icons
Summary: Opened layout, looked at warnings, added icons.

Reviewed By: jknoxville

Differential Revision: D17879910

fbshipit-source-id: 12375173b15c8d2e0b158cae4ded23237ed9c9b6
2019-10-11 10:55:38 -07:00
John Knox
ea5079ff9c Enable / Disable iOS support depending on xcode-select
Summary:
Queries xcode-select on ios dispatcher startup, to see if it's installed.
If it is, carry on with the ios device tracking, if not, don't bother.

This should stop it from emitting errors trying to track devices when things aren't installed.

I think it should also stop those install prompts from popping up.

Sets it in app state so we can tell the user about it, and maybe gate some other things too.

Reviewed By: passy

Differential Revision: D17830696

fbshipit-source-id: 960d09a9c5267afabf5e5e222379a0a7ed2cc444
2019-10-10 09:23:46 -07:00
Pritesh Nandgaonkar
e0e0a8f916 Add device argument in the constructor of Client
Summary: Property `device` on Clients for archived device never resolve. As it gets resolved when `addConnection` is called which happens for real non-offline devices. To get around this, I have added an argument to the constructor of the Client, as for offline case we can construct the device before client and can pass it as an argument.

Reviewed By: jknoxville

Differential Revision: D17831261

fbshipit-source-id: a14fb0b65343cccac731077e983026388611d323
2019-10-10 08:22:52 -07:00
Pritesh Nandgaonkar
e31f526618 Send flipper trace as a separate message
Summary:
This diff sends flipper trace as a separate message so that the form can update the state which can be used for validation. If the user doesn't click on "Flipper Trace" then it will show a validation error.

WWW side changes are here D17810526. Merge this diff only when www is landed.

Reviewed By: jknoxville

Differential Revision: D17812023

fbshipit-source-id: 35f17f9e58fc08cde3928072dc66758b1c507bcb
2019-10-10 08:22:52 -07:00
Pascal Hartig
3730c523ec Add explicit StubLogger option for tests
Summary:
A bit ugly to have test-only code in prod logic,
but we don't need any of the logger logic in tests
and by pulling out the `StubLogger`, we can avoid
loading Electron during tests.

Reviewed By: jknoxville

Differential Revision: D17808479

fbshipit-source-id: d2295d7bbca2f09c3f23389ad9443648757d8d03
2019-10-08 08:45:05 -07:00
John Knox
13ac64e0b9 Sort icons
Summary: You can do this in VSCode by selecting the lines, Cmd-Shift-P, "Sort Lines Ascending".

Reviewed By: passy

Differential Revision: D17710137

fbshipit-source-id: 3cef628b24dd86d4e307bd30761049c30cbc8f68
2019-10-08 06:22:20 -07:00
Pascal Hartig
f110ed2db7 Show export numbers
Summary:
As discussed on an earlier diff, the percentage alone
is a confusing indicator as the number of items to be
serialised can grow over time, causing the percentage
to go down.

This shows the raw numbers in addition to the percentage.

Reviewed By: priteshrnandgaonkar

Differential Revision: D17762477

fbshipit-source-id: 8911b520b2ea74542bc64e6a6662bed7d4f81860
2019-10-08 00:23:27 -07:00
Pritesh Nandgaonkar
7f2f2febcf Make MobileConfig plugin exportable
Summary: As per title, this diff makes the Mobile config plugin exportable. This involves moving the important property from `State` to `PersistedState`. Also had to implement the `exportPersistedState` function to fetch the experiments information for the Universes, configs and gatekeeper information.

Reviewed By: danielbuechele

Differential Revision: D17633986

fbshipit-source-id: 604225ba47112620bee0a6c704416b3ac350de9c
2019-10-07 09:57:31 -07:00
John Knox
b50aef8f15 Restart after changing settings
Summary:
Gets flipper to restart when settings are updated.

In theory most settings should not need this, but the current only one does (android home) because the path is set at startup only, and this modifies the input to it.
It would be a bit awkward to modify the path more than once, but doable.

Reviewed By: passy

Differential Revision: D17737582

fbshipit-source-id: d4669dcc7acc95469f15783fc6a5ba6794750234
2019-10-07 08:51:06 -07:00
John Knox
729e74f2fc Switch to using settings for android sdk location
Summary: A settings screen has been added where android home can be set. This changes the downstream code to use this value rather than the `env.PATH` variable.

Reviewed By: passy

Differential Revision: D17713288

fbshipit-source-id: 51551652c9c2f468e1117c18785123348e4b4576
2019-10-07 08:51:06 -07:00
John Knox
85c0ec0d13 Persist settings in ${XDG_CONFIG_HOME}/flipper/settings
Summary:
Moves the settings state from electron local storage into a json file in the users configured config location.
Unless modified by the user, this will usually be `~/.config/flipper/settings.json`

Settings will now persist across re-installs, and can now be easily inspected and backed up.

Reviewed By: passy

Differential Revision: D17712687

fbshipit-source-id: 1e778063e41d0a1a86145817b9797bf0458121da
2019-10-07 08:51:05 -07:00
John Knox
7775e82851 Add JsonFileStorage for redux-persist
Summary:
This will be used for the settings file.
It results in normal JSON, as opposed to json where the value of every key is an escaped string.

Reviewed By: passy

Differential Revision: D17712688

fbshipit-source-id: d37ed93707c7352719fa72a05bf51953611f52c0
2019-10-07 08:51:05 -07:00
John Knox
eb64ff0832 Add settings UI
Summary:
Adds a simple UI for editing settings, a reducer and persistance config for the data.
These values aren't yet used for anything.

Reviewed By: passy

Differential Revision: D17684490

fbshipit-source-id: e76ac43ffa17d3606e59f4a1ccb940e8d9fbd9e8
2019-10-07 08:51:05 -07:00
Pascal Hartig
ff76b17a5b Add metrics
Summary:
Add some usage and failure rate stats to the PluginInstaller. Small
typo fix and added a helper to the metrics utils to make simple
usage tracking a little more intuitive.

Reviewed By: jknoxville

Differential Revision: D17760511

fbshipit-source-id: 957031d428f3124435925415619b1555a0c2dc2a
2019-10-04 08:26:26 -07:00
Pritesh Nandgaonkar
6e6873a4f6 Pass idler and statusupdate callback as an argument to the export persisted state function
Summary: This diff passes the idler and statusUpdate arguments to the export persisted state, as it is being used in the MobileConfig's export function

Reviewed By: passy

Differential Revision: D17715815

fbshipit-source-id: 98a0f0f5950254de2139c4aaa52cb73401c86c3c
2019-10-04 05:33:44 -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
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
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
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
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
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
aac0927e25 Fix outline icon variant
Summary:
Icon names including the -outline suffix get stripped out so the local path becomes the filled variant by default.
But it's only observable in release builds, because they are the only ones that use local icons.
This should fix that by keeping the variant in the local icon path as well.

Reviewed By: danielbuechele

Differential Revision: D17314646

fbshipit-source-id: b8402d85b1cc690caef7870194e60f22d17dca05
2019-09-11 07:22:22 -07:00
Pritesh Nandgaonkar
a35fd7389f Strictify adbConfig
Summary: As per title

Reviewed By: passy

Differential Revision: D17285741

fbshipit-source-id: 8d2693c09d5dfa6d71cb6aedbb0504d09200f4ac
2019-09-11 05:27:19 -07:00
Daniel Büchele
ac120aa59c [strict[ ScreenCaptureButton
Summary: _typescript_

Reviewed By: jknoxville

Differential Revision: D17282357

fbshipit-source-id: 6ddd912978faa30195f59971f19d29d3ea79342b
2019-09-11 03:04:52 -07:00
Pritesh Nandgaonkar
263a738972 Strictify adbClient
Summary: As per title

Reviewed By: jknoxville

Differential Revision: D17284770

fbshipit-source-id: 85bc6b2b19b38f409b7eb0fda6fb94655a05c0d9
2019-09-10 10:36:15 -07:00
Pritesh Nandgaonkar
ae825db691 Strictify info.tsx
Summary: As per title

Reviewed By: danielbuechele

Differential Revision: D17284107

fbshipit-source-id: 61d4f192664c769ca80a266799fba14e1c1cb235
2019-09-10 10:36:14 -07:00
Pritesh Nandgaonkar
d8cd69666e Strictify exportData.tsx
Summary: As per title.

Reviewed By: jknoxville

Differential Revision: D17269583

fbshipit-source-id: efb67acade677f26ce3d2a547d0ab97329d80196
2019-09-10 08:50:28 -07:00
Pritesh Nandgaonkar
566f2bf96e Do not use custom serializer for all the plugins
Summary:
This diff solves the problem where the export for the graphql plugin was super super super sloooooowwww...... The reason being that the graphql plugin had chunky graphql responses which were json blob which was being serialized by our custom serializer. Instead of serializing those with custom serializer we can directly serialize them as they won't have any map's, sets, classes etc.

This diff adds the two static functions on the plugin which will provide the serialized and deserialized object for the persistedstate. As the plugin knows the structure of its state it can optimize the serialization and deserialization of its data.

This change solves the slow export issue and makes it blazing fast..... 🏎

Bug:

{F206550514}

Reviewed By: danielbuechele

Differential Revision: D17166054

fbshipit-source-id: 058b903c03c12c9194702162c46763ef5b5e7283
2019-09-09 06:13:39 -07:00
James Kao
975af8fa43 Change default deviceId for MacOS
Summary: It appears the certificate provider is generating a deviceId which is then sent down to the flipper client to store (under CONNECTION_CONFIG_FILE). For MacOS, this ends up being "unknown". Yet when we attempt to connect to the flipper app, it expects empty string. This diff ensures that for MacOS, we're not sending down "unknown" for the client to store into its config file.

Reviewed By: danielbuechele

Differential Revision: D17190130

fbshipit-source-id: e0d9825f1f0330a03bcb3cf8d606d5bd9fcc1d7f
2019-09-06 11:20:42 -07:00
John Knox
8fff3fcf59 Apply some styles
Summary: It looks a lot better now, but the input is only single line, so entering more than one line would not be good right now.

Reviewed By: danielbuechele

Differential Revision: D17210091

fbshipit-source-id: 9313b6a67731cfa944394962cdc09be915a07720
2019-09-06 08:32:48 -07:00
John Knox
b4c1d1942a Make File > Open more self-explanatory
Summary:
Yesterday I saw someone try to open the xcode executable with the File > Open function.

This made me realise it's not clear what this is for, and you might think it can open all kinds of things.

Reviewed By: danielbuechele

Differential Revision: D17225496

fbshipit-source-id: 893360a1f450a8db25be34fce6c288e8db8f9626
2019-09-06 04:14:58 -07:00
John Knox
16457e2adb Add notNull filter with type guard
Summary: You need to use a type guard when narrowing types in a filter.

Reviewed By: danielbuechele

Differential Revision: D17163782

fbshipit-source-id: aa78bdd392653ebf1080a04e62e131b607e5181b
2019-09-04 03:31:47 -07:00
Daniel Büchele
5868946818 certificate provider
Summary: _typescript_

Reviewed By: passy

Differential Revision: D17096517

fbshipit-source-id: a6e69e8b9a82fe76bb1de51a3a93182f35f40b3f
2019-08-28 20:34:59 -07:00
Daniel Büchele
9970c50daf gylphs
Summary: Adding type declaration for glyphs

Reviewed By: passy

Differential Revision: D17096295

fbshipit-source-id: e8994e0c81c3668fa909479dbaea613ec2b86dc4
2019-08-28 19:50:29 -07:00
Daniel Büchele
ff31ac0b45 fix strict errors
Summary: fixing some errors for strict mode enabled files

Reviewed By: passy

Differential Revision: D16988271

fbshipit-source-id: 09834cad9c2dd8abb987e4f708ae7a30922d90c7
2019-08-28 11:12:22 -07:00
Pascal Hartig
9a63ee9fff Make exportMetrics strict
Summary: _typescript_

Reviewed By: danielbuechele

Differential Revision: D17074932

fbshipit-source-id: 1a6a8e81a9d15021dd9b51a0c3a394a2cf349e9c
2019-08-28 03:01:58 -07:00
Pascal Hartig
5c69ad8e8b Make LowPassFilter strict
Summary: Per title.

Reviewed By: danielbuechele

Differential Revision: D17073163

fbshipit-source-id: 08127d85af317ff701f4d131fd41df095f50f6a4
2019-08-28 03:01:58 -07:00
Pascal Hartig
b6df5ecb83 Make onRegisterDevice strict
Summary: Needed relaxing some types in pluginUtils, but it's actually fine.

Reviewed By: danielbuechele

Differential Revision: D17072974

fbshipit-source-id: c3d3923ed70f71964aa10cf35f1b9ea2f30a8fa1
2019-08-28 03:01:57 -07:00
Pascal Hartig
5cac2edc37 Make processConfig pass strict mode
Summary: _typescript_

Reviewed By: danielbuechele

Differential Revision: D17072572

fbshipit-source-id: fed0d93e7a4cfe04f339370dbace7181bec73ca1
2019-08-28 03:01:57 -07:00
Daniel Büchele
0ec48d4fc9 index
Summary:
This converts the index file to TypeScript which is used as an export for all plugins. Alongside, I had to fix a couple of errors in various files to make sure everything works correctly.

For plugins using flow, we define an interface which uses the type definition for FlipperPlugin and types all UI components as `any`.

Reviewed By: passy

Differential Revision: D16936890

fbshipit-source-id: dacd9a63a82b9f0bbb530b06072186874cba7b6f
2019-08-22 10:02:27 -07:00
Benjamin Elo
7def9bb681 Moved screenshot functions into Device's class.
Summary:
I have moved the screenshot functions from ScreenCaptureButtons to the Device classes. I have slightly rewritten them so that they return a Promise which resolves to a Buffer. The Buffer can then be saved to a file or converted to a data Blob.

I have removed streaming and simply loaded the image into memory. Once the image is in memory it can be manipulated for various tasks i.e. written to a file, or displayed in the app.

iOS screenshots had to be rewritten. I now save the image to a temp folder, load it into the apps memory, and then remove the temp image.

Reviewed By: jknoxville

Differential Revision: D16939901

fbshipit-source-id: 3e39a5aeda8d48829ac5a8ff912a98f110341c07
2019-08-22 05:28:33 -07:00
Pascal Hartig
263b47f82f Add x-platform update indicator
Summary: Use the new multi-platform update endpoint to indicate when new updates are available for Linux or Windows.

Reviewed By: danielbuechele

Differential Revision: D16939899

fbshipit-source-id: 11c1dc0d4fd19362a1163c613a7b7116c5edf996
2019-08-22 02:32:56 -07:00
Matthew Brotman
3730167b77 Add macOS as an OS option to CertificateProvider
Reviewed By: danielbuechele

Differential Revision: D16833334

fbshipit-source-id: 74a5e39814ff21d4be26fe2a60b5d201b9cec16b
2019-08-19 14:31:57 -07:00
Pascal Hartig
03d4a7d750 Migrate fbEmployee
Summary: _typescript_

Reviewed By: jknoxville

Differential Revision: D16827958

fbshipit-source-id: f2ab616b2682ede7da6c1e401fcc6d0644a1b960
2019-08-15 09:43:01 -07:00
John Knox
ce3f69c249 Convert serialization.js to TS
Summary:
Convert serialization to typescript.

I tried to type the deserialize function but don't know enough about the expected format to be able to tell what the types should be.

Reviewed By: passy

Differential Revision: D16785945

fbshipit-source-id: 45de7ee1c8972314a52abcf20d428ba44f031a00
2019-08-15 07:32:53 -07:00