Commit Graph

919 Commits

Author SHA1 Message Date
Chenhao Xu
b41c4967a8 Flipper CPU Plugin: Thermal Information
Summary: display thermal information of connected device in the CPU plugin on a sidebar

Reviewed By: charles011

Differential Revision: D15715680

fbshipit-source-id: 1216da7bf8e0e6277d06aa02f40e6278f8e7fa07
2019-06-18 09:45:36 -07:00
John Knox
6bdaa6aff1 Keep autoscrolling even when a table is cleared
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
2019-06-18 09:34:16 -07:00
Pascal Hartig
977a304672 Fix sidebar display
Summary:
Before:

{F162109040}

Reviewed By: danielbuechele

Differential Revision: D15855444

fbshipit-source-id: c95ab1b0aa577dec5d493a0f6d166cb3aeeb7419
2019-06-18 03:14:14 -07:00
Pascal Hartig
098d0bdba3 Increase z-index
Summary:
Ensure that sheets aren't underneath the headers in the images plugin.

{F162094893}

Reviewed By: jknoxville

Differential Revision: D15853171

fbshipit-source-id: 8fd7217a50ee2823a89b788718fdef50830dc31a
2019-06-18 03:14:14 -07:00
Pascal Hartig
9c75ea7665 Refactor share sheet selection
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
2019-06-18 03:14:14 -07:00
Daniel Büchele
5aaf0c4f29 debounce search
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
2019-06-17 10:02:37 -07:00
John Knox
ee3473c42a Show timestamp in logs by default
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
2019-06-17 09:58:05 -07:00
John Knox
1d776f6b9e Add copy with columns header option to table rows
Summary: Add "With columns header" and "Without columns header" options when copying rows.

Reviewed By: danielbuechele

Differential Revision: D15854176

fbshipit-source-id: ff7b5639cc313b74528e5e85f6c84e314058e899
2019-06-17 09:29:37 -07:00
Pritesh Nandgaonkar
347487a328 Fix fresco tests
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
2019-06-17 06:18:45 -07:00
Pritesh Nandgaonkar
e5294d34f0 Plugin name list
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
2019-06-17 06:18:45 -07:00
Arthur Kushka
1444946afa Added retries information to Insights tab of Networking plugin
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
2019-06-17 03:05:40 -07:00
Pascal Hartig
f0d7667b3e Add missing snapshot test
Summary: Don't know how this landed without?

Reviewed By: jknoxville

Differential Revision: D15826033

fbshipit-source-id: 4895d26620b868b99429c7a6f290c05e1e805b8d
2019-06-14 10:28:12 -07:00
Arthur Kushka
1e700b944c Implemented insights tab in sidebar of networking plugin
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
2019-06-14 09:29:34 -07:00
John Knox
08454c056b Allow multi-highlight in db plugin
Summary: Enable highlight of multiple rows so they can be copied

Reviewed By: passy

Differential Revision: D15822749

fbshipit-source-id: 2302ddd27a57574c1eaf1f1395939c9f006ba301
2019-06-14 09:13:52 -07:00
John Knox
062cbc0dbd Fix contextClick after multi-highlight
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
2019-06-14 09:13:52 -07:00
Pascal Hartig
0eca3ac1e1 Fix getActiveNotifications crash
Reviewed By: danielbuechele

Differential Revision: D15822750

fbshipit-source-id: 1f8f41437db842197e6ab74e0559a710f80ff786
2019-06-14 09:02:22 -07:00
Pascal Hartig
61365662f6 Fix icons
Summary:
`cross-outline` doesn't seem to be a thing anymore.

https://external.xx.fbcdn.net/assets/?name=cross-outline&variant=filled&size=16&set=facebook_icons&density=1x

Reviewed By: danielbuechele

Differential Revision: D15822731

fbshipit-source-id: d0becbd9faa60393a4be1ef9f4d6bf8da7e9bc20
2019-06-14 06:56:56 -07:00
Pascal Hartig
71575ce7cf Hook up stacktraces to leak notification
Summary: Transfer it from the device, reformat the notification to make use of it.

Reviewed By: danielbuechele

Differential Revision: D15779267

fbshipit-source-id: 747dc7f895528618ff6a07c15b7f72bf6a1adde9
2019-06-13 11:18:03 -07:00
Daniel Büchele
eb36e667d4 iOS CLI version mismatch detection
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
2019-06-13 06:42:16 -07:00
David Aurelio
c4f395dda2 Allow more alignments
Summary: Allows `flex-start` and `flex-end` as aligment values on table cells.

Reviewed By: danielbuechele

Differential Revision: D15754424

