Use wasm-bindgen's built-in loader instead of relying on Webpack.
In order to still respect the `publicPath` config, set
`__webpack_public_path__` just before fetching the WebAssembly module.
This allows to no longer declare `.wasm` files as resource assets in
each `webpack.config.js`.
Firefox doesn't know the manifest "version_name" key, so it shows
a warning when loading the extension.
So define "version_name" only for the "generic" variant, along with
a nearby cleanup of using a regular property assignment instead of
`Object.assign`.
Use wasm-bindgen's built-in loader instead of relying on Webpack.
This allows to no longer declare .wasm files as resource assets in
each webpack.config.js.
Also the bundled JS is a bit smaller (e.g. demo is now ~88KB vs.
~90KB before).
* Remove `buildProduction` as it was equivalent to `build`.
* Fix `build:avm_debug` and change it to `build:debug`, which also
disables Webpack optimizations.
Appending the build date doesn't work (the Mozilla verison format
requires each numeric to be <65536). Use GITHUB_RUN_NUMBER instead,
which increases each time the workflow runs.
The Chrome/Firefox marketplaces require the version number of an
extension to increase with each upload, so append the build date
to the version in `manifest.json`. Add `versionName` with the more
readable version (`0.1 nightly 2010-15-04` for nightly builds).
* web: Don't load a random SWF Instead, show a prompt to select or drag an SWF.
* web: Refactor webpack.config.js
* demo: Refactor index.js
* demo: Cleanup CSS
Use --target web in wasm-bindgen and file-loader for WASM files,
allowing wasm-bindgen's built-in fallback from
WebAssembly.instantiateStreaming to instantiate.
file-loader spits out the WASM file directly in the output folder,
and imports will resolve to the URL, so that we can load the file
directly, avoiding webpack's built-in wasm loaders.
This allows Ruffle to function on web servers even if they serve
WASM files with the incorrect MIME type, fixing one of our biggest
support requests (#400, #1458). There is some performance impact
on loading with the fallback, but this is preferable to not
working at all.