Commit Graph

1258 Commits

Author SHA1 Message Date
Pascal Hartig
4548aecefe Add PR template
Summary: Pull Request resolved: https://github.com/facebook/flipper/pull/422

Reviewed By: danielbuechele

Differential Revision: D15121695

Pulled By: passy

fbshipit-source-id: c33b426ed309f140ffe5b06c2e20b19abe6e655c
2019-04-29 08:15:20 -07:00
Pascal Hartig
f76db15bdb Edit Docusaurus edit URL (#421)
Summary:
Makes editing pages easier.
Pull Request resolved: https://github.com/facebook/flipper/pull/421

Reviewed By: danielbuechele

Differential Revision: D15121670

Pulled By: passy

fbshipit-source-id: a201de3ce84204a9478711a80f3557671de743ab
2019-04-29 08:09:50 -07:00
Pascal Hartig
5b8d78d3ab Create CHANGELOG.md
Summary: Pull Request resolved: https://github.com/facebook/flipper/pull/417

Reviewed By: jknoxville

Differential Revision: D15120799

Pulled By: passy

fbshipit-source-id: 547b20a8aae4f2f58b4c5a2dc6b10da6068863e3
2019-04-29 06:20:51 -07:00
Kfir Schindelhaim
b78dbb75b2 Use the tree node idenitifer as the component identifier
Summary: Now that we always build the component tree (CKTreeNode) in debug, we can just use the tree node identifier as the component identifier instead of creating a very long string.

Reviewed By: fabiomassimo

Differential Revision: D15046568

fbshipit-source-id: 4d83c1bee3fd7ac85ee4bd6e9f4f47812509e0c3
2019-04-26 10:15:02 -07:00
Kfir Schindelhaim
1c35b705eb Use the cached layout wrapper if it exists
Summary:
- We cache the layout wrapper, but never used it actually.
- This should make the Layout plugin faster.

Reviewed By: fabiomassimo

Differential Revision: D15046463

fbshipit-source-id: b61f28d9a981e782b76abe78037d37665f7d8ba3
2019-04-26 10:15:02 -07:00
Kfir Schindelhaim
c764322c1a Layout plugin integration for reused nodes information
Summary:
- Expose the reused component counter into the layout plugin

https://pxl.cl/wVJf

Reviewed By: priteshrnandgaonkar

Differential Revision: D14952906

fbshipit-source-id: 784a02dbf44d80d95fdd3a804f58ecd0f51a3e1f
2019-04-26 10:15:02 -07:00
John Knox
f00ff72211 Allow null TableRow sidebars
Summary: Makes the API a bit easier to use. Don't have to build an empty sidebar if you don't want one.

Reviewed By: passy

Differential Revision: D15064205

fbshipit-source-id: bd31c1aa97fd6d1c93717c10b268f49e44eb1299
2019-04-26 09:29:42 -07:00
Pritesh Nandgaonkar
4049720759 Update CK and Yoga dependencies
Summary:
Updates CK and Yoga to latest dependencies.
Also removed the code from the post_install script which changed the min ios version of the yoga dependency, its no longer required.

Reviewed By: kfirapps

Differential Revision: D15098129

fbshipit-source-id: d00938db1df59d74253ae412a4bd835a0aa286b7
2019-04-26 07:11:56 -07:00
John Knox
0a3805c0f4 Add types for native table plugin persisted state reducer
Summary:
I haven't done this at the platform level (plugin.js) because the persistedStateReducer method signature prevents it unfortunately.

We might want to add a different method type at some point, like this one so you don't need to do this unsafe casting in the plugin itself, but for now, just doing it here.

Reviewed By: danielbuechele

Differential Revision: D15080331

fbshipit-source-id: c51749ac84cd38559d85089557f44ace8ae6e08b
2019-04-26 04:08:55 -07:00
John Knox
a4164c89a0 Fix emulator usage on linux
Summary: emulator isn't on the path in CI machines, but we already have ANDROID_HOME set so we can work out where it is.

Reviewed By: danielbuechele

Differential Revision: D15080422

fbshipit-source-id: 2c50a3de27909d2bfc82ea0210d06a0cc32357d7
2019-04-26 03:45:35 -07:00
Benny Wong
221bf1cc75 Fix error message when switching between device and simulator
Summary: Currently, you get an error when you don't have device utils installed. However, when you switch your flipper to a supported device, the error may not be cleared. This handles that case.

Reviewed By: jknoxville

Differential Revision: D15087620

fbshipit-source-id: 6060752b54161c7610656531d053ecbcdd9e978a
2019-04-26 03:41:20 -07:00
Pritesh Nandgaonkar
2359d22b46 Fix Analytics
Summary: We were missing to log for those cases when we exported through sharable link. Also I changed logging a bit so that we can differentiate between Sharable Link and File exports

Reviewed By: jknoxville

Differential Revision: D15080292

fbshipit-source-id: 063e9f515e4f089ed3715e7b1ca0e66410e46541
2019-04-25 10:39:14 -07:00
Pritesh Nandgaonkar
afd729deb6 Added metrics argument to headless inorder to export metrics
Summary:
This diff makes headless flipper accept `metrics` argument. Once this is passed. The headless flipper will terminate to export the metrics of the plugins, the type of the export looks like the following.

```
export type MetricType = {[metricName: string]: number};
type MetricPluginType = {[pluginID: string]: MetricType};
export type ExportMetricType = {[clientID: string]: MetricPluginType};

```

This diff, uses the store to export the metrics. I will modify the logic to accept the data which gets exported through `exportData`

Reviewed By: passy

Differential Revision: D14933499

fbshipit-source-id: dade5b7bc59ea4beb6d16c5ef471737e8597358a
2019-04-25 07:41:34 -07:00
Scott Hoyt
7bbb8c10c4 Extend FKUserDefaultsPlugin to support app suite user defaults.
Summary:
`FKUserDefaultsPlugin` is initialized with an `appSuiteName` but doesn't use this to monitor the app suite user defaults. This adds that capability.

In Flipper, "App Suite UserDefaults" defaults will show up in the drop down selector for user defaults.

Reviewed By: priteshrnandgaonkar

Differential Revision: D14922399

fbshipit-source-id: 3876976ccd0968fdec35f7605107202e1f9d7cee
2019-04-24 10:22:27 -07:00
Benny Wong
d9d1346c12 Add copy as cURL for network requests (#415)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/415

This diff adds a context menu item for network request rows that allows the user to copy the request as a curl command. The logic for the command generation was inspired by [`FLEXNetworkCurlLogger`](https://github.com/Flipboard/FLEX/blob/master/Classes/Network/FLEXNetworkCurlLogger.m)

Resolves #406

Reviewed By: passy

Differential Revision: D14973754

fbshipit-source-id: a57c31190d7615ca5377308e0bfad521b645b2e4
2019-04-23 07:05:19 -07:00
Benny Wong
01e4d694b5 Refactor types and util functions
Summary: Separating out the types and utils for work I'm doing on https://github.com/facebook/flipper/pull/415 / D14973754. This will make the request to curl utility function much cleaner

Reviewed By: jknoxville

Differential Revision: D14976747

fbshipit-source-id: cc15c10103ea75945d0a2ebaaa6d32a376192961
2019-04-17 12:23:51 -07:00
Pascal Hartig
20bd937d43 Flipper Bump: v0.20.1-SNAPSHOT
Summary: Back to snapshots.

Reviewed By: danielbuechele

Differential Revision: D14951752

fbshipit-source-id: a0d0d12fc6f9eae3e7809d18df8ed1a85503f4e4
2019-04-17 10:37:33 -07:00
Pascal Hartig
6fa40aad77 Flipper Release: v0.20.0
Summary:
== Highlights

* Improved UI when exporting Flipper data. (45999a5292)

== Fixes

* The Shared Preference Plugin on Android will search for all shared pref files instead of only the package name by default. (825ecb8e23)
* When restarting Flipper and the previously selected plugin no longer exists, the UI would crash. (c4a8e73543)

Commit log: https://github.com/facebook/flipper/compare/v0.19.0...v0.20.0

Reviewed By: danielbuechele

Differential Revision: D14951753

fbshipit-source-id: dbafc2d41cd25b2ede218b3fe3e99745226939a9
2019-04-17 10:37:33 -07:00
Pascal Hartig
6db83a7675 Use ToggleSwitches for binary options
Summary:
We've had a bunch of different options that were all binary
switches with very different ways of displaying them.

This consolidates them all to use ToggleSwitches. I think it
may still make sense to move them all to a sidebar as it's
the case for the Analytics plugin, but that's for another diff.

Reviewed By: danielbuechele

Differential Revision: D14933392

fbshipit-source-id: 7ef286b61142a564a7cde6de875266ac8641704b
2019-04-17 10:31:21 -07:00
Pascal Hartig
c244946be3 Catch malformed URI content
Summary:
As seen in https://our.intern.facebook.com/intern/bug/653953588368620/,
the network plugin can crash if content doesn't look like a URI.

Ideally, we'd be more granular in catching this, but for now skipping
that content seems better than crashing the entire plugin page.

Reviewed By: danielbuechele

Differential Revision: D14971610

fbshipit-source-id: 2708e5c0d4d1f584419d24c7dc38438009015565
2019-04-17 10:24:48 -07:00
Jiyue Wang
614f48dda3 Show server execution time in network plugin
Summary: the simpliest approach to render this metadata for debugging purpose

Reviewed By: bcuccioli

Differential Revision: D14974129

fbshipit-source-id: d816d1ef8dcd1bc333c4d0cdf70d6d9fb925bc03
2019-04-17 10:08:20 -07:00
John Knox
6f8d6ddd85 Sample app requires API 21+
Summary:
Currently running the sample app on a pre-21 device produces a runtime error. This is because it includes OkHttp which requires 21+.

So this change just stops the sample app from being installable on pre-21 devices.

```
FATAL EXCEPTION: main
Process: com.facebook.flipper.sample, PID: 19629
java.lang.ExceptionInInitializerError
	at okhttp3.OkHttpClient.newSslSocketFactory(OkHttpClient.java:263)
	at okhttp3.OkHttpClient.<init>(OkHttpClient.java:229)
	at okhttp3.OkHttpClient$Builder.build(OkHttpClient.java:1015)
	at com.facebook.flipper.sample.FlipperSampleApplication.onCreate(FlipperSampleApplication.java:54)
	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4344)
	at android.app.ActivityThread.access$1500(ActivityThread.java:135)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
	at android.os.Handler.dispatchMessage(Handler.java:102)
	at android.os.Looper.loop(Looper.java:136)
	at android.app.ActivityThread.main(ActivityThread.java:5017)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:515)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
	at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: Expected Android API level 21+ but was 19
	at okhttp3.internal.platform.AndroidPlatform.buildIfSupported(AndroidPlatform.java:238)
	at okhttp3.internal.platform.Platform.findPlatform(Platform.java:202)
	at okhttp3.internal.platform.Platform.<clinit>(Platform.java:79)
	... 16 more
```

Reviewed By: passy

Differential Revision: D14953859

fbshipit-source-id: 8289c19e837f1d3739e120dc5a0f53111b800ca0
2019-04-17 06:55:48 -07:00
Pascal Hartig
9389a8e919 Bump some more dependencies (#414)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/414

Some more minor upgrades.

Reviewed By: jknoxville

Differential Revision: D14933687

fbshipit-source-id: 35bfcbb2ab3e552e430d8a2e3e30fb3568fab6c9
2019-04-15 09:57:59 -07:00
Pascal Hartig
59881f1888 Bump okhttp
Summary:
Requires some compile options as it uses newer Java features.
Post here: https://github.com/square/okhttp/issues/4597#issuecomment-461204144

Reviewed By: jknoxville

Differential Revision: D14933502

fbshipit-source-id: 265c43f2d9ae61fa9f6f42516fc6eb899af7f072
2019-04-15 06:55:21 -07:00
Pascal Hartig
3de3ef27d1 Bump versions plugin
Summary:
Updating some deps and starting with the thing
that helps identify outdated things.

Reviewed By: jknoxville

Differential Revision: D14933477

fbshipit-source-id: 3a0f84abf97f9327ecab72388e114a1fb533504b
2019-04-15 06:55:21 -07:00
Pritesh Nandgaonkar
5169d318de Fix the callstack sent from error reporting runnable
Summary:
The crash logged from `ErrorReporterRunnable` wasn't detailed. For example look at the following video.
Also for some reason the `FlipperConnection` interface doesn't have an argument for crash name. Thus I changed the js side of the plugin to accept `crash.name` to be undefined.

{F155526537}

Reviewed By: passy

Differential Revision: D14852561

fbshipit-source-id: 6daf9847535b4508fa312b4f940b014911aae2e5
2019-04-15 05:51:37 -07:00
Pascal Hartig
9e4a9607b5 Bump rsocket
Summary:
Before trying to debug the bugs we found, let's first
get it to the latest version.

Reviewed By: jknoxville

Differential Revision: D14913129

fbshipit-source-id: 255ecf02e495fccb21e413dff166aacfd80207e7
2019-04-14 10:40:54 -07:00
Pascal Hartig
b276088f5f Refactor debug logging
Summary:
I dislike the sprinkled eslint ignores. Let's put this
in one place and just depend on isProduction().

Reviewed By: jknoxville

Differential Revision: D14913057

fbshipit-source-id: 2f5a98b7dba1ac1829eaeab24290d2f66820edf9
2019-04-14 02:29:42 -07:00
John Knox
460260d620 Fix samsung "run-as" warning (#413)
Summary:
During client setup, if no device is found with a matching CSR, and any of those devices errored while trying to find that out, surface that error, instead of a generic 'No matching device found'.

This means that the warning about some unusable samsung devices now shows again, instead of a generic message.

Pull Request resolved: https://github.com/facebook/flipper/pull/413

Reviewed By: passy

Differential Revision: D14891185

Pulled By: jknoxville

fbshipit-source-id: 8f4cb4e8e04defb429a4ca915b0dab4725495c87
2019-04-11 05:29:52 -07:00
Zhang Qichuan
ffc6a5fe18 Fix issue 408 (#411)
Summary:
Fix https://github.com/facebook/flipper/issues/408
Pull Request resolved: https://github.com/facebook/flipper/pull/411

Reviewed By: danielbuechele

Differential Revision: D14802001

Pulled By: jknoxville

fbshipit-source-id: 5ce435c0c941a715f799c75a8e09dbf4983e9789
2019-04-11 04:38:52 -07:00
Pritesh Nandgaonkar
25f82986ea Avoid triggering notification in headless
Summary:
There was a bug where headless version used to crash when crash reporter plugin used to get messages. So the problem was that it tried to trigger the notification in headless version, which obviously won't work.

Solves this [bug](https://our.intern.facebook.com/intern/sandcastle/log/?instance_id=88210824&step_id=773963185&step_index=5&name=Get+headless+and+run+it)
Bug:

{F155634920}

Reviewed By: jknoxville, danielbuechele

Differential Revision: D14874122

fbshipit-source-id: 2614b16665a354be7a75844a372dbea7a59d7e55
2019-04-11 04:08:59 -07:00
Kevin Lin
7f20c34e34 Remove unneeded TODO
Summary: Remove unneeded TODO.

Reviewed By: priteshrnandgaonkar

Differential Revision: D14882889

fbshipit-source-id: cbcb26bb90a315b5c36f4573bfcb416b8a0b4c46
2019-04-11 03:50:49 -07:00
Daniel Büchele
1d3559c759 Remove beta bar from layout plugin
Summary: I though I already did this, when releasing it. Apparently not.

Reviewed By: jknoxville

Differential Revision: D14854810

fbshipit-source-id: 4da61866925e06a415bfaed0f48e5434e769ec39
2019-04-10 10:33:41 -07:00
Daniel Büchele
efd9b37428 fix tests, upgrade jest
Summary:
Adding a `moduleNameMapper` for jest tests, to map the module `flipper` to `src/index.js`. This fixes the electron tests.

While we're at it, upgrading jest and jest-runner/electron to the latest versions.

Reviewed By: jknoxville

Differential Revision: D14870486

fbshipit-source-id: c4c31066ed5ce8a6d5ed4e7e4f47d3c5d2370553
2019-04-10 10:33:41 -07:00
John Knox
a27cd84d45 Add top and bottom toolbars to native plugins
Summary: I'm adding these in the table plugin for now, since it's the only native plugin, but it probably makes sense to have this ability in all native plugins.

Reviewed By: passy

Differential Revision: D14833326

fbshipit-source-id: 906190745091e02daccb9f6e84b95e0e13f2d8bd
2019-04-10 06:17:52 -07:00
John Knox
c198612303 Add top and bottom toolbars to table plugin
Summary: Adds ability to add things above and below the table when using native plugins.

Reviewed By: passy

Differential Revision: D14850839

fbshipit-source-id: cc7fa6d8055900c29f5af6f3460bc280c0a4a675
2019-04-10 06:17:51 -07:00
Daniel Büchele
c4a8e73543 Don't throw if selectedPlugin doesn't exist
Summary:
When a plugin was selected the last time Flipper was running, but is not available anymore, Flipper was still trying to load the plugin and failed.

Now, if the selected plugin is not available, we just don't render anything.

Reviewed By: jknoxville

Differential Revision: D14854930

fbshipit-source-id: 9ddec47becce7bffcf93b3f4a092a8fcf2022f4f
2019-04-09 11:05:38 -07:00
John Knox
f21c9f1c61 Rename SidebarSection to UISection
Summary: These are full width blocks, and can be put anywhere, so calling them SidebarSections isn't very helpful.

Reviewed By: danielbuechele

Differential Revision: D14833465

fbshipit-source-id: 2433337f78b6bbcb951cd90b6925de1b9a304d42
2019-04-09 08:29:25 -07:00
John Knox
40b1c569ad Undo nativeplugin changes to createTablePlugin.js
Summary: Now that it has been inlined into TableNativePlugin, I'm reverting it back to it was before to keep it simple.

Reviewed By: passy

Differential Revision: D14800383

fbshipit-source-id: 81725134b6598c03e3ddfb1eb9269d463815dc82
2019-04-09 06:42:31 -07:00
John Knox
287cad2f4b Inline createTablePlugin for native plugins
Summary: Before expanding what a table plugin can do, I'm extracting the createTablePlugin functionality into the native plugin component, so it can evolve independently without lots of forks in the code.

Reviewed By: passy

Differential Revision: D14800313

fbshipit-source-id: dbb34fe974c507663151daeb6631d1911b46f6df
2019-04-09 06:42:30 -07:00
Pascal Hartig
ad48b0c9a1 Bump jest to 24.7.1
Reviewed By: danielbuechele

Differential Revision: D14802968

fbshipit-source-id: 6e1929df93d27688fd37e7fcaf6c1537d0f7c751
2019-04-09 06:38:07 -07:00
John Knox
fb772d3f81 Move TableMetadata serialization into its class
Summary: Where it should be.

Reviewed By: danielbuechele

Differential Revision: D14833499

fbshipit-source-id: 7af951a402756ddde6d9672ca733a2c910d4ddb4
2019-04-08 11:42:33 -07:00
John Knox
e306ecda19 Fix Test
Summary: GitHub test failing because of this: https://travis-ci.org/facebook/flipper/jobs/517181150

Reviewed By: passy

Differential Revision: D14827468

fbshipit-source-id: e1d85747b39bd9fd781e8e6e8cb1827adb786482
2019-04-08 07:47:30 -07:00
Daniel Büchele
6741c55b72 fix "cannnot convert object to primitve value"
Summary:
The `instanceof Object` check was throwing an "cannnot convert object to primitve value" error, for some reason that I didn't fully understand. Replacing this check with a `typeof` check. However, `null` also returns `object`, so we are explictly checking this as well.

This was the error that happened before, on every POST request:
https://pxl.cl/vc6K

Reviewed By: passy

Differential Revision: D14827145

fbshipit-source-id: 999480db9afb1e0cc0d1bef73fb0cb2223fa0bc4
2019-04-08 03:09:38 -07:00
John Knox
fa3dcdc5dd NativePlugins API update
Summary:
The main change is is changing from the inheritance model:
`FlipperPlugin > NativePlugin > TablePlugin > ConcretePlugin`

to a composition model where:
`NativePlugin > TablePlugin > ConcretePlugin`

And behind the scenes, there's a `FlipperPlugin` that has a `NativePlugin` reference.

Now your native plugin will call methods like (in the table case) `display.updateRows` instead of `super.updateRows()`

The reasons for this are:

* Testability: we can easily mock the display and assert output.
* Encapsulation: Previously, native plugins could call `mConnection.send(...)` and send completely unsupported messages to the desktop. Now they only have access to the display's public api, which is guaranteed to work.

I've also changed it so that on every row update, we send the latest table metadata along with it. This makes sure we can ensure that the right table schema is displayed for the current data.

QueryResponder interface also added, which will come in useful for queryable datasets.

Reviewed By: passy

Differential Revision: D14751885

fbshipit-source-id: ea0bbd25f7eaa60020f8866fe210d8bd1c22e90b
2019-04-05 10:06:14 -07:00
Pascal Hartig
703f43a903 Declare prettier the winner
Summary:
There's been an ongoing fight between eslint and prettier.
You win, prettier.

Reviewed By: danielbuechele

Differential Revision: D14799153

fbshipit-source-id: a4f0546a3a468bb21fed47d61bc14bd7e6f0b185
2019-04-05 09:41:37 -07:00
Pascal Hartig
578b53b98a Removed unused identifiers
Summary: Eslint doesn't like them and me neither.

Reviewed By: danielbuechele

Differential Revision: D14798690

fbshipit-source-id: 5ee7108b9ecfbb05cf2d54cfce68931d16d69a73
2019-04-05 08:07:15 -07:00
Pascal Hartig
ad4c2092a5 Replace launcher error bar with titlebar indicator
Summary:
When starting Flipper with `--launcher-msg`, it currently shows a red error bar at the bottom. That's not ideal for various reasons including it looking kinda bad and it only supporting a single error (the last one set).

This instead adds an action that shows an indicator next to the version at the top as we had it before with the previous system.

Reviewed By: danielbuechele

Differential Revision: D14778859

fbshipit-source-id: 28591de6262e090a4e59a7f5a8cd86d7b3abf8fe
2019-04-05 06:47:14 -07:00
John Knox
c6baeff5ed Create DEV_ENVIRONMENT.md (#409)
Summary:
Adding a recommended workflow for those that don't have a good setup after conversation in https://github.com/facebook/flipper/pull/227

Just a starting point but I think it's better than nothing.
Pull Request resolved: https://github.com/facebook/flipper/pull/409

Reviewed By: danielbuechele

Differential Revision: D14798121

Pulled By: jknoxville

fbshipit-source-id: 721a4bc07720709d1c7cc9f2fa7db69984f4c37e
2019-04-05 06:30:39 -07:00
Arthur Kushka
861c5077f1 Extended ConnectionMock functionality
Summary: Its helpful to store all history of sent messages for testing purposes.

Reviewed By: jknoxville

Differential Revision: D14797191

fbshipit-source-id: 0e58166cb4ab79852165f2107b2f6bcd259f1096
2019-04-05 05:40:44 -07:00