Summary: This diff removes the custom global exception handler which was being used to send crash notifications. Removing it in the favour of next diff, where we detect crash by looking at Logcat
Reviewed By: passy
Differential Revision: D13590049
fbshipit-source-id: 2914d51b2c5f33c1cade4926dbbf72c041047c71
Summary:
Plugin debugger is now supporting 3 different scenarios:
- no devices connected
- device connected, but no app for the selected device is connected
- apps are connected
Added button to the sidebar to open plugin debugger.
Reviewed By: passy
Differential Revision: D13608749
fbshipit-source-id: d5ba04882590dace78e4ef0b17799d5a394dc3c4
Summary:
This patch add a new prop on ManageTabled called buildContextMenuItems. It allows
to override the current context menu when right click on the ManagedTable rows.
Pull Request resolved: https://github.com/facebook/flipper/pull/352
Reviewed By: danielbuechele
Differential Revision: D13590258
Pulled By: passy
fbshipit-source-id: a90887a97136818611102a2628361c84988efeac
Summary: This test uses `folly::SingletonVault` implicitly included. Make it explicit
Differential Revision: D13597582
fbshipit-source-id: 511c2cdb097f80bb32d6738fd7f6f14fa55b6801
Summary:
- New [Crash Reporter Plugin](https://fbflipper.com/docs/crash-reporter-plugin.html).
- "Where is my plugin?" screen can show you why a plugin wasn't loaded.
- New reusable components for StackTrace and MarkerTimeline.
- Support for remote Android devices when connected with adb.
- Avoid indexing 0s videos on Android when recording screencaps. (7471dc6481)
- Fix emulator launching on Linux. (7471dc6481)
- Several fixes to the certificate negotiation process.
Reviewed By: priteshrnandgaonkar
Differential Revision: D13589524
fbshipit-source-id: 3bc0b2ff4d7802b0b767bb5fc55046a84e4a3ec8
Summary:
Was experimenting with Flipper for the first time - while copying snippets over realized the classes don't exist anymore. Just wanted to contribute.
Update class names and import paths for sandbox plugin snippet.
Pull Request resolved: https://github.com/facebook/flipper/pull/349
Differential Revision: D13590256
Pulled By: passy
fbshipit-source-id: f6802276d40d7a76e15b5aad7bb86cda34c85e12
Summary:
The Android SDK installation on Linux is really dumb. The emulator binary
is dynamically linked and ships with some `.so`s that need to be either in `LD_LIBRARY_PATH` or `$CWD`.
For some reason, there's no script, so you have to manually `cd` into the directory in order to
run it. ¯\_(ツ)_/¯
Reviewed By: jknoxville
Differential Revision: D13589660
fbshipit-source-id: e3bdd7468108f1fb1e52f23ae45e21cacc5480f9
Summary:
This PR updates the installation instruction. It missed few crucial information and thus the projects installing flipper as a dependency were facing issues. It addresses the issue #341. It also brings the sample application at par with the documentation.
Pull Request resolved: https://github.com/facebook/flipper/pull/343
Reviewed By: danielbuechele
Differential Revision: D13507298
Pulled By: priteshrnandgaonkar
fbshipit-source-id: 5a4b23d79930cb7eeb491e359b616d3558e260fb
Summary:
Original commit changeset: b1eae542aaa6
This D13487864 has broken `adb start-server` command for the production builds, thus this diff backs out the changes done by that diff.
Reviewed By: danielbuechele
Differential Revision: D13532003
fbshipit-source-id: 1d169dcdab11a52f075187803219915f444952d6
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
Summary: Adding a PluginDebugger that gives the user some information why a plugin might not be loaded.
Reviewed By: jknoxville
Differential Revision: D13465143
fbshipit-source-id: f5d7037850874ca9545ac1523fb4e0f18ede7273
Summary:
The sheet was only used for the bug-reporter before and we had an explicit boolean flag in the redux store to keep track if the bug reporter is shown.
Changing this it an `activeSheet` property, which allows us to show arbitrary sheets, while making sure to only show one at a time.
Reviewed By: jknoxville
Differential Revision: D13516985
fbshipit-source-id: 3e83f719e2b61d0b2229268ebfdc910123b403d2
Summary:
If a plugin was not loaded we used to ignore it. This diff still ignores the plugins that weren't loaded, but adds some information about them to the redux store. This information is used in the PluginDebugger.
These are the three reasons, why a plugin might not be loaded.
* `gatekeepedPlugins`: Plugin was ignored because of a GK
* `failedPlugins`: Plugin could not be requried/failed to parse
* `disabledPlugins`: Plugin disabled in `~/.flipper/config.json`
Information for each them is added to the redux store.
Reviewed By: passy
Differential Revision: D13516986
fbshipit-source-id: b7a55a159cb586d1a88fbb976248131c52a909c5
Summary:
Original commit changeset: 36e501b0ca70
The original diff was reverted because the sheriff thought that my diff broke the flipper test but it was not the case.Thus putting it back
Reviewed By: passy
Differential Revision: D13495123
fbshipit-source-id: 7e72dafe967236b968baf9d4741b3673f46a27cb
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
Summary: `PropWithNamedFlipperObject` is an interface that can be implemented by a Litho component prop to display a new section in the Flipper layout inspector.
Reviewed By: danielbuechele
Differential Revision: D13419918
fbshipit-source-id: be2ade160d6381944b1b68a7645b5b23f1d142a1
Summary: this moves the `Sheet` into its own component, so it can be reused for other places than the bug reporter.
Reviewed By: passy
Differential Revision: D13468275
fbshipit-source-id: 5f6d07a54dda078bd08a4c4cd31a41c61b58a76f
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
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
Summary: Removes the iOS implementation of crash reporter plugin as its implemented as desktop plugin
Reviewed By: adamjernst
Differential Revision: D13451980
fbshipit-source-id: 19cca52a00bb4a6d350eff91ac405f6dd3b07818
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
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
Summary:
Disabling the port fordwarder.
On physical devices, when flipper isn't running and they don't have any certificates, they attempt to connect to the desktop.
They always connect to the portforwarder, even though it doesn't connect to flipper desktop.
After connecting to the portforwarder, they then try to generate the SSL certs. This is a CPU intensive operation and happens repeatedly in this condition when it really shouldn't be, causing high cpu usage.
Disabling for now. The fix will be to make sure that they only do that generation when they are fully connected.
Reviewed By: priteshrnandgaonkar
Differential Revision: D13507353
fbshipit-source-id: a858a5da7352228b063150334ea443130763d888
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
Summary:
Redesigns the bug reporting dialog:
- show information from `package.json`'s `bugs` field, where we can link to support groups or name oncalls.
- adds show/hide animation
- uses new button style
Reviewed By: jknoxville
Differential Revision: D13417287
fbshipit-source-id: 2948794e9b1f42bbd895981d5e4b0578a9b8ee2e
Summary:
Adding the properties from a plugin's `package.json` as static properties to the class.
The name from `package.json` is used as it's `id`.
This allows us in the future to add meta information about a plugin to it's package.json and still use the data inside the app.
Reviewed By: priteshrnandgaonkar
Differential Revision: D13417288
fbshipit-source-id: 3d0a62d4cb0115153cce1aaee677b9680fefebf4
Summary:
We can only do this when adb reverse is available, i.e. on Android 5+.
This also relies on a recent change to flipper desktop, to always run adb reverse on emulators.
Reviewed By: danielbuechele
Differential Revision: D10302579
fbshipit-source-id: cff07f0311d413fdd49424a42c641dfb3d225f7c
Summary:
`xdg-open` is blocking on Linux. That means we won't do our cleanup steps
(or reset the button for that matter) until the user closes their viewer app.
This changes the call to be a `spawn`, so we can continue the chain. As no
one had actually used the value captured in the promise, this shouldn't
make a difference API-wise.
Reviewed By: danielbuechele
Differential Revision: D13465571
fbshipit-source-id: 5f698916157906d76ab983109deb9abe142baa9e
Summary:
Record Android screen captures into a separate directory with a `.nomedia`
file to avoid it from getting indexed before it gets removed after being
pulled.
Reviewed By: danielbuechele
Differential Revision: D13465448
fbshipit-source-id: 4449ff3a927cc8621b015b018d2b743cedc4ce8c
Summary:
The `getAllSharedPreferences` API is not implemented in the iOS UserDefaultsPlugin and thus the data is not shown in the `Shared Preference Viewer`.
This PR implements the missing API and present the Standard UserDefaults data from the target application.
Pull Request resolved: https://github.com/facebook/flipper/pull/340
Reviewed By: danielbuechele
Differential Revision: D13464765
Pulled By: priteshrnandgaonkar
fbshipit-source-id: 8c6cf4e9f7094fcf75c71cce43cb6c34f9f957e7
Summary: We were relying on adbkit to do this, implicitly by calling listDevices(). However, this doesn't appear to be reliable, with retries, it usually succeeds, but sometimes still doesn't. I'm aiming to avoid all this entirely by just starting it directly using adb itself, which I expect to be much more reliable.
Reviewed By: danielbuechele
Differential Revision: D13487864
fbshipit-source-id: b1eae542aaa6ecb2b74b575a3582934093ccd588
Summary: Added the documentation of crash reporter plugin. Also removed the stale comment
Reviewed By: passy
Differential Revision: D13434177
fbshipit-source-id: bb8b14e989c91b35cd268daea12ac7fe590c5d5b
Summary:
`react-d3-tree` is using version `3.5.17` of `d3`. However, this version of D3.js makes some assumptions about the context, which are not compatible with the way metro is bundling our plugins.
In this version of D3, they reference the `window` by using `this`. However, in metro a top level `this` is `undefined`. This causes the library to break. New versions of D3 have removed referencing the `window` using `this`. Updating `react-d3-tree` to a more recent version of D3 is not easy, because there are many breaking changes in D3 (the current version of D3 is 5.x).
This is why we decided to fix the callsites in `d3@3.5.17`. As these thinks are fixed in `d3@4.x` as well, it doesn't make sense to bring these changes upstream. For this reason, we are committing the fixed version of D3 and use yarn resolutions to resolve D3 with the version including our fixes.
These things were patched in `d3.js`:
- adding `/* eslint-disable */`
- replacing `this.document` with `window.document`
- replacing `this.navigator` with `window.navigator`
- replacing `this.requestAnimationFrame` with `window.requestAnimationFrame`
Reviewed By: priteshrnandgaonkar
Differential Revision: D13377064
fbshipit-source-id: 492eaad4f283fb6901cab089f6092b0bf62d5499
Summary:
Adding the JS part for the ComponentTree plugin.
Native parts are added in D13377058.
Reviewed By: priteshrnandgaonkar
Differential Revision: D13377066
fbshipit-source-id: dab8f2abdde604c3f78cfd80e17b433ef5e33505
Summary: Moving the `MarkerTimeline` from the QPL plugin to the Flipper UI library, so it can be used by other plugin.
Reviewed By: priteshrnandgaonkar
Differential Revision: D13377065
fbshipit-source-id: 9ef1f0e044fa85b68a01e23071042600aa5c3c63
Summary:
Copied over form Litho, but works in our repo too.
This can be used to verify that a given version number
is properly accessible via maven. Just used this to check
if `v0.13.0` was available and sadly it wasn't because
Travis was broken. Working on that now.
Reviewed By: danielbuechele
Differential Revision: D13449948
fbshipit-source-id: 7f113d971dac341938615e6352b5981f557ffecd
Summary:
- Crash reporter plugin: Get notified for crashes in Android and iOS apps. Currently in Alpha and not enabled by default.
- Support for physical iOS devices.
- `yarn start` in open source works again (54d09aa951)
- Prevent unnecessary UI rerenders (133788380e)
- Fixes a problem on macOS where external plugin from `pluginPaths` config weren't loaded (f7ddf3b496)
- Various improvements for certificate exchange and device connections.
Full changes here: 19485d076b...c6e0517640
Reviewed By: danielbuechele, priteshrnandgaonkar
Differential Revision: D13431074
fbshipit-source-id: ef2087742911e4c5ee98af1941bc7db5cfe75578
Summary:
First add a Flow Strict config, then enable Flow Strict Local for 13 files in xplat/sonar.
each change can land seperately:
drop-conflicts
Reviewed By: passy
Differential Revision: D13368791
fbshipit-source-id: 5bc1f9d3a179f4b9a554cc8cc629db0fda468a36
Summary:
Moving the scrolling to highlightedRows from `componentWillReceiveProps` to `componentDidUpdate` to make sure the rows are rendered, when this method is called.
The method is called, whenever the highlighted rows change, and on the first update. The reason why this is called on the first update is described in an inline comment.
Reviewed By: passy
Differential Revision: D13376566
fbshipit-source-id: 311a1f430e08fcfb4e31b39a2c5b34910694917f