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
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
Summary: Actually reduce in the reducer step instead of using mutable state.
Reviewed By: jknoxville
Differential Revision: D15603095
fbshipit-source-id: f603ca548bb760db5423a4c1871d94284ece9521
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
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
Summary: Not sure why Flow was okay with this before.
Reviewed By: danielbuechele
Differential Revision: D15601506
fbshipit-source-id: a211bb373061d1481dbc6748d4e061a980cd0278
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
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
Summary: This is a big dep, and wasn't even used. Removing.
Reviewed By: danielbuechele
Differential Revision: D15555949
fbshipit-source-id: 31a5430819592478b01548469fdbf58637c4de22
Summary: Red error bar at bottom when something goes wrong.
Reviewed By: danielbuechele
Differential Revision: D15536042
fbshipit-source-id: 6a20e22489f9346864b78f9102a0917f94c1c74f
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
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
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
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
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
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
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
Summary: Previously it only reloaded the current page.
Reviewed By: danielbuechele
Differential Revision: D15535168
fbshipit-source-id: b8252c24ffa74fdf22b2d4b6d5b7f99b40db8e47
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
Summary: Tracking the time of onMessage callback
Reviewed By: passy
Differential Revision: D15536546
fbshipit-source-id: 9e93c11555a0a045ef60355ec1d0c6ca7cd49cdd
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
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
Summary:
A lot of the failures in the dashboard are due to unsupported android devices.
We can track this individually, but it shouldn't be affecting how reliable we think things are.
This adds an Error type, that when thrown, adds an extra field to log messages to specify that it's a known incompatibility.
Reviewed By: passy
Differential Revision: D15394863
fbshipit-source-id: 9d7948fbb8c94bd7a64434496e10392532a61eed
Summary:
I noticed that during a refactor, plugin success-rate failures started getting reported as successes.
Thankfully it's only the plugin metrics that are affected.
Reviewed By: passy
Differential Revision: D15394864
fbshipit-source-id: d9f44a0dd61f68dcdcbf2eb524821a3eb023231b
Summary: Distinguish between the cases when there's something wrong with listing devices and we don't see any, and when we do see some but none of them match what we're expecting.
Reviewed By: passy
Differential Revision: D15394042
fbshipit-source-id: 02728671d46531aec37da4bcafb85393269bf9cb
Summary: We removed the console already from the client side. So this causes all calls to isConsoleEnabled to fail. This diffs removes these calls.
Reviewed By: passy
Differential Revision: D15449571
fbshipit-source-id: b702a8fbc80af002e1d8b7d37d5acc664ea5be99
Summary: When a node invalidates, all its children need to be updated. This was the case in v1 of Layout Inspector (3141b954bf/src/plugins/layout/index.js (L684-L692)) but got lost when writing v2.
Reviewed By: passy
Differential Revision: D15469096
fbshipit-source-id: 9ef5368387ccbce6e5c71de28c24f5790906cee9
Summary: When receiving a message from the device, the parsing and updating is now handled in an idleCallback, with a timeout of 500ms.
Reviewed By: passy
Differential Revision: D15469094
fbshipit-source-id: c3fc70c2f082930a1a0a01078732cfd45297c391
Summary:
Fresco plugin on the desktop side used to ask for all the image list along with the metadata when it was mounted. The mobile side never sent the image list and other information if not requested from it. That means, although Fresco plugin is a background plugin, there weren't any messages sent from the mobile side. Thus there was no trace available for Images plugin when the trace was exported. This diff, adds a hook which gets called before the export, where we request all the metadata from the mobile SDK.
BUG:
{F159305887}
Reviewed By: passy
Differential Revision: D15407962
fbshipit-source-id: 0012de2ab29d0f62e92d00f4926b04b1e394b62a
Summary:
Call `exportPersistedState` only for the clients of selectedDevice. This will fasten up our export, we do not need to call `exportPersistedState` for the clients of nonSelectedDevice.
{F159322777}
Reviewed By: passy
Differential Revision: D15440652
fbshipit-source-id: e018603cfeb56fec462b54a6897fb254cc361390
Summary: Exports the `WASTED_BYTES` metric for the Images plugin. Currently its not possible to export the trace for Images Plugin, as all its listeners are setup in the init function of the component. Also it follows "pull" strategy, i.e Flipper asks for the data at component initialization. I will work on asking for the Fresco data when we terminate the headless, just like Layout Plugin.
Reviewed By: oprisnik
Differential Revision: D15393752
fbshipit-source-id: 4f0717ac5fb70a82aab5c803a4f92708d1faa9df
Summary: Splits the utility into a public and private part - just for the opaque types to work. The private part validates arguments and does the command running. Both are safe to use, but the non-internal one is easier, you don't have to validate anything.
Reviewed By: passy
Differential Revision: D15393477
fbshipit-source-id: 92f63180fb94af4337fdf8c7dace5bc5a85d5a54
Summary: This commit doesn't change anything, just moves the android command running stuff into its own utility.
Reviewed By: passy
Differential Revision: D15393476
fbshipit-source-id: de93bbd88fa62bddff8d9ea56cfbc33bfd854d53
Summary: I added column size persistence when resizing manually, but broke initial column sizing when a prop is provided. This fixes it.
Reviewed By: passy
Differential Revision: D15392145
fbshipit-source-id: 53f79c520917cd571302502c8b75aa0475567cb9
Summary: This diff adds support to pass a path to the trace file to the headless Flipper. The headless Flipper then exports the metrics out of it.
Reviewed By: passy
Differential Revision: D15337067
fbshipit-source-id: 61aca1ffd58e879dafe6aa176f058f7b11460952
Summary: Previously "Create your own plugin" in welcome screen and "Create Plugins" in menu were directing to a URL https://fbflipper.com/docs/create-plugin.html which doesn't exist anymore. So pointing the URL to page for plugin creation tutorial https://fbflipper.com/docs/tutorial/intro.html
Reviewed By: jknoxville
Differential Revision: D15362962
fbshipit-source-id: 82a9dedb21911607f20884c9bb36e58d622e8431
Summary: Add option to focus a view from the context menu.
Reviewed By: passy
Differential Revision: D15294182
fbshipit-source-id: f03db136e8365833beee3b4883d2114e98a280bd
Summary: This was already implemented in the old versin of layout inspector and got lost during the refactoring. When using talkback, the focused view is highlighted in green in the a11y inspector.
Reviewed By: passy
Differential Revision: D15294025
fbshipit-source-id: 92cc015e4bc726515e433b7b96f924246916972d