Commit Graph

104 Commits

Author SHA1 Message Date
Anton Nikolaev
c995fc8fc2 Report versions of plugins and plugin load success rate (#1270)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1270

1) Report versions of loaded plugins so we can track auto-updates
2) Report plugin load success rate

Reviewed By: jknoxville

Differential Revision: D22066598

fbshipit-source-id: 23ef2fb37260438cc1a9a873c88a50b75cd718f4
2020-06-16 06:46:14 -07:00
Jason Moore
fec52a3989 escape app name to account for special characters in name (closes #1252) (#1268)
Summary:
App Names can contain special characters. Escape them (and unescape later) so that device ID strings don't break.

Simpler is better - thanks to mweststrate for keeping me out of the rabbit hole
## Changelog

Escape app name to account for special characters in name
Pull Request resolved: https://github.com/facebook/flipper/pull/1268

Test Plan:
Added test to test character escaping: `cd desktop && yarn test -- -i app/src/utils/__tests__/clientUtils.node.tsx`

closes https://github.com/facebook/flipper/issues/1252

Reviewed By: passy

Differential Revision: D22066263

Pulled By: jknoxville

fbshipit-source-id: c820d055700ca6f55d35265528ce874eeb159216
2020-06-16 06:06:29 -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
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
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
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
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
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
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
John Knox
ec6310dc3b Use configurable idb installation path
Summary:
Part of https://github.com/facebook/flipper/issues/262

Use the user-configured idb install location instead of a hardcoded one.

Reviewed By: passy

Differential Revision: D21860236

fbshipit-source-id: 5c604d7b6361e7c93ab49d8a03a437dfce880ac1
2020-06-04 03:04:50 -07:00
generatedunixname89002005306973
23d80bf3d5 Flipper Release: v0.45.0
Summary: Releasing version 0.45.0

Reviewed By: mweststrate

Differential Revision: D21860035

fbshipit-source-id: 58af5bbc4e743024beac925eac8012e64bd76aa9
2020-06-03 08:28:54 -07:00
Michel Weststrate
e31ddbc648 Debounce receiving messages
Summary:
See previous diff.

Achieves the same optimization as in the mentioned diff, but this time by only debouncing the messages as they arrive over the socket, and not the state updates caused by Redux directly. This means that plugin rendering won't be debounced anymore until we address this more fundamentally.

With this change there is a double level buffering:

1. A buffer that stores all incoming messages (that are not replies to requests)
2. A buffer that stores messages we are interested in in the plugin queue, unless the plugin is active (this we already had).

This still fixes the issue that too chatty plugins cause to many updates foreground plugin (the problem we tried to fix originally), without debouncing plugin rendering if it is needed to update for any other reason.

Another nice benefit is that previously every received message would trigger a store update in Redux which would cause all connected components to evaluate their subscriptions (and then bail out in the typical case). Now we will only update the redux store every 200 ms.

Changelog: Foreground plugins will burn less CPU when they're very chatty

Reviewed By: jknoxville

Differential Revision: D21858849

fbshipit-source-id: c72352e569a8a803bbedffb71b17b11fcefee043
2020-06-03 06:54:15 -07:00
John Knox
5723553fba Open-source idb interaction code
Summary:
I've outlined the tasks required to get iOS device support working for open source users [here](https://github.com/facebook/flipper/issues/262).

This is the first step. It publishes the same code we use internally to GitHub, but in a state where it is only "available" for non-public builds. This will not change any behavior, but means that together with the community, we can start adapting it to suit everyone, and then eventually flip "available" to true for everyone.

Reviewed By: passy

Differential Revision: D21740193

fbshipit-source-id: 586c79ad850f67da330c10a007605ff25a187544
2020-05-29 06:04:39 -07:00
generatedunixname89002005306973
b18760823d Flipper Release: v0.44.1
Summary: Releasing version 0.44.1

Reviewed By: passy

Differential Revision: D21767292

fbshipit-source-id: 94276959d0421fa687cc24f9553a0951b398ea56
2020-05-29 05:02:23 -07:00
Timur Valiev
2283bbd313 vscode integration helper
Summary: VSCode integration helpers to call extensions

Reviewed By: passy

Differential Revision: D21641284

fbshipit-source-id: dd978520ea541dbd6a96b8398ce28744a0fc97ad
2020-05-26 05:03:05 -07:00
generatedunixname89002005306973
b538cead7a Flipper Release: v0.44.0
Summary: Releasing version 0.44.0

Reviewed By: passy

Differential Revision: D21686080

fbshipit-source-id: 83a8d997e99361e3fcc4472d484d3759f73ed964
2020-05-21 11:31:56 -07:00
Pascal Hartig
3723e08b50 Make message drops a warning
Reviewed By: jknoxville

Differential Revision: D21684530

fbshipit-source-id: f918c39562eaf6c5fd61af76e68d3e4cfe561a90
2020-05-21 04:24:06 -07:00
generatedunixname89002005306973
4e618198cb Flipper Release: v0.43.0
Summary: Releasing version 0.43.0

Reviewed By: cekkaewnumchai

Differential Revision: D21639652

fbshipit-source-id: 5a775f6361283b2e9b2540b054afad497dab2a22
2020-05-19 08:00:52 -07:00
Pascal Hartig
7492e781d3 Change LowPassFilter invariant use
Summary:
Ugh, lockdown brain. This was supposed to be included in the test I added before
to get to 100% coverage. Well, it's here now.

Reviewed By: mweststrate

Differential Revision: D21550904

fbshipit-source-id: 044a11d38e211c6f57cce220adc8c42241a2043a
2020-05-15 04:43:56 -07:00
Pascal Hartig
c54028981f Fix tmp usage in crash reporter setup
Summary:
This happened during startup:
{F237135281}

From `tmp` docs:

> IMPORTANT NOTE: template no longer accepts a path. Use the dir option instead if you require tmp to create your temporary filesystem object in a different place than the default tmp.tmpdir.

Reviewed By: mweststrate

Differential Revision: D21570416

fbshipit-source-id: 170886d0fda5e21cb23fe836fcde33eb457a4c1b
2020-05-15 04:40:57 -07:00
Pascal Hartig
5fe3e9a44a Add test for LowPassFilter
Summary: Eating my own dogfood.

Reviewed By: mweststrate

Differential Revision: D21545655

fbshipit-source-id: 1e2690478ad8a986915a98a8275a168fa4c3a23f
2020-05-13 07:48:37 -07:00
generatedunixname89002005306973
9bead5e05c Flipper Release: v0.42.0
Summary: Releasing version 0.42.0

Reviewed By: passy

Differential Revision: D21520625

fbshipit-source-id: 9f3ce5739a0856de84b18df3c640e5218fd3182e
2020-05-13 02:16:13 -07:00
Pascal Hartig
3ddfdcbff1 Remove unused supportRequestFormUtils
Summary: This was for V1 (D16990925) and is no longer referenced anywhere.

Reviewed By: nikoant

Differential Revision: D21501270

fbshipit-source-id: fef30f38c917afcd3d4150a0165cd0a59ad42b6a
2020-05-11 09:13:05 -07:00
João Vieira
64deaee5a7 Normalize export to fle and share link behaviour.
Summary:
Both export methods behaved slightly differently:
* Export to file returned earlier when running in background, which skiped the tracking of export termination;
* Share link always showed notification, even when on foreground;
* Share link status "hanged" - the share was never unset.

This change makes both consistent:
* Always track export finish - whether its in foreground or background;
* Only show notificaiton if running in background;
* Always reset the share/status.

On top of this it also:
* Normalizes the screenshot status to terminate in '...' as all the others;
* Only copies export URL to clipboard when exporting link if running in the background.

Reviewed By: passy

Differential Revision: D21425095

fbshipit-source-id: 9864a63269df6bd05ab065ff0e5d9f17b9ac6db6
2020-05-07 04:05:27 -07:00
João Vieira
a2d7297bbb Rename Flipper trace to Flipper export.
Summary: Rename visual references from Flipper trace to Flipper export.

Reviewed By: passy

Differential Revision: D21408566

fbshipit-source-id: 1021fec095f2f2f3e5394e7ea2f7d49fee186050
2020-05-07 04:05:27 -07:00
generatedunixname89002005306973
96d5949c19 Flipper Release: v0.41.0
Summary: Releasing version 0.41.0

Reviewed By: jknoxville

Differential Revision: D21402376

fbshipit-source-id: c2b5194afbb8f086097eb1c6fb337b950b4dffe7
2020-05-05 08:31:29 -07:00
Chaiwat Ekkaewnumchai
fbc5d922b5 Fix ESLint Warning
Summary: Mainly, remove unused declaration

Reviewed By: mweststrate

Differential Revision: D21360395

fbshipit-source-id: 20cafefe3a650ab686534998a084301320333088
2020-05-04 05:27:33 -07:00
generatedunixname89002005306973
bd320b94e1 Flipper Release: v0.40.0
Summary: Releasing version 0.40.0

Reviewed By: nikoant

Differential Revision: D21302037

fbshipit-source-id: 2f2aeaf0aaf7a0d2fb65b21b6243c9ecd2684cdc
2020-04-29 08:33:04 -07:00
Anton Nikolaev
c1b97e5d1f Fix loading plugins in dev mode
Summary: Fixed loading plugins in dev mode

Reviewed By: timur-valiev

Differential Revision: D21262894

fbshipit-source-id: c4ab6902d3153c3580c71f27df91290122627fae
2020-04-27 18:15:42 -07:00
Michel Weststrate
dba480ce74 Preserve Navigation plugin as background plugin eevn when disabled
Summary:
This diff fixes an issue where we don't want to have the Navigation plugin be disabled as background plugins like all other plugins, so that the breadcrumb navigation keeps working.

Yet another hack concerning the super useful Navigation plugin. On a positive note, since connection management for background is not entirely managed by the Desktop and not the native said, these kind of exceptions are fairly easy to make :)

