If a Flash embed set both the `bgcolor` param and transparent
`wmode`, the Ruffle polyfill would incorrectly set the container
to use the background color. Keep the background transparent instead.
`AudioContext.getOutputTimestamp` returns incorrect values in
Safari 15.1+, and this would cause movies with 'stream' sounds to
soft-lock because the calculated audio position would barely
progress.
See:
https://developer.apple.com/forums/thread/696356
Change the output timestamp calculation to use
`AudioContext.currentTime` instead.
* web: Add specific error message for disabled WASM on Microsoft Edge
Related to #6395
* web: Update Microsoft Edge WASM error message conditional
Co-Authored-By: Daniel Jacobs <danielhunterjacobs@gmail.com>
* web: Update "More Information" link for Microsoft Edge WASM error
Co-authored-by: Daniel Jacobs <danielhunterjacobs@gmail.com>
YAML is shorter, more modern, readable, and flexible than JSON.
In other words, YAML >>> JSON.
Auto-converted using [`yq`](https://github.com/kislyuk/yq).
The `error-report` label was not being added to error reports
submitted by panics in the web player, despite the `labels` query
parameter in the URL. Users do not have triage/write access to the
repo, which is required by GitHub to add a label to an issue.
Add an issue template for error reports with the `error-report`
label. This template is now added to the issue URL, which
automatically adds the tag regardless of access level.
* web: allow entering fullscreen after using escape to exit
* chore: fmt
* web: fix fullscreen for Safari too
* web: dedupe methods and always set fullscreen
* chore: fmt
* web: use isFullscreen method
Unlike regular enums, const enums are completely removed during
compilation, and as such are zero-cost in bundle size terms.
Since it is not possible to query the possible values of a const
enum at runtime, adapt the `autoplay` and `unmuteOverlay` validation
logic.
`document.currentScript` works only while the script is initially
being processed. This means that when `publicPath()` was called from
a non-global scope, it failed to detect where ruffle.js is located,
which in turn failed to determine the .wasm location.
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`.
This simplifies the `publicPath` function and makes it useable inside
`fetchRuffle`.
Assuming `publicPaths` isn't used anywhere, this shouldn't be harmless.
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.