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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 />
[](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
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
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
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
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
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
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
Summary: Added unit test covering finishing of plugin installation on Flipper startup
Reviewed By: mweststrate
Differential Revision: D21949628
fbshipit-source-id: a8b3a320c1ddd151ebbd63d7a6d596320ca8e25a
Summary: Added new package with test utilities re-used by other packages
Reviewed By: mweststrate
Differential Revision: D21949629
fbshipit-source-id: 8bfa959401669dc8911a1f647f417cafd92c2e4b
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
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
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
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
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
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
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
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
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
Summary: Added "description" field to PluginDetails interface and read it from package.json
Reviewed By: passy
Differential Revision: D21927391
fbshipit-source-id: 0513637d3afa3d8be8e2bc8ee87cc1d77c5e2250
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
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
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 />
[](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
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
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
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
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