Commit Graph

266 Commits

Author SHA1 Message Date
Toad06 d53af46c76 web: Disable "Report bug" link if build is outdated 2022-05-30 20:50:15 +03:00
Robert Setter 6114f14fe0
Updating the verbiage for the AS3 warnings to try and reduce the number of support questions about it. (#7106)
* Updating AS3 warning verbiage.

* Updating AS3 verbiage

* Increase root font size

* Refining font size.

* correcting font size in .message
2022-05-29 15:08:46 +03:00
relrelb 4f05d1852d web: Prefer using `Element` over `HTMLElement`
`Element` is a slightly more general type, which is more common than
`HTMLElement`, and it satisfies our needs in most cases.
2022-05-09 15:00:14 -07:00
relrelb 4ae5e89ea7 web: Enforce ESLint's `eqeqeq` rule 2022-05-06 10:40:58 -07:00
GhostlyDark 27c9637ed8 web: Don't use inline CSS attributes 2022-05-01 13:08:58 -07:00
nosamu e8d5274a18 web: Fix compatibility with Rocket Loader
Cloudflare's Rocket Loader script [prevents the DOMContentLoaded event from firing](https://dev.to/hollowman6/solution-to-missing-domcontentloaded-event-when-enabling-both-html-auto-minify-and-rocket-loader-in-cloudflare-5ch8), which was preventing Ruffle's public API from initializing. Work around this by also listening for the `load` event.

Fixes #2254 and #6583.
2022-04-23 19:46:32 -07:00
Mike Welsh 91c1a408fb web: Don't set container bgcolor in transparent wmode
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.
2022-04-19 01:57:15 -07:00
Mike Welsh 3305ac69c4 web: Support wmode parameter 2022-04-17 08:33:51 -07:00
Daniel Jacobs d3118b5e23 web: Youtube objects on Firefox without data attribute don't work with the rewrite by default 2022-04-10 19:25:26 -07:00
Daniel Jacobs 1d4a2fd5c6 web: Make notreallyyoutube.com use Ruffle 2022-04-10 19:25:26 -07:00
Daniel Jacobs 958b4e7291 web: Workaround mixed-content issues for YouTube Flash embeds 2022-04-10 19:25:26 -07:00
Daniel Jacobs 907b59222a web: Don't polyfill YouTube Flash embeds 2022-04-10 19:25:26 -07:00
Toad06 2c79a5e3d8 web: Only polyfill `<object>` with `classid` when it doesn't contain another polyfillable `<object>` tag 2022-04-03 10:15:19 -07:00
Mike Welsh dd45dc81a0 web: Fix hangs on Safari by avoiding getOutputTimestamp
`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.
2022-03-19 15:13:49 -07:00
elliot 355bd35935
web: Add specific error message for disabled WASM on Microsoft Edge (#6423)
* 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>
2022-03-09 23:12:21 +02:00
Chris Midgley cf7b6b2515
web: Don't include query parameters in downloaded SWF name (#6368)
* fix: don't include query parameters in downloaded SWF name

* refactor: store swfUrl as URL
2022-02-28 22:27:56 +02:00
elliot 2b162e8532
web: Add `isPlaying` property to `RufflePlayer` (#6294) 2022-02-28 21:28:19 +02:00
Toad06 c14569e3d4 web: Add `refresh` method to `navigator.plugins` 2022-01-26 18:53:33 -08:00
relrelb 479719f425 web: De-duplicate TypeScript ESLint rules
Pull them to the root config, using the `overrides` feature:
https://eslint.org/docs/user-guide/configuring/configuration-files#configuration-based-on-glob-patterns
2022-01-16 11:07:00 -08:00
relrelb d0eb6adbc0 web: Fix `publicPath` when loaded from a CDN
CDNs allow omitting the filename:

* https://unpkg.com/@ruffle-rs/ruffle
* https://cdn.jsdelivr.net/npm/@ruffle-rs/ruffle

That caused `currentScriptURL` to be determined incorrectly:

```js
new URL(".", "https://unpkg.com/@ruffle-rs/ruffle").href
// "https://unpkg.com/@ruffle-rs/"
```

If the filename is omitted, append a slash to prevent the last
component from being dropped:

```js
new URL(".", "https://unpkg.com/@ruffle-rs/ruffle/").href
// "https://unpkg.com/@ruffle-rs/ruffle/"
```
2022-01-15 14:49:19 -08:00
relrelb 3f8f117fd3 web: Convert .eslintrc files from JSON to YAML
YAML is shorter, more modern, readable, and flexible than JSON.
In other words, YAML >>> JSON.

Auto-converted using [`yq`](https://github.com/kislyuk/yq).
2022-01-12 20:10:00 -08:00
TÖRÖK Attila db6731be2c web: Detect and log whether WebAssembly extensions are actually used 2022-01-12 11:29:16 -08:00
TÖRÖK Attila ab69c12649 web: Build two WASM modules, with/without extensions, load the appropriate one 2022-01-12 11:29:16 -08:00
Mike Welsh 3010c505aa chore: Add error-report issue template
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.
2022-01-02 13:59:54 -08:00
Chris Midgley f0b29cc5d0
web: allow entering fullscreen after using escape to exit (#5714)
* 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
2021-12-10 19:54:22 +02:00
Daniel Jacobs d3a5561e8f web: Give toggleable option to download swfs in extension/selfhosted 2021-11-15 23:12:27 +02:00
Tal Hayon 7ed38850fd core: implement displayState for Stage in avm1/2 2021-11-11 16:20:05 -07:00
Toad06 a24d469f27 web: Unmute audio on iOS when silent mode is enabled
Co-Authored-By: Christoph Guttandin <158417+chrisguttandin@users.noreply.github.com>
2021-10-28 08:48:22 -07:00
Mike Welsh 16c443165f web: Add error-report label to bug report link 2021-10-24 17:21:03 -07:00
Mike Welsh 4141909bcb web: Support wgpu on web
Add wgpu feature to web build (disabled by default currently).
2021-10-24 17:20:19 -07:00
Mike Welsh df270c55af wgpu: Make WgpuRenderBackend::build_descriptors async
This will be necessary for using wgpu on web, where the whole
renderer creation will need to be async.
2021-10-24 17:20:19 -07:00
Toad06 7f317bca49 web: Don't polyfill files meant to be used as fallback content 2021-10-17 11:44:15 -07:00
Mike Welsh 04d84a3386 web: Implement WebAudioBackend::get_sound_position 2021-10-16 22:53:25 -07:00
relrelb d27e29bd26 web: Mark TypeScript enums as const
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.
2021-09-24 20:38:44 +03:00
Daniel Jacobs 2213e7d012 web: Menu embed/object attribute true value is case-insensitive 2021-09-11 14:25:52 -07:00
Daniel Jacobs 5ac9796ffd web: Support salign, quality, & scale embed/object attributes (part of #4258) 2021-09-08 16:25:47 -07:00
relrelb acd462745d web: Fix `publicPath()` being called from non-global scope
`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.
2021-09-08 02:25:05 -07:00
relrelb 375269417f web: Set `__webpack_public_path__` in `load-ruffle.ts`
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`.
2021-09-08 02:25:05 -07:00
relrelb 28a155a099 web: Remove `config.publicPaths`
This simplifies the `publicPath` function and makes it useable inside
`fetchRuffle`.

Assuming `publicPaths` isn't used anywhere, this shouldn't be harmless.
2021-09-08 02:25:05 -07:00
Tal Hayon 4625ca0e0b web: fix base param 2021-09-07 16:45:35 -07:00
Daniel Jacobs 3982f3af98 web: Support menu embed/object attribute (part of #4258) 2021-08-28 14:56:35 +02:00
Tal Hayon 8cb5cf0252 web: Adds support for base embed/object attribute (Part of #4258) 2021-08-19 21:22:47 +02:00
Daniel Jacobs 985a97d599
web: Re-enable context menu on mobile, with option to disable (#5000)
* Re-enable context menu on mobile, with option to disable

* Review refactors

Co-authored-by: Adrian Wielgosik <adrian.wielgosik@gmail.com>
2021-08-19 20:28:40 +02:00
Daniel Jacobs 88f368ad0a Link all CompileErrors to wiki without a report bug button 2021-08-08 11:56:20 +02:00
Daniel Jacobs 38ae22e834 Add a loadeddata event, which triggers when loadedmetadata does for now 2021-08-03 14:28:20 -07:00
Adrian Wielgosik 02dd0ae463 web: add isExtension info to panic info and context menu version string 2021-08-03 17:47:42 +02:00
Adrian Wielgosik b940e7f00f Extension: Sidestep CORS issues by offering to load the SWF in a tab 2021-08-02 21:28:16 +02:00
relrelb 508f541ada Revert "web: Simplify .wasm loading"
This reverts commit 66bfff7687.
2021-07-27 11:19:55 +03:00
relrelb 66bfff7687 web: Simplify .wasm loading
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).
2021-07-24 14:18:19 -07:00
relrelb 49e26338bc web: Fix and cleanup npm build scripts
* Remove `buildProduction` as it was equivalent to `build`.
* Fix `build:avm_debug` and change it to `build:debug`, which also
disables Webpack optimizations.
2021-07-17 11:40:25 +03:00