Reviewed By: passy

Differential Revision: D21089537

fbshipit-source-id: 209954ff35c95e066fe688a60ad46ccfc3835c44
2020-04-27 09:46:14 -07:00
Michel Weststrate
b9c3d99f44 Stop connecting disabled background plugins
Summary:
Background for this diff: https://fb.quip.com/KqEfAlKYlgme

Some plugins don't respect that stuff (livefeed and graphql), but for others it seems to work fine.

This is just a PoC, there are some present bugs concerning the combination of selecting and bg plugins

Questions to investigate:

- [x] make sure that LiveFeed and GraphQL disconnect properly. There might be more plugins that need that
- [x] verifiy that we don't loose one of the original goals of background plugins, e.g. QPL collecting and sending data from device start. Does this still work as intended after this change?
- [x] how can we observe / measure improvements? Are dev builds more responsive after this? Is the layout inspector smoother for example because no QPL plugins are interweaved?
- [x] how is forward and backward compatibility?
   - If Flipper is updated, but device not: No change I think, as getBackgroundPlugins() will return an empty set, and background plugins are initiated as usual, so old behavior
  - If device is updated, but Flipper not, background plugins won't be started until they are selected. This is a degradation, but hopefully explainable.
- [x] Verify QPL buffer is not unbounded
- [x] Share architecutre changes with team

