Summary: People complained about barely noticeable filtered state indication multiple times
Reviewed By: antonk52
Differential Revision: D45394233
fbshipit-source-id: 60a3531b1808ae8f95ce8cd405a20b74bad0ed46
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
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
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
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
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
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
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
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
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
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
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
Summary:
^
There's no references to this anywhere, so delete.
Reviewed By: antonk52
Differential Revision: D45309041
fbshipit-source-id: e62e94b089eee30b82b05f64c8e7b31dd03597b6
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
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
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
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
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
Summary: Requested by antonk52 and MSYS team
Reviewed By: passy
Differential Revision: D44662243
fbshipit-source-id: 2bace476c4e79b6a05bfb89ddc3e6acb437c6c3b
Summary: This way plugins get something meaningful when they call `getFlipperLib()` in their tests
Reviewed By: LukeDefeo
Differential Revision: D44662821
fbshipit-source-id: c13800f9d8e905ae4a89955f2186adb816730b77
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
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
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
Summary:
`onClick` was not getting called if it wasn't paired with `canSetCurrent`.
Ultimately, we can benefit from propagating this event in all cases as to give indication of whenever a marker has been selected.
Reviewed By: antonk52, aigoncharov
Differential Revision: D44628819
fbshipit-source-id: bee910b48ad065d7479e247fbacdcd738f281b26
Summary:
Make it more specific as to keep it consistent with the other types.
Do not export JSON.
Reviewed By: antonk52
Differential Revision: D44625218
fbshipit-source-id: 9cab52ee7e7be21d13f85102597a60c9be967fd0
Summary: Leverage the properties prop of `TimelineDataDescription`. Whenever an event is selected, the event payload is shown as the event properties.
Reviewed By: antonk52
Differential Revision: D44497058
fbshipit-source-id: 09782d583957a0df8c3efd3f5a62af6b321a26e3
Summary: Because Tabs now depend on the selected node (i.e. some nodes have events, some don't) they need to use a key.
Reviewed By: antonk52
Differential Revision: D44624658
fbshipit-source-id: 693983f6a82c090adae3a2e009873d903626ab75
Summary:
Based on the stack trace in T145744183, `activeChildIdx` could point to a non-existent array element.
Previously, we used to:
1) Find the index of the activeChild in the non-filtered array of children
2) Filter the array
As a result, it could lead to some of the elements in the child array to be filtered and shifting activeChildIdx, making it invalid.
Now, we search activeChild in the already filtered array.
Reviewed By: LukeDefeo
Differential Revision: D44575170
fbshipit-source-id: 2cb9a0b24badc8509a859011694f77b048d93316
Summary: DataInspector can use `any` value to inspect. Lift the constraint from TimelineDataDescription as ultimately is not necessary i.e. the right inspector will be used based on the type of properties.
Reviewed By: antonk52
Differential Revision: D44572963
fbshipit-source-id: ad8a257020c90e18468e905f2beda44c2ee06368
Summary: On downloading the new flipper update some of the older plugins which are on a different release cycle may try to call getUser which was removed in this stack in favour of getCached user and fetchUser, adding this back temporarily so those calls dont fail. This can be removed down the road once those plugins have soaked into the user base
Reviewed By: ivanmisuno, aigoncharov
Differential Revision: D44541277
fbshipit-source-id: 95e67d5ba11bbc26590d2789127cbf6a68c54f16