Commit Graph

3808 Commits

Author SHA1 Message Date
Anton Nikolaev
4a52af358e NotificationHub: allow to select notification text and copy it
Summary: Enabled selection of notification text + added a context menu item to copy the selected text only.

Reviewed By: passy

Differential Revision: D22065704

fbshipit-source-id: 510e68d50a54329aaeefb9b3097bc4283f884dc9
2020-06-16 04:30:59 -07:00
Anton Nikolaev
5b92836bea Show notifications about plugin spec v1 deprecation
Summary:
Show notification if user has installed plugins packaged in the old format. Example text of notification:

***
Plugin "Example" will stop working after version 0.48 of Flipper released, because it is packaged using the deprecated format.
Please try to install a newer version of this plugin packaged using "Install Plugins" tab on "Manage Plugins" form.

If the latest version of the plugin is still packaged in the old format, please contact the author and consider raising a pull request for upgrading the plugin. You can find contact details on the package page https://www.npmjs.com/package/flipper-plugin-example.

If you are the author of this plugin, please migrate your plugin to the new format, and publish new version of it. See https://fbflipper.com/docs/extending/js-setup#migration-to-the-new-plugin-specification on how to migrate the plugin. See https://fbflipper.com/docs/extending/js-setup#package-format for details on plugin package format.
***

Reviewed By: passy

Differential Revision: D22065688

fbshipit-source-id: da9b9d8f62e7cdb8c926a81e24bdfb4ec67f9dff
2020-06-16 04:30:59 -07:00
Chaiwat Ekkaewnumchai
993249ed86 Add Sorting Log by Time
Summary:
This is a discussion on Github about reversing log. This diff tries to do that.

Changelog: Add ability to reverse log by time

Reviewed By: mweststrate

Differential Revision: D22047276

