Commit Graph

2669 Commits

Author SHA1 Message Date
Lorenzo Blasa
a357e280c2 Fix highlight selection background colour
Summary: There was a regression in which the selection background color made the selection hard to read in dark mode.

Reviewed By: mweststrate

Differential Revision: D38572894

fbshipit-source-id: c46d384175132112e1223434534a379318bfa2ea
2022-08-10 04:13:11 -07:00
Flipper Bot
714ee44929 Flipper Release: v0.157.0
Summary: Releasing version 0.157.0

Reviewed By: passy

Differential Revision: D38382530

fbshipit-source-id: 687ff275c280587d4d40c9c2d8622a1d0ba1adaa
2022-08-03 05:02:01 -07:00
Andrey Goncharov
f132d95bee Fix crash reporter
Summary: Changelog: Make crash reporter pick up and parse .ips crash reports

Reviewed By: LukeDefeo

Differential Revision: D38355089

fbshipit-source-id: dc1b46257ea12c2e67d8a9baab7f35a905be2204
2022-08-02 10:08:35 -07:00
Feiyu Wong
ab49b17c7b Save logs that are shown in logs plugin if persisted logging is enabled
Summary:
This is the second part of the feature which enables data/log persistence by adding a global setting which controls whether the data is wiped when the same device is disconnected and reconnected.

Building on the previous diff, this diff uses the setting from the Redux Store to determine whether to "wipe" the data or not.

Changelog: Added option in Flipper settings to persist device data upon reconnection instead of wiping everything.

Reviewed By: mweststrate

Differential Revision: D38076567

fbshipit-source-id: 83658ac09bc88921a56517e1a1f624d4a4bbc2c5
2022-07-28 13:56:34 -07:00
Feiyu Wong
3ffb25e672 Update UI for enabling persisted logs feature
Summary:
This is the first diff to implement the feature for the Flipper logs plugin to have an option to persist logs in the table between crashes, disconnections, etc.

Since this is not a local change, the UI option for persistence will be located in the settings for the Flipper UI(as seen in the test plan). The setting is associated with the Redux Store `Settings` and is stored globally to be used across all plugins. So the plan is making the persistence pertain to all plugins.

Reviewed By: mweststrate

Differential Revision: D37786988

fbshipit-source-id: 7ffc6077cbca559b3401b16770eda657a6c45620
2022-07-28 13:56:34 -07:00
Aaron Coplan
45f3222b87 Upsell for arc uiqr in Flipper plugin UI
Summary:
This diff updates the Flipper plugin for UIQR+DDR to upsell people to use `arc uiqr` on the "Upload and Get Link" tab. At the moment I'm not showing the upsell on the "Upload Screens to Diff" tab since this functionality isn't really supported through `arc uiqr` yet.

The upsell uses localstorage to maintain its open/close state so it will show up by default but will be permanently dismissed (unless localstorage is cleared somehow :) ).

NOTE: I hacked out this UI using some existing reusable UIQR Flipper components and some extra styling for the background, but definitely open to feedback on the UI!

Differential Revision: D38232117

fbshipit-source-id: e1745e32974bd9e750bbbaaa2f47bafdd0ac87eb
2022-07-28 10:56:39 -07:00
Lorenzo Blasa
4da7419b19 Dismiss set highlight calls for null elements
Summary: ^

Reviewed By: mweststrate

Differential Revision: D38238280

fbshipit-source-id: c48d8ff1c69b5c3d535ce050381ba91f1f405937
2022-07-28 08:00:10 -07:00
Feiyu Wong
a47528a726 Icon in search bar to show/hide search results
Summary:
1. Added icon to search bar to manually trigger the hide/show search context/results functionality, which was only triggerable by ctrl(now migrated to ctrl+t) before.
2. Added tool tips to increase visibility of keyboard shortcuts

Changelog: Added icon for showing search result context(only triggered by keyboard shortcut before). Added tool tips to search bar icons.

Reviewed By: mweststrate

Differential Revision: D38207087