For Graphql updates: D20943455

Added runtime stats to monitor network traffic (sadly had to redo that since scuba couldn't handle the data format used at first, so probably will hold of landing this diff a week to make sure we can see some effects)

Follow up work:

[x] wait until we released the stat tracking before we release this, to be able to measure the effect?
[x] make sure graphql fix lands
[ ] use side effects abstraction
[ ] fix other background plugins (android only) or fix it in a generic way:

{F234394286}

Changelog: Background plugins will no longer receive a Flipper connection if they are disabled. This should significantly reduce the overall load of Flipper both on the device and desktop when unused plugins are disabled used, which could otherwise generate 10MB/s of network traffic certain scenarios. All plugins *should* be able to handle to this gracefully, but since this is quite a fundamental change, reach out to the Flipper team when in doubt!

Reviewed By: jknoxville

Differential Revision: D20942453

fbshipit-source-id: b699199cb95c1b3e4c36e026b6dfaee7d1652e1f
2020-04-27 09:46:13 -07:00
Anton Nikolaev
773b0b7f67 Fix tests failing on Windows (#1052)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1052

Fixed tests failing on Windows because jest auto-mocks works differently there

Reviewed By: passy

Differential Revision: D21237618

fbshipit-source-id: 31c7e92b7f8ae84c1e65fd37428204452b3f1b00
2020-04-27 07:18:12 -07:00
Michel Weststrate
d142369e9d Fix initial main menu not loading
Summary: Fixes a regression (D20679687) of the main menu not loading immediately after application start

Reviewed By: passy, priteshrnandgaonkar

Differential Revision: D21227817

fbshipit-source-id: 37e4ddfcb73de3eac04d6162a3e028864d3e9e7f
2020-04-24 10:44:48 -07:00
Anton Nikolaev
ec07272c78 Linter checks for extraneous dependencies
Summary: Added eslint rule "no-extraneous-imports" which disallow using modules which are not listed as dependencies in the corresponding package.json. Fixed a bunch of reported errors after the rule applied.

Reviewed By: passy

Differential Revision: D21186848

fbshipit-source-id: 0af9ac4b3fffdfd0ab7c23ae4ff12a3f5989d5e9
2020-04-23 05:33:20 -07:00
Pritesh Nandgaonkar
9d0d900b05 Pass supportsMethod as an argument to the exportPersistedState
Summary:
This diff adds supportsMethod as a closure which can be used to verify a method is implemented on the client side.

It will be used in the next diff

Reviewed By: jknoxville

Differential Revision: D21176415

fbshipit-source-id: fe16d966c58d36558034ce4ade8f58f8031aab18
2020-04-23 04:31:17 -07:00
shinpei_kim
ad6da949f7 Simplify RegExp (#995)
Summary:
## Changelog
Pull Request resolved: https://github.com/facebook/flipper/pull/995

Reviewed By: passy

Differential Revision: D21112956

Pulled By: priteshrnandgaonkar

fbshipit-source-id: 14d79dd399970c49835aab7eeb7dbd69ee323ab9
2020-04-20 02:52:52 -07:00
Michel Weststrate
8b75e81da5 Make background plugin stats consumable from Scuba
Summary:
I was trying to plot some graphs based on our background plugin stats, grouped per plugin, but discovered that we can't exploded or group on json object keys, so separated the data into separate `plugin-stats-plugin` events, as is done with the `time-spent` event.

Also fixed:
* grouping stats per plugin, rather than per plugin method, which was to fine-grained
* added `bytesReceived` field to the cumulative event `plugin-stats`

Reviewed By: jknoxville

Differential Revision: D21046016

fbshipit-source-id: 1043612064921cf6427d5b3bbee10b76776df39e
2020-04-16 03:20:44 -07:00
Shaheen Gandhi
f4b0898de5 Refactor command execution fallback for both push and pull
Summary:
D20920582 was unfortunately not enough to fix ability for Flipper to connect to packages that are running as services without an `<application>` tag in the manifest.

The issue there is that the push of `sonarCA.crt` succeeded due to erroneous changes to the target package.

This change ensures both pull and push are covered.

Reviewed By: jknoxville

Differential Revision: D21024673

fbshipit-source-id: cad86ba9ae3b02a99187d3f6bd3b500d2a4b971a
2020-04-15 11:26:37 -07:00
Anton Nikolaev
553c54b63e Include default plugins into app bundle (#998)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/998

After this diff all the default plugins (which are distributed with Flipper) will be included into the main app bundle instead of bundling each of them separately and then loading from file system. This is done by auto-generating plugins index in build-time and importing it from Flipper app bundle, so Metro can follow these imports and bundle all the plugins to the app bundle.
This provides several benefits:
1) reduced Flipper bundle size (~10% reduction of zipped Flipper archive), because Metro bundles each of re-used dependencies only once instead of bundling them for each plugin where such dependency used.
2) Faster Flipper startup because of reduced bundle and the fact that we don't need to load each plugin bundle from disk - just need to load the single bundle where everything is already included.
3) Metro dev server for plugins works in the same way as for Flipper app itself, e.g. simple refresh automatically recompiles bundled plugins too if there are changes. This also potentially should allow us to enable "fast refresh" for quicker iterations while developing plugins.
4) Faster build ("yarn build --mac" is 2 times faster on my machine after this change)

