Commit Graph

1310 Commits

Author SHA1 Message Date
Chaiwat Ekkaewnumchai
9b84de0c0a Ignore Non-existed Key in Searchable to Prevent Flipper from Crashing
Summary: per title

Reviewed By: mweststrate

Differential Revision: D19143735

fbshipit-source-id: 67cb65a98760a82fd71073621bcbca819ebb1e5f
2019-12-18 07:30:14 -08:00
Chaiwat Ekkaewnumchai
db721e94a6 Clear Search Input After Entering It
Summary: per title

Reviewed By: nikoant

Differential Revision: D19143025

fbshipit-source-id: b371a55584b255b8f0a704eaa46e6a3eebad4a79
2019-12-18 05:00:46 -08:00
Michel Weststrate
91d5b95341 make it easier to test plugin logic
Summary:
This diff will make it easier to test a plugin in a "fully loaded" Flipper state. This makes it possible to test all the wiring of flipper, rather than the individual reducers.

This is in preparation of processing the message queue async.

Reviewed By: passy

Differential Revision: D19140879

fbshipit-source-id: 5a333abe9c7a4d0c33d1d06a105cd094cb8fc19f
2019-12-17 06:07:35 -08:00
Anton Nikolaev
d32774f439 Skip Android health-checks when the "Android Developer" option is disabled in Flipper settings
Summary:
Skip Android health-checks when the "Android Developer" option is disabled in Flipper settings.

Also made some refactoring to use immer for healthcheck reducer.

Reviewed By: mweststrate

Differential Revision: D19088322

fbshipit-source-id: 801d874b6e7e5af80802b4bf4313d98f1cee13f6
2019-12-16 16:40:08 -08:00
Denis Nedelyaev
be53990613 Add setting for skipping fbsource version check
Summary: Added a setting "Match local fbsource chekout", which inverserly corresponds to the `ignore_local_pin` setting in `flipper-launcher.toml`.

Reviewed By: passy

Differential Revision: D19030456

fbshipit-source-id: deaaf4e873a00bbc4e8bd3034353cf580df95a36
2019-12-16 07:01:01 -08:00
Pascal Hartig
5a3f107a50 Remove child-process-es6-promise
Summary: Replacing this with promisify-child-process, which is better.

Reviewed By: mweststrate

Differential Revision: D18954702

fbshipit-source-id: 2dad756a2cd4dd21b2efc8b1780d589607d6ff05
2019-12-16 03:57:29 -08:00
Michel Weststrate
edd894258c Favorite plugins are now stored per app rather than globally
Summary:
This diff is a refinement of D18780965, which fixed plugin preferences to be stored per device. Instead of storing plugin preferences globally, we now store them per app, so that every app can have their own favorites, which are shared regardless the device

Note that the current favorite selection will be lost.

Reviewed By: nikoant

Differential Revision: D19018169

fbshipit-source-id: acfa05ece8516840bb91aee4059886365b346582
2019-12-13 10:07:13 -08:00
Michel Weststrate
02ad5c64aa Fix last startup warnings
Summary: There were a few warnings printed when starting Flipper. This fixes the last of them!

Reviewed By: nikoant

Differential Revision: D19011385

fbshipit-source-id: 15bc46c4a67e8c8fd3c8b5d96dc67e61911a7e53
2019-12-13 07:11:43 -08:00
Michel Weststrate
8da2c8868b Expose Immer's produce from Flipper
Summary: Diff preparing for optimizing GraphQL (and other) plugins, and simplifying writing reducers by others

Reviewed By: nikoant

Differential Revision: D18930858

fbshipit-source-id: 91d176d77543978d65ea50635d4ed380690b1fa2
2019-12-13 07:11:43 -08:00
Alexander Putilin
c7af0b53e6 KaiOS device plugin for recording memory allocations
Summary:
This adds basic plugin for recording memory allocations.
{F224005997}

Reviewed By: passy

Differential Revision: D18837209

fbshipit-source-id: aa29680b3a44c51135b760fe4ee76edc6d0ec109
2019-12-12 08:12:52 -08:00
Anton Nikolaev
c030cbe204 No Icons on Windows with locale other than en-US
Reviewed By: mweststrate

Differential Revision: D18953063

