Commit Graph

572 Commits

Author SHA1 Message Date
Luke De Feo
941225e3d6 Only show node name when hovered
Summary: This makes the vizualiser a lot less cluttered

Reviewed By: lblasa

Differential Revision: D40021837

fbshipit-source-id: 8901c9bff6f05ee3fa4517e103c770be1fcfa403
2022-10-10 04:13:06 -07:00
generatedunixname89002005306973
dd99fc8e79 Flipper Release: v0.169.0
Summary: Releasing version 0.169.0

Reviewed By: lblasa

Differential Revision: D40173740

fbshipit-source-id: 6009a2621d98a706a94c5bca1121946b9604b7ab
2022-10-07 04:57:44 -07:00
generatedunixname89002005306973
84a5d8e184 Flipper Release: v0.168.0
Summary: Releasing version 0.168.0

Reviewed By: aigoncharov

Differential Revision: D40059591

fbshipit-source-id: b5ea55b6afd813cafff72b5264768bb60c7350e0
2022-10-04 08:44:13 -07:00
Luke De Feo
7ae2c35476 Remove redundant native scan event
Summary: It didnt need to exist and can be seen as a subtree update of type full scan

Reviewed By: lblasa

Differential Revision: D39731552

fbshipit-source-id: e351413d9480e118fc000c5e55eae0e7980233f2
2022-09-29 05:31:18 -07:00
Luke De Feo
78e84a0cc3 added metrics for snapshot
Reviewed By: lblasa

Differential Revision: D39886448

fbshipit-source-id: b229f6947d199026c6e4bdc89def6ac0a0fa9d0a
2022-09-29 05:31:18 -07:00
generatedunixname89002005306973
dcf2380fd4 Flipper Release: v0.167.0
Summary: Releasing version 0.167.0

Reviewed By: LukeDefeo

Differential Revision: D39924111

fbshipit-source-id: 30e26a9551eb3350ba4b526dc6ca014d868dd1ea
2022-09-29 04:38:46 -07:00
Lorenzo Blasa
ee9415a8d4 Be able to handle different snapshots for different roots
Summary:
^

This change allows to take different snapshots for different nodes and render them each on the visualiser.

At the moment, more than likely, this is not really used. At the same time, it fixes an issue whereas any subtree update can override and set the only visible snapshot.

Reviewed By: LukeDefeo, antonk52

Differential Revision: D39821920

fbshipit-source-id: ab8f6a4a2a5e96801c951a4e3009cc571a617f22
2022-09-27 13:00:04 -07:00
Lorenzo Blasa
945e26d0f1 Snapshots on Visualiser
Summary:
^

TODO: the snapshot corresponds to the referring subtree update. However, the snapshot is getting applied as if it was the current top view of the running app. This is true in most cases but it doesn't for some. To solve this, we need to use the rootId for the subtree and apply the snapshot only if appropriate.

Having said that, is good enough for the current submission as we keep iterating on it.

Reviewed By: LukeDefeo

Differential Revision: D39813307

fbshipit-source-id: 33b6aff6e9dd085934150ebd2f247062447a59ff
2022-09-27 13:00:04 -07:00
Andrey Goncharov
d1158e2d02 Configure eslint to prevent imports from nested paths of externally provided modules
Summary: We have a list of modules that we do not bundle with the plugins, but provide externally to them from Flipper. For the mechanism to work correctly, we have to stop importing from nested paths of these modules.

Reviewed By: mweststrate

Differential Revision: D39776237

fbshipit-source-id: 06eae9bf9d5b11b48d2720bf592bfea749773847
2022-09-26 09:42:33 -07:00
Tianyu Yao
2bf5410316 Upgrade React DevTools deps to 4.26.0
Summary:
Changelog:
[General][Changed] - Upgraded react-devtools-core dependency to 4.26.0

Reviewed By: lunaruan

Differential Revision: D39587418

fbshipit-source-id: 1b1841b72329fd3ef4ae8a08095a30a26a0b6455
2022-09-23 12:46:33 -07:00
Jacy
5b794dc28f Fix: [Android] Flipper Leakcanary plugin's OnHeapAnalyzedListener has been deprecated (#3923)
Summary:
Flipper Leakcanary plugin's OnHeapAnalyzedListener has been deprecated.

Flipper Leakcanary plugin's OnHeapAnalyzedListener has been deprecated change to EventListener implement.

## Changelog

1. add FlipperLeakEventListener.kt to implement EventListener.
2. update doc

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

Test Plan:
Setup the  Leakcanary plugin use FlipperLeakEventListener, test if it works.