fbshipit-source-id: 6100a5ca40db223d1989be2746c7190cce7ffc53
2020-06-16 03:55:56 -07:00
Anton Nikolaev
f5a8e929c0 Bump plugin versions to match Flipper version (#1267)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1267

Bumped versions of all plugins to match current Flipper version 0.46.0.

Reviewed By: mweststrate

Differential Revision: D22042959

fbshipit-source-id: 37c169bfd1b90debb8f94c9465a345a015524158
2020-06-15 09:28:23 -07:00
Anton Nikolaev
696ca8e604 Bump script updated to also bump plugin versions
Summary:
Updated "bump-versions" script to also bump version of all plugins when we're releasing Flipper.

Changelog: Versions of bundled plugins will be matching Flipper core version.

Reviewed By: mweststrate

Differential Revision: D22042960

fbshipit-source-id: b2d361ce9cbfc8022e12aecbbf7c6101029844e5
2020-06-15 09:28:23 -07:00
Anton Nikolaev
c628ad7cbd Fixed check for requires outside of plugin folder when shared library is used
Summary: There was a error on bundling plugins which references a shared lib, because of wrong check during babel transformation.

Reviewed By: passy

Differential Revision: D22041443

fbshipit-source-id: c157675c05e9d9653b65ed30293e3b8b09bae260
2020-06-15 07:29:34 -07:00
Anton Nikolaev
8003e7eb34 Migrate all plugins to spec v2
Summary: All the plugins migrated to spec v2 to allow packaging/publishing them independently from Flipper releases.

Reviewed By: passy

Differential Revision: D22041384

fbshipit-source-id: 23bfaf724f771a57bd628b9ea1c4d37846534a93
2020-06-15 07:29:34 -07:00
Michel Weststrate
04e58cd6c2 Extended trouble shooting for React Native
Summary: We get a lot of requests related to things not working on RN. The questions and solutions are often quite similar, so wrote down all the answers I know from the top of my head. From now on we can link to this guide, and extend it were needed with better answers

Reviewed By: passy

Differential Revision: D22042296

fbshipit-source-id: ba8a71f3ef6f241aaa1d2883d1348c0471a38e3b
2020-06-15 07:10:50 -07:00
Scott Kyle
906b6a0230 RFC NT Layout sidebar extension
Summary:
This diff is not meant to land as-is, but instead to generate discussion on how to properly accomplish this.

The goal is to add a Layout plugin sidebar extension that displays the NT reduction trace when an NT component is selected.

Note this is a feature that exists today (when whitelisted on `reduction_trace_check` GK) via the `SKComponentLayoutDescriptor` API, where we'd include the entire JSON representation on every element and display that in a standard inspector in the sidebar. We have a new metadata system where we only include a metadata id and Flipper can separately request the metadata, which is much more performant. Also, we have an existing `NTReductionTracePanel` component we'd like to use that handles requesting and displaying that information in a much better way.

I'd still like to use the `SKComponentLayoutDescriptor` API (or something similar) to have access to that component's metadata id in order to decide whether the panel should appear and of course that id is needed for the panel. This works well right now (see test plan), but as you can see, it's less than ideal in that it needs to look into `Extra Sections` then `Native Templates` to get that information. This might be acceptable for the time being while we think this API through, but I wanted to get input on if we can do better before trying to land.

Additional questions:
- Why are `SidebarExtensions` exported from the "flipper" module, when they only work with and import from the Layout plugin?
- There are two `InspectorSidebar` components - one in the Layout plugin and one in main flipper module [here](https://fburl.com/diffusion/ecg8lhfq) that I don't think is being used?

Reviewed By: mweststrate

Differential Revision: D21887701

fbshipit-source-id: 23ed19c08b68b4b1115b8cc6af84af9e87e91128
2020-06-12 09:48:52 -07:00
Anton Nikolaev
fb92a6f131 Show notification after plugin update downloaded
Summary: Add notification after plugin update downloaded

Reviewed By: passy

Differential Revision: D22016571

fbshipit-source-id: 188eeb848561f8461d7f76d1965dc5190d41e7d0
2020-06-12 06:15:29 -07:00
Anton Nikolaev
74a27aafcc Disable plugin auto-update in dev mode
Summary: When Flipper is running in dev mode we should always use bundled version of plugin (e.g. loaded from sources) even if a newer version is installed. Otherwise it could happen that Flipper will load installed version and it will not be possible to test your changes of plugin sources.

Reviewed By: passy

Differential Revision: D22016564

fbshipit-source-id: fbf63d5248b60034dc61688e4faa9b54890b744e
2020-06-12 06:15:29 -07:00
dependabot-preview[bot]
763853a7cf Update Dependabot config file (#1244)
Summary:
👋 Dependabot is moving natively into GitHub! This pull request updates your config file to the [new syntax](https://help.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates). When you merge this pull request, we'll swap out `dependabot-preview` (me) for a new `dependabot` app, and you'll be all set!

With this change, you'll now use the [Dependabot page in GitHub](https://github.com/facebook/flipper/network/updates), rather than the [Dependabot dashboard](https://app.dependabot.com/), to monitor your version updates. Dependabot is now configured exclusively using config files.

If you've got any questions or feedback for us, please let us know by creating an issue in the [dependabot/feedback](https://github.com/dependabot/feedback) repository.

[Learn more about the relaunch of Dependabot](https://github.blog/2020-06-01-keep-all-your-packages-up-to-date-with-dependabot/)

Please note that regular `dependabot` commands do not work on this pull request.

:robot:💛
Pull Request resolved: https://github.com/facebook/flipper/pull/1244

Reviewed By: nikoant

Differential Revision: D21998719

Pulled By: passy

fbshipit-source-id: 4e76f8a932d5c95e23a0445e8ed74f7b8fa28919
2020-06-11 11:45:52 -07:00
John Knox
62581a588e Add comment markers for live documentation
Reviewed By: passy

Differential Revision: D21998029

fbshipit-source-id: 9eb563dedd2a13de0b4b9798e529c4ad3293560a
2020-06-11 09:32:20 -07:00
Timur Valiev
896a90aa26 update js-client api (migrate to TS)
Summary:
JS/TS api:
- migrate to TS
- some refactoring (get rid of bridge, make client abstract)

Implementation isn't full yet, things to be implemented:
- let plugins connect on init command from Flipper
- implement Responder

Further plans:
- make fully compatible with react-native api without breaking changes

Reviewed By: mweststrate

Differential Revision: D21839377

fbshipit-source-id: 9e9fe4ad01632f958b59eb255c703c6cbc5fafe2
2020-06-11 08:45:35 -07:00
Anton Nikolaev
f88d707dbb Sign-in form improvements
Summary:
Sign in form improvements:
1) Added context menu with "Paste" and "Reset" items
2) Added "Reset" button
3) When form is empty, simple click to it automatically pastes token from clipboard
4) Automatically sign-in after token is pasted into empty form

Reviewed By: mweststrate

Differential Revision: D21994724

fbshipit-source-id: 8605c7f9b96777036b1b20b69370fba499185911
2020-06-11 07:31:10 -07:00
Scott Kyle
d6c97b48d3 Fix scrolling to inspected element
Summary:
When the `Scrollable` component was introduced, this functionality regressed because the `ref` was no longer set on the right component.

changelog: Fix scrolling to inspected element in Layout plugin

Reviewed By: mweststrate

Differential Revision: D21979475

fbshipit-source-id: f84d515cb1593a33d1ae0e93a01681b6e11aa623
2020-06-11 00:16:07 -07:00
dependabot-preview[bot]
fb0af47c31 Bump uuid from 8.0.0 to 8.1.0 in /desktop (#1234)
Summary:
Bumps [uuid](https://github.com/uuidjs/uuid) from 8.0.0 to 8.1.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/uuidjs/uuid/blob/master/CHANGELOG.md">uuid's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/uuidjs/uuid/compare/v8.0.0...v8.1.0">8.1.0</a> (2020-05-20)</h2>
<h3>Features</h3>
<ul>
<li>improve v4 performance by reusing random number array (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/435">https://github.com/facebook/flipper/issues/435</a>) (<a href="bf4af0d711">bf4af0d</a>)</li>
<li>optimize V8 performance of bytesToUuid (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/434">https://github.com/facebook/flipper/issues/434</a>) (<a href="e156415448">e156415</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>export package.json required by react-native and bundlers (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/449">https://github.com/facebook/flipper/issues/449</a>) (<a href="be1c8fe9a3">be1c8fe</a>), closes <a href="https://github-redirect.dependabot.com/uuidjs//github-redirect.dependabot.com/ai/nanoevents/issues/44/issues/issuecomment-602010343">ai/nanoevents#44</a> <a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/444">https://github.com/facebook/flipper/issues/444</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="4124ec75f0"><code>4124ec7</code></a> chore(release): 8.1.0</li>
<li><a href="be1c8fe9a3"><code>be1c8fe</code></a> fix: export package.json required by react-native and bundlers (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/449">https://github.com/facebook/flipper/issues/449</a>)</li>
<li><a href="a21e4d8c53"><code>a21e4d8</code></a> test: improve v3/v5 test (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/450">https://github.com/facebook/flipper/issues/450</a>)</li>
<li><a href="3b4b35ca28"><code>3b4b35c</code></a> chore: warn about Node.js 13.x incompatibility in issue template (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/443">https://github.com/facebook/flipper/issues/443</a>)</li>
<li><a href="aabb7757fe"><code>aabb775</code></a> test: add tests for buffer api (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/438">https://github.com/facebook/flipper/issues/438</a>)</li>
<li><a href="bf4af0d711"><code>bf4af0d</code></a> feat: improve v4 performance by reusing random number array (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/435">https://github.com/facebook/flipper/issues/435</a>)</li>
<li><a href="e156415448"><code>e156415</code></a> feat: optimize V8 performance of bytesToUuid (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/434">https://github.com/facebook/flipper/issues/434</a>)</li>
<li><a href="f6ce4bffc2"><code>f6ce4bf</code></a> refactor: upgrade code to modern JavaScript (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/427">https://github.com/facebook/flipper/issues/427</a>)</li>
<li><a href="2b796869ec"><code>2b79686</code></a> test: add benchmark (<a href="https://github-redirect.dependabot.com/uuidjs/uuid/issues/430">https://github.com/facebook/flipper/issues/430</a>)</li>
<li>See full diff in <a href="https://github.com/uuidjs/uuid/compare/v8.0.0...v8.1.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=uuid&package-manager=npm_and_yarn&previous-version=8.0.0&new-version=8.1.0)](https://dependabot.com/compatibility-score/?dependency-name=uuid&package-manager=npm_and_yarn&previous-version=8.0.0&new-version=8.1.0)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

 ---

**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in the `.dependabot/config.yml` file in this repo:
- Update frequency
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/1234

Reviewed By: nikoant

Differential Revision: D21940732

Pulled By: passy

fbshipit-source-id: 8ff46c925659156049ac8dd56ec2b7464dd83500
2020-06-10 09:39:56 -07:00
Anton Nikolaev
ce6f8eea90 Attempt to fix tests on github (#1236)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1236

I'm not quite sure why tests are failing on GitHub on Windows and Linux, while working well on MacOS. I cannot reproduce fail on my Windows machine. So will use this diff for debugging.

Reviewed By: jknoxville

Differential Revision: D21954828

fbshipit-source-id: bc88a67c4974c8453dcecee3128b354f0b1cb694
2020-06-10 09:18:06 -07:00
John Knox
2a5d1d8ff9 Fix website syntax highlighting
Summary:
We have a bunch of code blocks using languages that aren't rendered by default, so adding syntax highlighting for those languages.

Also, some uses are using the wrong "name" for the language, so I've fixed them.

Reviewed By: mweststrate

Differential Revision: D21974341

fbshipit-source-id: 17146ea5ae4979241c51b3707035470e9742a104
2020-06-10 08:44:51 -07:00
dependabot-preview[bot]
7a7684e32f Bump eslint-plugin-relay from 1.4.1 to 1.7.1 in /desktop (#1235)
Summary:
Bumps [eslint-plugin-relay](https://github.com/relayjs/eslint-plugin-relay) from 1.4.1 to 1.7.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/relayjs/eslint-plugin-relay/commits/v1.7.1">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=eslint-plugin-relay&package-manager=npm_and_yarn&previous-version=1.4.1&new-version=1.7.1)](https://dependabot.com/compatibility-score/?dependency-name=eslint-plugin-relay&package-manager=npm_and_yarn&previous-version=1.4.1&new-version=1.7.1)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

 ---

**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in the `.dependabot/config.yml` file in this repo:
- Update frequency
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/1235

Reviewed By: jknoxville

Differential Revision: D21940729

Pulled By: passy

fbshipit-source-id: c7770504a10dcfe70db9a58bd83e98715eb3c2db
2020-06-10 08:34:37 -07:00
Anton Nikolaev
587b8f6013 Fix flipper-pkg publishing
Summary: Command "oclif-dev manifest" is failing without esModuleInterop set to true, even though it is specified in base config. Because of this, automatic publishing to npm failed yesterday.

Reviewed By: jknoxville

Differential Revision: D21972747

fbshipit-source-id: ccdd34833f7beb4fbd79a97beeacaf012d5cb0cb
2020-06-10 06:40:39 -07:00
Pritesh Nandgaonkar
78924c527b Add persisted state
Summary: Persist state in Mobile builds plugin. This diff also moves the logic of percentage updates in the persisted state.

Reviewed By: mweststrate

Differential Revision: D21840853

fbshipit-source-id: 3246cdfecfca12cd0f269f5a87646cf619380999
2020-06-10 05:23:54 -07:00
GitHub
f0aa6279ab Automated: Update Podfile.lock (#1237)
Summary:
This is an automated PR to update the Podfile.lock.
- Make sure that the Podfile.lock contains latest FlipperKit and Flipper pod versions.
- Also make sure that all the dependencies are updated to the latest one.
- This is auto-generated by [create-pull-request](https://github.com/peter-evans/create-pull-request)
Pull Request resolved: https://github.com/facebook/flipper/pull/1237

Reviewed By: mweststrate

Differential Revision: D21971388

Pulled By: nikoant

fbshipit-source-id: 0a2c91d537833c8560da1bb3fc257d2e9fbdf122
2020-06-10 04:57:29 -07:00
Pascal Hartig
027685542d Fix react native sub-links
Summary:
Relative links like these appear to have broken with Docusaurus 2.

Supersedes, closes https://github.com/facebook/flipper/pull/1200.

Reviewed By: jknoxville

Differential Revision: D21935451

fbshipit-source-id: 72a50730fba02b395a1bcd924745bfbaf066cb93
2020-06-09 11:11:29 -07:00
generatedunixname89002005306973
8fa547c719 Flipper Snapshot Bump: v0.46.1-SNAPSHOT
Summary: Releasing snapshot version 0.46.1-SNAPSHOT

Reviewed By: nikoant

Differential Revision: D21952712

fbshipit-source-id: a809d722be79b0f6902ee202f3631242cceac59e
2020-06-09 10:14:19 -07:00
generatedunixname89002005306973
c0eb2648b7 Flipper Release: v0.46.0
Summary: Releasing version 0.46.0

Reviewed By: nikoant

Differential Revision: D21952711

fbshipit-source-id: 8681a244d64c50f2ad50f6c9c5e0ea766fd9ff20
2020-06-09 10:14:19 -07:00
Madeline Cripps
c7f7ac0228 Migrate to FBSystrace Server
Summary:
As title, this restores all of the functionality of the original plugin to but uses json-rpc to interact with fbsystrace in server mode.

Mostly at feature parity with the old plugins, need to update the following in my next diff:
- Better fbsystrace error surfacing
- Pipe all all output to 'Console'
- Support non-select type options

{F239554690}

I think that the authentication issues with Tracery might go away in prod - according to https://fb.workplace.com/groups/flippersupport/permalink/889080114905981/ this seems like a dev issue. But the "Open in Browser" functionality is working fine.

Reviewed By: nslingerland

Differential Revision: D21668522

fbshipit-source-id: fa3b887c7b5dedc08c62a9d579e1112d7f8e0323
2020-06-09 09:21:29 -07:00
Michel Weststrate
17223f5a99 add CPU status
Summary: ^

Reviewed By: passy

Differential Revision: D21952136

fbshipit-source-id: b33de0b9da0cf0f77730599c99003362bac0d159
2020-06-09 07:28:25 -07:00
John Knox
21a926232e Add idb check to doctor
Summary:
Adds a check for idb to flipper-doctor.

This depends on the flipper settings, to know where to look for idb, so I've made it so you can pass settings into the doctor when running it. When run from the command line, you don't get the settings. This is because settings loading currently depends on redux so I haven't extracted it into its own package.

Not that this will notify ALL open source iOS users with a doctor warning because they don't have idb installed. The error message says you can disable it in settings, which will silence this warning.

CHANGELOG: The open source version now works with physical iOS devices.

Reviewed By: passy

Differential Revision: D21883086

fbshipit-source-id: f28c43487e88a6c07ef3cc3da2764026726c9f18
2020-06-09 06:56:09 -07:00
Anton Nikolaev
bf62c8cbe4 Unit tests for finishinh plugin installation step
Summary: Added unit test covering finishing of plugin installation on Flipper startup

Reviewed By: mweststrate

Differential Revision: D21949628

fbshipit-source-id: a8b3a320c1ddd151ebbd63d7a6d596320ca8e25a
2020-06-09 04:58:37 -07:00
Anton Nikolaev
d27fa34505 Added module for test-utilities used across all packages
Summary: Added new package with test utilities re-used by other packages

Reviewed By: mweststrate

Differential Revision: D21949629

fbshipit-source-id: 8bfa959401669dc8911a1f647f417cafd92c2e4b
2020-06-09 04:58:37 -07:00
Anton Nikolaev
eeded4e32f Install plugins to pending directory first to enable installing new versions of existing plugins
Summary:
Install plugins to pending directory first to enable installing new versions of existing plugins. On startup Flipper moves all the plugins from pending directory into installed plugins directory.

Auto-update, after downloading a plugin package, will also extract it to "pending", so after restart update will automatically be applied.

Reviewed By: mweststrate

Differential Revision: D21929713

fbshipit-source-id: 141b106415e941156ae598cf810ab3bed8c76ced
2020-06-09 04:58:36 -07:00
Michel Weststrate
eff378defa Avoid JSON.stingify during render
Summary:
See previous diffs, same change as with analytics, don't stringify when creating the rows, but rather provide a closure to do that lazily, which reduces CPU (and mem) usage.

Note that this implicitly assumes the captures variables are immutable, as otherwise the semantics would change. But than again, if those variables are changed in the future, copyText will reflect their latest rather than initial state, which is better anyway.

Reviewed By: nikoant

Differential Revision: D21931748

fbshipit-source-id: 62325dd25953bab3a4e2e9a0d5dea3b3a7787bae
2020-06-09 03:00:23 -07:00
Michel Weststrate
3033fb035c Evaluate copyText lazily
Summary:
`copyText` is generated when building rows for table, and is typically filled by JSON stringifying the incoming data. That is a pretty expensive process that could be done lazily. As shown in later diffs, this reduces the generation of rows for tables from ~18ms to ~3ms, which makes rendering a lot smoother.

(n.b. fixing the code duplication in the managedtables is part of the component lib plan)

Reviewed By: passy

Differential Revision: D21929660

fbshipit-source-id: 67cc69945e2bb28a6462a9d9ab765e33ced89378
2020-06-09 03:00:23 -07:00
Michel Weststrate
2375dd02c3 Fixed bug where message could get lost if plugin was selected
Summary:
If the analytics plugin was in the foreground, and messages arrived in quick succession, some messages would not be processed.

Although the code was tested, there were not enough assertions to make sure the loop was correct. coverage !== correctness {emoji:1f605}

This fixes T68101450

Changelog: Fixed regression where analytics messages where lost

Reviewed By: jknoxville

Differential Revision: D21929679

fbshipit-source-id: c9fe2b18a249e40085d99914a809abf14fa7cf8f
2020-06-08 11:57:20 -07:00
Michel Weststrate
0007ef4b27 Disable sourcemaps for emotion to fix chrome Profiler freeze
Summary:
When trying to profile the Electron app, since recently the profiler hangs when trying to start the initializer. Found the following weird message in the console and googled the problem :-P

{F239554230}

Reviewed By: jknoxville

Differential Revision: D21929677

fbshipit-source-id: 7a9f150ebc8df30fa2890c9dbb79c8c144a5feae
2020-06-08 11:57:19 -07:00
Chaiwat Ekkaewnumchai
525d0e9925 Add Test Case for Single Quote and Fix Logic
Summary: Single quotes need to be double to be correctly recognized in queries. #thanks mweststrate for reminding me

Reviewed By: mweststrate

Differential Revision: D21908315

fbshipit-source-id: 6c13f9ddb527d1144cc3df90ba48bdb5f2ed4952
2020-06-08 09:00:04 -07:00
Chaiwat Ekkaewnumchai
a50c373631 Calculate Editable when Used
Summary:
In D21788243, John suggested the field should be calculated when needed not precomputed. This diff does so by moving calculation logic to the component and removing the field

This also fixes the crashing bug when switching to Structure tab, changing table, and switching back to Data tab.

Reviewed By: mweststrate

Differential Revision: D21906983

fbshipit-source-id: 5a9522a5ba3f504108282fb27deae25b5eadc693
2020-06-08 09:00:03 -07:00
Chaiwat Ekkaewnumchai
b81724b7b0 Update Podfile for ReactNativeFlipperExample
Summary:
Encountered while trying to install the sample React Native app. Try the suggestion and the files changed.

This files are modified from `pod deintegrate` and `pod install` commands

Reviewed By: passy

Differential Revision: D21905958

fbshipit-source-id: 8b391acf5001c764bcfc0dd08b7ac5294ec9f5df
2020-06-08 09:00:03 -07:00
Anton Nikolaev
9604e33f3a Fix snapshot tests failing on windows (#1229)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1229

Fix snapshot tests which are currently failing on Windows.

Reviewed By: mweststrate

Differential Revision: D21928445

fbshipit-source-id: 85ad79f5e01204fedecbef6828c978f76c0380f8
2020-06-08 08:57:07 -07:00
Anton Nikolaev
db3f04a2d7 Use the single type representing plugins
Summary: Use interface PluginDetails everywhere where plugins are handled and removed PluginDefinition type which was effectively a subset of PluginDetails

Reviewed By: mweststrate

Differential Revision: D21927456

fbshipit-source-id: 434ebeef955b922cc11757e78fbba8dec05f1060
2020-06-08 08:57:07 -07:00
Anton Nikolaev
907cb9e3cc Read description from plugin's package json
Summary: Added "description" field to PluginDetails interface and read it from package.json

Reviewed By: passy

Differential Revision: D21927391

fbshipit-source-id: 0513637d3afa3d8be8e2bc8ee87cc1d77c5e2250
2020-06-08 08:57:07 -07:00
Anton Nikolaev
9324bef8cc Moved plugin installation utilities to "plugin-lib" module
Summary: Moved plugin installation utilities to "plugin-lib" module. There are no functional changes in this diff, just refactoring so that plugin installation utils can be re-used by different modules.

Reviewed By: passy

Differential Revision: D21927387

fbshipit-source-id: 340516a544f7cfdcc15d94660dcb74a012054531
2020-06-08 08:57:06 -07:00
Anton Nikolaev
ecfdeb2276 Make external typings re-usable across all the workspaces
Summary: Our external typings were only effective for the main "app" package. In this diff I've made them effective for all other workspaces too, and also cleaned up typescript configs.

Reviewed By: passy

Differential Revision: D21927361

fbshipit-source-id: ceb8009255583d969d79cc11b20dfe8b686f2fb3
2020-06-08 08:57:06 -07:00
John Knox
df3a6c96ce Upgrade docusaurus-plugin-internaldocs-fb
Reviewed By: nikoant

Differential Revision: D21929178

fbshipit-source-id: 435bb324e823ec380d123f30cd479db6bb00ee69
2020-06-08 07:05:49 -07:00
dependabot[bot]
2abe7b5dab Bump websocket-extensions from 0.1.3 to 0.1.4 in /website (#1228)
Summary:
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md">websocket-extensions's changelog</a>.</em></p>
<blockquote>
<h3>0.1.4 / 2020-06-02</h3>
<ul>
<li>Remove a ReDoS vulnerability in the header parser (CVE-2020-7662, reported by
Robert McLaughlin)</li>
<li>Change license from MIT to Apache 2.0</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="8efd0cd6e3"><code>8efd0cd</code></a> Bump version to 0.1.4</li>
<li><a href="3dad4ad44a"><code>3dad4ad</code></a> Remove ReDoS vulnerability in the Sec-WebSocket-Extensions header parser</li>
<li><a href="4a76c75efb"><code>4a76c75</code></a> Add Node versions 13 and 14 on Travis</li>
<li><a href="44a677a9c0"><code>44a677a</code></a> Formatting change: {...} should have spaces inside the braces</li>
<li><a href="f6c50aba0c"><code>f6c50ab</code></a> Let npm reformat package.json</li>
<li><a href="2d211f3705"><code>2d211f3</code></a> Change markdown formatting of docs.</li>
<li><a href="0b620834cc"><code>0b62083</code></a> Update Travis target versions.</li>
<li><a href="729a465307"><code>729a465</code></a> Switch license to Apache 2.0.</li>
<li>See full diff in <a href="https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=websocket-extensions&package-manager=npm_and_yarn&previous-version=0.1.3&new-version=0.1.4)](https://help.github.com/articles/configuring-automated-security-fixes)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

 ---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/facebook/flipper/network/alerts).

</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/1228

Reviewed By: mweststrate

Differential Revision: D21927370

Pulled By: nikoant

fbshipit-source-id: 6047bc0a5db1182c03742f459555f0df6bedbaac
2020-06-08 04:27:49 -07:00
Michel Weststrate
b94e426261 Make iOS device detection faster
Summary:
I noticed that Android device detection is _much_ faster than iOS, so I tried to optimize it a bit

1. Removed a test run on `instruments -s`. That command is really slow (easily 5 secs), and the check has become redundant since Doctor already does a similar check
2. When querying for devices, it tries to fetch emulated and physical devices in parallel, but only processes the results after both have finished. However, finding simulators is almost instant, while querying the physical devices takes ~5 seconds ore more. So in this diff we process the found devices till in parallel, rather than waiting until both have arrived

This diff reduces the time until the ios simulator + FB app is detected from 28 to 4 seconds on my machine.

Changelog: Improved the startup sequence for emulated iOS devices, so that devices and apps connect a lot faster after starting Flipper

Reviewed By: jknoxville

Differential Revision: D21907597

fbshipit-source-id: 73edf0b04c4ad8367e04557e33f4c0d9e9bcd710
2020-06-08 03:44:51 -07:00
Roi Becker
b75113a7f1 ODS plugin
Summary:
Each time when the plugin starts (which is also when you re-enter it, even if the switch is on in the UI), will query Unity for all counters.
There's also a button to manually refresh the list.
I added a button to filter 0 counters (since there are a lot of them). It will pulse while it's filtering (on by default).

Differential Revision: D21923242

fbshipit-source-id: 0dc54eb8b460fe68a22aa86f43a5115a70728092
2020-06-07 13:20:08 -07:00
Michel Weststrate
db4c341eb3 Fix regression in accessibility layout
Summary:
Fixes a regression (D21716761) in the layout of the accessibility inspector where the layout was accidentally switched from right to bottom.

Also made the region resizable while at it.

Changelog: Fix regression in the layout plugin where accessibility info was rendered in the wrong place

Reviewed By: cekkaewnumchai

Differential Revision: D21903760

fbshipit-source-id: 08623c17428e86ea77d8438e78766a308dbac1e6
2020-06-05 08:34:26 -07:00
Michel Weststrate
95d319a700 Store collapsed status of sidebar sections
Summary:
See previous diff, let's store the collapsed state of sidebar sections in local storage.

Introduced a reusable hook to take care of that.

Changelog: Device plugins are now expanded by default, and the expand / collapse state will now be remembered across restarts

Reviewed By: passy

Differential Revision: D21903394

fbshipit-source-id: a3c0231acc0aa0877522ec328eedd09cb11aedb1
2020-06-05 08:30:44 -07:00