Summary: If it is successful, we rarely care about stdout, which can be quite verbose. So don't use it.
Reviewed By: antonk52
Differential Revision: D47339446
fbshipit-source-id: 66f43d4184e44ed07364a6f33715139e19b2dc1d
Summary:
We had feedback that when a small eleemnt was selected it was hard to find, this should help
Changelog: [UIDebugger] Make selection more prominent in the visualiser
Reviewed By: lblasa
Differential Revision: D47223504
fbshipit-source-id: 33b448d36b0323e958e45fd1d0e2c7f659de293c
Summary:
Following feedback when using keyboard controls its a little bit awkward to have to move with arrows and then select with enter.
Now when using keyboard controls you are manipulating the selected state.
Enter still selects / unselects but its not really needed anymore
When using the mouse the hover state is still there
Changelog: [UIDebugger] Using keyboard arrow control changes the selected and hovered state together for faster / easier navigation
Reviewed By: lblasa
Differential Revision: D47212492
fbshipit-source-id: 996196880d623885b4d4b7d1a70954201f809d28
Summary:
To avoid showing the Ugly spinner in the context menu as well as a better UX we prefetch the IDE resolved path. It was important to limit the concurrency of the running arc jobs otherwise lots of bad things happen and the whole machine stalls out.
The general idea is as the frame comes off the wire we send them to react query to prefetch. by setting the cache time sending the same key twice will not result in 2 fetches, so we dont need to worry about deduplication on our side
Reviewed By: antonk52
Differential Revision: D47210292
fbshipit-source-id: 4a1d8efdfae754c1a73c6a868b02d1f3a0a5b567
Summary:
Originally we planned to move the IDE inline in the row but this is hard to do well, especially with the horizontal scroll as well as the extra buttons for biggrep, codehub, AS and vscode.
Context menu is still very natural so lets try this
Reviewed By: lblasa
Differential Revision: D47210289
fbshipit-source-id: 339508c820915298161bf95fd1c3cea60b800746
Summary: Remove debug logs and add re-format other warn logs to have parity with iOS
Reviewed By: antonk52
Differential Revision: D47330455
fbshipit-source-id: ac8edde2124bbe99d0ea11f46f3b85dd77b96c7b
Summary:
This change has a minimal Connectivity Hub with a log viewer of connectivity related events.
The hub is integrated so that is usable.
Reviewed By: antonk52
Differential Revision: D47296027
fbshipit-source-id: 7611ce0b1480e9bdb7cdff2bcedeb445a322c195
Summary: To dispatch events, we need a valid instance of FlipperServer. This is the place so enable the recorder with it.
Reviewed By: antonk52
Differential Revision: D47295986
fbshipit-source-id: f2231544c58ba8f76e9102265e10a99520260b0a
Summary:
CertificateProvider is intrinsically related to a client query, make it available to it.
This becomes the optional 'context' of shell executions. When these are recorded, the context is provider to the recorder which can then link an ongoing certificate exchange process with the success or failure of said command.
Reviewed By: antonk52
Differential Revision: D47295894
fbshipit-source-id: 9469d18bda02793d71a6a8b29c93f4af1db23569
Summary:
Centralise connectivity logging into a single place. By having all logs go through a single interface, then it becomes trivial to manipulate them as needed.
In this change, this is not done.
In subsequent diffs, logs will be dispatched via an event and will be visualised in the Connectivity Hub.
Reviewed By: passy
Differential Revision: D47185054
fbshipit-source-id: fb5eab98895be0c8f61fb9a77d3e66d6a8dbcb27
Summary:
Scaffolding connectivity hub. The final place may be different though.
But at least for now whilst we iterate on the solution, this should be enough.
Reviewed By: passy
Differential Revision: D47230905
fbshipit-source-id: e3b3f7d773e1bf8b0dd9821cf25c6fa8e77669f4
Summary: As per comment, the issue is already fixed and released.
Reviewed By: LukeDefeo
Differential Revision: D47257442
fbshipit-source-id: 2a975690bab0eaed12b6b4233be41f675760a0bc
Summary:
Bit of refactoring, bit of improvements, maybe. Mainly:
- Name consistency
- Promise chaining to async/await
- Refactoring
Reviewed By: lawrencelomax, antonk52
Differential Revision: D47224620
fbshipit-source-id: 5f4515f576decc03d470c11f24577b43f34a5a28
Summary: Already have SecureClientQuery. No need to have this as a type as it's not used or needed anywhere.
Reviewed By: antonk52
Differential Revision: D47210345
fbshipit-source-id: d9f3026a0e2a0b5dd2e87f16dba34a388dacd75f
Summary: It should've been there with ClientQuery.
Reviewed By: antonk52
Differential Revision: D47210314
fbshipit-source-id: 869496918648f20b616c1a612296fff55597af77
Summary: Bit of reorganising as utils is a bit too generic and crowded.
Reviewed By: passy
Differential Revision: D47186536
fbshipit-source-id: 7b1dd26db95aef00778ff4f23d91f7371c4d07ad
Summary: It doesn't get more generic than 'comms'. So, narrow it down: app-connectivity.
Reviewed By: passy
Differential Revision: D47185255
fbshipit-source-id: 87e9c2487c9b07603d14e856de670757078c0da1
Summary: Make it more clear about that this is. `ServerAdapter` was VERY generic.
Reviewed By: passy
Differential Revision: D47185076
fbshipit-source-id: 7d9b30f423398004bedc92ad22bc0217d1c8453f
Summary: node count and root node prescense will be very useful
Reviewed By: lblasa
Differential Revision: D47153394
fbshipit-source-id: 067f6f3aefa17cdfa88124956781400f53fe08d7
Summary:
See https://github.com/samdenty/console-feed/issues/124.
This is breaking our CI and lots of other things. We should hopefully be able to cleanly revert this on Monday.
Reviewed By: ivanmisuno
Differential Revision: D47150333
fbshipit-source-id: f34d6afdb83607c8ac2cc7fb2989ca68733798e0
Summary:
Usage tracking comes from Electron's `main.tsx`. There's a timer that dispatches an IPC event every 60 seconds.
This is all good for Electron builds.
For non-electron builds, there's no such thing as IPC.
So, react to the IPC event whenever necessary but also handle the interval internally such that usage is tracked independently of explicit callers.
Reviewed By: antonk52
Differential Revision: D47053404
fbshipit-source-id: f17694e65eed18678b45a2e815813bafab69c3f1
Summary: A transition period of 2 years should be enough.
Reviewed By: LukeDefeo
Differential Revision: D47053216
fbshipit-source-id: c9f9bfbff82a05942d408b325088095a6069cced
Summary: Im concerned that we are gettign disconnected without realising, this should help with the logs
Reviewed By: lblasa
Differential Revision: D47053321
fbshipit-source-id: 1014a3e856517e234f0f79f2a4692f18397fc457
Summary: This will hopefully be useful for prod debugging where we have users with no data,
Reviewed By: lblasa
Differential Revision: D47053328
fbshipit-source-id: 37ecce885ebd93bf2ffdd67cf49cf33255dda429
Summary:
This just adds a link next to each request in the Flipper GraphQL plugin to take you to the mobile GraphQL efficiency tool. We want this to be a kind of hub for mobile devs using GraphQL, alongside GraphiQL.
This was a suggestion from a product dev who attended our demo. Later we could also pull down actually efficiency info and show it directly in Flipper.
Reviewed By: ginfung
Differential Revision: D47029548
fbshipit-source-id: 05185e57bfbfaab9169a6b154822ede82d50fd4d
Summary:
PerformanceStatsEvent declares the metrics we track for performance.
DynamicPerformanceStatsEvent is a new type which extends it by allowing arbitraty key/value pairs to be reported and visualised.
Reviewed By: antonk52
Differential Revision: D47023248
fbshipit-source-id: fadfad79561fca9ae48d0668da3cc62f0d0391d8
Summary:
Currently we surface the difference in plugin type to the user. However, it doesn't make much sence to the user as they primarily care about the plugins being enabled or not. Thus merging device plugins (always enabled) and enabled plugins sections.
I wasn't sure if I should also merge the metro plugins section due to some metro specific hints. So I left it as is.
Reviewed By: lblasa
Differential Revision: D46971125
fbshipit-source-id: 0bb667c3b2f5576e5704dae29b03cfd631c38ad2
Summary:
A few enhancements:
1. we use the component name when using big grep search and looking up in codehub instead of big grep search
2. diffusion renamed to code hub
Differential Revision: D46934805
fbshipit-source-id: c818b2937256cbeaabfdfc0a191706ebdecb716b
Summary:
Sometimes iOS can return active child -1, which is causing some crashes on desktop, (see the tasks) this is a client bug but the desktop shouldnt crash none the less
seems to occur only sometimes only on fboios
Reviewed By: lblasa
Differential Revision: D46894387
fbshipit-source-id: f9c34fe8fb32691486455224f82bed9c3dce6cef
Summary: Previously there was no way to get of this state
Reviewed By: aigoncharov
Differential Revision: D46803900
fbshipit-source-id: 2eb0eb41b58064659ef1d2cff245a2b8d7e2f261
Summary: There was an issue with cropping introduce by virtualisation and the position of the scroll view in the hierachy. Its a bit fragile but it works now.
Reviewed By: lblasa
Differential Revision: D46761831
fbshipit-source-id: ce001c6f4fe7ddc111edf0098f75a1273c84472d
Summary: Now the tree is virtualise the dom based scrolling effect doesnt work. Instead have to reimplement the search on the raw data and use the virtualiser to scroll, this isnt idea but it is still very fast and we can use this to later implement the browser style 4/8 results with ability to page through them.
Reviewed By: aigoncharov
Differential Revision: D46760491
fbshipit-source-id: 9c9b9961f084b39f86fd2aa94ab8e33ca476788b
Summary:
Following feedback from https://fb.workplace.com/groups/443457641253219/permalink/587444816854500/
When pressing left arrow and is already collapse goes to parent, when pressing right arrow and is expanded will go to first child. this mimics behaviours in mac os and other ides.
Also refactored kb scroll to use row virtualiser instead of dom refs
I also fixed the kb scroll hijacking, previously we were using a setTimeout, if you held a key down for a long time then the timeout would fire and the mouse enter event would briefly fire causing the hover position to jump. I now use a more robust approach were we just reserve the focus input for 250ms from the keyboard input, each time the key is held this reservation is extended slightly.
Changelog: UIDebugger, pressing left arrow jumps to parent after collapse. Pressing right arrow enters after expand. Similar to file browsers in IDES
Reviewed By: aigoncharov
Differential Revision: D46760448
fbshipit-source-id: da45d81056aa070be84b2db972400d650b86a172
Summary:
Removed previous memoization approach as it was causing issues and very inconsistent perf increase due to the indent guides often causing half the tree needed to rerender.
New approach is using react virtual. Its very fast in all cases including initial render off the wire. It does require 2 hacks.
1) React virtual requires you to explicitly size your parent component. In all the examples they have a height in px. This doesnt really work given we can resize the window. To mitigate this I added a grandparent component that is sized correclty with flexbox, then i use a layout effect to grab the height from the grandparent ref and set it to the scroll parent ref
2) Due to the implementaion of react virtual the width of the items in the tree is not correct. By default all the content overflows the box and the box doesnt grow automatically to fill the content. I think this is due to absolute positioning which breaks all the normal layout engine rules. The fix is to get the scrollWidth of the parent scroll view. (scrollWidth is the width of the element including overflow) and then set it via the refs we have on the tree item elements. This is also done in a layout effect.
changelog: UIDebugger virtualized UI to improve rendering performance
Reviewed By: aigoncharov
Differential Revision: D46724776
fbshipit-source-id: 75a6d35542066bd788aa4536481dedc72f667fc1
Summary:
There were a small number of styles / attributes that were missing, this addresses this.
Similar to the bloks minification map there are some special hardcoded reserved ids, if that doesnt work then you can look into a special place for each style
I also refactored the transform metadata method as it was getting very nested and hard to understand.
Reviewed By: aigoncharov
Differential Revision: D46799392
fbshipit-source-id: 8de8a2740f45ddb23a1bc9abb7bb36f969cf1fbb
Summary:
`setProcessState` does some adjusting to PATH. This was only ever done for Electron.
This change moves that functionality to FlipperServerImpl which is the one what orchestrates. By doing this, flipper server also benefits from getting these adjustments.
Reviewed By: antonk52
Differential Revision: D46836659
fbshipit-source-id: f98291d320cf9b7f3808223af8745c068b1318ce