Summary:
Currently Android development can be disabled in Settings, but iOS development not. Because of this Doctor always shows warnings to Android-only developers who has no iOS SDK installed. This change makes it possible to disable "iOS development" option in the same way as we already had for Android.
Additionally I changed Doctor warning to show more specific message if only iOS or only Android checks are failed with suggestion to disable the failing platform if it is not required.
Reviewed By: jknoxville
Differential Revision: D19538070
fbshipit-source-id: 234d2c6cf21083f9d6aebd63418aed7f9a78e922
Summary:
There are complaints about Android SDK being reported as "not installed" when it is actually installed. To address them, I changed the way how we detect SDK and also added some minimal actionable feedback for each check.
The problem with the previous implementation of Android SDK check via "envinfo" is that the library uses "sdkmanager" tool under the hood, and this tool doesn't work on Java 9+. To fix this I'm changing the way how we assume SDK is installed to simple check for "adb" tool existence.
Actionable feedback is shown on Doctor report when you click to an item.
Reviewed By: jknoxville
Differential Revision: D19517769
fbshipit-source-id: 1c21f1bdcd05c7c0ae3f97b9c3454efa2c861d26
Summary: Shows tooltip when no plugins are selected. Before it used to select all the plugins
Reviewed By: jknoxville
Differential Revision: D19537054
fbshipit-source-id: 567b90f981a2a2ddcf68a1dce902db0a9d6214d2
Summary: The device.devicePlugins collection was not updated if new plugins were registered after creating a device. This diff fixes that.
Reviewed By: jknoxville
Differential Revision: D19536777
fbshipit-source-id: 11ed3c3383ae692ce74fd7a21704332fb319b9c4
Summary:
There was a bug in ListView where the selected items where not getting updated.
Bug
In the following video I have selected Inspector and logs plugin from export drop down. When I click on litho support form it should select the default plugins which is Inspector, Mobile Config and Logs. But it only shows Inspector and Logs selected
{F226900949}
To fix it:
I call the callback `onChange` when the listview's row get updated, which will updates the props of the ListView component and hence rerendering it with updated selected rows.
Reviewed By: mweststrate
Differential Revision: D19518762
fbshipit-source-id: 39367590cbdc1d6f88afb467b17b71e13703bde3
Summary: Discovered that all gathered plugin stats where empty due to mis-using Object.entries. Fixed that. Also added a accumulated cpuTime metric, which should be great for a uniform trend line.
Reviewed By: jknoxville
Differential Revision: D19517279
fbshipit-source-id: a6df83eea000a5d59fe692a3795fd58ae6457821
Summary:
Fixes broken export through URL.
Also fixes an issue where we suppress an exception
Reviewed By: mweststrate
Differential Revision: D19517066
fbshipit-source-id: c68b6a1bcbc8b0588e0db9032268033a42b43c61
Summary: This exists to warn people about an incompatibility with old android sdk's, there's no need for the warning on other OS's even if the sdk is old.
Reviewed By: mweststrate
Differential Revision: D19499587
fbshipit-source-id: 5468fffcc0265bb122cf149f49b9af86ddd3c84e
Summary: This is useless as it's logged as key: total anyway.
Reviewed By: mweststrate
Differential Revision: D19501099
fbshipit-source-id: 08dcf76fbab8065356b34c6ed1524ef83703c46c
Summary: This isn't needed anymore as it's taken care of by the Client class when it fails to find it's own matching device.
Reviewed By: mweststrate
Differential Revision: D19499929
fbshipit-source-id: e54dea6e680a9fa3cd3572cdd65434922d51c4ea
Summary:
This diff improves two things:
1. Stats are now gathered on every `trackUsage` tick, rather than only when there is a selection
2. The stats now include a delta to compare it with the previous tick
Reviewed By: passy
Differential Revision: D19514231
fbshipit-source-id: 1854c1dc03c63a03db8c7040c185d2629e1b9ea2
Summary: Added button to reset Android SDK path to default + fixed default SDK path on Windows which I introduced in a previous diff and which before might be wrongly resolved to roaming data instead of local data folder
Reviewed By: jknoxville
Differential Revision: D19498899
fbshipit-source-id: e10865b528f55ea6b56873bdf9369c4b60dca89f
Summary:
on databases section, queries marked as "favorite", are not persisted. With this changes, they will be saved at localStorage and persist from refresh.
Improves on parse json values from databases.
## Changelog
Pull Request resolved: https://github.com/facebook/flipper/pull/738
Reviewed By: mweststrate
Differential Revision: D19330218
Pulled By: passy
fbshipit-source-id: 673b2d0bbee9b3ef4544defaca0e3c5547a992a2
Summary:
Default path for Android SDK was set to "/opt/android_sdk" disregard the current OS.
On Windows it should be set to "%localappdata%\android\sdk" instead.
Reviewed By: passy
Differential Revision: D19496646
fbshipit-source-id: 86ce7df74b98eef5b7b0a556a5359bec8cb0dbc4
Summary: A small enhancement for the Doctor usage report
Reviewed By: passy
Differential Revision: D19496887
fbshipit-source-id: 1f0efb0eb29e2efce60ba4fca3bd6fdc062406ea
Summary: Sidebar collapsing finally feels right! Also made the sidebar a little bit less cramped by widening it.
Reviewed By: passy
Differential Revision: D19496743
fbshipit-source-id: 8dd93afc8ef542781b1c1598623d1c9cef9b6b66
Summary:
Fixed a bunch of issue in the new sidebar navigation
1) Stop filtering out the host device (collapse it by default instead)
2) Show offline status in title for more clarity
3) Stop sorting devices by name, so that they are sorted in connection order, which feels more consistent
4) Group uninitialised clients together, rather than showing them under every device
5) Rename "device" section to "device plugins", and hide it if there are none
6) some minor margin fixes
Reviewed By: jknoxville
Differential Revision: D19495950
fbshipit-source-id: 513d0a1171016bd3077641f614a6554a132f8180
Summary: Add a way to provide default search term; similar to default filters
Reviewed By: mweststrate
Differential Revision: D19449561
fbshipit-source-id: 6845ae5d2e058fe68974ac7aa8fd7b45814c2002
Summary:
## The devDependency [jsdom](https://github.com/jsdom/jsdom) was updated from `15.2.1` to `16.0.1`.
This version is **not covered** by your **current version range**.
If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.
---
**Publisher:** [domenic](https://www.npmjs.com/~domenic)
**License:** MIT
<details>
<summary>Release Notes for Version 16.0.1</summary>
<ul>
<li>Fixed Node v10 and v11 support when <code>runScripts</code> was set.</li>
<li>Fixed the behavior when changing an <code><input></code>'s <code>type=""</code> attribute.</li>
<li>Fixed input validation behavior for <code><input type="range"></code> when <code>max=""</code> is less than <code>min=""</code>.</li>
</ul>
</details>
<details>
<summary>Commits</summary>
<p>The new version differs by 52 commits.</p>
<ul>
<li><a href="afc85c80df"><code>afc85c8</code></a> <code>Version 16.0.1</code></li>
<li><a href="6472db466a"><code>6472db4</code></a> <code>Fix Node v10 and Node v11 support</code></li>
<li><a href="16c9856649"><code>16c9856</code></a> <code>Improved "expected fail" messages for web platform tests</code></li>
<li><a href="e2dbad8183"><code>e2dbad8</code></a> <code>Add support for reverse range validation</code></li>
<li><a href="94b40d3ebf"><code>94b40d3</code></a> <code>Implement type state switch logic</code></li>
<li><a href="c292572cd7"><code>c292572</code></a> <code>Add comment about radio button activation muddiness</code></li>
<li><a href="52109d5b23"><code>52109d5</code></a> <code>Clean up typeMismatch constraint validation</code></li>
<li><a href="4a374e5b99"><code>4a374e5</code></a> <code>Clean up _defaultStepBase in </code></li>
<li><a href="92e9adbf41"><code>92e9adb</code></a> <code>Consistently use ._value for constraint validation</code></li>
<li><a href="11664cabd4"><code>11664ca</code></a> <code>More consistent applicability checking for attributes</code></li>
<li><a href="b097c0a000"><code>b097c0a</code></a> <code>Roll Web Platform Tests</code></li>
<li><a href="d240291edb"><code>d240291</code></a> <code>Remove unnecessary dependencies</code></li>
<li><a href="902b69e15a"><code>902b69e</code></a> <code>Version 16.0.0</code></li>
<li><a href="020539ed3f"><code>020539e</code></a> <code>Remove document.origin and add window.origin</code></li>
<li><a href="678141f58e"><code>678141f</code></a> <code>Use mutability as a measure for valueMissing constraint</code></li>
</ul>
<p>There are 52 commits in total.</p>
<p>See the <a href="c3f0f2756b...afc85c80df">full diff</a></p>
</details>
---
<details>
<summary>FAQ and help</summary>
There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).
</details>
---
Your [Greenkeeper](https://greenkeeper.io) bot 🌴
Pull Request resolved: https://github.com/facebook/flipper/pull/753
Reviewed By: nikoant
Differential Revision: D19469099
Pulled By: passy
fbshipit-source-id: 78de63ebb15843b27818dcbcbbe78ce5d5964ae9
Summary:
Flipper clear icon was hidden, this fixes it
Also fixed a null pointer exception that would occur when clearing search with the keyboard, and no filters were active
Reviewed By: passy
Differential Revision: D19445833
fbshipit-source-id: 213c28dc8c1e295018e6318f86604d96d2a9b75c
Summary: Fixed the issue with empty plugin list on Windows because of env var length limit
Reviewed By: passy
Differential Revision: D19411466
fbshipit-source-id: 7fa390f7dd342e23e965b2135fbeb8e88e5857ef
Summary: Lines were a bit squashed together. Taken the value from workplace, as that's the style we've been copying so far.
Reviewed By: priteshrnandgaonkar
Differential Revision: D19430279
fbshipit-source-id: 52cc8167d6acaa6af42caaa67a693b5fda492701
Summary: I find this much more intuitive that it's unexpanded, than a down arrow.
Reviewed By: mweststrate
Differential Revision: D19429007
fbshipit-source-id: 7b414aeee846a864641941b6837770252cb298de
Summary:
I want to make ping events fire when in background or foreground.
But doing that now could mess with some stats.
Setting this up so we have the data. If it comes to it, after this has been going a while,
we can add a filter to the existing queries for "isForeground=true" to preserve their behaviour.
Reviewed By: mweststrate
Differential Revision: D19428926
fbshipit-source-id: 7c175e9936dce52a59d17995dae61a82d23687f8
Summary:
As reported in https://github.com/facebook/flipper/issues/647 urls are not editable in our generic data inspector, as clicking an url will immediately open it, rather than going to edit mode.
This diff fixes that by appending an edit icon to URL previews.
Reviewed By: jknoxville
Differential Revision: D19428925
fbshipit-source-id: 428e8e4c10fb472792b61986d915658f7581c38d
Summary:
This diff is part of the bigger task T60496135
This diff changes the RN support from crude to decent citizen, making sure we don't recycle callbacks over the bridge, use subscriptions were possible, and making sure connecting, disconnecting, etc works correctly
For example, connect and disconnect hooks should work.
Finally, throw in hot reloading into the mix, which causes the registerPlugin to be triggered another time, without the old one every been unloaded.
This should trigger a new 'onConnect' on the client, to make sure it can restore any state / subscriptions necessary, even though the never disappeared in the Java world.
These cases should all be handled well.
Reviewed By: jknoxville
Differential Revision: D19347330
fbshipit-source-id: de64a08f4043f01528c794430ccc3c717abf0180
Summary:
This diff is part of the bigger task T60496135
This diff is based on D18706643, extracting only the react native module parts
It implements the entire Android client api for JavaScript, so that there is feature parity. However this implementation is happy path only, and edge cases will be handled in separate diffs
Reviewed By: jknoxville
Differential Revision: D19310265
fbshipit-source-id: 589716fe059952bdde98df84ed250c5c6feaa118
Summary: Gives us visibility on how many / which plugins, people are starring.
Reviewed By: mweststrate
Differential Revision: D19408420
fbshipit-source-id: cb08e2a5f9d1b31ea03e6f7df8fa61db26611e91
Summary:
Currently there are several issues caused by internal users not being logged in. E.g. the rating button doesn't work, flipper traces can't be uploaded etc.
However, the fact that the user is not logged in, is not reflected in the UI if the user has an API key, which is outdated.
See also the scuba query in the linked tasks; this happens for quite some users.
This diff fixes two things:
1. If auth tokens are invalid, this is properly reflected in the UI
2. If at startup the profile can't be loaded, a popup will be shown to log in.
Differential Revision: D19392735
fbshipit-source-id: 2be7c577ead671df16c626c0636e89245cebab14
Summary:
Previously, at 1-minute intervals, if the flipper window was focused on, it would report the currently active plugin.
We'd sum all those "ping" events and that would approximate the number of full minutes spent in total across all users.
It's quite coarse grained, if you're focused on the window for 30 seconds, there's a 50% change your ping will get used.
While being reasonable across many users, it doesn't allow analysis like how many plugins do people typically use in a session, because we probably won't see all the plugins they use.
New approach, for every minute flipper is open, report the focused and unfocused time spent in each plugin, as well as the total across all plugins.
This should give us the previous data but with much more precision.
Should be especially helpful for plugins with low numbers of users, you typically interact with emulators while using a plugin, so it's not continually in focus, so you miss a lot of usage events.
enhance_bladerunner
Reviewed By: nikoant
Differential Revision: D19392796
fbshipit-source-id: af9244e993edff9b381144ca587c3a77fdf8c98a
Summary: New plugins are not detected because the available plugins are stored in the mutable Client class, so we have to subscribe to the event emitter
Reviewed By: passy
Differential Revision: D19347654
fbshipit-source-id: 68af63bf9bbe6319b2994dc8d07ca5eb27bb33b4
Summary:
Firefox client is no longer maintained. This is the last official version we can use.
Pull Request resolved: https://github.com/facebook/flipper/pull/743
Test Plan: Greenkeeper.
Reviewed By: mweststrate
Differential Revision: D19390048
Pulled By: passy
fbshipit-source-id: cf37e69bc650d932db102545ccbc41c28beed96a
Summary: Flipper fails to load on Windows because of inifinite update loop in PluginContainer component.
Reviewed By: mweststrate
Differential Revision: D19374611
fbshipit-source-id: f2039c055ffefe508c8cf5bcfcd16fffc97a10b8
Summary:
{F226170897}
Color picker based on Lite's color table
We can't use standard color picker because of FB Lite's limitation: color set is predefined and sent from the server
'extra' field and 'color-lite' type are added to field description
Reviewed By: jknoxville
Differential Revision: D19330480
fbshipit-source-id: 695d288b4b8409e8b63a9e461a41914379d75a8c
Summary: This allows `adb b2g-info` command to get more detailed data and not just the amount of free memory
Reviewed By: jknoxville
Differential Revision: D19348298
fbshipit-source-id: ecb705c328c53f2d8c643496f0ed4204a31a745e
Summary:
Pritesh marked correctly that it was not entirely clear whether sections are collapsed or not. It seemed the arrows were off, checked the Android style guide, the arrows are correct, but difference is that the bottom border of sections is missing. Adding those clarifies the collapsed state properly I think.
https://pxl.cl/Wpnq
Reviewed By: passy
Differential Revision: D19372987
fbshipit-source-id: 2fb898301f63bd8edb2c3c9851f89edc801a524f
Summary: The new type defs make use of TypeScript 3.7 assertion functions which means they actually have a semantic effect on the rest of the lexical unit, which is quite neat.
Reviewed By: mweststrate
Differential Revision: D19348035
fbshipit-source-id: 3c7a21b5bece091c32f8879fed12d8e46e205ea4
Summary: Fixed few tests which were failing on Windows
Reviewed By: mweststrate
Differential Revision: D19371105
fbshipit-source-id: 118a76783680a3efa0645321d8c88b4e6e754ce0
Summary: This slows down the phone less. In the future, it'd be nice to get timestamp on X axis.
Reviewed By: passy
Differential Revision: D19097154
fbshipit-source-id: e145f1b911dec368a6bb7de32790d6280c696eda
Summary:
Filter type enum works differently than what I understood; its value is not inside the column.
Move the enum checking to before others because text matching relies on column value.
In addition, change the behavior when there is no column (from ignoring the search to causing all row to disappear due to mismatch ing)
Reviewed By: mweststrate
Differential Revision: D19345758
fbshipit-source-id: d49bc0e29d7a3d36f3aad20213791211c2c3065b
Summary:
If a plugin was registered beyond the initial start command, this didn't show up in the Flipper UI. The reason for this is that the client map is updated, but since that object is mutable, components won't detect nor reflect the change.
This diff changes to make sure a new plugin map is created if it is changed.
Reviewed By: passy
Differential Revision: D19345464
fbshipit-source-id: 3aa343e1739caf124a015c88680a94973b87f701
Summary:
Send per-healthcheck success/failure event to be able to analyze most common problems.
Send event when doctor warning bar shown.
Send event when doctor report is opened by user.
Send event when user set flag "Do not show warning again" in the doctor report.
Reviewed By: passy
Differential Revision: D19312127
fbshipit-source-id: 01b648d1154a3aeadc85980190cb9e5e221b572e
Summary:
When you run a simulator with a different version of the xcode version that is currently `xcode-select`ed, it won't work.
This causes problems in Flipper, and also RN and other tools.
Show a helpful warning in this case.
Need to dispatch it explicitly because console.errors only get surfaced in dev mode, not production.
Ideally this will be done in the doctor, but there's work to get it to report device/app specific problems first.
Reviewed By: passy
Differential Revision: D19345199
fbshipit-source-id: 45f95c6d33c81da2299d8d84c9179bebb5bfebe8
Summary:
This is what I wanted to have the functional component for. This makes it super easy to keep track of the sections we've loaded and then make a side-effecting logging call "on mount" to keep track of the impressions different sidebar extensions get.
This should also save some CPU cycles when calculating what to show in the sidebar. Not sure how meaningful that is, though.
Reviewed By: jknoxville
Differential Revision: D19331682
fbshipit-source-id: 44f83006634f50d8f7437286b8915b63f9c47d40