**Static Docs Preview: flipper**
|[Full Site](https://our.intern.facebook.com/intern/staticdocs/eph/D39652084/V4/flipper/)|

|**Modified Pages**|

Reviewed By: antonk52

Differential Revision: D39652084

Pulled By: antonk52

fbshipit-source-id: 0afeb52dce6c1749a894a15dbb7921580c094ae6
2022-09-22 05:57:28 -07:00
Luke De Feo
67ff09563c Improved interaction between tree and visualizer
Summary:
Improved the 2 way relationship between tree and vizualiser. There are 3 states.
1. Select, this is when you click on either tree node or view. View is highlighted darker colour, sidebar shows up for that node and select is persisted when you mouse away
2. Hover, this is when you hover over a tree node or in the vizualizer, the node is highlighted a lighter colur
3. Hover while holding control - same as hover but we dont draw any children, this lets you see how parent nodes appear without their children

Reviewed By: lblasa

Differential Revision: D39695661

fbshipit-source-id: 623e479fb03567e9f15a4a4f9201b2c7884cabe4
2022-09-22 04:26:18 -07:00
Luke De Feo
f3b7552338 2D wire frame highlight from tree, select from wireframe
Summary:
Introduced some basic bidirectional link between tree and wireframe, the specific interaction will need some tweaking but this should get us started.

When hovering over the tree we halt the rendering of the wireframe up to that point, this allows us to explore parent views that layout child views.

When clicking a view in the wireframe it is 'seleceted' as if it was clicked in the tree. This set the tree selection so you can identify it in the tree as well as opens the side bar

Reviewed By: lblasa

Differential Revision: D39539277

fbshipit-source-id: 3beb1ad4cb56b398c640ac3e7fac2cc97f3f1a18
2022-09-21 07:02:48 -07:00
Luke De Feo
cf176bb071 Basic 2D wireframe
Summary: Basic visual wireframe for the purposes of verifying that our captured view hierachy is correct, the actual version we ship will hopefully be a lot better :)

Reviewed By: lblasa

Differential Revision: D39539278

fbshipit-source-id: 73d926ff1990f09ca9877430cb227f690d05d1d4
2022-09-21 07:02:48 -07:00
Luke De Feo
c7f24eb469 Refactor UI
Summary: Split our the mega component into separate parts in preparation for the visualizer

Reviewed By: lblasa

Differential Revision: D39509406

fbshipit-source-id: 0f867c1f8a91b7592673ae47ba2b5db4f3500732
2022-09-21 07:02:48 -07:00
Flipper Bot
285db3a268 Flipper Release: v0.166.0
Summary: Releasing version 0.166.0

Reviewed By: aigoncharov

Differential Revision: D39649275

fbshipit-source-id: d328cf36fb26e2d69b0e3c76cae6c47760ecd6fa
2022-09-20 04:06:09 -07:00
Flipper Bot
fb51f294f1 Flipper Release: v0.165.1
Summary: Releasing version 0.165.1

Reviewed By: aigoncharov

Differential Revision: D39626532

fbshipit-source-id: 0611201ad42e038f4488ee9f6f8cf8265329a5e2
2022-09-19 12:12:29 -07:00
Flipper Bot
4c61c53a7b Flipper Release: v0.165.0
Summary: Releasing version 0.165.0

Reviewed By: aigoncharov

Differential Revision: D39579337

fbshipit-source-id: 42c3c470718b1e5953ab07afa9a7690b33acfe3f
2022-09-16 10:05:24 -07:00
Andrey Goncharov
62bb4df8d7 Remove direct eval from react devtools
Reviewed By: lblasa

Differential Revision: D39467192

fbshipit-source-id: 925678b17c9a454298aa141eb19e1ae6aa9c369f
2022-09-15 10:02:19 -07:00
Andrey Goncharov
f463520522 Decapitate "network" plugin
Reviewed By: lawrencelomax

Differential Revision: D39466980

fbshipit-source-id: b880690a2b334fd063f2d06923743d67b79e7b08
2022-09-15 10:02:19 -07:00
Andrey Goncharov
cb610ec751 Decapitate "navigation" plugin
Reviewed By: lawrencelomax

Differential Revision: D39465305

fbshipit-source-id: e7c4d22e0f2acfbf71a08821c90b6f26af628af2
2022-09-15 10:02:19 -07:00
Luke De Feo
24ec43eb92 Add observer type to Perf event
Summary: While looking at the event stream it is useful to know which observer type fired it

Reviewed By: lblasa

Differential Revision: D39430756

fbshipit-source-id: bc52f085a5497692f8076b12a9c015cc33a19d1e
2022-09-13 11:05:42 -07:00
Flipper Bot
a941652a43 Flipper Release: v0.164.0
Summary: Releasing version 0.164.0

Reviewed By: aigoncharov

Differential Revision: D39431774

fbshipit-source-id: 17c616386d00460e7b65cc88403bb6dbbc882853
2022-09-12 09:11:16 -07:00
Luke De Feo
9a270cdc7a Tree observer
Summary:
Added concept of a tree observer which is responsible for listening to the changes for a portion of the UI tree. This structure nests so Tree observers can hold child tree observers which emit events on a different cadence. This structure should allow us to incorporate different UI frameworks down the road as well as native android views.

We push the tree updates from the tree observers onto a channel and setup a coroutine to consume this channel, serialize and send down the wire.

Reviewed By: lblasa

Differential Revision: D39276681

fbshipit-source-id: a4bc23b3578a8a10b57dd11fe88b273e1ce09ad8
2022-09-12 03:48:43 -07:00
Luke De Feo
c76c993ce4 Introduced concept of active child
Summary: A node can have an active child, if present we assume all others are inactive and we don't traverse them. This means the activities not on top and view pager views not active will not be scanned. Additionally on the desktop we are automatically collapsing these views. The net result is a lot less work done on the main thread

