Commit Graph

1459 Commits

Author SHA1 Message Date
Pascal Hartig
afe7c8bf25 Upgrade to Fresco 1.14.2
Summary: Includes the LeakTracker interface change. Restores the temporarily deleted tracker, wires it back up. Requires Fresco 0.14.2 being released which has yet to happen.

Reviewed By: oprisnik

Differential Revision: D15655667

fbshipit-source-id: ab4361be35101efe7564dfdd7a69cba93135eb7e
2019-06-06 08:02:46 -07:00
Pascal Hartig
dc41e2d778 Temporarily remove FlipperCloseableReferenceLeakTracker
Summary:
Ugh, this is the only way we can land the API-breaking next diff. Will
be reverted straight after.

Reviewed By: oprisnik

Differential Revision: D15655666

fbshipit-source-id: c9318e348c187de4562a9a636287cfa7b523356f
2019-06-06 04:54:32 -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
Pascal Hartig
e2215b4a17 Update jest flow-typed definition
Summary: Should be better than the mock we generated before, I hope.

Reviewed By: danielbuechele

Differential Revision: D15621591

fbshipit-source-id: a153d9233f6715c4c53ccabf2b8d18ce95b37f03
2019-06-05 09:38:00 -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
eba84a7e08 Reorganize CLI arguments
Summary:
1. Yargs doesn't like having the same option name as the given alias and will just silently skip those (like --metrics).
2. Having multiple ways of specifying the same argument is not a good practise.

I think we've been misusing `alias` as a way to have more JavaScript-y accessors, but ignoring that yargs already
converts `my-long-argument` to `myLongArgument` without having to expose this.

We haven't rolled out a version with the previous long arguments, so we should
still be able to change this without breaking stuff.

Reviewed By: jknoxville

Differential Revision: D15620636

fbshipit-source-id: 84a8046cf06d696e947719032c4f9c34ac9c0474
2019-06-04 07:50:35 -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
74ca921861 Flow 100
Summary:
0.100! Just noticed there's a new version and it continues to work.

destruction100

Reviewed By: jknoxville

Differential Revision: D15601865

fbshipit-source-id: 2d9d8a9ffb073468df4b85ed83800bce00ee6cda
2019-06-03 09:05:17 -07:00
Pascal Hartig
a3b7b93167 Upgrade to Flow 0.98.1
Summary: This should buy us some time before Sandcastle kicks us off again. :)

Reviewed By: danielbuechele

Differential Revision: D15449604

fbshipit-source-id: 90d4e8a965d0163de32416b43d9aa24ede104db2
2019-06-03 07:07:24 -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
Pascal Hartig
7dc3525846 Bump fresco to 0.14.1
Summary: Required for the next diff as we make use of the new CloseableReference interface.

Reviewed By: oprisnik

Differential Revision: D15558423

fbshipit-source-id: 98ce5bf3f01a6f0e7ca568544709656c41093505
2019-05-31 15:43:45 -07:00
John Knox
0d08d2b3b0 Flipper Bump: v0.21.2-SNAPSHOT
Summary: Database plugin bug fixes.

Reviewed By: priteshrnandgaonkar

Differential Revision: D15557872

fbshipit-source-id: 2f19d34d38669e556024bd87055591a4ab1c3389
2019-05-30 14:29:12 -07:00
John Knox
69c38b3a26 Flipper Release: v0.21.1
Summary: Database plugin bug fixes

Reviewed By: priteshrnandgaonkar

Differential Revision: D15557874

fbshipit-source-id: 0776f2e983919f29268e094d7c760410c9c0197f
2019-05-30 14:29:12 -07:00
John Knox
f71d33586f Disable Databases plugin test until roboelectric is upgraded
Summary: This gradle flag is stopping the other tests from passing.

Reviewed By: quanturium

Differential Revision: D15558776

fbshipit-source-id: 54934c73271e1cbb041877fef0dfb2de21733424
2019-05-30 14:29:12 -07:00
Pritesh Nandgaonkar
b5bda8dfae Refactor the startFlipper function
Summary:
Refactors `startFlipper` function in headless flipper into three different functions.

`earlyExitActions`: Before the dispatcher is called on the store and will exit if the user arguments are one which are meant to terminate the process.
`exitActions`: This function will be called after the dispatcher is called and will exit if the user arguments are one which are meant to terminate the process.
`storeModifyngActions`: It involves business logic which updates the store based on the user arguments.

Reviewed By: passy

Differential Revision: D15556130

fbshipit-source-id: 9d1b035525e613bb2b75454fa4fd6c193993b530
2019-05-30 10:16:47 -07:00
Pritesh Nandgaonkar
bab2aaaf0e Select device in headless
Summary: Adds an argument to select a device in headless. I will refactor the function the headless function in the next diff

Reviewed By: danielbuechele

Differential Revision: D15536774

fbshipit-source-id: 2e3f01c6bc6094d925aebd20ba0bf15b17168cd1
2019-05-30 08:33:43 -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
Pritesh Nandgaonkar
c94c2c8455 Add list-devices option to list the available devices.
Summary: This diff adds an option of `--list-devices` which will list the currently active devices on the machine. It will be later used to select a device by passing an `id` as an argument.

Reviewed By: danielbuechele

Differential Revision: D15524250