fbshipit-source-id: a34c1322294ed8091ea3f90d2f1f206af981c9ca
2022-07-27 12:19:51 -07:00
Feiyu Wong
499275af8a Add keyboard shortcut to support quick selecting recent searches
Summary:
Currently there's no way of quickly selecting recent searches other than manually opening the recent search history and then clicking one of the search terms. This diff seeks to add a new feature that would allow not only a keyboard short cut to open the recent search history drop down but also number the most recent 5 search terms so that the user could quickly select them with a number on their keyboard

Additionally, fixed bug found in terms of the search bar not showing the current search value correctly

`Changelog`: Introduced keyboard shortcut(ctrl + f) option to toggle the search history dropdown along with numbers attached to the options in order to quickly navigate to recent search terms. Have to first enable the option(search shortcut) in menu in order to use the feature. Also added a new button in the options menu that would trigger the search result toggle as triggered by the keyboard shortcut `ctrl` before(`ctrl` + `t` now)

WARNING: The current behavior of "ctrl" toggling back and forth to focus the selected item has been migrated to "ctrl + t" key combo

Reviewed By: mweststrate

Differential Revision: D37685738

fbshipit-source-id: a7ac4dd3dceb846a98258de2d884ebc279ee5995
2022-07-27 11:37:59 -07:00
Flipper Bot
5607276fee Flipper Release: v0.156.0
Summary: Releasing version 0.156.0

Reviewed By: LukeDefeo

Differential Revision: D38198427

fbshipit-source-id: b348e3bc2c4ee18d897841a1ad359db950b15100
2022-07-27 04:31:07 -07:00
Feiyu Wong
3fbf1215ec Refactored DataView to be the primary data driver for DataTable instead
Summary:
In order to accomplish multi-panel mode, we need to use multiple data views on the same data source so that the filters can be applied differently, etc.

This diff serves to refactor DataTable and some of its associated classes to use DataView as the primary driver for data management. Additionally, the diff refactored the state to allow multi-paneling to be on the DataPanel layer instead of the DataTable layer for ease of usage

This is the last diff of the larger stack which introduces the multi-panel mode feature. A possible next step could be allowing infinite(up to a certain limit) panels to be populated.

Changelog: Introduced side by side view feature for `DataTable`. There is now a new boolean for `DataTable` props called `enableMultiPanels`. If this is passed in, then the table will have an option to open a different "side panel" using a completely different dataview which allows different filters, searches, etc.

Reviewed By: mweststrate

Differential Revision: D37685390

fbshipit-source-id: 51e35f59da1ceba07ba8d379066970b57ab1734e
2022-07-22 09:16:37 -07:00
Andrey Goncharov
55b7ef934c Augument IDB installation instructions for intern users
Reviewed By: passy

Differential Revision: D37994214

fbshipit-source-id: bd36abf1ed024ca1f18fcc5297108e4ca333c578
2022-07-20 06:03:38 -07:00
Andrey Goncharov
f3cb9de5c9 Fix Sidebar resizing handler propagation
Summary: SidebarInteractiveContainer sets mousedown/mouseup handlers. Whenever user tries to select text in child element those are triggered.

Reviewed By: passy

Differential Revision: D37994014

