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
Summary: Iterative version of the custom serializer. The recursive implementation led to call stack overflow for news feed surface in fb4a.
Reviewed By: danielbuechele
Differential Revision: D15251643
fbshipit-source-id: b8af921b1a4d85c52d4d45a7abf95a5bb5f283f7
Summary:
Previously you could only copy the entire row.
Now you can choose which cell to copy.
Not the perfect UI admittedly, but that would require a big change to make individual cells selectable. I think it's a definite improvement.
Reviewed By: passy
Differential Revision: D15231784
fbshipit-source-id: 0d52192a5bf4e8ea1ebee74988c749d3f602fea9
Summary: This was causing resizing to trigger onClick every time, which isn't wanted.
Reviewed By: passy
Differential Revision: D15219039
fbshipit-source-id: ea5d9221b0ce8fa7a050a8410876cf78bfee2bc6
Summary: Fix the format of the export. Due to unknown reason the changes done in the D14933499 was [reverted back](https://our.intern.facebook.com/intern/diff/D14933499/?src_number=80619316) on the same diff. Thus this diff fixes the format of the metrics export
Reviewed By: passy
Differential Revision: D15239653
fbshipit-source-id: b9416f89e1b0022000d6201eb08ca1f456d5ed2e
Summary: Allows for sort order to be preserved and applied from the start.
Reviewed By: danielbuechele
Differential Revision: D15182696
fbshipit-source-id: ad546ce35bf4637ca637589c6c3d6291a4313db7
Summary:
Adds a global inside managed table where, whenever a table key is provided, the column sizes are stored.
Then if a new table is constructed with the same key, it will get the sizes from before.
Reviewed By: danielbuechele
Differential Revision: D15181762
fbshipit-source-id: 98b5a14f8805075928cbe51511609b8b58c512fd
Summary: Pushing all new rows into an array could result in duplicate entries. Now the data is stored in an object, using the row's id as a key. This deduplicates the data.
Reviewed By: jknoxville
Differential Revision: D15200794
fbshipit-source-id: 6afa2b7d02c1bdb796c250400938c38c51fdd207
Summary: In this step, we want to visualize our mammals in a custom card view. For this reason, we need to replace `createTablePlugin` with a React component that extends `FlipperPlugin`.
Reviewed By: jknoxville
Differential Revision: D15183324
fbshipit-source-id: 329cdc5c6cbd7e1435538e8cdddf049d914ff221
Summary: Per title. It's very basic, which is exactly the point.
Reviewed By: jknoxville
Differential Revision: D15182335
fbshipit-source-id: f70f8cd0510a605879dccb9f909f84971a4eedc3
Summary: MacDevice and Windows device show uncapitalized 'desktop'. Changing them to Mac and Windows.
Reviewed By: passy
Differential Revision: D15168726
fbshipit-source-id: a69ef572d92f82215e548f71e72ef5d7d48beefa
Summary:
Adding a property `horizontallyScrollable` the `ManagedTable` that enables horizontal scrolling, if that is required by the table's contents.
By default this behaviour is disabled to not break existing tables.
Reviewed By: jknoxville
Differential Revision: D15166144
fbshipit-source-id: 7a9b76facdbe717deb3d097e0b8883d4b0732d51
Summary:
`/docs/understand.html` doesn't exist anymore. Also "learn more" in the landing page pointed to `/docs/understand.html` which was broken. Pointed "Learn More" to getting started doc page.
`/docs/understand.html` explained about rsocket which will be little overwhelming for the user to be navigated to right from the landing page.
Also removed the links pointing to `/docs/understand.html`
Reviewed By: passy
Differential Revision: D15147954
fbshipit-source-id: cbd67d7f234c438507f24db946cd463e8827cb78
Summary:
Add a desktop device on MacOS similar to WindowsDevice (see D8861986).
This makes it possible to view Oculus Service Log files on MacOS too.
Reviewed By: danielbuechele
Differential Revision: D15147501
fbshipit-source-id: 8a076964e6111bf3786818b7cbd8bb7f81c1498d
Summary:
At the moment, we can see the %-success of instrumented operations, but it's hard to attribute the ones that fail to actual errors.
This will allow us to see for every session-event row, the error messages that caused each of the failures.
Then if necessary, you can search for that error message in logview to get more info like the stack trace.
Requires a corresponding change in puma, since this is changing a number to a json value.
Reviewed By: danielbuechele
Differential Revision: D15099185
fbshipit-source-id: b966e6e55ab82f1cb9a4cfd7bf02034a1df01929
Summary: Makes the API a bit easier to use. Don't have to build an empty sidebar if you don't want one.
Reviewed By: passy
Differential Revision: D15064205
fbshipit-source-id: bd31c1aa97fd6d1c93717c10b268f49e44eb1299
Summary:
I haven't done this at the platform level (plugin.js) because the persistedStateReducer method signature prevents it unfortunately.
We might want to add a different method type at some point, like this one so you don't need to do this unsafe casting in the plugin itself, but for now, just doing it here.
Reviewed By: danielbuechele
Differential Revision: D15080331
fbshipit-source-id: c51749ac84cd38559d85089557f44ace8ae6e08b
Summary: emulator isn't on the path in CI machines, but we already have ANDROID_HOME set so we can work out where it is.
Reviewed By: danielbuechele
Differential Revision: D15080422
fbshipit-source-id: 2c50a3de27909d2bfc82ea0210d06a0cc32357d7
Summary: Currently, you get an error when you don't have device utils installed. However, when you switch your flipper to a supported device, the error may not be cleared. This handles that case.
Reviewed By: jknoxville
Differential Revision: D15087620
fbshipit-source-id: 6060752b54161c7610656531d053ecbcdd9e978a
Summary: We were missing to log for those cases when we exported through sharable link. Also I changed logging a bit so that we can differentiate between Sharable Link and File exports
Reviewed By: jknoxville
Differential Revision: D15080292
fbshipit-source-id: 063e9f515e4f089ed3715e7b1ca0e66410e46541
Summary:
This diff makes headless flipper accept `metrics` argument. Once this is passed. The headless flipper will terminate to export the metrics of the plugins, the type of the export looks like the following.
```
export type MetricType = {[metricName: string]: number};
type MetricPluginType = {[pluginID: string]: MetricType};
export type ExportMetricType = {[clientID: string]: MetricPluginType};
```
This diff, uses the store to export the metrics. I will modify the logic to accept the data which gets exported through `exportData`
Reviewed By: passy
Differential Revision: D14933499
fbshipit-source-id: dade5b7bc59ea4beb6d16c5ef471737e8597358a