Commit Graph

45 Commits

Author SHA1 Message Date
John Knox
7bdde77b36 Check crash file exists before reading
Summary:
File watcher gives deletion events as well, so this is needed to avoid
attempting to read nonexistent files.

We're getting ENOENT errors from this code, and I suspect this is the reason.

Reviewed By: nikoant

Differential Revision: D19329894

fbshipit-source-id: 46734ea17874e1448d67cc086b363e0abdf07258
2020-01-09 08:23:27 -08:00
Anton Nikolaev
c0f902f81a Upgrade to emotion v10
Summary: React 16 is not compatible with react-emotion 9 (it prints warnings, see also https://github.com/emotion-js/emotion/issues/644). So we should upgrade to 10.

Reviewed By: mweststrate

Differential Revision: D18905889

fbshipit-source-id: c00d2dbbadb1c08544632cb9bfcd63f2b1818a25
2019-12-11 09:43:24 -08:00
Michel Weststrate
d2ab55a6f8 Introduce support request details form
Summary: Initial setup for a support detail form. Will only show up if meta data is present in the flipper file, so use the attached one to see it.

Reviewed By: jknoxville

Differential Revision: D18479193

fbshipit-source-id: 61da089f1e883fea20b2422a6bea99b2f8a4434b
2019-11-14 05:46:14 -08:00
Gijs Weterings
7e374ebdf1 Don't send notifications for crashes we can't explain
Summary: If the `crash.reason` assumes the default value of "Cannot figure out the cause", we don't show a notification in the hub. The crash is still visible in the Crash plugin, but the superfluous Reason row is hidden there, as we can't say anything useful there anyways

Reviewed By: passy

Differential Revision: D18223910

fbshipit-source-id: c033085badbf633b58f95c495c6d3a22bc7fb163
2019-10-30 08:38:17 -07:00
Gijs Weterings
7ca230a9c6 MVP of filtering errors based on crash reason field
Summary: Minimal change to be able to filter crashes in the notifications tab, to filter out recurring/irrelevant crashes such as the one in https://github.com/facebook/flipper/issues/609

Reviewed By: passy

Differential Revision: D18223356

fbshipit-source-id: 8cf2187d53c9fec98c9a35edefb0da5783fe7c8e
2019-10-30 08:28:46 -07:00
Andres Suarez
0675dd924d Tidy up Flipper license headers [1/2]
Reviewed By: passy

Differential Revision: D17863711

fbshipit-source-id: 259dc77826fb803ff1b88c88529d7f679d3b74d8
2019-10-11 13:46:45 -07:00
Daniel Büchele
a72eac27a7 add flipper-plugin keyword to package.json
Summary: For plugins to be discoverable through NPM, they need to have `flipper-plugin` as a keyword. This adds this keyword to all existing plugins (although they are currently not distributed via NPM) and the webside/docs.

Reviewed By: passy

Differential Revision: D17395079

fbshipit-source-id: e42dd31ca39c3754cf729052ee783687748bafe8
2019-09-17 06:21:29 -07:00
John Knox
ce34c20506 Convert utils/pluginUtils to TS
Reviewed By: danielbuechele

Differential Revision: D16710689

fbshipit-source-id: 8da309810f633af27759286521c784ac665531b9
2019-08-12 03:11:16 -07:00
Pritesh Nandgaonkar
47a55b0f26 Migrate BaseDevice from js to tsx
Summary: As per the title

Reviewed By: passy

Differential Revision: D16687261

fbshipit-source-id: a9d85424fb0a08fada7edd0355c356907518d366
2019-08-09 06:56:54 -07:00
John Knox
3bfb7faf0a Convert plugin.js to plugin.tsx
Summary:
* Deletes plugin.js
* Adds plugin.tsx
* Adds plugin flow-typed module that has the old flow types

Reviewed By: passy

Differential Revision: D16668067

fbshipit-source-id: b2f0ce47c4cf7125b4e352821e921b97675d12a9
2019-08-08 12:06:11 -07:00
Pascal Hartig
6a43b0cc88 Revert D16648356: Migration of Basedevice from js to tsx
Differential Revision:
D16648356

Original commit changeset: 12954532acf9

fbshipit-source-id: 76754f427e7ccac0f0b0030c3a0af02d036c1a8b
2019-08-06 08:50:32 -07:00
Pritesh Nandgaonkar
604e6d761f Migration of Basedevice from js to tsx
Summary: Converted BaseDevice from js to tsx

Reviewed By: passy

Differential Revision: D16648356

fbshipit-source-id: 12954532acf91930ab8c5f995bb94f6f9fe44015
2019-08-06 05:12:20 -07:00
Pascal Hartig
c588b650ae Prefer const wherever possible
Summary:
Non-final identifiers make code harder to understand.
This is particularly true for JavaScript where even the *type*
can change as a value gets reassigned later.

This enforces to use `const` whereever possible, but doesn't
"outlaw" `let`. Mixed destructuring is also still allowed.

Used `eslint --fix` to change all existing cases.

Reviewed By: jknoxville

Differential Revision: D16131329

fbshipit-source-id: 2eceaca7c603b71b36e005be5d135e1849f2518d
2019-07-10 03:28:25 -07:00
Pritesh Nandgaonkar
81b71352dd Fix the bug related to the crash selection
Summary:
Fixes the bug when the crash options had same title. Selection was broken in that case. Look at the video.

{F163450316}

Reviewed By: jknoxville

Differential Revision: D15985919

fbshipit-source-id: 7366c8f5f33bbddc15c058b7d20d78d295161404
2019-06-27 06:58:08 -07:00
Pritesh Nandgaonkar
c86a6809cb Stacktrace rows now wrap into other line as it made difficult to read it with scroll bars
Summary:
When the stack trace is too long its difficult to read the stack trace as the scroll bar shows up. This diff makes the stack trace text to wrap onto the next line, inorder to avoid scrolling. Look at the attached image, to understand the bug.

{F162756039}

Reviewed By: passy

Differential Revision: D15921226

fbshipit-source-id: f7320951ccdcf531f4276088e3f3ee0f552ab2fc
2019-06-21 03:45:58 -07:00
Pascal Hartig
375e313736 Consider callstack as nullable
Summary:
I received an error like this while rendering:

So we should type the callstack accordingly.

Reviewed By: priteshrnandgaonkar

Differential Revision: D15921517

fbshipit-source-id: 5863c75af142f1c22d5b520db8d7c0283f401e11
2019-06-20 10:29:04 -07:00
Pritesh Nandgaonkar
b3979e7012 Fix the scroll of the crash headers in the plugin
Summary:
When the text is too long either for the crash name and the crash reason, user is not able to see scroll and see the text.

Bug:

{F162636692}

Reviewed By: danielbuechele

Differential Revision: D15907908

fbshipit-source-id: a9557074e310728d4cb4825ec18740ca0ea0c12f
2019-06-20 06:15:44 -07:00
Pritesh Nandgaonkar
0f9845a647 Fix the wrong notification filtering confition
Summary:
Fixes the bug which didn't fire the crash notification.

Bug:

{F162618487}

Reviewed By: passy

Differential Revision: D15905154

fbshipit-source-id: 8b34cc567789fbf7f255663a14017cbe300ac387
2019-06-20 06:15:44 -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
Pritesh Nandgaonkar
2655d9b0ef Fix the reason getting truncated
Summary:
The reason was getting truncated, even though it had space to show the message. Look at the screenshot

BUG:

{F155254538}

Reviewed By: jknoxville

Differential Revision: D14775792

fbshipit-source-id: d18a458150c272c0c4e22cda9ea6459f96a70ea3
2019-04-04 08:17:38 -07:00
Pritesh Nandgaonkar
153c75cfa9 Remove crashreporter GK
Summary: Remove the GK

Reviewed By: jknoxville

Differential Revision: D14596572

fbshipit-source-id: 09ef9359ce37c674ac7e1741b7d550716fca5156
2019-03-27 08:45:42 -07:00
Pritesh Nandgaonkar
9dbbae91d2 Provide the capability to copy crash name and reason
Summary: This diff allows user to copy crash name and crash reason in the clipboard

Reviewed By: jknoxville

Differential Revision: D14594212

fbshipit-source-id: 88a99af70e0e1aa5950e144a9072a8d96d7d3fc3
2019-03-27 08:45:42 -07:00
Pritesh Nandgaonkar
c422829beb Limit the message length in the notification
Summary:
Before this diff the notification fired for crash reporter had the entire callstack as its message, which is actually not required and it also makes a UI not good.

This diff just limits the message length

BUG:

{F154537911}

Reviewed By: passy

Differential Revision: D14594189

fbshipit-source-id: 663710e3e80be4367d0cc2a532fd4aa312cc0c1e
2019-03-27 08:45:41 -07:00
Pritesh Nandgaonkar
dd3f0fdfeb Parse Date from the crash and fix the date mismatch in the UI
Summary:
This diff parses the `Date` from the crash log, so that the `Date` shown on the UI matches with the actual crash log
Bug:

{F154301489}

Added test too

Reviewed By: danielbuechele

Differential Revision: D14563053

fbshipit-source-id: b9dc7de11d7f17d6c7aa2afe5106b8f85c0a535c
2019-03-25 04:53:40 -07:00
Pritesh Nandgaonkar
0adc2ef52e Multiple crash support
Summary: This diff adds support to show multiple crashes in the crash reporter plugin. You can also select crashes from the list of the dropdown.

Reviewed By: danielbuechele

Differential Revision: D14513401

fbshipit-source-id: 621d32c5971519e5046daec76ec2f9b32ba4d8ce
2019-03-25 04:53:40 -07:00
Pritesh Nandgaonkar
574ae7a3e8 Improve CrashReporter UI for the latest crash
Summary: I have updated the UI of the crash reporter. It doesn't show the multiple crashes now. I will work on that in other diff. This diff just updates the current UI that shows the latest crash, as per the [design](https://our.intern.facebook.com/intern/px/p/pJ11/)

Reviewed By: danielbuechele

Differential Revision: D14399400

fbshipit-source-id: f6f28c2c6d386f4cd99a257922993ef355b1059b
2019-03-19 08:18:13 -07:00
Pritesh Nandgaonkar
2f3678d6e3 Solve the bug when default state was not added
Summary:
Due to faulty condition default state was not being added in the persistedState, which casued the following bug.

{F153286217}

Reviewed By: danielbuechele

Differential Revision: D14425166

fbshipit-source-id: 557dc3717b650dae90dc44ad12970a684cecbf24
2019-03-13 05:28:36 -07:00
Pritesh Nandgaonkar
978b14c3d3 Append and show errors which are caused due to jni/native crashes
Summary:
Before this diff, the crash reporteer plugin for android just used to show messages which were error and had tag as "AndroidRuntime". This diff fixes this and instead accepts multiple different tags which might be related to crashes.

The issue with triggering the notification for all kind of messages would be that, the user might get many. For the jni errors, the stack trace of it are shown as multiple entry instead of one entry in logcat. So to combine all the stack trace into one callstack message, this diff adds a timer of 10ms and combines the messages which occur in that timespan and then trigger the notification.

Reviewed By: danielbuechele

Differential Revision: D13772505

fbshipit-source-id: fec6f5a7f9f46948c9f9dc5b2a7b92690913c8aa
2019-01-25 09:52:43 -08:00
Pritesh Nandgaonkar
87f64c4535 Send crash notification when flipper cpp exceptions are suppressed
Summary: This diff adds support to send crash notification whenever the cpp exception of Flipper is suppressed. Also updated the tests regarding the same

Reviewed By: jknoxville

Differential Revision: D13635822

fbshipit-source-id: 01e4a57c391476e5b044e64946d337cb4582a527
2019-01-17 16:47:35 -08:00
Pritesh Nandgaonkar
3b9253680f Refactor the type of os from String to an closest enum kind of thing
Summary: This diff updates the type of os in Store from string to a custom enum kind of type.

Reviewed By: passy

Differential Revision: D13622598

fbshipit-source-id: c57a1f2eedbe9e88d43c681c2fa6ca72b93e8808
2019-01-10 09:55:47 -08:00
Pritesh Nandgaonkar
972f8b91d6 Update logic to parse crash for android
Summary:
Updated the logic of parsing the crash log. Earlier the function written to parse crash log just expected the iOS crashes. Now it also gets android crash logs.

I have also written the tests for the same and updated the tests to accommodate for the API change

Reviewed By: passy

Differential Revision: D13612576

fbshipit-source-id: cf7e9d2bca4a425ad7338fc5ec15e29cf88e2e77
2019-01-10 06:36:39 -08:00
Pritesh Nandgaonkar
0048fc6e4a Crash reporter plugin
Summary: This diff adds a static function `onRegisterDevice` which is being called whenever an  device gets registered. This callback is used to add loglisterner for android. I even moved the logic of iOS from `onRegisterPlugin` to this callback. The reason for not adding android log listener in `onRegisterPlugin` was that there were cases when baseDevice was not yet registered before calling `onRegisterPlugin`. For android, I want the instance of `BaseDevice` so that I can add logListener on it.

Reviewed By: danielbuechele

Differential Revision: D13563282

fbshipit-source-id: b5be40f3dbc808bdaeabae28423c563cf2345a22
2019-01-09 10:42:55 -08:00
Pritesh Nandgaonkar
9d4bb45dbc Refactor CrashReporter plugin
Summary: This diff refactors CrashReporter Plugin. The business logic of crash reporter plugin was placed in the `iOSDevice.js` as it gets the hook to the initialisation of iOSDevice. This diff moves the business logic to the Crash Reporter plugin files under the plugins folder. To get the hook, so that we can add our watcher, I have added a static function over `FlipperBasePlugin`, which if exists, will be called once `REGISTER_PLUGIN` event is dispatched

Reviewed By: danielbuechele

Differential Revision: D13529035

fbshipit-source-id: 28216b273b4032727859107d8a6751c6465af9ac
2018-12-21 07:03:21 -08:00
Pritesh Nandgaonkar
9748aba878 show crash notifications only for a particular device
Summary:
Before this diff we used to show crash notifications for all kind of crashes. This diff adds the check, which makes sure that only the crashes of a selected device is shown

Also added tests and updated few tests

Reviewed By: danielbuechele

Differential Revision: D13518019

fbshipit-source-id: 6d640d078a43480274242a5d86f2d135d875d630
2018-12-20 05:21:37 -08:00
Pritesh Nandgaonkar
ade6eabdb0 Fix the regressed deeplink support for crash reporter plugin
Summary: The deeplink from crash notification to crash reporter plugin was broken. It always showed the latest crash.With this diff the crashreporter plugin shows the correct crash information.

Reviewed By: danielbuechele

Differential Revision: D13487792

fbshipit-source-id: eee6826bb0a84d0aab9b432a1c9a04aa7d528402
2018-12-19 07:01:09 -08:00
Pritesh Nandgaonkar
3135c99cc5 Fix crash reporter plugin test
Summary: The test were broken, as the `CrashReporterPlugin.id` was empty. This value is populated when plugin is loaded, thus added a helper function for that. Also removed a duplicate test.

Reviewed By: danielbuechele

Differential Revision: D13517063

fbshipit-source-id: ffb99316933cd27068c6bce67cfa6e95633b6246
2018-12-19 06:33:29 -08:00
Pritesh Nandgaonkar
a12768539e Crashreporter plugin by adding a watchman for crash log
Summary:
This diff adds a watcher on `~/Library/Logs/Diagnostics/` library and fires a notification whenever a crash log is added there. This will only work for iOS crashes. With this change, for iOS we should be able to see all kind of crash notification be it due to uncaught exception or a native crash or signal errors.

For android, it will still show notifications due to uncaught exceptions. In upcoming diffs, I will change the logic for android too by parsing Logcat logs.

This diff doesn't support physical device crash reporting. The crashes for physical devices are synced to other folder and that too they are symbolicated.

Reviewed By: danielbuechele

Differential Revision: D13404648

fbshipit-source-id: 7219855ebc73451af87f77f90cc3ed0f2ab5287c
2018-12-18 13:42:40 -08:00
Pritesh Nandgaonkar
e3fb1e1d84 Disable crash reporter plugin for iOS and update callstack from array to string
Summary:
This diff does the following

- Comments out the code in iOS which sends the message to the desktop side
- Also comments out the part where signal handler is initialised, as we no longer need it. I will remove the iOS implementation completely in next few diffs
- Updated the JS side to expect call stack as a string instead of an array
- Updated the android side to send callstack as a string

I have commented out the code for crash reporter plugin of iOS as for iOS I will be adding a watchman  to a directory where crash logs are dumped. The diff related to this is in the stack

Reviewed By: passy

Differential Revision: D13424824

fbshipit-source-id: b1105da912292bf73cff948206c031de9b059abd
2018-12-18 13:42:40 -08:00
Daniel Büchele
1fc73ad2fb update plugin's package.json
Summary:
For all plugins:
- move static fields `title`, `id` and `icon` to `package.json`
- adds "bugs" field for all plugins containing links to support groups/oncalls.

Reviewed By: priteshrnandgaonkar

Differential Revision: D13417286

fbshipit-source-id: 7b341176915f3ed7b473b95c1d879f21d7d634ef
2018-12-18 10:36:35 -08:00
Daniel Büchele
fd1a00f05e linking to logs plugin
Summary: changing the payload to work with the updated logs plugin

Reviewed By: passy

Differential Revision: D13376392

fbshipit-source-id: ccfb1b1a7a2ec3e9d3899e70c9bdd199a489da88
2018-12-11 07:57:59 -08:00
Pritesh Nandgaonkar
e84e859fc1 Limit the size of the containers and make it scrollable
Summary:
Improves the UI of crash reporter plugin

- Added max height on the value container with scrollable capabilities
- Fixed the bug in UI of the plugin where it showed the latest crash data even though one navigated to the plugin from old crash notification

Reviewed By: danielbuechele

Differential Revision: D13307302

fbshipit-source-id: 97eb96d3d9947a2835cd5572053256e0bdc01e27
2018-12-04 05:51:59 -08:00
Pritesh Nandgaonkar
3183e56560 Add crash reporter plugin to wilde with a gatekeeper
Summary: Adds crash reporter plugin in wilde under a gatekeeper `flipper_crash_reporter_plugin`. By default all the employees will be part of this gatekeeper

Reviewed By: passy

Differential Revision: D13258265

fbshipit-source-id: 1baa2a342f492781d8fb3e86c2a30140537c23f1
2018-11-30 07:19:46 -08:00
Pritesh Nandgaonkar
fd022e3c73 Improvise UI of crash reporter plugin
Summary:
- New improved UI
- Instead of sending the callstack as a string from android, now sending it as an array
- Deeplink to Logs support just for android. In iOS crash is not automatically logged in Logs plugin, atleast thats what happens in sample app

Reviewed By: jknoxville

Differential Revision: D13216477

fbshipit-source-id: d8b77549c83572d0442e431ce88a8f01f42c9565
2018-11-30 05:28:46 -08:00
Pritesh Nandgaonkar
14431e6b76 Make crash reporter plugin device only
Summary: Makes a crash reporter plugin as a device plugin

Reviewed By: passy

Differential Revision: D13203954

fbshipit-source-id: 02ef2aff05d5a240eaff588f9b515d3d610fc182
2018-11-29 06:59:16 -08:00
Pritesh Nandgaonkar
543bc6c4fb Crashreporter Plugin
Summary: Desktop side of Crash reporter plugin

Reviewed By: jknoxville

Differential Revision: D13176724

fbshipit-source-id: d77b86b2bd9c78c0626f2e3b8c0057227d75e2b2
2018-11-26 03:43:26 -08:00