Summary:
For every client, there should be a device, otherwise flipper isn't working properly. However, these two things are created independently and either can be created first.
So make the device a promise, that will get fulfilled with the device if any appears in a reasonable time frame.
Previously, if there wasn't a device at the time needed, we just used '' for the name, I've preserved this functionality, though with a potential small delay.
We should be able to get rid of the NEW_CLIENT_SANITY_CHECK in the connections reducer, because the success rate of this promise achieves the same result.
Reviewed By: passy
Differential Revision: D14242264
fbshipit-source-id: ad21a179160a766304ff90f8c81e0563b990ebac
Summary: This was annoying me so I thought I'd rename it before anyone else starts to use the prop.
Reviewed By: danielbuechele
Differential Revision: D15919159
fbshipit-source-id: c351503797cedc5c11a158cec62515b1eb791a70
Summary:
When the text is too long either for the crash name and the crash reason, user is not able to see scroll and see the text.
Bug:
{F162636692}
Reviewed By: danielbuechele
Differential Revision: D15907908
fbshipit-source-id: a9557074e310728d4cb4825ec18740ca0ea0c12f
Summary:
Fixes the bug which didn't fire the crash notification.
Bug:
{F162618487}
Reviewed By: passy
Differential Revision: D15905154
fbshipit-source-id: 8b34cc567789fbf7f255663a14017cbe300ac387
Summary:
Seemed a bit weird typing a regex without monospace.
Still would be good to have syntax highlighting. I tried using prismjs, but it seems to not work by default on Input elements.
Reviewed By: danielbuechele
Differential Revision: D15918742
fbshipit-source-id: b44c228b30f37f97811d09c80b191b52282720f8
Summary:
This diff fixes the bug which showed the length of characters as the byte length when the response headers didn't have `content-length` in it.
This diff uses `Buffer.bytelength` api to calculate the same.
Reviewed By: danielbuechele
Differential Revision: D15899547
fbshipit-source-id: 29f4e8a741f4dd550b9191cc31bf6930065653b3
Summary: Means that attribution is now part of the export, too.
Reviewed By: oprisnik
Differential Revision: D15877937
fbshipit-source-id: e089597269b8977320d06284179f72d40d01ebf2
Summary:
Now that the events tracking works again, make sure that the padding is not all over the place in the sidebar.
Before:
{F162525912}
Reviewed By: priteshrnandgaonkar
Differential Revision: D15875758
fbshipit-source-id: a30f057c8c0dc2dc77fc40f416ff565cc6621109
Summary:
Adds regex support to the logs plugin.
You can now do the same for any other SearchableTable, just by adding the prop `regexSupported={true}`
For other types of searchables, like maybe the layout hierarchy, we'll need to modify the class that does the filtering for that type.
I've done what I can with the UI to make it usable, though it would be awesome to have some proper regex syntax parsing and highlighting going on. It will go red if it's not valid at least.
Reviewed By: danielbuechele
Differential Revision: D15898806
fbshipit-source-id: 425edb1834dcc14ca741ac7fc8d566b4f2763c63
Summary:
deepLinkPayload is passed as initialQuery to Search component and in componentDidMount we perform search if initially query is defined.
This does not handle the case if node is not present in the layout inspector tree.
Reviewed By: danielbuechele
Differential Revision: D15874343
fbshipit-source-id: c604baea16838f07e8f8bfc0f1e67c5e830dfe97
Summary: Rows that were virtualized and currently not rendered weren't copied, because we were using the DOM to get their content. This changes this to use out `textContent` utility to get the value of a row and therefore enables copying rows that are not rendered.
Reviewed By: jknoxville
Differential Revision: D15898935
fbshipit-source-id: c372bc4e77477214860f0513b442374da8f72416
Summary: Copying/Creating a Paste from a network request only copied the domain. Now we are including all request/response data.
Reviewed By: jknoxville
Differential Revision: D15898038
fbshipit-source-id: 570ca5bb76e65b90b2b467856e6d3747682cc20d
Summary:
Where was a bug, where a range selection using the shift key wasn't working, when the start of the selection was outside the viewport.
The problem was caused by `selectInRange` firing twice, the second time with wrong arguments. In this diff, we are not firing the `onMouseEnterRow` handler, when the shift key is pressed.
Reviewed By: jknoxville
Differential Revision: D15897880
fbshipit-source-id: 95402dcbe9f8ce691be16cfd103918b09ff9e75c
Summary:
The previous setup would first check for the presence of a `persistedStateReducer` and then skip the standard subscriptions if this was found. This is a bit of a foot gun because simply by introducing a new function, you'd silently lose your existing subscriptions.
There are still some good reasons to support both as some subscriptions may not require persisting as they're directly tied to the state in the app at a given point.
Reviewed By: danielbuechele
Differential Revision: D15856372
fbshipit-source-id: a36bf40b1ceac431964610571eb70fff687b7607
Summary: display thermal information of connected device in the CPU plugin on a sidebar
Reviewed By: charles011
Differential Revision: D15715680
fbshipit-source-id: 1216da7bf8e0e6277d06aa02f40e6278f8e7fa07
Summary:
The logs plugin had an inconsistency where you'd be tailing the logs, and then hit "Clear Logs", which would empty the screen, but as the page fills up again, it would stay in the current position and not scroll with the new ones coming in.
This makes it consistent by making the behaviour:
```
If not props.stickyBottom
never autoscroll, e.g. for static tables of data
else
if scrolled to the bottom
autoscroll
if all the rows fit into the screen at once
autoscroll
```
Reviewed By: passy
Differential Revision: D15856813
fbshipit-source-id: 1357b0e39b576dbe69d260545b21fdab808d2bd2
Summary:
We're if-ing over an enum, so this should be a switch.
Also removed the edge case for the share sheet and
made the error handling part of the component so the
user actually sees it.
Reviewed By: jknoxville
Differential Revision: D15853056
fbshipit-source-id: 241ed0f2e042b08c4c157db9616175297b683ac3
Summary:
Debouncing search to prevent triggering multiple searches, while typing.
Now, a search is only triggered, when the input hasn't changed for more than 200ms.
This affects all SearchableTables.
Reviewed By: passy
Differential Revision: D15855343
fbshipit-source-id: 261cf601249ac604c865ae10deb25d5c836f964a
Summary:
Makes the timestamp column visible by default in the logs plugin.
Can still be hidden by right clicking the column name.
Reviewed By: passy
Differential Revision: D15855890
fbshipit-source-id: 349a224c6a0ddfe607e7d92ce11df07c42b5db36
Summary:
The test used to exit before the promise was fulfilled, so essentially all tests passed. For more details, read [here](https://jestjs.io/docs/en/asynchronous.html)
> Be sure to return the assertion—if you omit this return statement, your test will complete before the promise returned from fetchData is resolved and then() has a chance to execute the callback.
Reviewed By: jknoxville
Differential Revision: D15804017
fbshipit-source-id: 769caa8957737b4864c5888d28854920e6a1447a
Summary:
Adds an argument to the headless Flipper to print the list of available plugins. Added `--list-plugins`.
Currently the startFlipper function is not scalable enough to add new arguments and its implementation. I am planning to tackle this with the list of Actions which will be closure. So adding a new argument with its implementation will be just appending a closure at the correct location in an array. Will work on that in the later diff stacked on the current one.
Reviewed By: jknoxville
Differential Revision: D15789778
fbshipit-source-id: 91ba472617d593c3490bb932590a06d83597cba7
Summary:
In React VR we doing automatic retries in cases when request takes too much time. It helps in cases when network quality is poor. As long as this implicit for developer, we would like to highlight this information in insights. It helps to explain why request were so long.
This diff adds one more field to insights which displays amount of time spent on retries, count and limit of them.
https://pxl.cl/CntV
Reviewed By: passy
Differential Revision: D15845598
fbshipit-source-id: 3e0d1baf93b6be5c4d1c6c1d2b64c05852b843b7
Summary:
https://pxl.cl/Cd84
In React VR we got a case to explain developers why their requests took so long. To do this we export timings from Curl and send them in Flipper. This diff added visualization for this data. Any other platforms can use this feature by extending json which they send to Flipper.
Reviewed By: jknoxville
Differential Revision: D15804247
fbshipit-source-id: 9deea5c9f5f7c5416b42c476f7f0ed431c8dea04
Summary: Enable highlight of multiple rows so they can be copied
Reviewed By: passy
Differential Revision: D15822749
fbshipit-source-id: 2302ddd27a57574c1eaf1f1395939c9f006ba301
Summary:
Select multiple rows, and then right click, or use Ctrl-click.
This was broken, it was resetting the selection when this happened.
This fixes it.
Now after selecting multiple, what happens depends where you right-click.
If you right-click within the current selection, it stays selected and you can copy it.
But if you right-click outside the current selection, that row becomes the new selected set, and you will just be able to copy that one. This feels right to me.
Reviewed By: passy
Differential Revision: D15822668
fbshipit-source-id: 6a6cda8a8f16fec55cffa52c1c2ff958c86b3f43
Summary: Transfer it from the device, reformat the notification to make use of it.
Reviewed By: danielbuechele
Differential Revision: D15779267
fbshipit-source-id: 747dc7f895528618ff6a07c15b7f72bf6a1adde9
Summary:
Trying to detect version mismatches between the running Simulator and the version of Xcode's CLI tools.
What is done in this check:
- The running path of the running simulator is queries from `ps`
- The path of Xcode CLI tools is queried using `xcode-select -p`.
- The two paths are compared if they differ
Reviewed By: jknoxville, passy
Differential Revision: D15803238
fbshipit-source-id: 6638312505fc950ff7869fd55494984bfffb677b
Summary:
We in React VR were need newer Chrome DevTools version to make our plugin work properly. Chromium version with required fixes were shipped in electron 5.0.0.
This diff bumps electron version and explicitly allows node integration (accessing require, process and other node related functions from window object in index.html), because it was disabled by default in 5.0.0.
Reviewed By: jknoxville
Differential Revision: D15693539
fbshipit-source-id: 4f71a07b2afaa489aec46940c924f4ad30ad0413
Summary: Adds the capability to customize rows in the elements inspector via a callback.
Reviewed By: danielbuechele
Differential Revision: D15738355
fbshipit-source-id: 27b91a74535736318b7fdb9d2eb44dfa20b4d77b
Summary: The "Conflict in temp dir" message was misleading when there were 0, rather than >1 file. This fixes that error message.
Reviewed By: passy
Differential Revision: D15716247
fbshipit-source-id: 572addf99f623cdcffd7602dd3935bb69a50d047
Summary: Add sidebar to the flipper CPU plugin. Sidebar displays detailed information about the selected CPU core
Differential Revision: D15696198
fbshipit-source-id: 47e687b4354653e6bef626cd3f27adcb219dbd28
Summary:
`StatusIndicator` works well as a flex child, but didn’t support usage in inline / text contexts.
Adding `display: inline-block` fixes that.
Reviewed By: danielbuechele
Differential Revision: D15695673
fbshipit-source-id: 30378d2292390b8d86c0a26c11571e5953b841f2
Summary:
Pulls out the local `Lamp` component from `PluginDebugge` into `StatusIndicator`.
This will allow to reuse the component in different context, to guarantee a consistent appearance of Flipper throughout.
For good measure, we make diameter and title configurable. Vertical alignment is changed from `margin-top` to `align-self`.
Reviewed By: danielbuechele
Differential Revision: D15692275
fbshipit-source-id: 438b2f5300175565dbf07d07a5d757936b4f7cfe
Summary:
Using `process.exit()` stops the node process without waiting for the event loop to finish, so when using async i/o, which is what happens when piped, if the output is buffered, the process can terminate before it finishes flushing the buffer.
This means you only get some of the output and the JSON is malformed.
This fixes it by calling `process.exit()` inside the flushed callback.
Reviewed By: passy
Differential Revision: D15624806
fbshipit-source-id: ea540ed5a40fb1811e5b705b190da96c8e54730d
Summary: Catch the exception thrown in xcrun, which will occur for linux machines and in the cases when Xcode command line toolchain is not installed.
Reviewed By: passy
Differential Revision: D15621368
fbshipit-source-id: f3044cee6f7a4b5ba927a33003f9690c1fe31586
Summary:
Adds a "Track Leaks" option that will show notifications (even retroactively)
for `CloseableReferences` that were tracked.
Reviewed By: danielbuechele
Differential Revision: D15622596
fbshipit-source-id: ef610379aa96f9a5e541f741af608db30bee74e1
Summary: Added unit tests for the "WASTED_BYTES" for the fresco plugin
Reviewed By: passy
Differential Revision: D15610871
fbshipit-source-id: dc9bd84363e1ba22fc96890b74e217372188a9d0
Summary:
Notification from plugins (especially network) could be very spammy. This diff introduces a throttle, so a plugin can only send a notification every 5 seconds. If a notification is sent earlier, it is not displayed and the counter is reset to 5 seconds from now.
In the notifications panel still all notifications are dispalyed.
Reviewed By: passy
Differential Revision: D15621427
fbshipit-source-id: ea5e3b39fdd5cdedff3fd5234e752800520a423b
Summary: Unrelated to what I was going to work on, so separate diff.
Reviewed By: jknoxville
Differential Revision: D15620643
fbshipit-source-id: a555bbd54adfe44fa7d566cb9cb6d31bd75be28e
Summary: Add a metric for the raw number of leaked closeable references.
Reviewed By: priteshrnandgaonkar
Differential Revision: D15603348
fbshipit-source-id: 03379e180b5822620e8e8347bef354edb3527d19
Summary:
The FlipperArray creation from JSONArray used to create an array of `null`'s instead of the FlipperObject, which used to crash the Flipper. Thus added a check in the flipper to not crash in the case when it receives array of nulls. Also fixed the Fresco plugin in mobile to send the proper FlipperArray.
Bug:
{F160049909}
Reviewed By: passy
Differential Revision: D15608297
fbshipit-source-id: 625e017d3bce4135ac699ee5aee8d871db378749