Summary:
## The devDependency [flow-bin](https://github.com/flowtype/flow-bin) was updated from `0.114.0` to `0.115.0`.
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:** [mroch](https://www.npmjs.com/~mroch)
**License:** MIT
[Find out more about this release](https://github.com/flowtype/flow-bin).
---
<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/727
Reviewed By: mweststrate
Differential Revision: D19288142
Pulled By: passy
fbshipit-source-id: 1285148e9e32660462e196923afbfaf2764bc04c
Summary:
~~Two~~ Four small improvements in the sidebar, that give a cleaner look:
1. expanding the plugin section is now a small button instead of text
2. Star / unstar buttons are only shown on hover of a plugin
3. Used all caps for application names, since we are F A C E B O O K now :-P.
4. Fixed styling of loading status of apps, so that it is consistent with a fully loaded app
Reviewed By: nikoant
Differential Revision: D19297880
fbshipit-source-id: 0fee44511965fc22351eff589d253365c1c6f774
Summary: When all the plugins are selected, "Show more/less" menu option in the sidebar should not be shown
Reviewed By: passy
Differential Revision: D19164369
fbshipit-source-id: 50bec130e80c14aea2b4565e7659409d879e585c
Summary:
Original commit changeset: 05d13aca7145
Attempt to upgrade `electron` as it instacrashed; `electron-builder` version 22.1.0 didn't sign package correctly and caused the instacrash,
Reduced the version to 21.2.0 (latest).
Reviewed By: passy, nikoant
Differential Revision: D18954671
fbshipit-source-id: bc2dbd4fec9afb51d9a535974651b13d195407b4
Summary:
We were missing `#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>`. I also took the liberty to organize the imports in alphabetical order.
Pull Request resolved: https://github.com/facebook/flipper/pull/714
Reviewed By: mweststrate
Differential Revision: D19288396
Pulled By: passy
fbshipit-source-id: 3cfd0cfa90054284fe179ccc39d0fe9e7208ec9b
Summary:
This diff changes the sidebar navigation, fixing a bunch of issues:
It will be possible to quickly switch again between the same plugins in multiple apps
No need to expand-and-check the app dropdown until the app is connected
No need for ugly fallback selections if some app connects faster than another one
Reviewed By: nikoant
Differential Revision: D19272701
fbshipit-source-id: 10f5fab42391014ef4a4a4c91c529d93f8bfb125
Summary: Preparation diff to enable two different sidebars in the code base, so that we can fine tune improvements. For further context seen next diff
Reviewed By: nikoant
Differential Revision: D19272608
fbshipit-source-id: 272c691389d998ed8cf97bc75aad101d9dfd7def
Summary: Currently release build fails to launch, because path to icons.json is resolved incorrectly. This change should fix resolving so it will work for both dev and release build.
Reviewed By: jknoxville, mweststrate
Differential Revision: D19274410
fbshipit-source-id: 9c0a92e1f6808997d08366c8021cd57565c5ae2c
Summary:
Builds didn't fail when using non-existing icons, and the error message was not very clear
Also added verification that, before automatically adding an icon to the prefetcher, that icon does exists
Reviewed By: jknoxville
Differential Revision: D19264063
fbshipit-source-id: 4320d5b960e85e3f15bbca13d69f3063b983a511
Summary: Doctor sometimes can show false-positives and in such case there is no way to suppress showing warning message on each startup. To reduce annoyance I've added an option to save the problems already seen by user and show the Doctor warning only for new problems.
Reviewed By: mweststrate
Differential Revision: D19187095
fbshipit-source-id: 14c1fcc9674f47fbe0b5b0f2d5d1bceb47f7b45d
Summary: Collect run time stats on how much CPU plugins use
Reviewed By: nikoant
Differential Revision: D19161359
fbshipit-source-id: 96b020b1f23b5e8d2e602f0ff6c3aa80ea149792
Summary:
When browing through flipper one gets random warnings about uncached icons. Since we can't predict which plugins use which icons, it is hard to keep the list in `icons.js` updated.
This diff extracts the table to a separate json file (static/icons.json) and if an icon is missing in development, it will automatically add it to the list, so that the icons will be part of the prefetch of the next build / restart
Reviewed By: jknoxville
Differential Revision: D19257253
fbshipit-source-id: c9c791d50fa5d66738d93873289fbde575f32d66
Summary: Without selected device or client, it is currently impossible to submit a bug report. This diff fixes that.
Reviewed By: jknoxville
Differential Revision: D19251701
fbshipit-source-id: fd0dc0c779fb27d93ed02a404da76a7e6b251b94
Summary:
Since background plugins don't receive data anymore when not starred, we should hint the user about this.
For this diff, I reused the existing statusbar. Although this solution is quite ugly, I think it is better than introducing yet another notification / warning mechanism. Probably we should revisit the layout of this status bar in the future.
Reviewed By: jknoxville
Differential Revision: D19251588
fbshipit-source-id: 1dfd07be383d4ba318f344ebff4b08ed36194c58
Summary:
From several reviews / early feedbacks it was suggested several times to use the star mechanism to distinguish which plugins are allowed to send messages. This diff implements that:
- If a plugin is not selected, and not starred, it will drop the messages it received in the background
- This logic is still behind the same GK
- I think this change warrants upping the message queue limits significantly
- A future optimization would be to disable sending messages from the device side of things to reduce bridge usage, but that change is probably a lot more complicated with less impact
- In the next diff I'll make clear from UI perspective that unstarred plugins don't queue messages
In the attach video one can see how graphQL plugin keeps storing messages if it is starred, but if it isn't starred and not selected either, it will skip messages
{F225692819}
Reviewed By: jknoxville
Differential Revision: D19250928
fbshipit-source-id: 7e6af0eb6830dc79951cfd206e05b44061f1b14a
Summary: `flipperPrintPluginBackgroundStats()` tended to report the class name rather than the given plugin id
Reviewed By: jknoxville
Differential Revision: D19250706
fbshipit-source-id: 6035892bacf6a592d8c510320d5e003fac580ec7
Summary:
Because the recordSourceUpdates where stored in Map instances, they were never serialized when exporting the data to flipper. (JSON.stringify doesn't support Map's). Although Flipper's own serializer does support maps (which is what you get when not overriding these static methods), the Flipper serializer is really slow, which made the export unusable.
~~The reason this became a problem is that in the new message architecture plugin snapshots serialize the events and apply them only when the plugin is opened, rather than doing it immediately when they are received. However, to be able to apply the events, the recordSource should be available. Before this change, this would throw exceptions when viewing the plugin in an imported flipper trace, as this recordSourceUpdates aren't available anymore.~~
The events are processed *before* the export now, so this is no longer a deal breaker, but it is still an improvement, as it will make the data available in the Flipper exports / imports, and fixed the following error that would occur when opening the store page in an flipper import:
{F225365428}
Reviewed By: jonathoma
Differential Revision: D19178158
fbshipit-source-id: f2bc0a05b02dd2fbd1029d472beeb614dded2dd3
Summary: This diff makes sure that pending queues for plugins that are selected are processed before making a flipper export.
Reviewed By: jknoxville
Differential Revision: D19194211
fbshipit-source-id: e076375889450407e7f94384051719f3bbc415ee
Summary:
To avoid plugins to collect data forever and store it (if they are never opened), introduced a hard-coded default limit on how many events will be preserved.
A semantic change is that plugins have to be potentially resistant against missing events. So far, during testing, this didn't seem to cause any problems.
Reviewed By: jonathoma
Differential Revision: D19175912
fbshipit-source-id: 828be941e76b7356c9f5be7e5a49de9a7a31b0d2
Summary: This introduces the necessary UI changes, to kick off and render event progressing process where needed
Reviewed By: jknoxville
Differential Revision: D19175450
fbshipit-source-id: 61e3e8f59eeebf97eedbe715fa7db320286543e2
Summary:
This diff introduces the logic for queueing incoming messages rather then directly processing them you are behind the `flipper_event_queue` GK.
The reason the queue processing is a bit complicated is to make the queue can be processed non-blocking, can be cancelled, and is safe to concurrency issues.
The idea here is that the queue is processed when we switch to a plugin, report it's progress, and abort the process when switching to another plugin without loosing any work.
This diff does not include
[x] updates to the UI (**SO DON"T LAND IN ISOLATION**)
[x] metrics to see the effect
The effect of the changes can be seen when profiling the application, before this change there are very regular CPU spikes (see the small yellow bar on the top):
https://pxl.cl/TQtl
These go away when the events are no longer processed
https://pxl.cl/TQtp
Reviewed By: nikoant
Differential Revision: D19095564
fbshipit-source-id: 0b8c3421acc4a4f240bf2aab5c1743132f69aa6e
Summary: After the change D19216026 was landed Travis build is failing, because now Flipper requires watchman to operate. To fix this I added a step to install watchman before running Flipper build there.
Reviewed By: jknoxville
Differential Revision: D19262195
fbshipit-source-id: c68327a177e10e07c97a0a4e383c9cead1c5706a
Summary:
On Windows VM when "yarn start" is executed and compilation is in progress for some plugin, fs.watch randomly fires "changed" events for different files of other plugins. This leads to infinite attempts to rebuild the same plugin again and again, and this process never ends, so "yarn start" is almost unusable:
{F225467225}
I've tried to fix this by using watchman instead of fs.watch and on my tests with Windows build it works well:
{F225467508}
Also as watchman is more careful about opening file handles, hopefully this change will fix "too many files opened" problem as Michel suggested here https://fb.workplace.com/groups/flippersupport/permalink/764157990731528/ and here https://github.com/facebook/flipper/issues/699.
Reviewed By: mweststrate
Differential Revision: D19216026
fbshipit-source-id: acc53ae0d003a7936730e6423ac4dbca84f089c8
Summary:
## The dependency [deep-equal](https://github.com/inspect-js/node-deep-equal) was updated from `1.1.1` to `2.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:** [ljharb](https://www.npmjs.com/~ljharb)
**License:** MIT
[Find out more about this release](https://github.com/inspect-js/node-deep-equal).
---
<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/706
Reviewed By: mweststrate
Differential Revision: D19141026
Pulled By: cekkaewnumchai
fbshipit-source-id: e89050bf9e83f072a03f79e9b7772269be6efb9d
Summary:
## The dependency [deep-equal](https://github.com/inspect-js/node-deep-equal) was updated from `1.1.1` to `2.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:** [ljharb](https://www.npmjs.com/~ljharb)
**License:** MIT
[Find out more about this release](https://github.com/inspect-js/node-deep-equal).
---
<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/705
Reviewed By: mweststrate
Differential Revision: D19141027
Pulled By: cekkaewnumchai
fbshipit-source-id: 2378cac6cd470af36c0995644f31459a885fa6a9
Summary:
See explanation in parent diff, make sure the idler is used efficiently, instead of wasting a lot of CPU creating a new callstack every time `idle` is called.
Also fixed that cancelled idlers could result in an _uncaught_ exception
Reviewed By: nikoant
Differential Revision: D19158593
fbshipit-source-id: 0be505a74c374e0ca6ee0e79b1f1e98ac9b80467
Summary:
To test things that depend on `Idler`, we would so far need to depend on timing in the unit tests, which is very error prone. So introduced a `TestIdler` as well to make sure we can create an idler we can control remotely (as demonstrated in the unit test)
Note that idler smells like generator functions all over the place, so maybe I'll take a stab later to see if we can replace idlers with generators, which gives a much clearer control flow imho.
Reviewed By: nikoant
Differential Revision: D19158369
fbshipit-source-id: 605d120860ecb02883442524df6f876e050ff092
Summary: Previously it was not possible to run unit tests to test logic that requires GK's to be enabled. This fixes that
Reviewed By: passy
Differential Revision: D19158368
fbshipit-source-id: b89691bdd2f975a3b4be343bd966ed77b2ad3763
Summary:
While trying to find a simple fix for the broken source maps when unit testing (see previous diff), I noticed that control flow in the transformer was unnecessarily complicated.
This doesn't fix the sourcemap issue btw
Reviewed By: passy
Differential Revision: D19158367
fbshipit-source-id: 7dfe4b28eabd4534a32dcb655e534d0f418f0db4
Summary: Fix various errors that Flipper was complaining about in Watch plugin
Reviewed By: ankursadhoo
Differential Revision: D19168777
fbshipit-source-id: eefb98818ddb0da78de1daf2d67045cb90cd90aa
Summary:
## The devDependency [flow-bin](https://github.com/flowtype/flow-bin) was updated from `0.113.0` to `0.114.0`.
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:** [mroch](https://www.npmjs.com/~mroch)
**License:** MIT
[Find out more about this release](https://github.com/flowtype/flow-bin).
---
<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/700
Reviewed By: mweststrate
Differential Revision: D19087103
Pulled By: passy
fbshipit-source-id: 1e9c22a5a7b8e991b68596256900bfa69f974ee3
Summary:
I believe we set this to a specific version because of an earlier security
warning from GitHub, but that's no longer needed and just creates
Greenkeeper spam.
Reviewed By: nikoant
Differential Revision: D19088846
fbshipit-source-id: f2c886f296d2ba87c40c3605633aeb73b262ca59
Summary: Rolling back workaround for Android SDK detection as it breaks detection with Java 8 while fixing Java 9+
Reviewed By: cekkaewnumchai
Differential Revision: D19146945
fbshipit-source-id: 2bea318d5f5cfafdf213d2ec73e837f6e86c9f33
Summary:
This diff will make it easier to test a plugin in a "fully loaded" Flipper state. This makes it possible to test all the wiring of flipper, rather than the individual reducers.
This is in preparation of processing the message queue async.
Reviewed By: passy
Differential Revision: D19140879
fbshipit-source-id: 5a333abe9c7a4d0c33d1d06a105cd094cb8fc19f
Summary: Workaround for Anrdoid SDK detection not working with Java 9+ installed
Reviewed By: mweststrate
Differential Revision: D19094906
fbshipit-source-id: a7c8c9c8403d25ecc9b2d95113718ddf1821a349
Summary:
Skip Android health-checks when the "Android Developer" option is disabled in Flipper settings.
Also made some refactoring to use immer for healthcheck reducer.
Reviewed By: mweststrate
Differential Revision: D19088322
fbshipit-source-id: 801d874b6e7e5af80802b4bf4313d98f1cee13f6
Summary: Added a setting "Match local fbsource chekout", which inverserly corresponds to the `ignore_local_pin` setting in `flipper-launcher.toml`.
Reviewed By: passy
Differential Revision: D19030456
fbshipit-source-id: deaaf4e873a00bbc4e8bd3034353cf580df95a36
Summary: Replacing this with promisify-child-process, which is better.
Reviewed By: mweststrate
Differential Revision: D18954702
fbshipit-source-id: 2dad756a2cd4dd21b2efc8b1780d589607d6ff05