fbshipit-source-id: 67449e429e6841800cfab7728f51e2d59cb36f0f
2019-06-11 09:23:13 -07:00
Daniel Büchele
79414aa3e1 Bumped electron version
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
2019-06-10 10:36:25 -07:00
David Aurelio
844cabd5d3 ElementsInspector: Allow for custom row decorations.
Summary: Adds the capability to customize rows in the elements inspector via a callback.

Reviewed By: danielbuechele

Differential Revision: D15738355

fbshipit-source-id: 27b91a74535736318b7fdb9d2eb44dfa20b4d77b
2019-06-10 08:39:05 -07:00
John Knox
3fcd9c8e51 More specific idb failure logging
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
2019-06-10 04:13:19 -07:00
Chenhao Xu
c225795b73 flipper CPU plugin sidebar
Summary: Add sidebar to the flipper CPU plugin. Sidebar displays detailed information about the selected CPU core

Differential Revision: D15696198

fbshipit-source-id: 47e687b4354653e6bef626cd3f27adcb219dbd28
2019-06-07 10:09:15 -07:00
David Aurelio
6792fb0bea StatusIndicator: support inline contexts.
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
2019-06-07 08:36:12 -07:00
David Aurelio
8b7f17d932 Pull out colored disc indicator
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
2019-06-06 04:09:56 -07:00
John Knox
92edb82e13 Exit cleanly after flushing stdout
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
2019-06-06 01:59:08 -07:00
Pritesh Nandgaonkar
873475405a Catch the exception thrown in xcrun
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
2019-06-05 11:41:31 -07:00
Pascal Hartig
1973432f78 Add active leak tracking in Fresco
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
2019-06-05 11:34:55 -07:00
Pascal Hartig
bef1ff26bc Add test for closeable reference metrics reducer
Summary: Per title.

Reviewed By: danielbuechele

Differential Revision: D15621850

fbshipit-source-id: 3b7ab83b7ed8dbfd75990194e909f78bd22ec45b
2019-06-05 11:34:55 -07:00
Pritesh Nandgaonkar
ace19e5d36 Unit tests for the metrics
Summary: Added unit tests for the "WASTED_BYTES" for the fresco plugin

Reviewed By: passy

Differential Revision: D15610871

fbshipit-source-id: dc9bd84363e1ba22fc96890b74e217372188a9d0
2019-06-04 14:15:46 -07:00
Daniel Büchele
72a39cb09d notification throttling
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
2019-06-04 07:55:25 -07:00
Pascal Hartig
b55ad41d97 let to const
Summary: Unrelated to what I was going to work on, so separate diff.

Reviewed By: jknoxville

Differential Revision: D15620643

fbshipit-source-id: a555bbd54adfe44fa7d566cb9cb6d31bd75be28e
2019-06-04 07:42:05 -07:00
Pascal Hartig
6e0121686c Add metrics for closeable reference leaks
Summary: Add a metric for the raw number of leaked closeable references.

Reviewed By: priteshrnandgaonkar

Differential Revision: D15603348

fbshipit-source-id: 03379e180b5822620e8e8347bef354edb3527d19
2019-06-04 06:02:23 -07:00
Pritesh Nandgaonkar
62c112c713 Fix the FlipperArray creation of events
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
2019-06-04 03:39:28 -07:00
Pritesh Nandgaonkar
95fae7d4e8 Call exportState function before exporting metrics
Summary:
This diff fetches the additional data by calling the hook added in each plugins when the headless tries to export metrics directly out of the store rather than from the trace.

I added `fetchMetadata` function which will be called while exporting the state as well as exporting the metrics. We do not need to fetch metadata in the case when the metrics are exported from the given trace.

Reviewed By: passy

Differential Revision: D15560129

fbshipit-source-id: 9b14340e565ce17d1825bc2d32520d7b0c2b2219
2019-06-03 15:06:30 -07:00
Pascal Hartig
023135ad74 Reduce in metrics reducer
Summary: Actually reduce in the reducer step instead of using mutable state.

Reviewed By: jknoxville

Differential Revision: D15603095

fbshipit-source-id: f603ca548bb760db5423a4c1871d94284ece9521
2019-06-03 14:41:43 -07:00
John Knox
befaecbf7c Cleanup android client so tests exit without forcing them
Summary:
We've got some exit troubles, meaning we have to use process.exit() to stop the headless process. This isn't good because the output isn't necessarily flushed when the process forcefully exits this way.
The tests can check for this, so I've removed the forceExit flag, and fixed the case stopping them from cleanly exiting - the android adb client.

Reviewed By: passy

Differential Revision: D15602919