Potential downsides:
1) Currently all the plugins are identically loaded from disk. After this change some of plugins will be bundled, and some of them (third-party) will be loaded from disk.
2) In future when it will be possible to publish new versions of default plugins separately, installing new version of such plugin (e.g. with some urgent fix) will mean the "default" pre-built version will still be bundled (we cannot "unbundle" it :)), but we'll skip it and instead load new version from disk.

Changelog: Internals: include default plugins into the main bundle instead producing separate bundles for them.

Reviewed By: passy

Differential Revision: D20864002

fbshipit-source-id: 2968f3b786cdd1767d6223996090143d03894b92
2020-04-14 07:20:39 -07:00
Anton Nikolaev
bcc133026e Add public plugins to the root package.json as workspaces (#969)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/969

Added all public plugins as workspaces to the root package.json. This means all these plugins will use the single root yarn.lock and installation of their dependencies will be faster. This also means that plugins can declare dependencies to other local packages included into workspaces and they will be symlinked automatically.

Changelog: Internals: plugins added as "yarn workspaces" into the root package.json to simplify dependency management between them

Reviewed By: mweststrate

Differential Revision: D20805231

fbshipit-source-id: e85c62d3195d1ea3c5c60def6ca12318a2b53466
2020-04-14 07:20:38 -07:00
Shaheen Gandhi
25222606c6 Retry file pull without run-as when package is not an application
Summary: When an android package is not an application, the `run-as` command will fail. In this case, the package might be an operating system service package. In this case, it may be possible for the user to run adb as root. Note that Flipper does not restart adbd via `adb root` on behalf of the user; the command is simply retried without `run-as`.

Reviewed By: jknoxville

Differential Revision: D20920582

fbshipit-source-id: 8db86084c3c3a61d8322edb1e34fdfdf48d0412d
2020-04-08 16:15:09 -07:00
Michel Weststrate
bc6165bbfe Measure how many bytes are received per plugin
Summary:
Measure how many byte we receive per plugin, and add this to the plugin stats that are collected

Will add a graph to the flipper dashboard, and probably a small visualization in a next diff as well.

Reviewed By: priteshrnandgaonkar

Differential Revision: D20917583

fbshipit-source-id: bb341531ecf8492080af82c56e73c0ec608f7b36
2020-04-08 13:05:59 -07:00
Michel Weststrate
cbf0234ee4 Fix test instability
Summary:
* Fixed issue where the test wouldn't be reliable if it fired to quickly since the process has started
* Increased all test timings with a factor 10, to make the test less sensitive to system load

Reviewed By: passy

Differential Revision: D20914978

fbshipit-source-id: a3870e6374e61cf9ec1b11da529077876ef85bf8
2020-04-08 06:33:10 -07:00
Pritesh Nandgaonkar
793b100dfc Export last few lines of the logs
Summary:
This diff exports the last 30 mins of logs. I noticed that the export can become massive, if Flipper is running for a long time and if all the logs are exported. Due to this I have noticed that the byte size of the exports has been huge and most probably causing out of emory exception in our end point to upload the trace.

Just exporting Logs plugin, size of Flipper trace is 1.8MB, mind that my Flipper was just open for few mins.

{F233265050}

Look at [this](https://our.intern.facebook.com/intern/scuba/query/?dataset=infinity_analytics_events&drillstate=%7B%22sampleCols%22%3A[%22infinity_version%22%2C%22session_id%22%2C%22data%22%2C%22time%22%2C%22is_headless%22%2C%22platform%22%2C%22plugin%22%2C%22namespace_version%22%2C%22arch%22%2C%22gatekeepers%22%2C%22fbid%22%2C%22event%22%2C%22type%22%2C%22namespace%22%2C%22electron_version%22%2C%22node_version%22]%2C%22cols%22%3A[%22fbid%22]%2C%22derivedCols%22%3A[]%2C%22mappedCols%22%3A[]%2C%22enumCols%22%3A[]%2C%22return_remainder%22%3Afalse%2C%22should_pivot%22%3Afalse%2C%22is_timeseries%22%3Afalse%2C%22hideEmptyColumns%22%3Afalse%2C%22start%22%3A%22-1%20week%22%2C%22samplingRatio%22%3A1%2C%22compare%22%3A%22none%22%2C%22should_transpose%22%3Afalse%2C%22dimensions%22%3A[%22event%22]%2C%22num_samples%22%3A%22100%22%2C%22metric%22%3A%22count%22%2C%22top%22%3A50%2C%22timezone%22%3A%22America%2FLos_Angeles%22%2C%22end%22%3A%22now%22%2C%22aggregateList%22%3A[]%2C%22param_dimensions%22%3A[]%2C%22modifiers%22%3A[]%2C%22order%22%3A%22none%22%2C%22order_desc%22%3Atrue%2C%22filterMode%22%3A%22DEFAULT%22%2C%22constraints%22%3A[[%7B%22column%22%3A%22type%22%2C%22op%22%3A%22eq%22%2C%22value%22%3A[%22[%5C%22usage%5C%22]%22]%7D%2C%7B%22column%22%3A%22fbid%22%2C%22op%22%3A%22eq%22%2C%22value%22%3A[%22[%5C%22100001214797081%5C%22]%22]%7D%2C%7B%22column%22%3A%22event%22%2C%22op%22%3A%22eq%22%2C%22value%22%3A[%22[%5C%22export-url%3Atrace-size%5C%22]%22]%7D]]%2C%22c_constraints%22%3A[[]]%2C%22b_constraints%22%3A[[]]%2C%22metrik_view_params%22%3A%7B%22should_use_legacy_colors%22%3Afalse%2C%22columns_skip_formatting%22%3A[]%2C%22view%22%3A%22samples_client%22%2C%22width%22%3A%222110%22%2C%22height%22%3A%221300%22%2C%22tableID%22%3A%22infinity_analytics_events%22%2C%22tooltip_outside%22%3Atrue%2C%22fitToContent%22%3Afalse%2C%22format_tooltip_in_percent%22%3Afalse%2C%22pocs%22%3A[%7B%22poc_label%22%3A%22Point%20of%20contact%22%2C%22poc_id%22%3A%22100002006986037%22%7D]%2C%22state%22%3A%22published%22%2C%22use_y_axis_hints_as_limits%22%3Atrue%2C%22has_dynamic_context_menu%22%3Atrue%2C%22has_context_menu%22%3Afalse%2C%22legend_mode%22%3A%22nongrid%22%2C%22title%22%3A%22Support%20Form%20V2%20Events%22%2C%22timezone_offset%22%3A420%2C%22y_min_hint%22%3A0%2C%22should_render_plugins_menu%22%3Afalse%2C%22title_use_v2%22%3Atrue%7D%7D&pool=uber&view=samples_client&dashboard_id&tab_id&widget_id&widget_piece_id), the size of the export is 194 MB.

Reviewed By: jknoxville

Differential Revision: D20868701

fbshipit-source-id: 1f041d11fc9cab93cdd1f1a28f15fa557b51fc75
2020-04-06 08:43:43 -07:00
Pritesh Nandgaonkar
4e3c06cd54 Update the text to be clear that the export was successfull
Summary: This diff adds the capability to show the plugin names for which flipper failed to fetch metadata. These changes are done for both export as URL and export as File. This diff also fixes the logging for the export as a file and logs the result object in scuba.

Reviewed By: jknoxville

Differential Revision: D20724860

fbshipit-source-id: 4c9591267ca05045e0ed084804d96851c9d7636d
2020-03-31 11:02:16 -07:00
Pascal Hartig
22b3e89ce5 Disable auto-updater (#951)
Summary: Pull Request resolved: https://github.com/facebook/flipper/pull/951

Reviewed By: jknoxville, mweststrate

Differential Revision: D20766973

fbshipit-source-id: 93bf659d8944c0cca1b513235aa43ffc32b7ada8
2020-03-31 09:15:17 -07:00
Michel Weststrate
f803cb3cb1 Avoid dropping plugin messages if the connected device is not found
Summary:
Before we dropped all messages if the client connected before the device has been registered. Which happens typically on iOS (it can actually take very long, will investigate that as well, but not in this diff).
However, we don't need to wait for the device to process messages, we just need its serial, which we already know (given that we use that query id to find the matching device in the first place).

I think this will greatly improved perceived stability for iOS

Reviewed By: jknoxville

Differential Revision: D20734892

fbshipit-source-id: f98e8d31558ef606b9a8287e03fc41ab6c3a087d
2020-03-30 07:58:40 -07:00
Pascal Hartig
39f5a07ac4 Disable sideEffect test as it's failing on GitHub
Summary: Looks like something isn't deterministic.

Reviewed By: nikoant

Differential Revision: D20725370

fbshipit-source-id: 493fa7915aba9aa7bd6cce254684ff3d0f2f7eaf
2020-03-30 02:35:19 -07:00
Michel Weststrate
7a40d3f0a3 Introduce sideEffects for safer management of store side effects
Summary:
This diff introducing the sideEffect abstractions, that creates a fundamental solution for the problem in D20619226: If a subscription to the store errors, the entire store can't be updated anymore, bringing the entire app to a halt.

Applying this abstraction will be done in a next diff.

To essential idea of sideEffect is that it fixes a few problems:

1. I decouples and throttles the effect so that no arbitrary expensive burden is added to every store update
2. It makes sure that a crashing side effect doesn't crash the entire store update
3. It helps with tracing and monitoring perf problems
4. It puts the side effect behind a selector so that the side effect is only triggered if a relevant part of the store changes, like we do for components.

Note that if some subscription _must_ be handled synchronously, than that logic should be in a reducer, not in a subscription or side effect. Luckily we don't have any examples of that in our code base.

This abstraction might actually be intesting to be shared wider for fun and profit.

Reviewed By: passy

Differential Revision: D20625872

fbshipit-source-id: adaf8356950594d50e6a99a17a862f757c3777db
2020-03-27 04:42:12 -07:00
Michael Bolin
37f0260116 Back out "Upgrade Prettier from 1.17 to 2.0.2."
Differential Revision: D20639755

fbshipit-source-id: 5028563f9cf0527a30b4259daac50cdc03934bfd
2020-03-24 21:48:09 -07:00