Reviewed By: lblasa

Differential Revision: D39310126

fbshipit-source-id: ebd0c69d46f2d42fe42e678c8327fcdc73d08385
2022-09-12 03:48:43 -07:00
Flipper Bot
926ba9608e Flipper Release: v0.163.0
Summary: Releasing version 0.163.0

Reviewed By: aigoncharov

Differential Revision: D39303682

fbshipit-source-id: fa6bd8a1cb08c0f45803d027632d7432e64680e2
2022-09-08 08:03:07 -07:00
Lorenzo Blasa
ccec5a6abe Add a very simple attributes inspector
Summary: Add a very simple attributes inspector

Reviewed By: LukeDefeo

Differential Revision: D39306728

fbshipit-source-id: 0e46b3efc617253d0b3006e81a46f00fdf8e8457
2022-09-07 06:46:41 -07:00
Luke De Feo
41068d1c90 Native UI scan
Summary: Added scheduler to scan the Native UI every 500 ms to test, Also added instrumentation in a separate event with the timings of each stage visualised in a Data table on desktop which can be accessed with ctrl+I. Currently this instrumentation event is sent every time but it could be a config option controlled from the desktop in the future

Reviewed By: lblasa

Differential Revision: D39205313

fbshipit-source-id: ca034171db6b062396b4ef28028aaa663c4d852a
2022-09-07 04:37:17 -07:00
Luke De Feo
a5da6923eb Flatten layout during traversal
Summary: Move from a nested structure to a flatten one for data exchange, this will allow us to only send sections of the UI in the future

Reviewed By: lblasa

Differential Revision: D38982138

fbshipit-source-id: d578a07a6d2d7e117fbd741bd6e33062223ce10d
2022-09-07 04:37:17 -07:00
Luke De Feo
55b852f90c Basic tree UI
Summary: A very basic tree in Antd to visualise the UI

Reviewed By: lblasa

Differential Revision: D38977035

fbshipit-source-id: f9bbf765ea8027eeb263cad86407502c6a5779dd
2022-09-07 04:37:17 -07:00
Flipper Bot
3734225dd7 Flipper Release: v0.162.0
Summary: Releasing version 0.162.0

Reviewed By: cekkaewnumchai

Differential Revision: D38973666

fbshipit-source-id: cb17fe83c805a1c4fbef69bf035f4437516665d0
2022-08-24 03:55:15 -07:00
Luke De Feo
f1e80b18b1 Basic desktop plugin
Summary:
Scaffolded desktop UI for UI debugger
I changed getroot from an rpc call to an event sent on connect. The root should never change as its the application object.

Reviewed By: lblasa

Differential Revision: D38866008

fbshipit-source-id: ca0f1908bedb643238f11ed796922e3359619167
2022-08-22 03:02:53 -07:00
Adam Ernst
0aa1f14536 Remove @scarf-generated from xplat/sonar
Summary: See D38829381.

Reviewed By: d16r

Differential Revision: D38837720

fbshipit-source-id: c576e16ebb5a0afd5e6dfc71adb3cf0c2361e9a3
2022-08-19 05:54:13 -07:00
Flipper Bot
f9afe75a81 Flipper Release: v0.161.0
Summary: Releasing version 0.161.0

Reviewed By: lblasa

Differential Revision: D38858847

fbshipit-source-id: 56a356ed7028110fb028f36a490efb6fa61a3598
2022-08-19 05:02:55 -07:00
Flipper Bot
882c06fb65 Flipper Release: v0.160.0
Summary: Releasing version 0.160.0

Reviewed By: mweststrate

Differential Revision: D38829728

fbshipit-source-id: b0c28f7099ecde8f1afba298af713891d5f37c04
2022-08-18 09:21:56 -07:00
Jacy
c863af6942 Fix share preference plugin layout flicker (#3903)
Summary:
The share preference plugin page flashes when INSPECTOR's width is too large.

## Changelog

Add 'overflowX: 'hidden'' to FlexRow.

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

Test Plan: Pass the test on MAC.

Reviewed By: passy

Differential Revision: D38784840

Pulled By: mweststrate

fbshipit-source-id: 4ca3fc17ccc66767e75ce0f9ab7ad71741dbf15e
2022-08-18 06:35:20 -07:00
Flipper Bot
a2df0e36e3 Flipper Release: v0.159.0
Summary: Releasing version 0.159.0

Reviewed By: mweststrate

Differential Revision: D38779691

fbshipit-source-id: 096542c590ad80dede43b7d72300ad99667b96d7
2022-08-17 03:32:56 -07:00
Flipper Bot
c96c5ca1a3 Flipper Release: v0.158.0
Summary: Releasing version 0.158.0

Reviewed By: lblasa

Differential Revision: D38571158

fbshipit-source-id: 942b513f45163fe923483f17c87945ff289020c9
2022-08-10 05:09:36 -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
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
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
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
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
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
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
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
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