fbshipit-source-id: d21116b11189851dff271fcfa7334a51b13c693f
2019-12-12 04:01:26 -08:00
Uma Sankar
559285f5f9 Producing new state when any change to preferences happen to address #470 (#623)
Summary:
Fixed issue https://github.com/facebook/flipper/issues/470

## Changelog

Producing new state when preferences gets updated in SharedPreferences plugin
Pull Request resolved: https://github.com/facebook/flipper/pull/623

Reviewed By: mweststrate

Differential Revision: D18929828

Pulled By: passy

fbshipit-source-id: 8e9e61f90838fd3676aa52c4c6117b3f452aa7c0
2019-12-11 10:18:41 -08:00
Anton Nikolaev
c0f902f81a Upgrade to emotion v10
Summary: React 16 is not compatible with react-emotion 9 (it prints warnings, see also https://github.com/emotion-js/emotion/issues/644). So we should upgrade to 10.

Reviewed By: mweststrate

Differential Revision: D18905889

fbshipit-source-id: c00d2dbbadb1c08544632cb9bfcd63f2b1818a25
2019-12-11 09:43:24 -08:00
Pritesh Nandgaonkar
c3dfcbe601 Show the plugins from the redux store only belonging to the selected app
Summary: It fixes the bug, where currently we show all active persistent plugins for the export functionality irrespective of the fact that the plugin is active for the selected client. With this diff we will only show active persistent plugins for the selected client.

Reviewed By: mweststrate

Differential Revision: D18890247

fbshipit-source-id: e567da0ccf04e051ca0eabb497a6bd72cc8a0d76
2019-12-11 06:27:22 -08:00
Michel Weststrate
5429d1f235 Make it possible to generate regression tests for Flipper plugins
Summary:
This Pull request makes it possible to automatically generate regression tests for plugins. The idea here is to record all incoming states for a specific plugin, the start state of the plugin, and the enstate of the plugin.

By replaying the same events in a test, the same plugin should result in the same end state. This will make it easy to test regressions and refactorings on real life scenarios. Execution time is recorded as well.

The API's are exposed as

- `flipperStartPluginRecording()`
- `flipperStopPluginRecording()`

This process generates both a data snapshot and unit test.

Reviewed By: passy

Differential Revision: D18907455

fbshipit-source-id: 923f814f534ccfa6aa2ff2bfa2f80bee41a1c182
2019-12-11 05:53:22 -08:00
greenkeeper[bot]
0febcd44ac chore(package): update uglify-js to version 3.7.2 (#690)
Summary:
Fix https://github.com/facebook/flipper/issues/682
Pull Request resolved: https://github.com/facebook/flipper/pull/690

Reviewed By: mweststrate

Differential Revision: D18929815

Pulled By: passy

fbshipit-source-id: 3e792b14e956702cd36d169dea0fc5048ed90322
2019-12-11 05:27:59 -08:00
Michel Weststrate
382330bfaf Convert to TypeScript
Summary: Before looking into performance bottlenecks, I thought it wise to upgrade to TypeScript as that is where all plugins are heading

Reviewed By: jknoxville

Differential Revision: D18829689

fbshipit-source-id: 4c515f240d742f77e89f3cbdff500c69afb3ac06
2019-12-11 03:46:48 -08:00
Pritesh Nandgaonkar
938f9542ee Fix the issue where perf events were not getting logged
Summary: I noticed a bug where the export data perf events were not logged. The issue was that, it used the `Logger.getTrackTimeSince` method which used the `performance` from `perf-hooks` and not an ordinary performance object available in the global scope. So just importing performance from perf-hooks solved the issue.

Reviewed By: mweststrate

Differential Revision: D18887666

fbshipit-source-id: 66c24f47b95b25d2f3703c16c70cbe8b35fe0ec3
2019-12-10 08:21:28 -08:00
Mateo Silguero
c4730c3e49 Parse all values on json fields (#678)
Summary:
I want to get a better visualisation of the databases values from a device, like the localStorage from ReactNative.

## Changelog

Iterate on the object value to parse all values from a json
Pull Request resolved: https://github.com/facebook/flipper/pull/678

Test Plan:
before:
<img width="1185" alt="Captura de Pantalla 2019-12-06 a la(s) 19 57 13" src="https://user-images.githubusercontent.com/25598400/70362212-e4a37280-1862-11ea-8b8b-a96edfece5c9.png">

after:
<img width="1185" alt="Captura de Pantalla 2019-12-06 a la(s) 19 55 52" src="https://user-images.githubusercontent.com/25598400/70362211-e4a37280-1862-11ea-8d16-00691c0f21c4.png">

Reviewed By: nikoant

Differential Revision: D18874887

Pulled By: passy

fbshipit-source-id: 679519fe2746a698e41ba015fd811a342c96c4fd
2019-12-10 06:04:19 -08:00
Pritesh Nandgaonkar
0c13943139 Allow user to copy the row attributes in the layour inspector
Summary: Allows user to copy the row attributes.

Reviewed By: passy

Differential Revision: D18811929

fbshipit-source-id: 62335a7c0b5f1557704c0d8d9ea258b4c7cbfdcf
2019-12-09 05:10:06 -08:00
Pascal Hartig
008a003a4d Add tests for healthchecks reducer
Summary:
Quite a bit of complex slicing going on there, so I think
this is quite useful to guard against future breakages.

Reviewed By: jknoxville

Differential Revision: D18853033

fbshipit-source-id: 36b17b8ce208cb320a193bceed86c89e010107e4
2019-12-06 08:00:53 -08:00
greenkeeper[bot]
83c3cf3688 Greenkeeper/@types/react 16.9.14
Summary: Pull Request resolved: https://github.com/facebook/flipper/pull/672

Reviewed By: jknoxville

Differential Revision: D18834245

Pulled By: passy

fbshipit-source-id: 352561d95c9489df6b675910a4c64548d93b4f30
2019-12-06 07:47:26 -08:00
John Knox
8e0a4a5e42 Fix clicking on native notification
Reviewed By: passy

Differential Revision: D18831700

fbshipit-source-id: 4cdaed3893fc6162a16ac2c1a8a9ee2ef1a0805c
2019-12-06 07:27:35 -08:00
Pascal Hartig
0c7b03cad3 Add tests for settings reducer
Summary: yiss_tests

Reviewed By: jknoxville

Differential Revision: D18851134

fbshipit-source-id: 53ffb9b516773df19c258e7d819962e3cd523751
2019-12-06 06:32:20 -08:00
Pascal Hartig
cde949e3a1 Fix double-parsing of process config
Summary: This had been there for way too long.

Reviewed By: mweststrate

Differential Revision: D18834089

fbshipit-source-id: 563aa04876910a7544a7f62865b146b933dbf570
2019-12-06 03:50:32 -08:00
John Knox
1a389202ca Change client to not produce plugin keys manually
Summary: I **think** this is the last part of the codebase doing manipulation of strings to produce plugin keys etc.

Reviewed By: passy

Differential Revision: D18831990

fbshipit-source-id: db449d78230adbca66e78f041381a34d9b249a45
2019-12-05 11:45:37 -08:00
Michel Weststrate
7f916f8a7b Gather plugin stats to improve performance
Summary: This diff makes it possible to gather stats of plugin usage, and print them from the console by issuing `window.flipperPrintPluginBackgroundStats()`.

Reviewed By: jknoxville

Differential Revision: D18811590

fbshipit-source-id: 4219923f7fd90187c7ec50a9aa68d7b817e3db8f
2019-12-05 09:30:33 -08:00
John Knox
0bf905e02f Replace all manual pluginKey parsing with a utility
Summary:
Ok this diff got a bit bigger than expected, but I think it makes it easier to understand what "plugin keys" are, and makes them less prone to error.

Previously pluginKeys were composed of: clientId#pluginName, where clientId was itself: app#os#device#device_id

But also, there were some plugin keys where the clientId was a device_id.

Now you deconstruct a plugin key, and will get a tagged object with type: 'device' or 'client', and the properties that they each have.

There is now no custom parsing of these afaik, let's keep it that way.

Since it took me a while to figure out what all these IDs are, I've documented it a bit in clientUtils.

Reviewed By: passy

Differential Revision: D18811848

fbshipit-source-id: eed2e2b5eedafb9e27900dbcf79a389fcaffae95
2019-12-05 07:37:57 -08:00
Anton Nikolaev
006003ae6b Add tests for client-id / app name parsing
Summary: Add tests for client-id / app name parsing. We've had a lot of bugs here in the past. Get some good test coverage so we have some assurance the shared utils for it won't be broken.

Reviewed By: jknoxville

Differential Revision: D18830269

fbshipit-source-id: 07c9755bbeae28c48580f44453d4010d6d3830b0
2019-12-05 06:30:04 -08:00
Chaiwat Ekkaewnumchai
94ce34066b Fix Log-in Outside Lighthouse Crash The App
Summary:
The `error` was not recognized as a string and React was not happy about it.

Change the `error` to a string explicitly. Also, add space between the error and the form box.

Reviewed By: jknoxville

Differential Revision: D18829862

fbshipit-source-id: 0474d411a95bab4bc4f62a3f3d3839029938a9e6
2019-12-05 05:46:17 -08:00
John Knox
186af77f62 Add error logging to client Id construction
Summary: Just in case anything is broken, this will be helpful

Reviewed By: nikoant

Differential Revision: D18811849

fbshipit-source-id: 53947102dea38e526b4f565396f85fedf4ff2a15
2019-12-05 05:42:58 -08:00
Chaiwat Ekkaewnumchai
d4acdf8504 Delete Notification Plugin Code
Summary: Delete dead code as we change to static view

Reviewed By: passy

Differential Revision: D18810148

fbshipit-source-id: 17b5a2355abb39a711a95b4ffcd0bcd387259787
2019-12-05 03:26:28 -08:00
Chaiwat Ekkaewnumchai
07487e8122 Change NotificationsHub to StaticView
Summary:
- Point the Noitifications to the static view
- Add function to check activeness of static view
- Add `SupportRequestDetails` to type (needed?)

Reviewed By: mweststrate

Differential Revision: D18810149

fbshipit-source-id: a33f61f521f3db0dd2a73e56d99b12d029b46a57
2019-12-05 03:26:28 -08:00
Pascal Hartig
8df91d198f Codemod deprecated React APIs
Summary: Performed with `react-codemod rename-unsafe-lifecycles`. I'll taskify the components next. This change means that things will still work with React 17 but only if we opt-out from "strict mode".

Reviewed By: mweststrate

Differential Revision: D18810459

fbshipit-source-id: 6954f4e7bb91dbd7fc8b839895308fc193cc4aa0
2019-12-04 10:12:23 -08:00
John Knox
c95ecf6b3e Unifying use of clientID utils
Summary:
Fixes a couple of typo's and merges two very similar functions into one.
Now that there's a single way to create a clientID, we can get more strict about what it is and what it isn't.

Reviewed By: passy

Differential Revision: D18809741

fbshipit-source-id: 9a68e45bead38cc2917a6d4cd2cf461c309f3ede
2019-12-04 08:40:09 -08:00
Pritesh Nandgaonkar
e1e2978b19 Add copy cell option in network plugin
Summary: Puts a context menu in the sidebar for the network plugin. Before, user was not able to select the text from sidebar

Reviewed By: passy

Differential Revision: D18808544

fbshipit-source-id: bdbc86972cd1d508e9b7d96da9df5c8e53bec991
2019-12-04 08:12:05 -08:00
John Knox
15e1b25098 Centralize clientId creation
Summary: One step towards getting away from constructing and destructing clientIds manually everywhere by splitting and joining #'s. Which has been VERY error prone in the past.

Reviewed By: passy

Differential Revision: D18809442

fbshipit-source-id: bd4d89d3eb3d59694aa735b19dbd73d122e59ba0
2019-12-04 07:18:13 -08:00
John Knox
ab5892c60e Fix initial window focus bug
Summary:
When launching flipper release build, the initial window focus was wrong, so it appeared unfocussed.
Clicking away and then back to the window would fix it.

This should set the initial focus to be correct from the start.

Task has more details.

Reviewed By: mweststrate

Differential Revision: D18808306

fbshipit-source-id: 2c5828d0b3298594dc30f956bb14141e6cff5918
2019-12-04 06:51:53 -08:00
Anton Nikolaev
26632890d6 Network trace search not working for response body
Summary: This diff fixes the issue with occasionally not workin search by response body in Network plugin

Reviewed By: mweststrate

Differential Revision: D18784394

fbshipit-source-id: 5927919d919625e214fddd1a8b32522694b714ec
2019-12-04 05:33:06 -08:00
Michel Weststrate
5d124e2764 Always use new support form
Summary: See D18783129, we now want to always link to the new form

Reviewed By: passy

Differential Revision: D18807766

fbshipit-source-id: 2389470b12dc36159cab5d61dbb67dfb56c2408f
2019-12-04 04:01:46 -08:00
Michel Weststrate
c16625c278 Add explanation banner
Summary: Add a quick banner to give some more context on the bug report feature

Reviewed By: jknoxville

Differential Revision: D18807556

fbshipit-source-id: b2de614ccfd30a22f418b60d6f08066c57759deb
2019-12-04 02:55:39 -08:00
Michel Weststrate
1c4addd736 Fix: Litho support form links to the old support form
Summary: See title

Reviewed By: jknoxville

Differential Revision: D18807448

fbshipit-source-id: 7167d18953440377ee739cf0db03a8fb600112a9
2019-12-04 02:55:39 -08:00
Michel Weststrate
5c680ff325 Fix alignment of uploading progress and overflow of video preview
Summary: Nuf said

Reviewed By: jknoxville

Differential Revision: D18782822

fbshipit-source-id: b17723694e8528408b77f27467132bf83695a84a
2019-12-04 02:55:38 -08:00
Michel Weststrate
3dbc9acf54 Make sure first client is selected when importing traces
Summary: When importing a flipper trace, while the user was on a static view, the first client would not be selected automatically

Reviewed By: passy

Differential Revision: D18782482

fbshipit-source-id: 6f59e06dead62ffe42acdd36232b92dffd3e30d6
2019-12-04 02:55:38 -08:00
Pritesh Nandgaonkar
d12733f3fd Remove old support form GK
Summary: Removes old GK of the flipper support form

Reviewed By: passy

Differential Revision: D18783129

fbshipit-source-id: dcb55abf4af863e25273648e0482c00e3d16e322
2019-12-03 10:49:15 -08:00
Michel Weststrate
35ddc25937 Make plugin preference global
Summary:
This is a change which I am not fully confident in, but I think it will make things better;

previously favorite plugins where stored per device. This means that when ...

- switching between devices
- switching between apps
- when viewing disconnected devices
- when loading devices from flipper traces

... the starred plugin preference would reset (especially for the last two: they have generated unique device names, so there would never be preferred items)

This Diff changes the plugin preferences to be global, so on every app and every device you have the same preferences (if they support the plugin). This assumes most people work mostly with the same limited set of plugins

Reviewed By: jknoxville

Differential Revision: D18780965

fbshipit-source-id: 3a560393b81e7d65ae01fb737938f8562843af13
2019-12-03 09:19:20 -08:00
Michel Weststrate
c332f4145a Stop using deprecated lifecycle methods
Summary:
Some lifecycle methods are deprecated now. Where they can be replaced easily I replaced them. Where they can't be updated easily I marked them as unsafe, as if a bigger refactoring is required for those components, we'd better convert them to function components instead.

Didn't update the plugins as they are ideally updated by their owners.

Didn't update styled components, there is a separate task for that.

Reviewed By: jknoxville

Differential Revision: D18780579

fbshipit-source-id: 132a3789875ab6a3caee582b0e5f7feb7dc4a4c1
2019-12-03 06:50:43 -08:00
John Knox
01deb97a5d Add keys to FeedbackComponent array elements
Summary:
Was getting a react warning whenever the feedback prompt opens.
This stops it from happening.

Reviewed By: mweststrate

Differential Revision: D18780008

fbshipit-source-id: e4635f7a8322e25a3eea1c201974a100d1f1327a
2019-12-03 06:28:50 -08:00
John Knox
8a616b2d88 Delete comma from popover
Summary: Looks like this got accidentally added here: https://our.intern.facebook.com/intern/diff/D18397950/

Reviewed By: mweststrate

Differential Revision: D18779992

fbshipit-source-id: 7a61cda4a9a4287ebc56acb5d2b85fce8e3381e3
2019-12-03 06:28:50 -08:00
John Knox
ef6a278eff Fix recurring lint issue with d3
Summary: All subfolders of src/plugins/ need to have a title in their package.json, in this case it doesn't add anything but it's a rare case, so at least stops the linter from complaining.

Reviewed By: mweststrate

Differential Revision: D18764161

fbshipit-source-id: 7a3d7e3dba7633107d9e43c021986ecdf22d3c28
2019-12-03 06:17:31 -08:00