Summary:
This changes the start date of all generated certificates to be 1h in the past.
Why? To allow for clock skew, and allow clock manipulation in tests.
To do this, I had to switch from `openssl x509 req`, to `openssl ca` for generating them, because it has the startdate parameter.
This variant is a bit more complicated to use, so I've added an openssl.conf and some extra files.
I also changed the org from Sonar to Flipper because it now needs to match the CSRs coming from the mobile apps, and they use Flipper.
Reviewed By: passy
Differential Revision: D16223722
fbshipit-source-id: bdbd61bce1bc1b54d7b0b3cc6741675aa68d2cf6
Summary: This is the basic setup for TypeScript support in Flipper and makes sure our build system can handle `.ts(x)` files. Support for flow is still fully working, so we can land this and continue with the TS migration.
Reviewed By: jknoxville
Differential Revision: D15920150
fbshipit-source-id: d5a7f22fe824d1c1904105bbf738767d735cc0f1
Summary:
The SIGINT handler in headless was being squashed by the one that `tmp` adds. This is a bug introduced in its latest release: https://github.com/raszi/node-tmp/issues/192
Downgrading version to fix this for now. There's a PR to fix it, we can upgrade when it's shipped.
Reviewed By: passy
Differential Revision: D16163208
fbshipit-source-id: 058ec1094dd2e5e5474f7ac36be376bae0431f0c
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/479
Just getting us to the latest major version. Luckily, no new errors were introduced.
Reviewed By: jknoxville
Differential Revision: D16131273
fbshipit-source-id: f605b315afbe4282e21923d7c970402f834f287c
Summary:
Manually applying these "fixes":
- fixes https://github.com/facebook/flipper/pull/480
- fixes https://github.com/facebook/flipper/pull/481
This is mainly to sush the security warnings we get
even though we don't really have an attack surface where these matter.
Reviewed By: danielbuechele
Differential Revision: D16148208
fbshipit-source-id: 79865a97b442fd2b2621f1ef632e974e1e355e84
Summary:
Upgrading `tmp`, `dashify` and `fs-extras` to their latest versions in an attempt to break my PSC writer's block.
Changelogs don't indicate any breaking changes that should affect us.
Reviewed By: danielbuechele
Differential Revision: D15983944
fbshipit-source-id: 53e87cf3c05e5742db1073e6ccf7f3bd4412638d
Summary:
I'm reverting back to not using range qualifiers, too, because
my VSCode got out of sync with the flowconfig and got kinda upset.
Reviewed By: jknoxville
Differential Revision: D15940128
fbshipit-source-id: ce621e72245b66810a29559788515559740c028d
Summary: Just getting us up to 3.6 as we were quite far behind.
Reviewed By: danielbuechele
Differential Revision: D15863375
fbshipit-source-id: 39c444bd8e788cd8cff4b6d19513d072182dc179
Summary:
I noticed that after a long-running flipper session, 11% of the memory was composed of millions of tiny PromiseReaction records (https://github.com/domenic/promises-unwrapping#promisereaction-records).
It seems this method of chaining promises meant that it was forming a linked list of these from the most recent, back to the very first invocation.
Instead of using a home-rolled lock, I'm replacing it with an actual library. Haven't verified the fix, but this seems like a better approach regardless.
Reviewed By: passy
Differential Revision: D15853570
fbshipit-source-id: 1626d9f25cba809794b13ee920bdec2cd1d4b874
Summary:
We in React VR were need newer Chrome DevTools version to make our plugin work properly. Chromium version with required fixes were shipped in electron 5.0.0.
This diff bumps electron version and explicitly allows node integration (accessing require, process and other node related functions from window object in index.html), because it was disabled by default in 5.0.0.
Reviewed By: jknoxville
Differential Revision: D15693539
fbshipit-source-id: 4f71a07b2afaa489aec46940c924f4ad30ad0413
Summary:
0.100! Just noticed there's a new version and it continues to work.
destruction100
Reviewed By: jknoxville
Differential Revision: D15601865
fbshipit-source-id: 2d9d8a9ffb073468df4b85ed83800bce00ee6cda
Summary: This should buy us some time before Sandcastle kicks us off again. :)
Reviewed By: danielbuechele
Differential Revision: D15449604
fbshipit-source-id: 90d4e8a965d0163de32416b43d9aa24ede104db2
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
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
Summary:
Flipper Electron delegates to the Launcher if it is found right on startup to fetch the most recent/compatible version of Flipper. The Launcher then opens the downloaded app with a `--no-launcher` option to avoid bouncing back and forth between the Electron app and the Launcher.
This depends on the argument processing working unchanged. In the past this has been somewhat difficult to guarantee as this doesn't happen in one place and dev/prod builds have handled arguments different due to Electron weirdness (requiring a `--` passed in, for instance).
If anything here goes wrong, we end up in a very nasty scenario where the launcher and the Electron app rapidly open and close, making it nearly impossible for users to escape that vicious cycle. `pkill -f Flipper` being the best option, if you can focus a terminal for long enough.
In order to avoid this from ever happening in the future, this introduces a quick check for the last startup is written with a timestamp and if this is less than 5s in the past, we will skip delegating to the Launcher altogether, keeping the current instance running.
Reviewed By: jknoxville
Differential Revision: D14598136
fbshipit-source-id: b3335ce7ec7dc3e5e014d459db31df4c8a774fc6
Summary: Want to use something that's not in 11.
Reviewed By: jknoxville
Differential Revision: D14524126
fbshipit-source-id: b0f038f32adccf91a394346da9335aa3cfc8e942
Summary:
@public
This bumps Prettier to v1.16.4
Only format source files were updated.
Reviewed By: mjesun
Differential Revision: D14454893
fbshipit-source-id: 72f9872fe764a79dbf0d9fab9bebb1456b039f2f
Summary:
Adding support for downloading archived Flipper data using a URL handler.
A URL looks like `flipper://import/?url=` and will download the file specified in the url param. While downloading the file, a spinner is shown in the app's titlebar.
Reviewed By: jknoxville
Differential Revision: D14262763
fbshipit-source-id: 6538fc78c07a48cef7b71b3f7bdbcb712d054593
Summary: Using this in the next diff. If you don't feel like this is a good fit, probably better to comment there.
Reviewed By: jknoxville
Differential Revision: D14225747
fbshipit-source-id: 29cd0b4a37b988b4bd8643f1db64bb3e2610b0e4
Summary:
Better safe than sorry even though we're not directly
working with user-supplied data, plugins or apps might.
Reviewed By: danielbuechele
Differential Revision: D14168566
fbshipit-source-id: 8108a2a592d2e2d6b8b2259e0e4bf943cf9c333e
Summary:
Started with upgrading electron from 3.0.0 to 4.0.5. This required a bunch of subsequent updates:
* upgrading `electron-builder` to latest version, because the old version couldn't build electron 4 apps.
* `appDir` is deprecated in builder config, `projectDir` is used instead, which we already had set, so its fine to just remove this ([see GitHub commit](a5e457163e)).
* upgrading `jest-runner/electron` because the old version couldn't run electron 4 tests.
* upgrading our custom dependency resolution to use electron 4.0.5, because the test runner still resolves to 2.0.8 ([see GitHub issue](https://github.com/facebook-atom/jest-electron-runner/issues/31)).
* updating `sandcastle.sh` to use the new cache files from D14131344.
* removing `package-lock.json` as is was causing warnings. We use `yarn` and `yarn.lock` anyways. This file must have been committed by accident.
* updating our check to only run one version of Flipper at a time to use the new electron API `app.requestSingleInstanceLock` as the old one was removed in electron 4.
* updating the snapshot test that checks App rendering, which changed a little due to the electron upgrade.
* upgrading flow-type definitions to `electron-v4.0.5.js` generated by [electron-flowtype-definitions](https://github.com/danielbuechele/electron-flowtype-definitions).
**PS: Best new feature in Electron 4: Copy&paste working in dev tools**
Reviewed By: jknoxville
Differential Revision: D14131360
fbshipit-source-id: d7ed9643875629a1fa1860bb61b11dd0c64112ab
Summary: Per title. Required as Scribe is now being used for device tests.
Reviewed By: jknoxville, danielbuechele
Differential Revision: D13971892
fbshipit-source-id: 2df36d44d4e45a579cc9cca0d4cad9105ba8a383
Summary:
- create a zip-file when building the headless version of Flipper
- restore pkg cache in Sandcastle from pantri
- run build script in sandcastle.
Changes need to go together with D13942919
Reviewed By: passy
Differential Revision: D13942701
fbshipit-source-id: caac7d6cda99fec2a6836c652957ff609a0bf8bb
Summary:
Building binaries for the headless version of Flipper. These binaries include node, so they can be run independent on any system.
allow-large-files
Reviewed By: passy
Differential Revision: D13843677
fbshipit-source-id: c053177328ddfcba11f9a293951ebe4db4d84034
Summary:
Just splitting the diff adding the dep from using it
because this is always quite noisy.
Reviewed By: jknoxville
Differential Revision: D13940957
fbshipit-source-id: b31a953a7ebdce9a6611c47ee007c051cdcac147
Summary:
Upgrading to flow 0.91, fixing a bunch of `$FloxFixMe`s that were introduced by upgrading to 0.86.
Also fixing some linting issues.
Reviewed By: priteshrnandgaonkar
Differential Revision: D13900794
fbshipit-source-id: 5d0a1b62371f3b5d34b909bae0876583acb6f977
Summary:
Wanted to do that for a while, but the previous eslint error
blocked me. Continues running with the same level or warnings.
Reviewed By: jknoxville
Differential Revision: D13818478
fbshipit-source-id: ac12888dd4177316020c947925d4ff9d64784140
Summary:
* Adds `build-headless.js` to bundle the app using metro
* the build script replaces the prelude code added by metro with our own to make it work in node. Metro will add an API to add custom prelude code in the next version.
* Pins down metro's dependency of `temp` to `v0.9.0` (instead of `0.8.3`) to be compatible with node 10. (This will be fixed in a metro upgrade)
Reviewed By: passy
Differential Revision: D13786574
fbshipit-source-id: bddb3542c370c068d90a90c4b59337f995e4fa3f
Summary:
Adding `headless/index.js` This is the entry point to the headless version of Flipper.
This creates a redux store, and initializes the dispatchers. As all business logic (adb connections, etc.) are managed by dispatchers, this spins up a working version of Flipper, listening on our ports, allowing connections to devices.
For APIs not available in node.js, we are adding polyfills. `WebSocket` is used by redux-devtools, `fetch` is used in a couple of places throughout the application. These polyfills are added to the global namespace, so the app can run the same as in the browser.
Reviewed By: passy
Differential Revision: D13786573
fbshipit-source-id: 685f67e1c0d2948de7c43b8a1e2dc10dc69aa743
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:
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:
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: 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: as per title. The updated doesn't have any breaking changes. Only improvements and bugfixes.
Reviewed By: jknoxville
Differential Revision: D13376391
fbshipit-source-id: 46f2462cec87600f06fb793a42092f054489c397
Summary: Retry up to 5 times with exponential backoff.
Reviewed By: passy
Differential Revision: D13138244
fbshipit-source-id: 94c68b87aa281cfc3239b0bb8bdd75a2e0d7edc7
Summary: Is it too early for spring cleaning? We don't use websockets anymore, do we? Couldn't find any imports or `require()`s.
Reviewed By: jknoxville
Differential Revision: D12997868
fbshipit-source-id: c87c67ec98b925c4209b97bf00e91fce67215465
Summary: Let's stay up to date and get the latest improvements.
Reviewed By: jknoxville
Differential Revision: D12997456
fbshipit-source-id: 1d543aec032052d1115d627f0103e7b8f721d74c
Summary:
We only want to persist certain reducers that are whitelisted.
Currently some parts of the `connections` reducer and everything from the other reducers was persisted. This changes the behavior to only persist what is explicitly whitelisted and not the other reducers.
These pars of the store are whitelisted:
- `connections.userPreferredDevice`
- `connections.userPreferredPlugin`
- `connections.userPreferredApp`
Reviewed By: jknoxville
Differential Revision: D10401403
fbshipit-source-id: e4aa4f2b2f8f6229b02dcf46798965fa1ae74df6