Commit Graph

277 Commits

Author SHA1 Message Date
dependabot-preview[bot] f7cf943740 build(deps-dev): bump @wasm-tool/wasm-pack-plugin in /web/selfhosted
Bumps [@wasm-tool/wasm-pack-plugin](https://github.com/wasm-tool/wasm-pack-plugin) from 1.3.0 to 1.3.1.
- [Release notes](https://github.com/wasm-tool/wasm-pack-plugin/releases)
- [Commits](https://github.com/wasm-tool/wasm-pack-plugin/compare/v1.3.0...v1.3.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-25 11:33:38 +00:00
dependabot-preview[bot] 169fb6a1a3 build(deps-dev): bump webpack from 4.42.1 to 4.43.0 in /web/selfhosted
Bumps [webpack](https://github.com/webpack/webpack) from 4.42.1 to 4.43.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.42.1...v4.43.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-25 10:19:35 +00:00
dependabot-preview[bot] 62ab2ad787 build(deps-dev): bump @wasm-tool/wasm-pack-plugin in /web/selfhosted
Bumps [@wasm-tool/wasm-pack-plugin](https://github.com/wasm-tool/wasm-pack-plugin) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/wasm-tool/wasm-pack-plugin/releases)
- [Commits](https://github.com/wasm-tool/wasm-pack-plugin/compare/v1.2.0...v1.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-22 20:22:39 +00:00
dependabot-preview[bot] 307d27709f build(deps): bump console_log from 0.1.2 to 0.2.0
Bumps [console_log](https://github.com/iamcodemaker/console_log) from 0.1.2 to 0.2.0.
- [Release notes](https://github.com/iamcodemaker/console_log/releases)
- [Commits](https://github.com/iamcodemaker/console_log/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-21 12:59:40 +00:00
dependabot-preview[bot] 0dfe0d76c1 build(deps): bump png from 0.16.2 to 0.16.3
Bumps [png](https://github.com/image-rs/image-png) from 0.16.2 to 0.16.3.
- [Release notes](https://github.com/image-rs/image-png/releases)
- [Changelog](https://github.com/image-rs/image-png/blob/master/CHANGES.md)
- [Commits](https://github.com/image-rs/image-png/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-19 21:32:03 +00:00
Mike Welsh ddfd84ecdd web: Stop playing sounds when an instance is destroyed 2020-04-13 04:57:10 -07:00
Sean-Thomas 4d91a202e1 web/demo: Add dropdown to select sample SWF
- replaced static polyfill embed on web demo with JS API code.
- added swf_lib JSON file for sample SWFs.
- added console logs for when a Ruffle instance is created or destroyed in ruffle-player.js.
- more minor styling changes to the web demo index page.
2020-04-13 04:55:57 -07:00
dependabot-preview[bot] 6d837d69d4 build(deps): bump svg from 0.7.1 to 0.7.2
Bumps [svg](https://github.com/bodoni/svg) from 0.7.1 to 0.7.2.
- [Release notes](https://github.com/bodoni/svg/releases)
- [Commits](https://github.com/bodoni/svg/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-13 11:15:12 +00:00
dependabot-preview[bot] c20f3736ca build(deps): bump png from 0.16.1 to 0.16.2
Bumps [png](https://github.com/image-rs/image-png) from 0.16.1 to 0.16.2.
- [Release notes](https://github.com/image-rs/image-png/releases)
- [Changelog](https://github.com/image-rs/image-png/blob/master/CHANGES.md)
- [Commits](https://github.com/image-rs/image-png/compare/v0.16.1...v0.16.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-04 07:03:37 +00:00
Justin-CB ba19e6c2e1
web: Add additional flash MIME types to polyfill
Co-authored-by: Justin Bester <justin@frankenmando.local>
2020-04-01 18:45:32 -07:00
Mike Welsh 0c0d3dfd41 core: Add Navigator::time_since_launch to use for getTimer
Change `ActionGetTime` (`getTimer`) to use a new backend method.
This allows it to return updated times if it is called multiple
times in a single frame. This fixes hangs caused by games that use
busy-loop "frame limiter" code.
2020-03-28 22:28:07 -07:00
Sean-Thomas ec869fa656 Tweaked styling for demo page 2020-03-28 19:42:15 -07:00
Mike Welsh c1abbdacdd chore: Fix naming convention 2020-03-26 02:55:25 -07:00
Mike Welsh e237536293 web: Blacklist "Adobe Flash Player" title attribute (fix #468)
The "Click to activate Flash" box from Chrome stomps on the title
attribute of a Flash embed when you mouse over it. This causes
an annoying "Adobe Flash Player" tooltip to appear even after
Ruffle replaces the embeds.

Now we check for this specific title and remove it.
2020-03-26 02:37:25 -07:00
Mike Welsh c2e9d5d757 web: Install plugin spoof immediately on script load
Scripts like SWFObject check for the Flash plugin immediately when
they load, so we can't defer installing the spoof. Fixes #448.
2020-03-25 20:14:31 -07:00
Mike Welsh 353eeec6c3 web: Return matching Flash Player version for MIME type description
The plugin detection spoofer would add " "Shockwave Flash 32.0 r0
(compatible; Ruffle 0.1)" to the Flash MIME type description in
the plugins array. However, this breaks SWFObject's version
detection, which does a simple String split.

Now we return the same value as the official player:
"Shockwave Flash 32.0 r0"
2020-03-25 20:14:31 -07:00
Mike Welsh 774aa59210 web: Default public_path to currentScript URL
Also automatically add trailing slash on public_path if necessary.
2020-03-25 00:54:21 -07:00
Mike Welsh 5591cec0f7 web: Fix #412, incorrect bitmap rendering when cached 2020-03-24 23:08:15 -07:00
Mike Welsh fa063a6f53 web: Enable dynamic-content polyfill by default
Co-authored-by: Justin-CB <55590227+Justin-CB@users.noreply.github.com>
2020-03-24 22:13:10 -07:00
Mike Welsh e332e5c24c web: Simplify polyfill code
Addresses #464. Use `document.getElementsByTagName` to find all
object and embed tags in the document. For dynamic content,
we keep these live collections around, and re-check them whenever
a MutationObserver fires.

Co-authored-by: Justin-CB <55590227+Justin-CB@users.noreply.github.com>
2020-03-24 22:13:10 -07:00
dependabot-preview[bot] 80bfaa5f11 build(deps-dev): bump webpack from 4.42.0 to 4.42.1 in /web/selfhosted
Bumps [webpack](https://github.com/webpack/webpack) from 4.42.0 to 4.42.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.42.0...v4.42.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-24 19:29:20 +00:00
Mike Welsh 4561b591bf web: Handle percentage dimensions in polyfill (fix #433)
When Ruffle replaces a Flash embed, the width/height of the embed
are copied over to CSS of the Ruffle element. "px" was being
appended even if the dimensions were a % value, which CSS rejected.

Try to be a little smarter about parsing out the HTML dimension
attributes (HTML is more lenient). Append "px" only if the value
isn't a percentage.

Fixes #433.
2020-03-21 01:23:23 -07:00
Mike Welsh 9e6fe41a91 web: Ignore errors on `Element.setAttribute` in polyfill
Ruffle would not polyfill a Flash embed if it had bogus attributes
in the embed tag. Now these errors are silently ignored.

Fixes the other part of #457.
2020-03-20 20:47:58 -07:00
Mike Welsh 099c497a91 web: Activate polyfill if embed src ends in .swf
Fixes part of #457. Even if the MIME type/class IDs are missing
on the embed/object tags, browsers will still attempt to play
the file as Flash if it ends in a .swf extension.
2020-03-20 20:47:58 -07:00
Mike Welsh 26914d7b62 web: Fix off-center gradient rendering
Regression caused by 223edb9. Write twips value to SVG matrix.
Addresses some incorrect rendering in #437.
2020-03-16 02:44:32 -07:00
Mike Welsh b3b81c5e20 chore: Explicitly install wasm-pack on CI 2020-03-16 02:15:55 -07:00
Mike Welsh 17a7b02f14 chore: Bump npm packages 2020-03-16 02:15:55 -07:00
dependabot[bot] 623849483c
build(deps): bump acorn from 6.4.0 to 6.4.1 in /web/demo
Bumps [acorn](https://github.com/acornjs/acorn) from 6.4.0 to 6.4.1.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.4.0...6.4.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-03-16 06:09:43 +00:00
dependabot-preview[bot] 2c1495eebd build(deps): [security] bump acorn in /web/selfhosted
Bumps [acorn](https://github.com/acornjs/acorn) from 6.4.0 to 6.4.1. **This update includes a security fix.**
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.4.0...6.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-16 06:09:05 +00:00
Sean-Thomas 609b6671b3 Spruced up Web Demo Page
Edited styling for web demo page to look more like the https://ruffle.rs homepage.
2020-03-09 19:33:03 -04:00
dependabot-preview[bot] 05d74f4870 build(deps): bump base64 from 0.11.0 to 0.12.0
Bumps [base64](https://github.com/marshallpierce/rust-base64) from 0.11.0 to 0.12.0.
- [Release notes](https://github.com/marshallpierce/rust-base64/releases)
- [Changelog](https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/marshallpierce/rust-base64/compare/v0.11.0...v0.12.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-09 01:07:16 +00:00
dependabot-preview[bot] fb02a8b57f build(deps): bump png from 0.16.0 to 0.16.1
Bumps [png](https://github.com/image-rs/image-png) from 0.16.0 to 0.16.1.
- [Release notes](https://github.com/image-rs/image-png/releases)
- [Changelog](https://github.com/image-rs/image-png/blob/master/CHANGES.md)
- [Commits](https://github.com/image-rs/image-png/compare/v0.16.0...v0.16.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-03 23:13:22 +00:00
dependabot-preview[bot] 924fb05981 build(deps): bump svg from 0.7.0 to 0.7.1
Bumps [svg](https://github.com/bodoni/svg) from 0.7.0 to 0.7.1.
- [Release notes](https://github.com/bodoni/svg/releases)
- [Commits](https://github.com/bodoni/svg/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-03 22:30:38 +00:00
Mike Welsh cd334bcd3f web: Fix bitmap fills not using twips 2020-03-02 18:31:49 -08:00
dependabot-preview[bot] 23b0478796 build(deps): bump png from 0.15.3 to 0.16.0
Bumps [png](https://github.com/image-rs/image-png) from 0.15.3 to 0.16.0.
- [Release notes](https://github.com/image-rs/image-png/releases)
- [Changelog](https://github.com/image-rs/image-png/blob/master/CHANGES.md)
- [Commits](https://github.com/image-rs/image-png/compare/v0.15.3...v0.16.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 23:32:44 +00:00
dependabot-preview[bot] 55a568a42b build(deps): bump svg from 0.6.0 to 0.7.0
Bumps [svg](https://github.com/bodoni/svg) from 0.6.0 to 0.7.0.
- [Release notes](https://github.com/bodoni/svg/releases)
- [Commits](https://github.com/bodoni/svg/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 21:49:30 +00:00
dependabot-preview[bot] d30928e634 build(deps-dev): bump webpack from 4.41.6 to 4.42.0 in /web/selfhosted
Bumps [webpack](https://github.com/webpack/webpack) from 4.41.6 to 4.42.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.41.6...v4.42.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 18:06:33 +00:00
Mike Welsh 223edb9bc1 core: Matrix translation is in twips 2020-02-26 12:47:47 -08:00
Mike Welsh c4c02260fb core: Implement keyUp event 2020-02-26 03:48:07 -08:00
Mike Welsh acd5f2c74f web: Fix invisible cursor 2020-02-26 01:47:08 -08:00
Mike Welsh c620f95c4f chore: Expose lzma feature on targets 2020-02-26 00:47:15 -08:00
Mike Welsh 86ec2c6cb8 input: Add InputBackend::set_mouse_cursor. Change cursor on buttons
It doesn't feel like Flash without having the hand cursor display
when hovering over buttons. First pass at implementing this;
core communicates which mouse cursor to use via
`InputBackend::set_mouse_cursor`.

TODO: Hand cursor only displayed for Button display objects
currently. Movie clips should also display this when they are in
"button mode" (when a button mouse event is set on them in AVM1,
or `buttonMode` property in AVM2).
2020-02-25 02:50:26 -08:00
David Wendt 33d26b9149 Shorten `Pin<Box<dyn Future<Output=Result<T,E>> + 'static>>` into `OwnedFuture<T,E>`.
This is technically stricter on `fetch` impls, but right now we can't support non-`'static` futures at all.
2020-02-22 00:02:45 -05:00
David Wendt c7539872f7 Add the ability to POST data from `fetch`, and allow methods that read AVM locals into form data to `GET` or `POST` them. 2020-02-21 23:58:00 -05:00
David Wendt f4e4171ebe Make spawned futures falliable, and report those errors. 2020-02-21 23:57:56 -05:00
David Wendt 55149b7b7e Reference count the Player and provide a weak reference in UpdateContext.
This allows the formation of `'static` futures that can still interact with a player. Async code will need to upgrade the weak reference in order to be able to interact with the player.
2020-02-21 23:44:06 -05:00
David Wendt 8d83bbb864 Impl fetch for web 2020-02-21 23:44:05 -05:00
David Wendt 491d94c947 Pinbox all Futures.
Due to some strangeness with the way Rust implemented unsafe-to-move behavior, boxed futures are implicitly `Unpin`. Which is useless to us.

The reason for this is a little counter-intuitive. Actually, the fact that Rust supports memory pinning at all is a little odd, because the core language explicitly requires all types be movable. To get around this, Pin requires that all !Unpin types be *born pinned*. This is because you can't re-pin an already unpinned value in memory.

Anyway, this necessitates this silly API change.
2020-02-21 23:44:05 -05:00
David Wendt 00d25a768c Extremely basic impl of fetch/spawn methods for getting data off the web 2020-02-21 23:44:05 -05:00
David Wendt 2137b9f1fd Migrate `set_frame_rate` into the core `AudioBackend` trait 2020-02-21 23:44:05 -05:00