fbshipit-source-id: 7a79ceb1e431a25adcb4e05bc0cb68407c527806
2019-05-29 09:54:38 -07:00
Daniel Büchele
53b852dbe6 fix undefined colors on litho components
Summary:
When a color was changed on a litho component, the changes were made, but the display in Flipper's layout sidebar always showed `rgba(0,0,0,0)` as a color. This was because reading the color failed for `ComparableColorDrawable` and it sent `0` as fallback value.

This diff adds an additional check if the value is an instance of `ComparableColorDrawable` and reads the color from it.

Reviewed By: passy

Differential Revision: D15469093

fbshipit-source-id: 7f1aaf1c4981815605aca5ba735fa09e80deaa42
2019-05-29 09:19:29 -07:00
John Knox
b78fb88dd7 Make 'Refresh' update database list
Summary: Previously it only reloaded the current page.

Reviewed By: danielbuechele

Differential Revision: D15535168

fbshipit-source-id: b8252c24ffa74fdf22b2d4b6d5b7f99b40db8e47
2019-05-29 08:49:22 -07:00
John Knox
592bd2671f Fix copy cell wrong cell bug
Summary:
It was relying on hash keys to be in order, which obviously won't work. Logs plugin, on "copy message" was copying a timestamp instead.
Fixed by using the columnOrder state instead.

Reviewed By: danielbuechele

Differential Revision: D15535281

fbshipit-source-id: 2d7db95c16cc4f75c0d9cf14806fcc80cc8e4bd9
2019-05-29 08:43:40 -07:00
Daniel Büchele
6aa3457fb4 track onMessage performance
Summary: Tracking the time of onMessage callback

Reviewed By: passy

Differential Revision: D15536546

fbshipit-source-id: 9e93c11555a0a045ef60355ec1d0c6ca7cd49cdd
2019-05-29 08:22:24 -07:00
Oleksii Dykan
cb79b3b9ba Fix layout plugin for CKFlexboxComponent and CKInsetComponent
Summary: Importing the extensions fixes the fact that responds to selector was returned false for `sonar_additionalDataOverride` selector

Reviewed By: priteshrnandgaonkar

Differential Revision: D15535414

fbshipit-source-id: ab465a1aab36cccd2129c5b0c29a7872dfd65015
2019-05-29 04:59:13 -07:00
Pascal Hartig
fd88e1d01c Bump Gradle plugin to 3.4.1
Summary:
This matches the latest stable Android Studio version which will loudly
complain unless you accept this modification.

Reviewed By: danielbuechele

Differential Revision: D15520117

fbshipit-source-id: 81301722d85cbcb07fc1b17b6ce7418d03103874
2019-05-29 03:34:20 -07:00
Pascal Hartig
915b140756 Flipper Bump: v0.21.1-SNAPSHOT
Summary: Back to snapshots.

Reviewed By: jknoxville

Differential Revision: D15518398

fbshipit-source-id: 2823118c160a137b43470a6d0910d76c86a6558e
2019-05-28 10:22:16 -07:00
Pascal Hartig
c8965d389d Flipper Release: v0.21.0
Summary:
# Highlights

- Revamped documentation! We redesigned https://fbflipper.com/ and hope you like it. We added new tutorials, feature pages and way too many things to list here.
- `no-op` package for Android makes it easier to (not) ship Flipper with production releases.
- "Copy as cURL" support for the network plugin (https://github.com/facebook/flipper/pull/415)

Reviewed By: danielbuechele

Differential Revision: D15518400

fbshipit-source-id: 041cc546f4bfd70b13d9bb25eaa6eecf5dc1d7f9
2019-05-28 10:22:16 -07:00
John Knox
a630b50a8f Add databases plugin v0 (android) (#441)
Summary:
Adds a plugin for listing the databases, tables and contents of those tables in an android app.
Right now, works with sqlite, but it should be generic enough to work with other db types.

## Changelog

Add initial version of android databases plugin

Creating a PR, I may need to do some cleaning up, but this is to kick off that process.
Pull Request resolved: https://github.com/facebook/flipper/pull/441

Reviewed By: danielbuechele

Differential Revision: D15288831

Pulled By: jknoxville

fbshipit-source-id: 6379ad60d640ea6b0a9473acc03dd6ea81a3a8d4
2019-05-28 10:17:56 -07:00
Pascal Hartig
f20a781bca Bump Litho to 0.26.1
Summary: Includes the new Drawable getter.

Reviewed By: danielbuechele

Differential Revision: D15517152

fbshipit-source-id: 9977cc788771ec738c2eafc55b725fda4bea5bf0
2019-05-28 09:49:18 -07:00
Pascal Hartig
64048c69ac Bump to latest Litho version
Summary: v0.26.0

Reviewed By: jknoxville

Differential Revision: D15516278

fbshipit-source-id: de84bae13b5313403c1dd18b4bf744c60a6f341e
2019-05-28 09:49:18 -07:00
Daniel Büchele
b4f96ae5d9 copy version number to clipboard
Summary: People often want to share Flipper's verison number in bug reports, etc. This makes it as easy as a single click to copy the version number.

Reviewed By: jknoxville

Differential Revision: D15516592

fbshipit-source-id: 72582e2acb23113b3a0af062a83d444031f058d6
2019-05-28 07:40:25 -07:00