Summary:
To make it more obvious how to disable this if unwanted (e.g. when
testing local builds).
Pull Request resolved: https://github.com/facebook/flipper/pull/373
Reviewed By: jknoxville
Differential Revision: D14130771
Pulled By: passy
fbshipit-source-id: 82c83c1ad14737c8c7791de71a1ee23fcea5ec18
Summary: as per title. see explanation in code comment
Reviewed By: jknoxville
Differential Revision: D14125820
fbshipit-source-id: 9b8e31214a65a184397852544cebd7b69ea0aadb
Summary: Plugin files in subfolders were not watched. Adding recursive flag to reload plugins, even when there are changes in any of the plugin's subdirectories.
Reviewed By: jknoxville
Differential Revision: D14100394
fbshipit-source-id: 2a0b5e35df4bbbfe6cf8a0fafd5271222d99a46c
Summary:
Allows the launcher to provide messages to the user. Currently, in the form
of the red notification bar at the bottom. This is just meant as a temporary measure
during the alpha to have some clearly noticeable way of getting the user's attention.
I consider removing this a blocker for the release as this mechanism is not well
suited for this in many ways.
The current use case for this is providing a warning if a cached version is used
instead of the requested one, e.g. "Could not fetch requested Flipper version 'deadbeef', using cached version instead."
Reviewed By: jknoxville, priteshrnandgaonkar
Differential Revision: D14073687
fbshipit-source-id: 85630347027063103315eeb1286731fe2478e261
Summary:
For the production version, if the Launcher is installed and no `--no-launcher` (note the double-negation) is supplied, then
let the launcher start the app instead.
The launcher will pass the `--no-launcher` option back to prevent this from looping.
Reviewed By: jknoxville
Differential Revision: D14066620
fbshipit-source-id: 27d305efac36005e5e1082076829f10ef14aba0d
Summary: This diff imports and exports data in a `.flipper` file extension. This diff also adds the support to open flipper app by double clicking on the `.flipper` file.
Reviewed By: danielbuechele
Differential Revision: D14042846
fbshipit-source-id: 17e6b55bf2796d9abdf985411fce799600f7792b
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:
It's a bit hacky but apparently the recommended solution:
https://stackoverflow.com/questions/28615293/is-there-a-jest-config-that-will-fail-tests-on-console-warn
This will bail when a call to `console.error` is used in a test.
If you *need to* use console.error in a test, then mock it.
This will likely not pass yet, but let's fix all failures and then land it.
Reviewed By: danielbuechele
Differential Revision: D13898383
fbshipit-source-id: 0ca222a07433a9a311dc6bdf0d264342a59208be
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:
This seems like a better approach than ad-hoc lookup in
`electron.remove.argv`. Left a note to a task to provide
a better interface to this.
I also need this in order to ensure we're starting
Flipper through the launcher which needs to happen
before we start the Electron runtime.
Reviewed By: jknoxville
Differential Revision: D13881355
fbshipit-source-id: 69c70d71035a47084f789ddb4dc969b45ba4648b
Summary:
Instead of replacing the tilde with home-dirs on an incomplete, ad-hoc
basis, let's use a package for this. It also supports `~USER` resolution
which someone might reasonbly expect to work if `~/DIR` is working.
Reviewed By: jknoxville
Differential Revision: D13940956
fbshipit-source-id: 5bfa9b8b2540fed8c05c856ff736e48e925f985d
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:
We were using `window.performance` to measure performance. This was because the equivalent node.js API `perf_hooks` wasn't available in the electron version we were using back then.
However, `perf_hooks` has landed in electron meanwhile, so I am moving to this API, as it works for the headless version and jest tests, too.
This allows us to delete the babel transform that was used for node-based tests, where the browser API was replaced with the node API
Reviewed By: jknoxville
Differential Revision: D13860133
fbshipit-source-id: cf1395004fac046dd55751ff465af494173b2cbf
Summary:
Fixes required to be able to run Flipper in node.js:
* Adds checks if the `window`-object exists before using it, to allow running in node.
* Imports from within Flipper should directly reference the file they are requiring instead of `import from 'flipper'`. This was done in most of the places. Fixed a few occurrences where this wasn't the case. This is to prevent cyclic dependencies in node.
* shared packages (React, ReactDOM and Flipper) were exposed on the `window` before, changed this to `global` as this works in browser and node.
* Adds some missing methods to our electron stubs (used for testing and headless Flipper)
Reviewed By: passy
Differential Revision: D13786577
fbshipit-source-id: 145d560f1446e7d0bdec2acd8dd54dae983d7b36
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:
`static/index.js` is called by Electron's main process, it does the setup required to run Flipper. However, some of this setup is electron specific, other is not. This moves all non-Electron specific code into `setup.js` which later can be called from node, too. All Electron specific stuff is still in `static/index.js`.
On a side note, this remove the renaming from `.sonar` to `.flipper` config folder, as I think most users should have been migrated by now, users that are not yet migrated will lose their settings, which isn't too much of an issue as our settings are very minimal anyways.
Reviewed By: passy
Differential Revision: D13638253
fbshipit-source-id: 22ab2a65ffec87b40bd86899630d582d9dc5d05c
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: An empty .watchmanconfig is required inside the application resources for the plugin loading to work. This diffs adds the file to the `static` folder, which is copied to the application ressources.
Reviewed By: jknoxville
Differential Revision: D13376834
fbshipit-source-id: 1b34a89c5be6f938a640c79ddb3e9ea784bd2d22
Summary: Adds support for physical iOS devices, when the necessary dependencies are present. Unfortunately these aren't open sourced yet so the open source build won't get this feature yet.
Reviewed By: priteshrnandgaonkar
Differential Revision: D13001473
fbshipit-source-id: d8c2bcd53b7972bec676717c8af0112800b918d0
Summary: The fb-stubs transform is getting applied when it shouldn't. Fix it by only applying it if src/fb exists.
Reviewed By: danielbuechele
Differential Revision: D13236217
fbshipit-source-id: 940def377839d16f34c49504948cb062916a3d6a
Summary: Just keeping it up-to-date. Includes a fix for source maps which could be interesting.
Reviewed By: jknoxville
Differential Revision: D13023339
fbshipit-source-id: 4c68029bb3cef408e2a7b28a1cde39f246dc046d
Summary: This diff adds action buttons to the notifications. Notifications with actions can only be sent from the main process. This is why we need to send a message to the main process which then shows the notification. The action callbacks are sent back to the renderer process to handle the action and log the event.
Reviewed By: passy
Differential Revision: D12999886
fbshipit-source-id: b415fded3172582fad11d88cabf0cfc5b3b8d4f9
Summary:
This adds an option to the compilePlugin function that
allows specifying whether or not to throw an exception
if compiling a plugin fails.
While this seems like a sensible default while development,
it seems like a pretty bad idea when building releases.
Reviewed By: jknoxville
Differential Revision: D12904570
fbshipit-source-id: aee365074af129296a9d493804b959cb9513f9cc
Summary: This diff should make HMR work again with the latest version of React
Reviewed By: yungsters
Differential Revision: D12900009
fbshipit-source-id: f9d4dad3ccb4e236f0545983534c167c8fcfbf31
Summary:
Gets a oneworld device (just android for now), installs an app. Checks it connects and stays connected for 5s.
The app installed is in an array, we just need to add more targets for further tests.
Reviewed By: danielbuechele
Differential Revision: D10231083
fbshipit-source-id: c33fb091c1b7914a33690398a79fd700c445c06c
Summary:
I tried switching Flipper to use the node.js module: https://nodejs.org/api/perf_hooks.html instead of electrons window.performance. But the module couldn't be found.
So instead, I'm just replacing it in the pure node tests.
This means tests without node can work without issues.
Reviewed By: danielbuechele
Differential Revision: D10302114
fbshipit-source-id: b3b8aa5fb350a8246fcdfc2a80cc72daec2448d7
Summary:
The idea behind this is to enable tests running in pure node, without electron, because electron requires display drivers and complicated things.
I've been lazy and only added the bare minimum electron api's for the connection test to pass.
It would be awesome to auto generate it properly.
Reviewed By: danielbuechele
Differential Revision: D10238132
fbshipit-source-id: d4a2da2baf5f8964184b532a581c3a75ee33ef06
Summary:
Just to stay up-to-date. No breaking changes affecting us:
https://github.com/facebook/metro/releases/tag/v0.48.0
Also bumping babel-generator to be in line with the others.
Reviewed By: danielbuechele
Differential Revision: D10446300
fbshipit-source-id: b373bc6b1e6e53f2f760730679d1667928002e5f
Summary:
Metro's new version using `jest-haste-map` wants to access files inside our ASAR bundle, not using electron's require function. This fails, because it can not read from inside the ASAR bundle. For this reason we are disabeling ASAR for now.
Additionally, we are disabling reloads when a hidden file changes. This is because watchman creates a `.watchman-cookie` which shoudln't triggers a reload. But in general I think it's safe to not reload when hidden files are changed, as they are unlikely to have actual code in them.
Reviewed By: passy
Differential Revision: D10426715
fbshipit-source-id: 6ad9dcf88c62d5b65a9736eff28aadaf89c6af7a
Summary:
- Set userPrefferedPlugin for external deeplink
- Listen for deeplink in renderer process and navigate accordingly
Reviewed By: passy
Differential Revision: D10339035
fbshipit-source-id: 4de6249a0672f9ce02b0dfb78a4563302c308578
Summary: This diff adds a basic setup of deeplink, with this diff whenever the link is entered in the browser the flipper app is opened and the corresponding.
Reviewed By: passy
Differential Revision: D10149797
fbshipit-source-id: ddff3d794aec66f9e878abcf4c81e87dfadca070
Summary: The minifier removed `debugger` statements from the plugins. We don't need to minify the plugins, because we don't care about bundle size, so we can just disable minification for plugins.
Reviewed By: alangenfeld
Differential Revision: D10334694
fbshipit-source-id: 0b3e23db107f960a3dbeb6a79aa24bacca41c230
Summary: Removing PortForwarderMacApp as it is not used anymore. Before it was used to allow us to debug physical iOS device. However, the support for physical iOS device was removed a while ago for security reasons. The PortForwarder was not in use anymore so it is safe to remove it.
Reviewed By: passy
Differential Revision: D10337888
fbshipit-source-id: 93f508ec524a0fc055141176c06d7e7169d83f16
Summary:
Disallowing plugins from requiring anything but flipper or their own package broke lots of plugins at yarn start.
The ones that broke, require from the static directory.
Allowing them for now to unblock people.
Reviewed By: passy
Differential Revision: D10358733
fbshipit-source-id: 37077c806e022a6eb7ecf9bc95a455bf6f9a34d8
Summary:
Plugins can not require files outside their folder, to make sure they don't pull in any dependencies from Flipper which are not exported by the main app.
However, those imports simply resolve to `undefined`. This diff adds a check in the babel-transform for plugins and throws an error if something from outside the plugin is required.
Reviewed By: passy
Differential Revision: D10297980
fbshipit-source-id: 1606f3211103281f9f4aa7bb2f3ca4d085d0ea1b
Summary: Pretty sure this was meant to get removed before open sourcing, it isn't referenced anywhere.
Reviewed By: danielbuechele
Differential Revision: D10202081
fbshipit-source-id: 23d213b3a041acad85eb723d32b65f7da276003d
Summary: Inline sourcemaps were broken in Metro until 0.47.1, so now we can debug flipper plugins again!
Reviewed By: passy
Differential Revision: D10200221
fbshipit-source-id: 919c1bc4f7aee720f25f2375ffbd8a786ebd0017
Summary:
Adds a test runner for jest test and adds three simple test cases:
- render the app
- start a server
- client connecting to the app
Test can be run using `yarn test`.
To make the test runner work, some changes needed to be made:
- remove the export of `init()` from `'flipper'`, because it was a cyclic dependency
- updating Button.js to the new ref-API
Reviewed By: jknoxville
Differential Revision: D10027078
fbshipit-source-id: 49107b0dd4dec666b92ecd841422fe7e6b3a7756
Summary: Use inline source maps for plugins and main bundle, both in production and development.
Reviewed By: passy
Differential Revision: D9967235
fbshipit-source-id: 245e65c6fea94b93dc34a65ae572b7fc98ad56e1
Summary: Adds support for optional chaining to the codebase, enables flow and eslint support for it.
Reviewed By: passy
Differential Revision: D9940732
fbshipit-source-id: 730aa76653bd22a8fa17a73e72b3a7329de0226c
Summary: upgrading to babel 7 and upgrading all presets and plugins as well
Reviewed By: passy
Differential Revision: D9940733
fbshipit-source-id: 24f45c78a9452899e6fb140a56028dd9fa0b5ea3
Summary: Upgrading to metro@0.45.3 and adapting to API changes made by metro.
Reviewed By: passy
Differential Revision: D9940734
fbshipit-source-id: 34b07cc70c9654d9e07755816aba703a826dcae9
Summary:
global variable was renamed from `Sonar` to `Flipper`.
Fixes#267.
Reviewed By: passy
Differential Revision: D9934362
fbshipit-source-id: 0c03f3e12d9db26c5c7e9430fc98ba7fffd0bf54