Commit Graph

3412 Commits

Author SHA1 Message Date
Lorenzo Blasa
a96caacb2b EnvironmentInfo as argument to start server
Summary:
Clean initialisation by passing down the environment info to start server.

(Also rename dir to path as that's the name used in other places)

Reviewed By: passy

Differential Revision: D45731751

fbshipit-source-id: a60fdd49c567fc312d1f8da72db3a46a0828c140
2023-05-11 04:10:16 -07:00
Luke De Feo
0f9eeda2dd Remove ctrl to stop drawing children
Summary: This feature is annoying and useless

Reviewed By: antonk52

Differential Revision: D45696921

fbshipit-source-id: 01c007d3e196a7511b940b7973bb8e6a880e27e5
2023-05-10 09:14:47 -07:00
Luke De Feo
da268f0095 Bump mock-fs
Summary: various tests failing due to this dep

Reviewed By: antonk52

Differential Revision: D45731274

fbshipit-source-id: cb79199c15a8973f50e5075dab16605d0120b30c
2023-05-10 07:47:19 -07:00
Szu-Kai Hsu
10f967fe60 feat: Update paste argument schema to support specified programming language (#4732)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/4732

This diff adds a `language` field into `CreatePasteArgs` type to potentially specify programming language in the paste service

Reviewed By: mweststrate

Differential Revision: D45701098

fbshipit-source-id: 080d76e5ff332518881e9c6b84aa47aaea680309
2023-05-10 07:36:49 -07:00
Lorenzo Blasa
fdd1a9e887 Use different location for token depending on build type
Summary:
For Electron builds, use the same directory as certificates and keys.

For headless builds, then use the static directory.

Reviewed By: antonk52

Differential Revision: D45728515

fbshipit-source-id: 55a3b143a9289fed23e57cbf6b701a5e48d27332
2023-05-10 04:35:17 -07:00
Lorenzo Blasa
b94f6b6152 Set the right environment info for headless builds
Summary: The isHeadlessBuild flag was not properly set.

Reviewed By: antonk52

Differential Revision: D45728435

fbshipit-source-id: 3616c4358114d4f3d96372766dabf48b27b44333
2023-05-10 04:35:17 -07:00
Ruslan Lesiutin
1086e05ba0 upgrade react-devtools to v4.27.7 in fbsource (#4706)
Summary:
X-link: https://github.com/facebook/react-native/pull/37146

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

Changelog: [Internal]

Updating react-devtools-* packages to v4.27.7

Reviewed By: jacdebug

Differential Revision: D45317588

fbshipit-source-id: 5625f654feffced92ca933796e90ac10fc4801ff
2023-05-09 07:13:39 -07:00
Lorenzo Blasa
238f40f55d Mandate auth token to connect over TCP
Summary:
Until now, launching flipper-server with TCP would accept any incoming connection as long as it comes from the same origin (localhost) using web socket host origin verification.

This is not entirely secure as origin can be spoofed with tools like curl.

Our team created a security review and a proposal was written:
https://docs.google.com/document/d/16iXypCQibPiner061SoaQUFUY9tLVAEpkKfV_hUXI7c/

Effectively, Flipper can generate a token which is then used by the client to authenticate.

This diff contains the changes required to generate, obtain, and validate authentication tokens from clients connecting to flipper over TCP connections.

The token itself is a JWT token. JWT was chosen because it is a simple industry standard which offers three features which can immediately benefit us:

- Expiration handling. No need for Flipper to store this information anywhere.
- Payload. Payload can be used to push any data we deem relevant i.e. unix username.
- Signing. Signed and verified using the same server key pair which is already in place for certificate exchange.

Additionally, the token is stored in the Flipper static folder. This ensures that the browser and PWA clients have access to it.

Reviewed By: mweststrate

Differential Revision: D45179654

fbshipit-source-id: 6761bcb24f4ba30b67d1511cde8fe875158d78af
2023-05-05 07:52:13 -07:00
Luke De Feo
42320e1c09 Remove focus mode when frame no longer contains previously focused mode
Summary:
The logic was a little outdated to when we were accumulating subtrees, now its much simpler, if the previously focused id is not in the new frame, remove focus

Changelog: UIDebugger, fix focus mode behaviour

Reviewed By: mweststrate

Differential Revision: D45523026

fbshipit-source-id: 894a85df21cc27eb57dbef411ae57743d0c4f753
2023-05-03 06:24:07 -07:00
Andrey Goncharov
78b650dbe0 Make fliters non-exclusive
Summary:
Project: https://docs.google.com/document/d/1SbFrpvfIShX5npANNa1AkgHliR1M-VMLW5Q9RhREt94/edit

Also, sync quick filters with the internal filter state of the table

Reviewed By: antonk52

Differential Revision: D45396180

fbshipit-source-id: 6a8ef4ac61a49ec7af71ae9e26f20f395fb34cef
2023-04-28 12:19:45 -07:00
Andrey Goncharov
65daaf80f1 Expose table state from table manager
Summary: Project: https://docs.google.com/document/d/1SbFrpvfIShX5npANNa1AkgHliR1M-VMLW5Q9RhREt94/edit

Reviewed By: antonk52

Differential Revision: D45395107

fbshipit-source-id: 8ca3639a109e40b26acead8bb4b0eace68ac9bce
2023-04-28 12:19:45 -07:00
Andrey Goncharov
424985a75a Expose removing filters programatically
Summary: Project: https://docs.google.com/document/d/1SbFrpvfIShX5npANNa1AkgHliR1M-VMLW5Q9RhREt94/edit

Reviewed By: antonk52

Differential Revision: D45394864

fbshipit-source-id: d2c140d542eaee157cbad5b6a0f29fc62f73a18b
2023-04-28 12:19:45 -07:00
Andrey Goncharov
647bc06f3a Make filtered state of columns more apparent
Summary: People complained about barely noticeable filtered state indication multiple times

Reviewed By: antonk52

Differential Revision: D45394233

fbshipit-source-id: 60a3531b1808ae8f95ce8cd405a20b74bad0ed46
2023-04-28 12:19:45 -07:00
Andrey Goncharov
9d2de05723 Allow to disable column sorting
Summary: Project: https://docs.google.com/document/d/1SbFrpvfIShX5npANNa1AkgHliR1M-VMLW5Q9RhREt94/edit#

Reviewed By: antonk52

Differential Revision: D45394048

fbshipit-source-id: 4255777d477f8240f52b5f82c28e922ef1011989
2023-04-28 12:19:45 -07:00
Andrey Goncharov
a819c77f18 Expose addColumnFilter from DataTable
Summary:
Project: https://docs.google.com/document/d/1SbFrpvfIShX5npANNa1AkgHliR1M-VMLW5Q9RhREt94/edit#

Used to set filters externally in next diff

Reviewed By: antonk52

Differential Revision: D45393487

fbshipit-source-id: 15c1186292f45de455ebbcbfced7a63c824a6c19
2023-04-28 12:19:45 -07:00
Andrey Goncharov
27eb5978a9 Pass TableManager instance to Details sidebar of any MasterDetail table
Summary: Project: https://docs.google.com/document/d/1SbFrpvfIShX5npANNa1AkgHliR1M-VMLW5Q9RhREt94/edit#

Reviewed By: passy

Differential Revision: D45354900

fbshipit-source-id: 7f968c9d235f5d8bb23e59e50e39fc1e9f498f46
2023-04-28 12:19:45 -07:00
Andrey Goncharov
423a8d1935 Revamp newScript detailed view
Summary: Project: https://docs.google.com/document/d/1SbFrpvfIShX5npANNa1AkgHliR1M-VMLW5Q9RhREt94/edit#

Reviewed By: antonk52

Differential Revision: D45353402

fbshipit-source-id: 88cc26f9886fd7b2cdcd5ca3d021790d8669c140
2023-04-28 12:19:45 -07:00
Luke De Feo
862592e03d Account for race conditions with stream intercetor
Summary:
Given that stream interceptor is async the folling race conditino could occur.

Frame at time t=0 comes in, we yeild to the event loop while fetching metadata, fetch takes 5 ticks

Frame at time t=1 comes in, we yeild to the event loop but fetch takes 1 tick

At time t=2 the second frame is augmented  and display

At time t=5 the first fetch returns and we display and older frame

This is a simple check to avoid this.

Reviewed By: aigoncharov

Differential Revision: D45314013

fbshipit-source-id: 054e7e6beb52dfbfd94bc9f8ee3d0a758a669f66
2023-04-27 07:28:41 -07:00
Luke De Feo
7ce19f4359 Add static attributes from reduction trace
Summary:
In order to support this the stream inceptor transform nodes now is able to return a list of new meta enties, since these are new attributes we try to mimic what would have happened if they were generated on the client. This makes the rest of the logic downstream simpler

Introduced metadata register, same idea as on the clients.
The attributes available are a mixed bag, will work with blok server to imporove

Reviewed By: antonk52

Differential Revision: D45177781

fbshipit-source-id: 9d761b2f682e7e0fd4710f5b2e9d9d6ff26741fc
2023-04-27 07:28:41 -07:00
Luke De Feo
42963b16ab Subtree Update => Framescan
Summary: This is purely a cosmetic change but more accurately reflects the nature of how we send data from device to desktop. Ie its always an entire frame rather than subtrees. This helps with correctness great Both ios and android are like this and have been for a while.

Reviewed By: lblasa

Differential Revision: D45080088

fbshipit-source-id: 8f68047056c4825b0b1dd89f26c7fa462e2ecb1b
2023-04-27 07:28:41 -07:00
Luke De Feo
47fe0641aa Add error handling for reduciton trace and remove redundent memoization
Summary: We were memoizing the reduction trace fetch in the stream interceptor but this was redundant. We let the library handle that. Also pulled the calls into the uidebugger so we have more control over the retry behaviour

Reviewed By: mweststrate

Differential Revision: D45079132

fbshipit-source-id: 7354fce0fddbebdb0b027dade03398a36adc5e9a
2023-04-27 07:28:41 -07:00
Luke De Feo
4fdfbdc8df Open in IDE for bloks derived components
Summary:
* Added line number as an attribute to node, in theory we could get it from the device in the case of compose
* dont need to use miles as have the file already
* cleaned up naming in ide file resolver so its clear its the qualified name we are talking about

Reviewed By: lblasa

Differential Revision: D45079135

fbshipit-source-id: 24f2d5814800a4a404b680599d307cc750758fcd
2023-04-27 07:28:41 -07:00
Luke De Feo
7cc1a1246e Process Bloks derived components
Reviewed By: lblasa

Differential Revision: D45079131

fbshipit-source-id: 363f5ed2fedc6183130ef0185f8ff5bf58579c10
2023-04-27 07:28:41 -07:00
Luke De Feo
e34f3f4883 Process Bloks Bound tree
Summary:
1. Need to unminify the names from something call the minification map
2. Bloks attributes themselves are already minified. However the uidebugger also has a similar concept in its own metadata so the data we get off the device has been minified twice. To fix this we remap the metadata off the device using the minification map. In order to find the correct entry we need to get the style id of the bloks model parent. this is sent as a metadata custom attribute

Reviewed By: lblasa

Differential Revision: D45079136

fbshipit-source-id: bb448d81918c0b8c9e8ac87c4390b46a8a374d78
2023-04-27 07:28:41 -07:00
Luke De Feo
c96535e15f Infrastructure for stream inteceptor transform metadata
Summary:
Hooked up metadata to the stream inteceptor, enhanced error handling to deal with:
1. Recording subsequent metadata messaages that came in while in error state such that all of them are processed
2. Recording any frames that came in while in error state such that after recovering from error we have the latest state
3. Splitting out recoverable and non recoverable errors more explicitly

Reviewed By: lblasa

Differential Revision: D45079137

fbshipit-source-id: 67a2ffef72d94d2b1492f201a2228659720e306b
2023-04-27 07:28:41 -07:00
Luke De Feo
fd673d0535 Infrastructure for stream interceptor transform nodes
Summary:
Added stream interecptor which gets a chance to augment the messages off the wire. Stream interceptor transformations are async and can fail  due to network errors so added error state with a retry button. The retry button will just call the function again.

I am also handling errors better generally when this method fails unexpectedly, logging more clearly what went wrong and communicating it to the user

Did some refactoring of subtree update event to support this

Reviewed By: lblasa

Differential Revision: D44415260

fbshipit-source-id: a5a5542b318775b641d53941808399a8fa4634d3
2023-04-27 07:28:41 -07:00
Luke De Feo
6b7c5297a5 Added Hidden attributes to node
Summary: Type is any as it can be litterally anything, using json is a bit of pain as we have to do a lot of type checks to access anything

Reviewed By: lblasa

Differential Revision: D45079133

fbshipit-source-id: bcce93a1fce48d2779a648576f12df6392a0938e
2023-04-27 07:28:41 -07:00
Luke De Feo
9d34d12111 Added custom attributes to metadata typing
Summary: These replace tags, and are KV instead. They allow us to send framework specific data that arent common enough to be promoted to the top level, similar to hidden attributes. They will be needed for bloks

Reviewed By: lblasa

Differential Revision: D45079134

fbshipit-source-id: e4962bd56f0c24608504367f50cd796fd3d79fcd
2023-04-27 07:28:41 -07:00
Luke De Feo
1777cbf697 Remove coordinate update
Summary: This is no longer needed or sent by the client given our new approach to frames

Reviewed By: antonk52

Differential Revision: D44872566

fbshipit-source-id: 9ec340a5cc68605f730cf6677fb89778bf77a3a1
2023-04-27 07:28:41 -07:00
generatedunixname89002005306973
f8ca1551d7 Flipper Release: v0.190.0
Summary: Releasing version 0.190.0

Reviewed By: mweststrate

Differential Revision: D45308248

fbshipit-source-id: 3b03945474d644fec9a686f0f908864dbbca2322
2023-04-26 05:30:21 -07:00
Lorenzo Blasa
2583a076c0 Delete unused code
Summary:
^

There's no references to this anywhere, so delete.

Reviewed By: antonk52

Differential Revision: D45309041

fbshipit-source-id: e62e94b089eee30b82b05f64c8e7b31dd03597b6
2023-04-26 04:42:43 -07:00
Lorenzo Blasa
8cd2bb97bf Add payload size to performance stats event
Summary: Payload size is useful to understand how much data is going down the wire for frame updates.

Reviewed By: LukeDefeo

Differential Revision: D45114582

fbshipit-source-id: d0c2a01deb84a67017db88bd396b4859e08d0037
2023-04-20 09:11:55 -07:00
Pascal Hartig
22e28a4f3e Bump prettier from 2.6.2 to 2.8.7 in /desktop
Summary: Updates prettier and applies the fixes.

Reviewed By: antonk52

Differential Revision: D45087515

fbshipit-source-id: 226814ab4805eb12e64c2134407164498c708c0a
2023-04-19 03:04:19 -07:00
Pascal Hartig
0c85da8651 Demote unhelpful "Network Error" from axios to warning
Summary:
Axios can create rather unhelpful errors, e.g. https://www.internalfb.com/logview/details/flipper_javascript/3201603bcb7148a3f37775f184dbda44?trace_key=f2a7f3d0e7b914b8a3adf30648263313&selected-logview-tab=shared

This should hopefully turn them into warnings.

Reviewed By: antonk52

Differential Revision: D45043390

fbshipit-source-id: 90108b7056943214d78ec9c235ac11aae9a7ecdc
2023-04-17 05:06:50 -07:00
Andrey Goncharov
ff85744911 Make DataView report window changes
Summary: Project: https://docs.google.com/document/d/1x-1ShlxXCM2od9JMO6PP14Cuqq0OrVe1Qd7FUwTos9A/edit

Reviewed By: antonk52

Differential Revision: D44748055

fbshipit-source-id: 409c272b12fb29c156efdaa1ab26d4d6a2936645
2023-04-06 10:10:34 -07:00
Andrey Goncharov
4e898eb01a Allow passing external virtualizedRef to DataTable
Summary: External virtualRef allows us to scroll the table programmatically whenever we want

Reviewed By: antonk52

Differential Revision: D44746968

fbshipit-source-id: ad8e0fb3b43881ed8f4ba114cd35c08643ef0d3b
2023-04-06 10:10:34 -07:00
Michel Weststrate
f63ea1f9bd fixed unhandled errors in React DevTools bridge
Summary:
Unhandled errors from this plugin where showing up in our monitoring, made sure the error is handled now. Lowered to warning as this is probably a transient / connection issue.

See https://www.internalfb.com/logview/details/flipper_javascript/e7180deffd12e5900be754026780edbe/?trace_key=6abbef91dc1324bab958ca420ca70356&selected-logview-tab=All+Traces

Reviewed By: lblasa

Differential Revision: D44729212

fbshipit-source-id: 4c83eeab13bd2eb5c6f8ec563a35092eaf15fe30
2023-04-06 03:20:42 -07:00
Michel Weststrate
d19fcb19a8 Don't die on timeout on fetching plugins
Summary: The error below was uncaught, showing up in our error monitoring, however, since it is a transient problem (probably an app not responding, too slow in startup, paused in a debuggger, emu being slow, whatever, this isn't actionable from our side, so lowered to warning

Reviewed By: lblasa

Differential Revision: D44717738

fbshipit-source-id: aefd5e58b4953f563ed155f7a252c130aaafe7ab
2023-04-06 03:20:42 -07:00
Michel Weststrate
cd7a6bfc40 Log queue overflows
Summary: ^

Reviewed By: aigoncharov

Differential Revision: D44705144

fbshipit-source-id: 9a31d18c1f433bd09d399c3b4dce28726e1e9c72
2023-04-06 03:20:42 -07:00
generatedunixname89002005306973
8b33b25eda Flipper Release: v0.189.0
Summary: Releasing version 0.189.0

Reviewed By: ivanmisuno

Differential Revision: D44703759

fbshipit-source-id: 447ecacea6f9ae59ddedb405e5fa3915193bc50c
2023-04-06 03:15:40 -07:00
Andrey Goncharov
794c29f320 Add "overlay" sidebar position to MaterDetail
Summary: Project: https://docs.google.com/document/d/1x-1ShlxXCM2od9JMO6PP14Cuqq0OrVe1Qd7FUwTos9A/edit

Reviewed By: ivanmisuno

Differential Revision: D44706158

fbshipit-source-id: 16c70a7c9a414a6c32d690eb05ae5b08818dd400
2023-04-05 07:22:15 -07:00
Lorenzo Blasa
985a9eda33 Fix Visualiser cropping issue
Summary:
An issue was reported for the visualiser whereas there seemed to be some cropping taking place on the right hand side.

https://pxl.cl/2BhPT

The issue was the resizable panel and visualiser both were set with the same width.

The resizable panel was set as to have a gutter which was not taken into consideration, add this width to the panel width and that fixes the issue.

Also change box sizing model as to not affect the dimensions of the wireframe.

Reviewed By: LukeDefeo

Differential Revision: D44664377

fbshipit-source-id: e640af2090f7c3378e624626fe3ea5df631caa11
2023-04-04 22:10:39 -07:00
Lorenzo Blasa
a419aaaf1b Outer Border removal
Summary: Not in use, remove.

Reviewed By: LukeDefeo

Differential Revision: D44664459

fbshipit-source-id: 226fa7b36eea6696057f46ae482c16ca1959e099
2023-04-04 22:10:39 -07:00
Luke De Feo
a9b17ac637 Add log tailing infra and downgrade resize observer error to warn
Summary: Resize oberserver limit exceeded appears to be a benign error that we can safely ignore, added ability to change log level. Given we report errors to our user logs, fb log view and console the console log patching has been centralised and now logs are pushed to whatever destinations we have.

Reviewed By: lblasa

Differential Revision: D44666836

fbshipit-source-id: e028dbc52b00947097833f9f3619189226247e1d
2023-04-04 07:58:57 -07:00
Lorenzo Blasa
8f5fcf9444 FrameworkEventsInspector
Summary:
As events get bigger, this change includes the following:
- Dedicated event inspector
- Stacktrace viewer for events with stacktrace attribution
- Stacktrace viewer is displayed within a new BottomPanel. BottomPanel can display any React component and can be reused in the future in different use cases.

Reviewed By: LukeDefeo

Differential Revision: D44628768

fbshipit-source-id: 71a9ef87e71c9a17f58c2544a1aa356eed14ed27
2023-04-04 05:54:42 -07:00
Andrey Goncharov
7f111a11de Expose isConnected and currentUser
Summary: Requested by antonk52 and MSYS team

Reviewed By: passy

Differential Revision: D44662243

fbshipit-source-id: 2bace476c4e79b6a05bfb89ddc3e6acb437c6c3b
2023-04-04 05:26:31 -07:00
Andrey Goncharov
f8a1f38c0a Set flipperLib implementation automatically in unit tests
Summary: This way plugins get something meaningful when they call `getFlipperLib()` in their tests

Reviewed By: LukeDefeo

Differential Revision: D44662821

fbshipit-source-id: c13800f9d8e905ae4a89955f2186adb816730b77
2023-04-04 05:26:31 -07:00
Andrey Goncharov
b3307baafe Make isLoggedIn report user value instead of bool
Summary: It makes little sense to hide this info from developers. It was also requested by antonk52

Reviewed By: LukeDefeo

Differential Revision: D44631235

fbshipit-source-id: 1756c5ca2a95b2f815f8c4336621d3c057b704f2
2023-04-04 05:26:31 -07:00
Andrey Goncharov
7edaf24d5c Deprecate isLoggedIn request
Summary: It no longer makes sense since we are going to export "isLoggedIn" atom that always stays up-to-date in subsequent diffs

Reviewed By: LukeDefeo

Differential Revision: D44631234

fbshipit-source-id: 3e3b29b77d250eef430e81eef80098afe38a1538
2023-04-04 05:26:31 -07:00
Lorenzo Blasa
b0a8dbca01 MarkerTimeline to show a more obvious selected state
Summary:
When a marker is selected, it was difficult to notice any style differences.

This changes makes it more obvious when a marker is selected.

Reviewed By: antonk52, aigoncharov

Differential Revision: D44628828

fbshipit-source-id: c4634338e04969f3d973137ad861cb999b28c139
2023-04-04 04:05:15 -07:00