fbshipit-source-id: b4a9dbabf5d3c874bda6bf938e4acb7b5b7e901b
2019-06-03 10:44:08 -07:00
Pascal Hartig
c0aaf6037d Fix prop declaration
Summary:
There's a mismatch as we don't use the same existential qualification
in the constructor as we do for the class definition. This this
enforced more strictly in newer Flow versions.

Reviewed By: danielbuechele

Differential Revision: D15601548

fbshipit-source-id: 807ef9ba74933fbc653514a617d1008f4f65c631
2019-06-03 07:07:23 -07:00
Pascal Hartig
c5a6ed0839 Explicitly type service worker registration
Summary: Per title.

Reviewed By: danielbuechele

Differential Revision: D15601531

fbshipit-source-id: 251949faffd75cf8b59a71c3963230113b0ebb0c
2019-06-03 07:07:23 -07:00
Pascal Hartig
f81d46410b Add missing Server import
Summary: Not sure why Flow was okay with this before.

Reviewed By: danielbuechele

Differential Revision: D15601506

fbshipit-source-id: a211bb373061d1481dbc6748d4e061a980cd0278
2019-06-03 06:07:52 -07:00
Pascal Hartig
faf19452eb Send CloseableRef leaks to Flipper plugin (#455)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/455

Only logging to the console for now, but it's a good start.

Reviewed By: oprisnik

Differential Revision: D15535820

fbshipit-source-id: 8531ec5ef681d01b2428a1f016b2a1d9f1589a34
2019-05-31 16:58:16 -07:00
Daniel Büchele
565b8995ae requestIdleCallback node fallback
Summary: requestIdleCallback does not exist in node.js. In this case, we immediately invoke the callback.

Reviewed By: priteshrnandgaonkar

Differential Revision: D15556037

fbshipit-source-id: 62cee8544fabd4528d9df17109e882fa9db6585f
2019-05-30 08:24:17 -07:00
John Knox
bec5c2b20c Remove unused lodash dependency
Summary: This is a big dep, and wasn't even used. Removing.

Reviewed By: danielbuechele

Differential Revision: D15555949

fbshipit-source-id: 31a5430819592478b01548469fdbf58637c4de22
2019-05-30 08:19:19 -07:00
John Knox
cfbc84e5bc Add error bar
Summary: Red error bar at bottom when something goes wrong.

Reviewed By: danielbuechele

Differential Revision: D15536042

fbshipit-source-id: 6a20e22489f9346864b78f9102a0917f94c1c74f
2019-05-30 06:52:06 -07:00
John Knox
13e942f59a Add getStringFromErrorLike utility
Summary: I've found myself having to extract strings from things that *might* be Errors more than once. Centralising this so it's consistent and correct everywhere.

Reviewed By: danielbuechele

Differential Revision: D15536034

fbshipit-source-id: 8e054dd6122aff10f0aacdfaed65125df0aea99f
2019-05-30 04:02:39 -07:00
John Knox
076b52059e Fix index rendering
Summary: This hadn't been tested on any tables with indexes. It was using the wrong set of columns to index the rows. Fixed by using the right list.

Reviewed By: danielbuechele

Differential Revision: D15535864

fbshipit-source-id: 1842a0695715e947b7e28b59e65dcc1eb5b32695
2019-05-30 03:15:29 -07:00
John Knox
2221090037 Fix Select value/selected React warning
Summary:
React outputs the following error:
  Warning: Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>.

This fixes it by using value instead of selected.

Reviewed By: danielbuechele

Differential Revision: D15535717

fbshipit-source-id: eb784ba2cdefe1c6744cc15592cd3e0191d237d0
2019-05-30 03:15:29 -07:00
John Knox
79902cd7cb Fix some react warnings
Summary: React is printing errors saying not to use "Span", and booleans in html properties

Reviewed By: danielbuechele

Differential Revision: D15535593

fbshipit-source-id: e074137c89abfa69625b370087c9c18b579ff279
2019-05-30 03:15:28 -07:00
Daniel Büchele
8c4e373dfc fix table context menu/drag-select
Summary:
As seen [here](https://fb.workplace.com/groups/230455004101832/permalink/623364598144202/?comment_id=623436418137020&comment_tracking=%7B%22tn%22%3A%22R%22%7D) using the primary key + CTRL to open the context menu, triggers the drag-select mode. This should not be the case. This diff changes the behaviour to:

- Not trigger the drag-select-mode, when openting the context menu using CTRL
- Select the current row, when performing a context click on it.

Reviewed By: jknoxville

Differential Revision: D15538057

fbshipit-source-id: d3d086c3d44618b2801e3a9b0646689c04fa32ff
2019-05-30 02:35:18 -07:00