fbshipit-source-id: 5dcf5642b3a92ec50008aa4aad6b9522a09c1527
2022-07-20 06:01:10 -07:00
Jacy
bd5ac524f5 Update some welcome links (#3902)
Summary:
Some old welcome links are 'Page Not Found'.

## Changelog

Some old links are 'Page Not Found', so update them as follows:
1. Update "Using Flipper" link to 'https://fbflipper.com/docs/features'
2. Update "Add Flipper Support to Your App" link to 'https://fbflipper.com/docs/getting-started'

Pull Request resolved: https://github.com/facebook/flipper/pull/3902

Test Plan: Pass the test on a Mac.

Reviewed By: lblasa

Differential Revision: D37927376

Pulled By: passy

fbshipit-source-id: 0aac129932395e3f2ce3afa8c47cc637f3e814a8
2022-07-19 10:46:28 -07:00
Flipper Bot
e3110be5a6 Flipper Release: v0.155.0
Summary: Releasing version 0.155.0

Reviewed By: lblasa

Differential Revision: D37957716

fbshipit-source-id: f682464ec8737acc3e28197fa3724a6ae150e8cd
2022-07-19 09:01:42 -07:00
Lorenzo Blasa
d4597f455e Add a handler for any errors during highlight
Summary:
^

Ignore the errors as otherwise it may cause unhandled rejection errors.

Reviewed By: aigoncharov

Differential Revision: D37926740

fbshipit-source-id: 50476378b4d254e28af953979fbedad1113e43aa
2022-07-19 06:09:55 -07:00
Lorenzo Blasa
04220b6c7e Typo and increase timeout to 45s
Summary:
Observed that a few requests tend to timeout when using Flipper with flipper-server.

Increasing timeout to 45s as to be a bit more flexible.

'exec' operations don't have a timeout when not using flipper-server.

Reviewed By: antonk52

Differential Revision: D37955108

fbshipit-source-id: 5d8ef7f066d6b316e4b485b281a015794b5bd2de
2022-07-19 04:06:03 -07:00
Lorenzo Blasa
c871b221fd Add catch handlers to client calls
Summary:
Client calls return a promise. Not dealing with the error causes promise unhandled rejection errors.

This change adds a catch block and logs the error instead.

Reviewed By: antonk52

Differential Revision: D37955029

fbshipit-source-id: 50cac5a5339961d16868ab2102d3c77790e6943c
2022-07-19 04:05:12 -07:00
Lorenzo Blasa
860cf332e1 Do not disconnect when there's a 'send' error
Summary:
Historically, RSocket used to raise an error when there was an error during send, most likely because the connection was dead.

With WS, this is no longer the case.

WS connection issues are raised through the according handlers.

Reviewed By: passy

Differential Revision: D37825821

fbshipit-source-id: 7fcda8cf26fb42eb0d8ca03b62482f11c931777f
2022-07-14 10:40:43 -07:00
Feiyu Wong
53b89f485a Add Toggle to control showing full search history instead of filtered list
Summary:
This diff adds a new menu option to the Logs plugin which allows for enabling/disabling the automatic filtering of search terms in the search history as user types.

Additionally, fixed bug regarding the search term that's used is not actually showing correctly. This is caused by the search value being set in the input search bar instead of the autoComplete component level

Differential Revision: D37555209

fbshipit-source-id: 8a76299f7e1a4b0a3adfa6a4dd883d17f1e7a442
2022-07-14 06:21:45 -07:00
Flipper Bot
14d385827d Flipper Release: v0.154.0
Summary: Releasing version 0.154.0

Reviewed By: jknoxville

Differential Revision: D37813763

fbshipit-source-id: f16392937146a50c7018c2ae5abd18e433059622
2022-07-13 09:21:01 -07:00
Alex Hunt
e7591b2a81 Set clearLogs accelerator for log-rendering plugins
Summary:
Sets a default key binding of `ctrl+l` to clear the screen within built-in Flipper plugins which display a log view.

Motivation: A small quality of life improvement for developers used to the default "clear screen" binding. This makes our log-rendering plugins consistent with other native apps such as terminals, Chrome DevTools, and many others.

Reviewed By: mweststrate

Differential Revision: D37782638

fbshipit-source-id: 0a85b930faaa0e9468d5391f15092aad7b6057ee
2022-07-13 01:38:55 -07:00
Lorenzo Blasa
c01df31459 Handle disconnection events whilst executing requests
Summary:
If there's a device client disconnect during request execution, no response is ever given back to the client (flipperd).

This change effectively subscribes to client disconnect events and notifies flipperd of any disconnection during request processing.

Reviewed By: passy

Differential Revision: D37787986

fbshipit-source-id: 31737a50b83b0cbe4141ce814064aebef7e09bfc
2022-07-12 12:55:19 -07:00
Gabriele Palma
01fc74d4f1 Added NetworkSourceContainers Flipper Plugin (Desktop) 1/3
Summary:
Added Flipper plugin.

Initial scaffolding for both iOS and JS
javascript code

Reviewed By: apadalko

Differential Revision: D37612499

fbshipit-source-id: a0a0ef596ef39f1d0bfe978767748c8fc3840d7a
2022-07-12 08:38:24 -07:00
Shipeng Xu
4daa1d41db enable XMLTextFormatter for application/xml and text/xml
Summary:
Currently in the Flipper network plugin implementation, XMLTextFormatter is only enabled if `content-type` is `text/html`.

We should enable it for `application/xml` and `text/xml` as well.

Reviewed By: mweststrate

Differential Revision: D37733487

fbshipit-source-id: f272c5d0a305cf4afd32701d40459c3e11049886
2022-07-11 10:29:42 -07:00
Lorenzo Blasa
18854ce5fc Install plugin from marketplace if not available
Summary: For the Flipper Server Companion, if a plugin is being requested which is not yet installed, try to install it first from the marketplace.

Reviewed By: passy

Differential Revision: D37716962

fbshipit-source-id: d618fbc597f82b540dbb02e8ffc296dcee9e1eb9
2022-07-11 07:04:55 -07:00
Lorenzo Blasa
c91c766b12 FlipperServer new plugin marketplace methods
Summary:
Expose two new methods as to be able to:
- List plugins from marketplace
- Install a plugin from marketplace

Reviewed By: passy

Differential Revision: D37749817

fbshipit-source-id: 82b78f7906c5664d5747289fa4f8eadebcde1d73
2022-07-11 07:04:55 -07:00
Lorenzo Blasa
1778ce4f46 HeadlessPluginInitialiser install plugin
Summary:
Allow adding plugins after initialisation. Effectively:
- Load the plugin creates the SandyPluginDefinition
- Add the definition to the existing loaded plugins

Reviewed By: passy

Differential Revision: D37749811

fbshipit-source-id: ea834b9e6105cf605fc906a794022f61807ce1d8
2022-07-11 07:04:55 -07:00
Lorenzo Blasa
b9e1039b7a Load marketplace plugins from PluginManager
Summary: Expand PluginManager as to be able to load and install plugins from Marketplace.

Reviewed By: passy

Differential Revision: D37749802

fbshipit-source-id: 7d7e23427cc9d01f5c953b90e5b346a9d6bab19f
2022-07-11 07:04:55 -07:00
Lorenzo Blasa
04b433fe1d Load marketplace plugins
Summary:
Load marketplace plugins using FlipperServer.

Extracted from:
https://www.internalfb.com/code/fbsource/[c3fdda2336d6]/xplat/sonar/desktop/flipper-ui-core/src/dispatcher/plugins.tsx?lines=89

Reviewed By: passy

Differential Revision: D37749793

fbshipit-source-id: 687d6f7c076c9314c6e96dc1cf6fba8c96c71841
2022-07-11 07:04:55 -07:00
Lorenzo Blasa
77276f5ac0 isPluginVersionMoreRecent for flipper-server-core
Summary:
Another implementation for isPluginVersionMoreRecent.

References:
https://www.internalfb.com/code/fbsource/[2d3c2d3ce5fb]/xplat/sonar/desktop/flipper-frontend-core/src/utils/isPluginVersionMoreRecent.tsx?lines=14

https://www.internalfb.com/code/fbsource/[2d3c2d3ce5fb]/xplat/sonar/desktop/flipper-ui-core/src/utils/isPluginVersionMoreRecent.tsx?lines=14

Is not immediately obvious what is different, but it boils down to the implementation of:
```
isPluginCompatible
```
and passing the flipper version.

That one depends on the package. As with other changes, this can probably be refactored out, for left as is unless strongly advised otherwise (it seems OK as we already have 2 implementations).

Reviewed By: passy

Differential Revision: D37749785

fbshipit-source-id: 5a22d90f094b53223d2469c572646d5bfd3d1d33
2022-07-11 07:04:55 -07:00
Lorenzo Blasa
beb0ed1991 Plugin marketplace for flipper-server-core
Summary:
Implementation taken from:

https://www.internalfb.com/code/fbsource/[85c1fe5afee7]/xplat/sonar/desktop/flipper-ui-core/src/fb/pluginMarketplaceAPI.tsx

As with the previous diff, the marketplace API for flipper-server-core accesses the existing config in a different way and depends on FlipperServer, instead of User, to execute intern request as to obtain marketplace plugins.

Reviewed By: passy

Differential Revision: D37749775

fbshipit-source-id: 968ea3f7a412893f032e5a7a50ecf17c298e18ff
2022-07-11 07:04:55 -07:00
Lorenzo Blasa
ff66cd18ec isPluginCompatible for flipper-server-core
Summary:
Yet another implementation of this function.

References:
https://www.internalfb.com/code/fbsource/[85c1fe5afee7]/xplat/sonar/desktop/flipper-frontend-core/src/utils/isPluginCompatible.tsx?lines=14
https://www.internalfb.com/code/fbsource/[85c1fe5afee7]/xplat/sonar/desktop/flipper-ui-core/src/utils/isPluginCompatible.tsx?lines=15

This one:
- Uses GK from the existing server config
- Gets version from the existing server config

It differs in:
- appVersion not passed in as argument
- Doesn't use RenderHost to obtain the server config

I think, this is acceptable as the function body is effectively the conditional, that depends on the caller available dependencies.

Reviewed By: passy

Differential Revision: D37749761

fbshipit-source-id: 3094e87c7770ac66e5764c932a0a0d4e7f5b63f5
2022-07-11 07:04:55 -07:00
James Wysynski
5551cf3bb2 Fix tab names [again]
Summary: child.hasOwnProperty -> child.props.hasOwnProperty for tabs

Reviewed By: udat

Differential Revision: D37751552

fbshipit-source-id: 78015bbc185387587ce3644c959596cf0a661ddf
2022-07-11 06:40:31 -07:00
Luke De Feo
0e11eaabb3 Finishing touches
Summary:
A few comments in my rewrite stack got missed, I am addressing them here.
In addition react testing library has been hoisted to the root module in the project and been made available to all sub modules

Reviewed By: mweststrate

Differential Revision: D37712339

fbshipit-source-id: 60984c3d16bd535b0c489570907f097c7d80f634
2022-07-11 05:15:25 -07:00
Lorenzo Blasa
ea958b0b15 MarketplacePluginDetails into flipper-common
Summary: ^

Reviewed By: antonk52

Differential Revision: D37715921

fbshipit-source-id: 05d35c472e847a7891fd4af1e88a3425e1d55f13
2022-07-11 02:39:49 -07:00
Lorenzo Blasa
caa04f4a44 Move User to flipper-common
Summary: Move User from reducers to flipper-common. User will now be usable by other modules.

Reviewed By: passy

Differential Revision: D37599802

fbshipit-source-id: 66412e7ed00bf27448fa2deae70f0e8e80303aba
2022-07-08 14:17:52 -07:00
Hao Yang
54f85029d9 Add Generate Flipper Files [1/5]
Differential Revision: D37192850

fbshipit-source-id: d4122bf4c3ceebd251ccc2b06765ec8406771cde
2022-07-07 17:39:46 -07:00
Luke De Feo
4e2e23e3b4 Added ability to override device paramters in Deviceplugin test utils
Summary: This allows for more controlled device plugin tests

Reviewed By: mweststrate

Differential Revision: D37609991

fbshipit-source-id: 7e0694ba97e6b2c34b5d9cd81761eecd2f50c6f9
2022-07-07 07:50:14 -07:00
Luke De Feo
e1e741b132 Reviewed By: lblasa
Differential Revision: D37413421

fbshipit-source-id: 062d94e80d6a58aed54ad17ea38de1aef9c464c5
2022-07-07 07:50:14 -07:00
Luke De Feo
749abfeff2 Expose device description in device interface
Summary: This is needed to avoid mobile builds depending on BaseDevice

Reviewed By: mweststrate

Differential Revision: D37315909

fbshipit-source-id: a090bd3e76ceefe1f2ac68f832ee544ae45a8d6a
2022-07-07 07:50:14 -07:00
Luke De Feo
6c5faf2932 Add command to install app to flipper server
Summary: There is a new flipper server command to install apps. For android it uses adb (via adb kit) For ios depending on idb availablity it will use idb or xcrun. Consumed in the next diff

Reviewed By: lblasa, aigoncharov

Differential Revision: D36936637

fbshipit-source-id: e09d34d840a9f3bf9136bcaf94fb8ca15dd27cbb
2022-07-07 07:50:14 -07:00
Luke De Feo
1b02f105dc Add config for vscode-jest extension
Summary:
Provides a much nicer devx, shows test pass / failure in the editor and error messages in line

https://pxl.cl/25G0x

When the extension is installed with this config it will watch all test and run what is needed, automatically updating the editor with test status

It also supports debugging tests individually right in the editor

see https://github.com/jest-community/vscode-jest for full docs

Also Once VS code @ fb is updated to a newer base of vscode, we will get access to to the testing sidebar feature

https://pxl.cl/25G0R

Reviewed By: lblasa, aigoncharov

Differential Revision: D37009812

fbshipit-source-id: e1918a0817d4703089b6300840fcf9564b871682
2022-07-07 07:50:14 -07:00
Flipper Bot
6b4c1db5fa Flipper Release: v0.153.0
Summary: Releasing version 0.153.0

Reviewed By: cekkaewnumchai

Differential Revision: D37643063

fbshipit-source-id: df67aee39ca41887e4c8358a618b4c37338c501b
2022-07-06 04:06:55 -07:00
James Wysynski
0016b72b37 Add hasOwnProperty checks for child fields in Tabs
Summary:
Add hasOwnProperty checks for child props in Tabs. This prevents warning output when a prop doesn't exist.

{F748481722}

Reviewed By: mweststrate

Differential Revision: D37520888

fbshipit-source-id: 3b0c9fb1e94e76ecb4eb52e97d2f3aa010cb60ce
2022-07-04 09:24:57 -07:00
Michel Weststrate
d162bcc2a4 Fix sorting order of selection during exports
Summary:
See https://fb.workplace.com/100051336486185/videos/469885544533059/

I couldn't reproduce it myself, but it is reported that when copying logs, the order of the selection is not preserve. Diving into the example there is a block of rows (around the 1.09 timestamp) that appear 'too early' in the output.

In flipper we sort the selection before copying the data by row index. This is to make sure if the user has multiple selections, they appear in the order of the logs (including any applied sorting), rather than in the order of which the user selected them.

However, when sorting numbers, JavaScript by coerces them to strings first (wtf JS), so the issue can be prevented by explicitly providing a sort function. Proof: {F749329864}

Reviewed By: lblasa

Differential Revision: D37596975

fbshipit-source-id: 820e03350034e7af8148200a58a8c858b358acd8
2022-07-04 04:13:04 -07:00
Luke De Feo
1353e0630b Fix free text search
Summary:
In diff D36663929 (e07d5c5bfe) the behaviour of data table was changed so that it only searched fields that were columns in the table. Due to user request we are restoring the functionality where you can search and it will look in all top level fields in the underlying object for the row

changelog: Fixed 'free text search' for data table. E.g network plugin

Reviewed By: mweststrate

Differential Revision: D37552492

fbshipit-source-id: 00ec942b2a2336c19a7d067d85cc6c81b8a175e1
2022-07-04 00:49:36 -07:00
Lorenzo Blasa
583fdd9648 Explicitly close ws in cases of a process exit
Summary:
^

There may be cases whereas the process exits but leaks the socket descriptors.

There's already a hook to close flipper-server.

Reviewed By: passy

Differential Revision: D37550940

fbshipit-source-id: 35004969834bb92bb7cf0f56bda8d7b43c11d6bf
2022-07-01 03:45:44 -07:00
Andrey Goncharov
ae90ce5878 Fix electron reloading
Reviewed By: antonk52

Differential Revision: D37556134

fbshipit-source-id: 7ff301bd6d06f570559b38647462515c35c899f3
2022-07-01 03:42:11 -07:00
Andrey Goncharov
8c2ef5738e Remove Tail
Summary: We no longer need to Tail the logs as we stream the logs over WebSockets (see D37459924 (dcbc7c40bb))

Reviewed By: lblasa

Differential Revision: D37550482

fbshipit-source-id: 92a87f2ba1ecec140bbbb9e71df107341765ad46
2022-06-30 07:50:06 -07:00